|
|
@@ -32,6 +32,8 @@ import com.ylx.massage.service.IMaTechnicianService;
|
|
|
import com.ylx.massage.service.TAddressService;
|
|
|
import com.ylx.massage.service.TWxUserService;
|
|
|
import com.ylx.massage.utils.OrderNumberGenerator;
|
|
|
+import com.ylx.message.enums.TriggerEventEnum;
|
|
|
+import com.ylx.message.service.IMessageService;
|
|
|
import com.ylx.order.domain.AfterSalesService;
|
|
|
import com.ylx.order.domain.OrderStatusFlow;
|
|
|
import com.ylx.order.domain.TOrder;
|
|
|
@@ -113,6 +115,8 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
private IAfterSalesServiceService afterSalesServiceService;
|
|
|
private static final String DICT_TYPE = "unit_type";
|
|
|
private static final int BUFFER_MINUTES = 30; // 30分钟缓冲期
|
|
|
+ @Resource
|
|
|
+ private IMessageService messageService;
|
|
|
|
|
|
@Override
|
|
|
public TOrder addOrder(TOrder order) {
|
|
|
@@ -318,12 +322,19 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
this.couponService.useCoupon(dto.getCouponId(), openId, order.getId(), 1);
|
|
|
}
|
|
|
|
|
|
+ // 发送消息
|
|
|
+ Map<String, Object> variables = new HashMap<>();
|
|
|
+ variables.put("amount", order.getFinalAmount());
|
|
|
+ variables.put("orderId", order.getId());
|
|
|
+
|
|
|
// 11. 处理余额支付逻辑
|
|
|
if (ObjectUtil.equals(PaymentMethodEnum.BALANCE.getCode(), dto.getPaymentMethod())) {
|
|
|
+ this.messageService.sendMessage(userId, TriggerEventEnum.ORDER_PAY_SUCCESS.getDesc(), variables);
|
|
|
handleBalancePayment(userId, finalAmount, order);
|
|
|
map.put("orderId", order.getId());
|
|
|
return map;
|
|
|
} else {
|
|
|
+ this.messageService.sendMessage(userId, TriggerEventEnum.ORDER_PENDING_PAYMENT.getDesc(), variables);
|
|
|
return createWxPayOrder(order, wxLoginUser);
|
|
|
}
|
|
|
}
|
|
|
@@ -417,6 +428,12 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
dto.setOrderId(order.getId());
|
|
|
dto.setStatus(OrderStatusEnum.PENDING_DISPATCH.getCode());
|
|
|
this.updateOrderStatus(dto);
|
|
|
+
|
|
|
+ // 发送消息
|
|
|
+ Map<String, Object> variables = new HashMap<>();
|
|
|
+ variables.put("amount", order.getFinalAmount());
|
|
|
+ variables.put("orderId", order.getId());
|
|
|
+ this.messageService.sendMessage(Long.parseLong(wxUser.getId()), TriggerEventEnum.ORDER_PAY_SUCCESS.getDesc(), variables);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -438,9 +455,11 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
Integer oldStatus = order.getStatus();
|
|
|
|
|
|
// 2. 更新订单状态
|
|
|
- order.setStatus(newStatus);
|
|
|
+ TOrder updateOrder = new TOrder();
|
|
|
+ updateOrder.setId(orderId);
|
|
|
+ updateOrder.setStatus(newStatus);
|
|
|
// 可根据状态同步更新对应时间字段(例如:支付完成时间、接单时间等),此处省略具体业务逻辑
|
|
|
- int updateCount = this.baseMapper.updateById(order);
|
|
|
+ int updateCount = this.baseMapper.updateById(updateOrder);
|
|
|
if (updateCount == 0) {
|
|
|
throw new ServiceException("更新订单状态失败");
|
|
|
}
|