소스 검색

refactor(order): 优化订单结算流程

- 将订单奖励结算时的结算字段更新操作移至事务开始处执行
- 确保订单自身结算字段在结算流程早期得到更新
- 避免在异常情况下结算字段未能正确更新的问题
- 提高订单结算流程的数据一致性保障
shichen 5 달 전
부모
커밋
f8cf0ab3b6
1개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 3 3
      app/common/repositories/store/order/StoreOrderRepository.php

+ 3 - 3
app/common/repositories/store/order/StoreOrderRepository.php

@@ -12055,6 +12055,9 @@ class StoreOrderRepository extends BaseRepository
12055
                 return;
12055
                 return;
12056
             }
12056
             }
12057
             try {
12057
             try {
12058
+                // 订单奖励结算时 更新订单自身 结算字段
12059
+                $this->dao->settlementOrderByOrderIdList($unsettledOrderIdList);
12060
+
12058
                 /** 结算 养老金 佣金 */
12061
                 /** 结算 养老金 佣金 */
12059
                 /** @var UserBillRepository $userBillRepository */
12062
                 /** @var UserBillRepository $userBillRepository */
12060
                 $userBillRepository = app()->make(UserBillRepository::class);
12063
                 $userBillRepository = app()->make(UserBillRepository::class);
@@ -12154,9 +12157,6 @@ class StoreOrderRepository extends BaseRepository
12154
                         $sharedProsperityUserRepository->identityUpgrade($affectedUserIdListBySharedProsperity);
12157
                         $sharedProsperityUserRepository->identityUpgrade($affectedUserIdListBySharedProsperity);
12155
                     }
12158
                     }
12156
                 }
12159
                 }
12157
-
12158
-                // 订单奖励结算时 更新订单自身 结算字段
12159
-                $this->dao->settlementOrderByOrderIdList($unsettledOrderIdList);
12160
             } catch (DbException $e) {
12160
             } catch (DbException $e) {
12161
                 throw new ValidateException('订单结算失败');
12161
                 throw new ValidateException('订单结算失败');
12162
             }
12162
             }