wesmiler vor 5 Tagen
Ursprung
Commit
4503aada51
2 geänderte Dateien mit 8 neuen und 12 gelöschten Zeilen
  1. 1 10
      app/Services/Api/SettleService.php
  2. 7 2
      app/Services/Common/OrderService.php

+ 1 - 10
app/Services/Api/SettleService.php

@@ -327,7 +327,6 @@ class SettleService extends BaseService
            //  创业订单
            $logs = [];
            RedisService::set("{$cacheKey}lock", $info, 300);
-           DB::beginTransaction();
            if ($orderType == 2) {
                // TODO 结算直推奖
                $directData = isset($commission['direct_bonus']) && $commission['direct_bonus'] ? json_decode($commission['direct_bonus'], true) : [];
@@ -401,7 +400,6 @@ class SettleService extends BaseService
                            'update_time' => time()
                        ];
                        if (!MemberModel::where(['id' => $uid])->update($updateData)) {
-                           DB::rollBack();
                            $this->error = '见单和分红奖励结算错误';
                            RedisService::clear("{$cacheKey}lock");
                            return false;
@@ -467,7 +465,6 @@ class SettleService extends BaseService
                        'update_time' => time()
                    ];
                    if (!StoreModel::where(['id' => $storeId])->update($updateData)) {
-                       DB::rollBack();
                        $this->error = '商家提成结算失败';
                        RedisService::clear("{$cacheKey}lock");
                        return false;
@@ -507,7 +504,6 @@ class SettleService extends BaseService
                        'update_time' => time()
                    ];
                    if (!MemberModel::where(['id' => $userId])->update($updateData)) {
-                       DB::rollBack();
                        $this->error = '绿色积分奖励结算错误';
                        RedisService::clear("{$cacheKey}lock");
                        return false;
@@ -545,7 +541,6 @@ class SettleService extends BaseService
                        'update_time' => time()
                    ];
                    if (!MemberModel::where(['id' => $userId])->update($updateData)) {
-                       DB::rollBack();
                        $this->error = '数字资产奖励结算错误';
                        RedisService::clear("{$cacheKey}lock");
                        return false;
@@ -585,7 +580,6 @@ class SettleService extends BaseService
                        'update_time' => time()
                    ];
                    if (!PtAccountModel::where(['id' => $accountId])->update($updateData)) {
-                       DB::rollBack();
                        $this->error = '平台底池和资产结算错误';
                        RedisService::clear("{$cacheKey}lock");
                        return false;
@@ -619,7 +613,6 @@ class SettleService extends BaseService
            // TODO 明细入表
            RedisService::set("{$cacheKey}logs", $logs, 3600);
            if ($logs && !AccountLogModel::insert($logs)) {
-               DB::rollBack();
                $this->error = '奖励明细结算处理错误';
                RedisService::clear("{$cacheKey}lock");
                return false;
@@ -627,12 +620,10 @@ class SettleService extends BaseService
 
            // 订单结算状态更新
            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);

+ 7 - 2
app/Services/Common/OrderService.php

@@ -392,13 +392,16 @@ class OrderService extends BaseService
             'update_time' => time()
         ];
 
+        DB::beginTransaction();
         $result = $this->model->where('id', $id)->update($updateData);
 
         if ($result) {
-
             // 订单支付成功结算
             if($order->type == 2){
-                $settle = SettleService::make()->commissionSettle($id);
+                if(!$settle = SettleService::make()->commissionSettle($id)){
+                    DB::rollBack();
+                    return ['code' => 1, 'msg' => '订单收益结算失败'];
+                }
 
                 // 用户升级处理
                 $orderUserId = $order->user_id;
@@ -408,6 +411,8 @@ class OrderService extends BaseService
 
             ActionLogModel::setTitle("订单完成支付");
             ActionLogModel::record();
+
+            DB::commit();
             RedisService::keyDel("caches:orders:*");
             return ['code' => 0, 'msg' => '支付完成'];
         }