Browse Source

会员升级

Kirin 7 months ago
parent
commit
889bbc7326

+ 1 - 1
app/controller/api/v1/PublicController.php

@@ -138,7 +138,7 @@ class PublicController extends BaseController
                 //推荐奖
                 $spread = $userService->getUserInfo($user['spread_uid']);
                 if ($spread && $spread['is_promoter']) {
-                    if ($awardIntegralService->getPaySum($spread['uid']) > 0) {
+                    if ($awardIntegralService->getPaySum($spread['uid']) >= 2000) {
                         $award_ratio = sys_config('recommend_speed_integral', 0);
                         $give_action_integral = bcdiv(bcmul($total_price, $award_ratio), 100, 2);
                         if ($give_action_integral > 0) {

+ 6 - 3
app/jobs/integral/IntegralJob.php

@@ -42,6 +42,9 @@ class IntegralJob extends BaseJobs
 //                //添加静态积分
 //                $static_integral_ratio = sys_config('static_integral_ratio', 0);
                 $rate = sys_config('static_integral_rate', 3);
+                $award_order_limit = 0.01;
+                $award_order_limit_type = system('award_order_limit_type');
+                if ($award_order_limit_type == 0) $award_order_limit = sys_config('award_order_limit');
                 $give_static_integral = bcmul($total_price, $rate);
                 if ($give_static_integral > 0) {
 //                $extract_sum = bcmul($total_price, $rate, 2);
@@ -60,7 +63,7 @@ class IntegralJob extends BaseJobs
                 $rate = sys_config('action_integral_rate', 3);
                 $spread = $userService->getUserInfo($user['spread_uid']);
                 if ($spread && $spread['is_promoter']) {
-                    if ($awardIntegralService->getPaySum($spread['uid']) > 0) {
+                    if ($awardIntegralService->getPaySum($spread['uid']) >= $award_order_limit) {
                         $award_ratio = sys_config('recommend_integral', 0);
                         if (($integral_info['link_id'] ?? 0) > 0) {
                             $award_ratio = sys_config('reorder_recommend_integral', 0);
@@ -73,7 +76,7 @@ class IntegralJob extends BaseJobs
 //                            $awardIntegralService->incIntegral($spread['uid'], $integral_price, $give_action_integral, $total_price, 1, $extract_sum, $order['id'], $mark);
                         }
                     }
-                    if ($awardIntegralService->getPaySum($spread['uid']) > 0) {
+                    if ($awardIntegralService->getPaySum($spread['uid']) >= $award_order_limit) {
                         $award_ratio = sys_config('recommend_speed_integral', 0);
                         $give_action_integral = bcdiv(bcmul($total_price, $award_ratio), 100, 2);
                         if ($give_action_integral > 0) {
@@ -95,7 +98,7 @@ class IntegralJob extends BaseJobs
                     $give_action_integral = bcdiv(bcmul($total_price, $ratio), 100, 2);
                     if ($give_action_integral > $send && $spread['is_promoter']) {
                         $real_send = bcsub($give_action_integral, $send, 2);
-                        if ($awardIntegralService->getPaySum($spread['uid']) > 0 || $spread['award_switch']) {
+                        if ($awardIntegralService->getPaySum($spread['uid']) >= $award_order_limit || $spread['award_switch']) {
                             $extract_sum = bcmul($real_send, $rate, 2);
                             $mark = '团队用户' . $user['nickname'] . "({$user['uid']})" . '购买商品,获得团队级差积分';
                             $this->sendAward($extract_sum, $spread['uid'], $mark, $order['id']);

+ 6 - 3
app/model/user/AwardIntegral.php

@@ -106,14 +106,17 @@ class AwardIntegral extends BaseModel
      */
     public function searchValidAttr($query, $value)
     {
+        $award_order_limit_type = sys_config('award_order_limit_type');
+        $award_order_limit = sys_config('award_order_limit');
+        if ($award_order_limit_type == 1) $award_order_limit = 0.01;
         if ($value == 1) {
-            $query->where('status', 0)->where('sent_num<num')->where('order_price', '>=', 2000);
+            $query->where('status', 0)->where('sent_num<num')->where('order_price', '>=', $award_order_limit);
         } else if ($value == 2) {
             $query->where(function ($query) {
                 $query->where('status', 1)->whereOr('sent_num>=num');
-            })->where('order_price', '>=', 2000);
+            })->where('order_price', '>=', $award_order_limit);
         } else {
-            $query->where('order_price', '<', 2000);
+            $query->where('order_price', '<', $award_order_limit);
         }
     }
 

+ 3 - 1
app/services/system/config/SystemConfigServices.php

@@ -1484,7 +1484,7 @@ WSS;
             'extract_ratio', 'extract_ratio_active', 'extract_brokerage_ratio', 'extract_brokerage_ratio_active', 'extract_speed_ratio', 'extract_speed_num', 'extract_spread_ratio',
             'district_award', 'city_award', 'province_award', 'area_award_time', 'reorder_recommend_integral', 'starts_return_time', 'exchange_fee', 'user_exchange_min_energy', 'stock_price',
             'default_send_day', 'int_send_day', 'reorder_int_send_day', 'reorder_times', 'shop_integral_ratio', 're_now_money', 're_energy', 'system_achievement_check',
-            'fail_inc_send_day', 'shop_integral_trade_commission', 'shop_integral_trade_switch',
+            'fail_inc_send_day', 'shop_integral_trade_commission', 'shop_integral_trade_switch', 'award_order_limit_type', 'award_order_limit',
         ]);
 
         $build->rule([
@@ -1546,6 +1546,8 @@ WSS;
                 Build::inputNum('system_achievement_check', $data['system_achievement_check']['info'], $data['system_achievement_check']['value'])->min(0)->info($data['system_achievement_check']['desc']),
                 Build::inputNum('fail_inc_send_day', $data['fail_inc_send_day']['info'], $data['fail_inc_send_day']['value'])->min(0)->info($data['fail_inc_send_day']['desc']),
                 Build::inputNum('shop_integral_trade_commission', $data['shop_integral_trade_commission']['info'], $data['shop_integral_trade_commission']['value'])->min(0)->info($data['shop_integral_trade_commission']['desc']),
+                Build::switch('award_order_limit_type', $data['award_order_limit_type']['info'], $data['award_order_limit_type']['value'])->trueValue('累计', 1)->falseValue('单个订单', 0),
+                Build::inputNum('award_order_limit', $data['award_order_limit']['info'], $data['award_order_limit']['value'])->min(0)->info($data['award_order_limit']['desc']),
             ])->option('提现设置', [
                 Build::alert('微信提现到零钱为自动到账(需要开通微信:企业付款到零钱(商家转账到零钱),并确保配置微信支付证书正确,特别注意:需要配置场景、开启API发起转账),其他方式均需要手动转账', Alert::WARNING)->showIcon(true),
                 Build::radio('brokerage_type', $data['brokerage_type']['info'], $data['brokerage_type']['value'])->options($this->getOptions($data['brokerage_type']['parameter']))->control(1, [