Kirin 4 vuotta sitten
vanhempi
commit
a38b70e45e
1 muutettua tiedostoa jossa 60 lisäystä ja 51 poistoa
  1. 60 51
      app/models/store/StoreOrder.php

+ 60 - 51
app/models/store/StoreOrder.php

@@ -28,6 +28,7 @@ use crmeb\repositories\{
 use app\admin\model\system\ShippingTemplates;
 use crmeb\utils\Pink as PinkJob;
 use crmeb\utils\Auto as AutoJob;
+
 /**
  * TODO 订单Model
  * Class StoreOrder
@@ -274,7 +275,7 @@ class StoreOrder extends BaseModel
      * @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, $activity_id = 0, $live_id = 0, $test = false, $isChannel = 0, $shipping_type = 1, $real_name = '', $phone = '', $storeId = 0, $use_integral_pink = 0, $isAutoPink = 0,$is_gift=0,$spread=0,$is_num=0,$pink_num=1,$line_id=0,$is_wdc=0)
+    public static function cacheKeyCreateOrder($uid, $key, $addressId, $payType, $useIntegral = false, $couponId = 0, $mark = '', $combinationId = 0, $pinkId = 0, $seckill_id = 0, $bargain_id = 0, $activity_id = 0, $live_id = 0, $test = false, $isChannel = 0, $shipping_type = 1, $real_name = '', $phone = '', $storeId = 0, $use_integral_pink = 0, $isAutoPink = 0, $is_gift = 0, $spread = 0, $is_num = 0, $pink_num = 1, $line_id = 0, $is_wdc = 0)
     {
         self::beginTrans();
         try {
@@ -327,13 +328,13 @@ class StoreOrder extends BaseModel
             }
             $deduction = $seckill_id || $bargain_id || $combinationId || $activity_id || $live_id;
             if ($deduction) {
-                $auto_pink=StoreOrder::where('uid',$uid)->where('combination_id','<>',0)->where('is_del',0)->where('is_ok',0)->find();
-                if($auto_pink){
+                $auto_pink = StoreOrder::where('uid', $uid)->where('combination_id', '<>', 0)->where('is_del', 0)->where('is_ok', 0)->find();
+                if ($auto_pink) {
                     return self::setErrorInfo('拼团正在进行!', true);
                 }
-                $top_num=sys_config('pink_suceess_num');
-                $tnum=StoreOrder::where('refund_status', '=', '0')->where('uid', $uid)->where('pink_id','<>',0)->where('pink_num',0)->where('is_ok',1)->whereTime('add_time','today')->count();
-                if($top_num<=$tnum){
+                $top_num = sys_config('pink_suceess_num');
+                $tnum = StoreOrder::where('refund_status', '=', '0')->where('uid', $uid)->where('pink_id', '<>', 0)->where('pink_num', 0)->where('is_ok', 1)->whereTime('add_time', 'today')->count();
+                if ($top_num <= $tnum) {
                     return self::setErrorInfo('今日拼团次数已用尽!', true);
                 }
                 $couponId = 0;
@@ -411,7 +412,7 @@ class StoreOrder extends BaseModel
                 self::rollbackTrans();
                 return [
                     'total_price' => $priceGroup['totalPrice'],
-                    'pay_price' =>$payPrice,
+                    'pay_price' => $payPrice,
                     'pay_postage' => $payPostage,
                     'coupon_price' => $couponPrice,
                     'deduction_price' => $deductionPrice,
@@ -435,7 +436,7 @@ class StoreOrder extends BaseModel
                 'total_postage' => $priceGroup['storePostage'],
                 'coupon_id' => $couponId,
                 'coupon_price' => $couponPrice,
-                'pay_price' =>$payPrice,
+                'pay_price' => $payPrice,
                 'pay_postage' => $payPostage,
                 'deduction_price' => $deductionPrice,
                 'paid' => 0,
@@ -443,7 +444,7 @@ class StoreOrder extends BaseModel
                 'use_integral' => $usedIntegral,
                 'gain_integral' => $gainIntegral,
                 'use_integral_pink' => $use_integral_pink,
-                'use_wtc'=>$payPrice,
+                'use_wtc' => $payPrice,
                 'mark' => htmlspecialchars($mark),
                 'combination_id' => $combinationId,
                 'pink_id' => $pinkId,
@@ -457,13 +458,13 @@ class StoreOrder extends BaseModel
                 'unique' => $key,
                 'shipping_type' => $shipping_type,
                 'is_auto_pink' => $isAutoPink,
-                'is_gift' =>$is_gift,
-                'spread'  =>$spread,
-                'close_time' => $isAutoPink ? bcadd(time(), 12 * 3600) : 0 ,   //默认付款12小时后没有成团,自动关闭
-                'ok_num'=>0,
-                'pink_num'=>$pink_num,
-                'line_id'=>$line_id,
-                'is_wdc'=>$is_wdc,
+                'is_gift' => $is_gift,
+                'spread' => $spread,
+                'close_time' => $isAutoPink ? bcadd(time(), 12 * 3600) : 0,   //默认付款12小时后没有成团,自动关闭
+                'ok_num' => 0,
+                'pink_num' => $pink_num,
+                'line_id' => $line_id,
+                'is_wdc' => $is_wdc,
             ];
             if ($shipping_type === 2) {
                 $orderInfo['verify_code'] = self::getStoreCode();
@@ -678,7 +679,7 @@ class StoreOrder extends BaseModel
         if (!$orderInfo) return self::setErrorInfo('订单不存在!');
         if ($orderInfo['paid']) return self::setErrorInfo('该订单已支付!');
 //        if($orderInfo['pay_type'] != 'yue') return self::setErrorInfo('该订单不能使用余额支付!');
-        if($orderInfo['pink_id']>0 && !StorePink::isPinkStatus($orderInfo['pink_id']))  self::setErrorInfo('该团已关闭!');
+        if ($orderInfo['pink_id'] > 0 && !StorePink::isPinkStatus($orderInfo['pink_id'])) self::setErrorInfo('该团已关闭!');
 
         $userInfo = User::getUserInfo($uid);
         if ($userInfo['now_money'] < $orderInfo['pay_price'])
@@ -699,6 +700,7 @@ class StoreOrder extends BaseModel
         self::checkTrans($res);
         return $res;
     }
+
     /**
      * 积分支付
      * @param $order_id
@@ -713,16 +715,16 @@ class StoreOrder extends BaseModel
     public static function integralPay($order_id, $uid, $formId = '')
     {
         $orderInfo = self::where('uid', $uid)->where('order_id', $order_id)->where('is_del', 0)->find();
-        @file_put_contents('qq.txt',11);
+        @file_put_contents('qq.txt', 11);
         if (!$orderInfo) return self::setErrorInfo('订单不存在!');
         if ($orderInfo['paid']) return self::setErrorInfo('该订单已支付!');
 //        if($orderInfo['pay_type'] != 'yue') return self::setErrorInfo('该订单不能使用余额支付!');
-        if($orderInfo['pink_id']>0 && !StorePink::isPinkStatus($orderInfo['pink_id']))  self::setErrorInfo('该团已关闭!');
+        if ($orderInfo['pink_id'] > 0 && !StorePink::isPinkStatus($orderInfo['pink_id'])) self::setErrorInfo('该团已关闭!');
 
         $userInfo = User::getUserInfo($uid);
         if ($userInfo['integral'] < $orderInfo['pay_price'])
             return self::setErrorInfo(['status' => 'pay_deficiency', 'msg' => '积分不足' . floatval($orderInfo['pay_price'])]);
-        @file_put_contents('ww.txt',11);
+        @file_put_contents('ww.txt', 11);
         self::beginTrans();
         $res1 = false !== User::bcDec($uid, 'integral', $orderInfo['pay_price'], 'uid');
         $res2 = UserBill::expend('购买商品', $uid, 'integral', 'integral_pay_product', $orderInfo['pay_price'], $orderInfo['id'], $userInfo['integral'], '积分支付' . floatval($orderInfo['pay_price']) . '元购买商品');
@@ -738,6 +740,7 @@ class StoreOrder extends BaseModel
         self::checkTrans($res);
         return $res;
     }
+
     /**
      * wdc支付
      * @param $order_id
@@ -755,9 +758,9 @@ class StoreOrder extends BaseModel
         if (!$orderInfo) return self::setErrorInfo('订单不存在!');
         if ($orderInfo['paid']) return self::setErrorInfo('该订单已支付!');
 //        if($orderInfo['pay_type'] != 'yue') return self::setErrorInfo('该订单不能使用余额支付!');
-        if($orderInfo['pink_id']>0 && !StorePink::isPinkStatus($orderInfo['pink_id']))  self::setErrorInfo('该团已关闭!');
-        if($orderInfo['line_id']){
-            $res= self::paySuccess($order_id, 'wdc', $formId);//wdc支付成功
+        if ($orderInfo['pink_id'] > 0 && !StorePink::isPinkStatus($orderInfo['pink_id'])) self::setErrorInfo('该团已关闭!');
+        if ($orderInfo['line_id']) {
+            $res = self::paySuccess($order_id, 'wdc', $formId);//wdc支付成功
             return $res;
         }
         $userInfo = User::getUserInfo($uid);
@@ -778,6 +781,7 @@ class StoreOrder extends BaseModel
         self::checkTrans($res);
         return $res;
     }
+
     /**
      * 微信支付 为 0元时
      * @param $order_id
@@ -794,7 +798,7 @@ class StoreOrder extends BaseModel
         $orderInfo = self::where('uid', $uid)->where('order_id', $order_id)->where('is_del', 0)->find();
         if (!$orderInfo) return self::setErrorInfo('订单不存在!');
         if ($orderInfo['paid']) return self::setErrorInfo('该订单已支付!');
-        if($orderInfo['pink_id']>0 && StorePink::isPinkStatus($orderInfo['pink_id']))  self::setErrorInfo('该团已关闭!');
+        if ($orderInfo['pink_id'] > 0 && StorePink::isPinkStatus($orderInfo['pink_id'])) self::setErrorInfo('该团已关闭!');
         $userInfo = User::getUserInfo($uid);
         self::beginTrans();
         $res1 = UserBill::expend('购买商品', $uid, 'now_money', 'pay_product', $orderInfo['pay_price'], $orderInfo['id'], $userInfo['now_money'], '微信支付' . floatval($orderInfo['pay_price']) . '元购买商品');
@@ -863,20 +867,20 @@ class StoreOrder extends BaseModel
     {
         //Log::write("pay-OK",'error');
         $order = self::where('order_id', $orderId)->find();
-        @file_put_contents('ee.txt',11);
+        @file_put_contents('ee.txt', 11);
         $resPink = true;
-        $res1 = self::where('order_id', $orderId)->update(['paid' => 1, 'pay_type' => $paytype,'is_del'=>0, 'pay_time' => time()]);//订单改为支付
-        @file_put_contents('rr.txt',11);
+        $res1 = self::where('order_id', $orderId)->update(['paid' => 1, 'pay_type' => $paytype, 'is_del' => 0, 'pay_time' => time()]);//订单改为支付
+        @file_put_contents('rr.txt', 11);
 //        Log::write("OK",'error');
-        if ($order->combination_id && $res1 && !$order->refund_status && !$order->is_auto_pink) $resPink =PinkJob::create($order);//不是自动拼团的,创建拼团
-        if ($order->combination_id && $res1 && !$order->refund_status && $order->is_auto_pink && !$order->is_ok) $resPink =AutoJob::create($order);//自动拼团
-        @file_put_contents('rr.txt',11);
-        if($order->line_id){
-            Line::where('id',$order['line_id'])->save(['status'=>3]);
+        if ($order->combination_id && $res1 && !$order->refund_status && !$order->is_auto_pink) $resPink = PinkJob::create($order);//不是自动拼团的,创建拼团
+        if ($order->combination_id && $res1 && !$order->refund_status && $order->is_auto_pink && !$order->is_ok) $resPink = AutoJob::create($order);//自动拼团
+        @file_put_contents('rr.txt', 11);
+        if ($order->line_id) {
+            Line::where('id', $order['line_id'])->save(['status' => 3]);
         }
         $oid = self::where('order_id', $orderId)->value('id');
         StoreOrderStatus::status($oid, 'pay_success', '用户付款成功');
-        @file_put_contents('tt.txt',11);
+        @file_put_contents('tt.txt', 11);
 //        if ($order->combination_id && $res1) {    //拼团商品消耗的积分
 //            $user = Db::name('user')->where('uid', '=', $order['uid'])->find();
 //            $cost_integral = Db::name('store_combination')->alias('c')->join('store_product p', 'c.product_id=p.id')->where('c.id', '=', $order->combination_id)->value('cost_integral');   //商品默认积分
@@ -887,32 +891,30 @@ class StoreOrder extends BaseModel
 //                UserBill::expend('拼团积分消耗', $user['uid'], 'integral', 'deduction', $order['use_integral_pink'], $order['id'], $integral, '拼团消耗积分,助力补贴');
 //            }
 //        }
-        if(!$order->is_wdc && $res1){
+        if (!$order->is_wdc && $res1) {
             User::directWdc($order);
         }
-        if(!$order->is_wdc && $res1 && !$order->combination_id){
+        if (!$order->is_wdc && $res1 && !$order->combination_id) {
             self::gainUserIntegral($order);
         }
-        if($order->is_gift && $res1)
-        {
-            $product_id = StoreOrderCartInfo::where('oid',$order->id)->value('product_id');
-            $old_level = StoreProduct::where('id',$product_id)->value('level');
-            $level=SystemUserLevel::where('id',$old_level)->value('grade');
-            $old_userlevel = User::where('uid',$order->uid)->value('level');
-            $userlevel=SystemUserLevel::where('id',$old_userlevel)->value('grade');
-            if($userlevel<$level)
-            {
-                UserLevel::setUserLevel($order->uid,$old_level);
+        if ($order->is_gift && $res1) {
+            $product_id = StoreOrderCartInfo::where('oid', $order->id)->value('product_id');
+            $old_level = StoreProduct::where('id', $product_id)->value('level');
+            $level = SystemUserLevel::where('id', $old_level)->value('grade');
+            $old_userlevel = User::where('uid', $order->uid)->value('level');
+            $userlevel = SystemUserLevel::where('id', $old_userlevel)->value('grade');
+            if ($userlevel < $level) {
+                UserLevel::setUserLevel($order->uid, $old_level);
             }
         }
-        if(sys_config('spread_look')==1 && $order->spread>0) {
-            $spread = User::where('uid',$order->uid)->value('spread_uid');
-            User::setSpreadUid($order->uid,$order->spread);
-            if(intval($spread)==0) {
+        if (sys_config('spread_look') == 1 && $order->spread > 0) {
+            $spread = User::where('uid', $order->uid)->value('spread_uid');
+            User::setSpreadUid($order->uid, $order->spread);
+            if (intval($spread) == 0) {
                 WechatUser::spreadSuccessGiveIntegral($order->spread);
             }
         }
-        @file_put_contents('yy.txt',11);
+        @file_put_contents('yy.txt', 11);
         //支付成功后
         event('OrderPaySuccess', [$order, $formId]);
         $res = $res1 && $resPink;
@@ -1083,7 +1085,7 @@ class StoreOrder extends BaseModel
             if (!$pro || !$order) {
                 return self::setErrorInfo('数据库里找不到数据', true);
             }
-            $integral = $pro['give_integral']* $order['total_num'];
+            $integral = $pro['give_integral'] * $order['total_num'];
             WechatUser::buyProductGiveIntegral($uid, $integral);   //购物赠送积分
 
             $p = $order['pay_price'] - $order['pay_postage'] - $order['cost'];
@@ -1123,7 +1125,9 @@ class StoreOrder extends BaseModel
             $prevUser = null;
             $pids = [];
             UtilService::getparentid($userList, $uid, $pids);
+            @file_put_contents('jc.txt', "[" . date('Y-m-d H:i:s') . "]" . json_encode($pids) . PHP_EOL, 8);
             foreach ($pids as $k => $v) {
+                @file_put_contents('jc.txt', "[" . date('Y-m-d H:i:s') . "]" . json_encode($levelPrizeLeave) . PHP_EOL, 8);
                 $level = UserLevel::getUserLevel($uid);
                 $level_id_origin = 0;   //中奖用户等级
                 if ($level !== false) {
@@ -1140,11 +1144,14 @@ class StoreOrder extends BaseModel
                 }
                 $user['level_id'] = $level_id;
 
+                @file_put_contents('jc.txt', "[" . date('Y-m-d H:i:s') . "]" . json_encode($level_id) . PHP_EOL, 8);
                 if ($prevUser == null) {
+                    @file_put_contents('jc.txt', "[" . date('Y-m-d H:i:s') . "]" . json_encode($level_id_origin) . PHP_EOL, 8);
                     if ($level_id <= $level_id_origin) {
                         continue;
                     }
                     if ($level_id == 1) {
+                        @file_put_contents('jc.txt', "[" . date('Y-m-d H:i:s') . "]" . json_encode($level1_reward_rate) . PHP_EOL, 8);
                         if ($level1_reward_rate > 0) {
                             User::where('uid', $v)->inc('brokerage_price', bcmul($profit, $level1_reward_rate * 0.01, 2))->update();
                             $balance = User::where('uid', $v)->value('brokerage_price');
@@ -1154,6 +1161,7 @@ class StoreOrder extends BaseModel
                             $user['prevPrize'] = $level1_reward_rate;
                         }
                     } else if ($level_id == 2) {
+                        @file_put_contents('jc.txt', "[" . date('Y-m-d H:i:s') . "]" . json_encode($level2_reward_rate) . PHP_EOL, 8);
                         if ($level2_reward_rate > 0) {
                             User::where('uid', $v)->inc('brokerage_price', bcmul($profit, $level2_reward_rate * 0.01, 2))->update();
                             $balance = User::where('uid', $v)->value('brokerage_price');
@@ -1163,6 +1171,7 @@ class StoreOrder extends BaseModel
                             $user['prevPrize'] = $level2_reward_rate;
                         }
                     } else if ($level_id == 3) {
+                        @file_put_contents('jc.txt', "[" . date('Y-m-d H:i:s') . "]" . json_encode($level3_reward_rate) . PHP_EOL, 8);
                         if ($level3_reward_rate > 0) {
                             User::where('uid', $v)->inc('brokerage_price', bcmul($profit, $level3_reward_rate * 0.01, 2))->update();
                             $balance = User::where('uid', $v)->value('brokerage_price');