WIN-2308041133\Administrator 3 هفته پیش
والد
کامیت
06ec085ddd
3فایلهای تغییر یافته به همراه51 افزوده شده و 32 حذف شده
  1. 1 0
      app/api/controller/user/UserExtractController.php
  2. 41 23
      app/models/store/StoreOrder.php
  3. 9 9
      app/models/system/SystemUserTask.php

+ 1 - 0
app/api/controller/user/UserExtractController.php

@@ -69,6 +69,7 @@ class UserExtractController
             ['bankname', ''],
             ['bankname', ''],
             ['cardnum', ''],
             ['cardnum', ''],
             ['weixin', ''],
             ['weixin', ''],
+            ['subbranch','']
         ], $request);
         ], $request);
         if (time() - CacheService::get('UserExtract_' . $request->uid(), 0) < 10) return app('json')->fail('请勿连续多次提交');
         if (time() - CacheService::get('UserExtract_' . $request->uid(), 0) < 10) return app('json')->fail('请勿连续多次提交');
         else CacheService::set('UserExtract_' . $request->uid(), time());
         else CacheService::set('UserExtract_' . $request->uid(), time());

+ 41 - 23
app/models/store/StoreOrder.php

@@ -275,7 +275,7 @@ class StoreOrder extends BaseModel
      * @throws \think\exception\DbException
      * @throws \think\exception\DbException
      */
      */
 
 
-    public static function cacheKeyCreateOrder($uid, $key, $addressId, $payType, $useIntegral = false, $couponId = 0, $mark = '', $combinationId = 0, $pinkId = 0, $seckill_id = 0, $bargain_id = 0, $test = false, $isChannel = 0, $shipping_type = 1, $real_name = '', $phone = '', $storeId = 0,$sale_uid = 0)
+    public static function cacheKeyCreateOrder($uid, $key, $addressId, $payType, $useIntegral = false, $couponId = 0, $mark = '', $combinationId = 0, $pinkId = 0, $seckill_id = 0, $bargain_id = 0, $test = false, $isChannel = 0, $shipping_type = 1, $real_name = '', $phone = '', $storeId = 0, $sale_uid = 0)
     {
     {
         self::beginTrans();
         self::beginTrans();
         try {
         try {
@@ -329,10 +329,10 @@ class StoreOrder extends BaseModel
                 if ($cart['productInfo']['is_explosive'] == 1) {
                 if ($cart['productInfo']['is_explosive'] == 1) {
                     $is_explosive = 1;
                     $is_explosive = 1;
                 }
                 }
-                if ($explosive_type == -1){
-                    $explosive_type =$cart['productInfo']['is_explosive'];
-                }else{
-                    if ($explosive_type!= $cart['productInfo']['is_explosive']){
+                if ($explosive_type == -1) {
+                    $explosive_type = $cart['productInfo']['is_explosive'];
+                } else {
+                    if ($explosive_type != $cart['productInfo']['is_explosive']) {
                         return self::setErrorInfo('报单商品和非报单商品不能混合购买!', true);
                         return self::setErrorInfo('报单商品和非报单商品不能混合购买!', true);
                     }
                     }
                 }
                 }
@@ -838,26 +838,13 @@ class StoreOrder extends BaseModel
         event('OrderPaySuccess', [$order, $formId]);
         event('OrderPaySuccess', [$order, $formId]);
         $sale_uid = User::where('uid', $order['uid'])->value('spread_uid');
         $sale_uid = User::where('uid', $order['uid'])->value('spread_uid');
 //       如果在分享下支付完成且没有推荐人就自动绑定
 //       如果在分享下支付完成且没有推荐人就自动绑定
-        if ($order['sale_uid']>0&&$sale_uid==0){
-            $spread_order = User::where('uid', $order['sale_uid'])->value('spread_order');
-            $spread_order = bcadd($spread_order,1,2);  //推荐订单数加1
-            User::where('uid', $order['uid'])->update(['spread_uid' => $order['sale_uid'],'spread_time'=>time(),'spread_order'=>$spread_order]);
-            if ($spread_order % 2 == 0) {
-//                echo "双数";
-                $radio = sys_config('secondary_commission_ratio');
-            } else {
-//                echo "单数";
-                $radio = sys_config('primary_commission_ratio');
-            }
-            $money = bcmul($order['total_price'], bcdiv($radio,100,2), 2);
-            $blance = User::where('uid', $order['sale_uid'])->value('brokerage_price');
-            $blance = bcadd($blance, $money, 2);
-            UserBill::income('推荐佣金', $order['sale_uid'], 'brokerage_price', 'order_money', $money, $order['id'], $blance, '订单推荐佣金');
-            User::where('uid', $order['sale_uid'])->update(['brokerage_price' =>$blance]);
-
+        if ($order['sale_uid'] > 0 && $sale_uid == 0) {
+            User::where('uid', $order['uid'])->update(['spread_uid' => $order['sale_uid'], 'spread_time' => time()]);
         }
         }
+//        上级返佣
+        self::spread_rewards($order);
 //       如果是报单商品就增加业绩
 //       如果是报单商品就增加业绩
-        if ($order['is_explosive']==1){
+        if ($order['is_explosive'] == 1) {
             $achievement = User::where('uid', $order['uid'])->value('achievement');
             $achievement = User::where('uid', $order['uid'])->value('achievement');
             $achievement = bcadd($achievement, $order['total_price'], 2);
             $achievement = bcadd($achievement, $order['total_price'], 2);
             User::where('uid', $order['uid'])->update(['achievement' => $achievement]);
             User::where('uid', $order['uid'])->update(['achievement' => $achievement]);
@@ -866,6 +853,37 @@ class StoreOrder extends BaseModel
         return false !== $res;
         return false !== $res;
     }
     }
 
 
+//    推荐奖励
+    public static function spread_rewards($order)
+    {
+        try {
+
+            $spread_uid = User::where('uid', $order['sale_uid'])->value('spread_uid');
+            if ($spread_uid > 0) {
+                $spread_order = User::where('uid', $spread_uid)->value('spread_order');
+                $spread_order = bcadd($spread_order, 1, 2);  //推荐订单数加1
+//            User::where('uid', $spread_uid)->update(['spread_uid' => $order['sale_uid'],'spread_time'=>time(),'spread_order'=>$spread_order]);
+
+                if ($spread_order % 2 == 0) {
+//                echo "双数";
+                    $radio = sys_config('secondary_commission_ratio');
+                } else {
+//                echo "单数";
+                    $radio = sys_config('primary_commission_ratio');
+                }
+                $money = bcmul($order['total_price'], bcdiv($radio, 100, 2), 2);
+                $blance = User::where('uid', $spread_uid)->value('brokerage_price');
+                $blance = bcadd($blance, $money, 2);
+                UserBill::income('推荐佣金', $spread_uid, 'brokerage_price', 'order_money', $money, $order['id'], $blance, '订单推荐佣金');
+                User::where('uid', $spread_uid)->update(['brokerage_price' => $blance, 'spread_order' => $spread_order]);
+            }
+            return true;
+        } catch (\Exception $e) {
+            @file_put_contents('quanju.txt', json_encode(['line' => $e->getLine(), 'message' => $e->getMessage(), 'file' => $e->getFile()]) . "-报错内容\r\n", 8);
+            return app('json')->fail('报错', ['line' => $e->getLine(), 'message' => $e->getMessage(), 'file' => $e->getFile()]);
+        }
+    }
+
     /*
     /*
      * 线下支付消息通知
      * 线下支付消息通知
      * 待完善
      * 待完善

+ 9 - 9
app/models/system/SystemUserTask.php

@@ -136,7 +136,7 @@ class SystemUserTask extends BaseModel
     }
     }
 
 
     /**
     /**
-     * 累计消费金额(包括直推下级)
+     * 直推下级累计消费
      * @param int $task_id 任务id
      * @param int $task_id 任务id
      * @param int $uid 用户id
      * @param int $uid 用户id
      * @param int $start_time 开始时间
      * @param int $start_time 开始时间
@@ -146,14 +146,14 @@ class SystemUserTask extends BaseModel
     public static function ConsumptionAmount($task_id, $uid = 0, $start_time = 0, $number = 0)
     public static function ConsumptionAmount($task_id, $uid = 0, $start_time = 0, $number = 0)
     {
     {
         $isComplete = false;
         $isComplete = false;
-        $SumPayPrice = StoreOrder::where('paid', 1)->where('refund_status', 0)->where('is_del', 0)->where('uid', $uid)->where('add_time', '>', $start_time)->sum('pay_price');
-//        $directSubordinateUids = User::where('spread_uid', $uid)->column('uid');
-//        $personal_achievement = 0;
-//        if (!empty($directSubordinateUids)) {
-//            $personal_achievement = User::whereIn('uid', $directSubordinateUids)
-//                ->sum('achievement');
-//        }
-//        $SumPayPrice =$personal_achievement;
+//        $SumPayPrice = StoreOrder::where('paid', 1)->where('refund_status', 0)->where('is_del', 0)->where('uid', $uid)->where('add_time', '>', $start_time)->sum('pay_price');
+        $directSubordinateUids = User::where('spread_uid', $uid)->column('uid');
+        $personal_achievement = 0;
+        if (!empty($directSubordinateUids)) {
+            $personal_achievement = User::whereIn('uid', $directSubordinateUids)
+                ->sum('achievement');
+        }
+        $SumPayPrice =$personal_achievement;
         if ($SumPayPrice >= $number) $isComplete = UserTaskFinish::setFinish($uid, $task_id) ? true : false;
         if ($SumPayPrice >= $number) $isComplete = UserTaskFinish::setFinish($uid, $task_id) ? true : false;
         return ['还需消费{$num}元', $SumPayPrice, $isComplete];
         return ['还需消费{$num}元', $SumPayPrice, $isComplete];
     }
     }