wesmiler před 3 týdny
rodič
revize
09116c0a10

+ 12 - 4
app/Services/Api/OrderService.php

@@ -628,7 +628,7 @@ class OrderService extends BaseService
         $bonus = isset($info['bonus']) ? $info['bonus'] : 0;
         $recBonus = isset($info['rec_bonus']) ? $info['rec_bonus'] : 0;
         $status = isset($info['status']) ? $info['status'] : 0;
-        $recBonusId = isset($info['rec_bonus_id']) ? $info['status'] : 0;
+        $recBonusId = isset($info['rec_bonus_id']) ? $info['rec_bonus_id'] : 0;
         $orderGoods = isset($info['order_goods']) ? $info['order_goods'] : [];
         if (empty($info) || empty($orderNo)) {
             $this->error = '订单信息不存在';
@@ -692,15 +692,23 @@ class OrderService extends BaseService
 
 
         // 代理佣金结算
-        $result = SettleService::make()->agentBonus($userId, $recBonus, $info, $recBonusId);
-        if ($result < 0) {
+        $result1 = SettleService::make()->agentBonus($userId, $recBonus, $info, $recBonusId);
+        if ($result1 < 0) {
             DB::rollBack();
             $this->error = SettleService::make()->getError();
             RedisService::clear($cacheLockKey);
             $this->saveLog("caches:settle:{$orderNo}:agent_{$userId}_error",SettleService::make()->getError());
             return false;
         }
-        $this->saveLog("caches:settle:{$orderNo}:agent_{$userId}",['msg'=>SettleService::make()->getError(),'result'=>$result]);
+        $this->saveLog("caches:settle:{$orderNo}:agent_{$userId}",['msg'=>SettleService::make()->getError(),'result'=>$result1]);
+
+        // 更新订单结算状态
+        if(!$this->model->where(['id'=>$id])->update(['bonus_settle'=>1,'update_time'=>time()])){
+            DB::rollBack();
+            $this->error = '收益结算状态更新失败';
+            RedisService::clear($cacheLockKey);
+            return false;
+        }
 
         DB::commit();
 

+ 0 - 7
app/Services/Api/SettleService.php

@@ -249,13 +249,6 @@ class SettleService extends BaseService
             return -1;
         }
 
-        // 更新订单结算状态
-        $model = $type>0? new PayOrdersModel() : new OrderModel();
-        if(!$model::where(['id'=>$orderId])->update(['bonus_settle'=>1,'update_time'=>time()])){
-            $this->error = '收益结算状态更新失败';
-            return -1;
-        }
-
         $result = ['user_id'=>$userId,'total'=> $total,'bonus'=>$bonus,'parent_id'=>$recBonusId,'oneId'=>$parentOneId,'oneBonus'=>$oneBonus,'twoId'=>$parentTwoId,'twoBonus'=>$twoBonus];
         return $result;
     }

+ 12 - 3
app/Services/Common/OrderService.php

@@ -18,6 +18,7 @@ use App\Models\MemberModel;
 use App\Models\MessageModel;
 use App\Models\OrderModel;
 use App\Models\OrderGoodsModel;
+use App\Models\PayOrdersModel;
 use App\Models\StoreModel;
 use App\Services\Api\SettleService;
 use App\Services\BaseService;
@@ -476,15 +477,23 @@ class OrderService extends BaseService
 
 
         // 代理佣金结算
-        $result = SettleService::make()->agentBonus($userId, $order['rec_bonus'], $order, $order['rec_bonus_id']);
-        if ($result < 0) {
+        $result1 = SettleService::make()->agentBonus($userId, $order['rec_bonus'], $order, $order['rec_bonus_id']);
+        if ($result1 < 0) {
             DB::rollBack();
             $this->error = SettleService::make()->getError();
             RedisService::clear($cacheLockKey);
             \App\Services\Api\OrderService::make()->saveLog("caches:settle:{$orderNo}:agent_{$userId}_error",SettleService::make()->getError());
             return false;
         }
-        \App\Services\Api\OrderService::make()->saveLog("caches:settle:{$orderNo}:agent_{$userId}",['msg'=>SettleService::make()->getError(),'result'=>$result]);
+        \App\Services\Api\OrderService::make()->saveLog("caches:settle:{$orderNo}:agent_{$userId}",['msg'=>SettleService::make()->getError(),'result'=>$result1]);
+
+        // 更新订单结算状态
+        if(!$this->model->where(['id'=>$id])->update(['bonus_settle'=>1,'update_time'=>time()])){
+            DB::rollBack();
+            $this->error = '收益结算状态更新失败';
+            RedisService::clear($cacheLockKey);
+            return false;
+        }
 
         DB::commit();
         ActionLogModel::setTitle("订单结算");

+ 8 - 1
app/Services/Common/PayOrdersService.php

@@ -392,7 +392,14 @@ class PayOrdersService extends BaseService
             \App\Services\Api\OrderService::make()->saveLog("caches:settle:{$orderNo}:agent_{$userId}_error",SettleService::make()->getError());
             return false;
         }
-        \App\Services\Api\OrderService::make()->saveLog("caches:settle:{$orderNo}:agent_{$userId}",$result);
+        \App\Services\Api\OrderService::make()->saveLog("caches:settle:{$orderNo}:agent_{$userId}",['msg'=>SettleService::make()->getError(),'result'=>$result]);
+
+        if(!$this->model->where(['id'=>$id])->update(['bonus_settle'=>1,'update_time'=>time()])){
+            DB::rollBack();
+            $this->error = '收益结算状态更新失败';
+            RedisService::clear($cacheLockKey);
+            return false;
+        }
 
         DB::commit();
         ActionLogModel::setTitle("订单结算");

+ 8 - 1
app/Services/PaymentService.php

@@ -802,7 +802,14 @@ class PaymentService extends BaseService
                 $this->saveLog("caches:settle:{$out_trade_num}:agent_{$orderUserId}_error",SettleService::make()->getError());
                 return false;
             }
-            $this->saveLog("caches:settle:{$out_trade_num}:agent_{$orderUserId}",$result);
+            $this->saveLog("caches:settle:{$out_trade_num}:agent_{$orderUserId}",['msg'=>SettleService::make()->getError(),'result'=>$result]);
+
+            // 更新订单结算状态
+            if(!$this->model->where(['id'=>$orderId])->update(['bonus_settle'=>1,'update_time'=>time()])){
+                DB::rollBack();
+                $this->error = '收益结算状态更新失败';
+                return false;
+            }
         }
 
         DB::commit();