wesmiler 1 неделя назад
Родитель
Сommit
aba87f5df0

+ 1 - 1
app/Http/Controllers/Api/v1/TestController.php

@@ -21,7 +21,7 @@ class TestController extends webApp
     public function check()
     {
         echo 666;;
-        $result = SettleService::make()->commissionSettle(8);
+        $result = SettleService::make()->commissionSettle(15);
 //        $result = PriceService::make()->updatePrice(1);
 dump($result);
         return showJson(SettleService::make()->getError(), true, $result);

+ 1 - 0
app/Services/Api/OrderService.php

@@ -426,6 +426,7 @@ class OrderService extends BaseService
         }
 
         // 佣金数据
+        $order['id'] = $orderId;
         if(!$commission = SettleService::make()->commissionCount($order,$orderGoods,$userInfo, $type)){
             Db::rollBack();
             $this->error = '订单处理失败';

+ 22 - 6
app/Services/Api/SettleService.php

@@ -117,10 +117,12 @@ class SettleService extends BaseService
         $userId = isset($order['user_id'])?$order['user_id']:0;
         $storeId = isset($order['store_id'])?$order['store_id']:0;
         $mealId = isset($order['meal_id'])?$order['meal_id']:0;
+        $orderId = isset($order['id'])?$order['id']:0;
         $orderNo = isset($order['order_no'])?$order['order_no']:'';
         $orderTotal = isset($order['pay_total'])?$order['pay_total']:0;
         $profitTotal = isset($order['profit_total'])?$order['profit_total']:0;
         $data = [
+            'order_id'=> $orderId,
             'user_id'=> $userId,
             'order_no'=> $orderNo,
             'store_id'=> $storeId,
@@ -316,11 +318,12 @@ class SettleService extends BaseService
         $cacheKey = "caches:ordersCommission:{$orderNo}_{$orderUserId}:";
         if(RedisService::get("{$cacheKey}lock")){
             $this->error = '订单结算中';
-            return false;
+//            return false;
         }
 
         //  创业订单
         $logs = [];
+        $success = [];
         RedisService::set("{$cacheKey}lock", $info, 300);
         DB::beginTransaction();
         if($orderType == 2){
@@ -328,6 +331,9 @@ class SettleService extends BaseService
             $directData = isset($commission['direct_bonus'])? $commission['direct_bonus'] : [];
             $directUserId = isset($commission['direct_uid'])? $commission['direct_uid'] : 0;
             $directBonus = isset($directData['bonus'])? $directData['bonus'] : 0;
+            var_dump($directUserId);
+            dump($directData);
+            var_dump($directBonus);
             if($directUserId>0 && $directBonus>0){
                 $directUser = isset($commission['direct_user'])? $commission['direct_user'] : [];
                 $directUserBalance = isset($directUser['balance'])?$directUser['balance'] : 0;
@@ -339,6 +345,7 @@ class SettleService extends BaseService
                     ];
                     if(!MemberModel::where(['id'=>$directUserId])->update($updateData)){
                         DB::rollBack();
+                        RedisService::clear("{$cacheKey}lock");
                         $this->error = '直推奖励结算错误';
                         return false;
                     }
@@ -378,6 +385,8 @@ class SettleService extends BaseService
                 ->get()
                 ->keyBy('id');
             $bonusUsers = $bonusUsers? $bonusUsers->toArray() : [];
+            var_dump($bonusUsers);
+            var_dump($bonusUids);
             for($i=1; $i<=6; $i++){
                $uid = isset($commission["bonus_{$i}_uid"])? $commission["bonus_{$i}_uid"]:0;
                $bonusData = isset($commission["bonus_{$i}_data"])? $commission["bonus_{$i}_data"]:0;
@@ -395,6 +404,7 @@ class SettleService extends BaseService
                    if(!MemberModel::where(['id'=> $uid])->update($updateData)){
                        DB::rollBack();
                        $this->error = '见单和分红奖励结算错误';
+                       RedisService::clear("{$cacheKey}lock");
                        return false;
                    }
 
@@ -461,6 +471,7 @@ class SettleService extends BaseService
                 if(!StoreModel::where(['id'=> $storeId])->update($updateData)){
                     DB::rollBack();
                     $this->error = '商家提成结算失败';
+                    RedisService::clear("{$cacheKey}lock");
                     return false;
                 }
 
@@ -500,6 +511,7 @@ class SettleService extends BaseService
                 if(!MemberModel::where(['id'=>$userId])->update($updateData)){
                     DB::rollBack();
                     $this->error = '绿色积分奖励结算错误';
+                    RedisService::clear("{$cacheKey}lock");
                     return false;
                 }
 
@@ -536,6 +548,7 @@ class SettleService extends BaseService
                 if(!MemberModel::where(['id'=>$userId])->update($updateData)){
                     DB::rollBack();
                     $this->error = '数字资产奖励结算错误';
+                    RedisService::clear("{$cacheKey}lock");
                     return false;
                 }
 
@@ -574,6 +587,7 @@ class SettleService extends BaseService
                 if(!PtAccountModel::where(['id'=>$accountId])->update($updateData)){
                     DB::rollBack();
                     $this->error = '平台底池和资产结算错误';
+                    RedisService::clear("{$cacheKey}lock");
                     return false;
                 }
 
@@ -606,18 +620,20 @@ class SettleService extends BaseService
         if($logs && !AccountLogModel::insert($logs)){
             DB::rollBack();
             $this->error = '奖励明细结算处理错误';
+            RedisService::clear("{$cacheKey}lock");
             return false;
         }
 
         // 订单结算状态更新
-        if(!OrderCommissionModel::where(['id'=>$commissionId])->update(['status'=>1,'arrival_at'=>date('Y-m-d H:i:s'),'update_time'=>time()])){
-            DB::rollBack();
-            $this->error = '订单结算状态更新失败';
-            return false;
-        }
+//        if(!OrderCommissionModel::where(['id'=>$commissionId])->update(['status'=>1,'arrival_at'=>date('Y-m-d H:i:s'),'update_time'=>time()])){
+//            DB::rollBack();
+//            $this->error = '订单结算状态更新失败';
+//            return false;
+//        }
 
         DB::commit();
         $this->error = '订单结算完成';
+        RedisService::clear("{$cacheKey}lock");
         RedisService::set("{$cacheKey}result", $info, 3600);
         return ['id'=>$orderId,'user_id'=>$orderUserId,'logs'=>$logs,'commission'=>$commission];
     }