|
|
@@ -907,12 +907,8 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
// 添加订单完成消息通知(用户侧)
|
|
|
orderNotificationService.sendCompletedNotification(orderNew);
|
|
|
|
|
|
- // 完成积分任务(按照新手活动、每日活动、每月活动的优先级顺序)
|
|
|
- try {
|
|
|
- this.pointUserActivityTaskCompletionService.completeOrderTaskByPriority(orderNew.getcOpenId());
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("完成积分任务失败 - 订单号:{}, 错误信息:{}", orderNew.getOrderNo(), e.getMessage(), e);
|
|
|
- }
|
|
|
+ // 异步完成积分任务
|
|
|
+ syncCompleteOrderTask(orderNew);
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
@@ -1441,8 +1437,11 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
// 统计用户在指定时间之前完成的订单数量
|
|
|
// 完成状态包括:4-待评价(已完成)和5-已完成(已评价)
|
|
|
LambdaQueryWrapper<TOrder> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(TOrder::getcOpenId, openId).in(TOrder::getnStatus, OrderStatusEnum.WAIT_EVALUATE.getCode(), OrderStatusEnum.COMPLETE.getCode()).lt(TOrder::getEndTime, queryTime);
|
|
|
-
|
|
|
+ queryWrapper.eq(TOrder::getcOpenId, openId)
|
|
|
+ .in(TOrder::getnStatus, OrderStatusEnum.WAIT_EVALUATE.getCode(), OrderStatusEnum.COMPLETE.getCode());
|
|
|
+ if (ObjectUtil.isNotNull(queryTime)) {
|
|
|
+ queryWrapper.lt(TOrder::getEndTime, queryTime);
|
|
|
+ }
|
|
|
return Math.toIntExact(this.count(queryWrapper));
|
|
|
}
|
|
|
|
|
|
@@ -1646,4 +1645,23 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
return Math.max(0, Math.min(requested, remainingQuota));
|
|
|
}
|
|
|
|
|
|
+ private void syncCompleteOrderTask(TOrder orderNew) {
|
|
|
+
|
|
|
+ if (TransactionSynchronizationManager.isSynchronizationActive()) {
|
|
|
+ TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void afterCommit() {
|
|
|
+ // 完成积分任务(按照新手活动、每日活动、每月活动的优先级顺序)
|
|
|
+ try {
|
|
|
+ pointUserActivityTaskCompletionService.completeOrderTaskByPriority(orderNew.getcOpenId());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("完成积分任务失败 - 订单号:{}, 错误信息:{}", orderNew.getOrderNo(), e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|