|
@@ -5,8 +5,10 @@ import com.qs.mp.admin.domain.TicketAwards;
|
|
|
import com.qs.mp.admin.domain.TicketBox;
|
|
|
import com.qs.mp.admin.service.ITicketBoxSerialService;
|
|
|
import com.qs.mp.admin.service.ITicketBoxService;
|
|
|
+import com.qs.mp.common.enums.CommStatusEnum;
|
|
|
import com.qs.mp.common.enums.MqTopicType;
|
|
|
import com.qs.mp.common.enums.TicketBoxStatusEnum;
|
|
|
+import com.qs.mp.common.enums.UserTicketOrderStatusEnum;
|
|
|
import com.qs.mp.common.pulsar.PulsarConsumer;
|
|
|
import com.qs.mp.common.utils.LogUtil;
|
|
|
import com.qs.mp.user.domain.UserTicketOrder;
|
|
@@ -42,10 +44,25 @@ public class PulsarConsumerImpl implements PulsarConsumer {
|
|
|
if (MqTopicType.ticket_generate.getValue().equals(topicType)) {
|
|
|
processTicketGenerateMsg(mqData);
|
|
|
} else if (MqTopicType.ticket_pay.getValue().equals(topicType)) {
|
|
|
- String orderId = mqData;
|
|
|
- UserTicketOrder ticketOrder = userTicketOrderService.getById(orderId);
|
|
|
+ processTicketPayMsg(mqData);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ private void processTicketPayMsg(String mqData) {
|
|
|
+ String orderId = mqData;
|
|
|
+ UserTicketOrder ticketOrder = userTicketOrderService.getById(orderId);
|
|
|
+ if (ticketOrder.getCommStatus() != CommStatusEnum.NO) {
|
|
|
+ LogUtil.error(logger, "收到盲票支付成功消息,订单结佣状态不是未结佣,忽略消息。orderId=" + orderId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 先更新状态,防并发。如果最后生成失败了,暂时人工重新触发
|
|
|
+ boolean rst = userTicketOrderService.update(new LambdaUpdateWrapper<UserTicketOrder>().set(UserTicketOrder::getCommStatus, CommStatusEnum.DOING)
|
|
|
+ .eq(UserTicketOrder::getOrderId, orderId).eq(UserTicketOrder::getCommStatus, CommStatusEnum.NO));
|
|
|
+ if (!rst) {
|
|
|
+ LogUtil.error(logger, "收到盲票支付成功消息,更新订单结佣状态为结佣中失败。orderId=" + orderId);
|
|
|
+ return;
|
|
|
}
|
|
|
+ userTicketOrderService.commToChannel(orderId);
|
|
|
}
|
|
|
|
|
|
private void processTicketGenerateMsg(String mqData) {
|