Procházet zdrojové kódy

盲票购买,优惠券抵扣后实付金额为0,则订单直接更新为成功

chunping před 3 roky
rodič
revize
671a3d53bb

+ 1 - 1
mp-service/src/main/java/com/qs/mp/mq/impl/PulsarConsumerImpl.java

@@ -52,7 +52,7 @@ public class PulsarConsumerImpl implements PulsarConsumer {
     String orderId = mqData;
     UserTicketOrder ticketOrder = userTicketOrderService.getById(orderId);
     if (ticketOrder.getCommStatus() != CommStatusEnum.NO) {
-      LogUtil.error(logger, "收到盲票支付成功消息,订单结佣状态不是未结佣,忽略消息。orderId=" + orderId);
+      LogUtil.warn(logger, "收到盲票支付成功消息,订单结佣状态不是未结佣,忽略消息。orderId=" + orderId);
       return;
     }
     // 先更新状态,防并发。

+ 23 - 10
mp-service/src/main/java/com/qs/mp/user/service/impl/UserTicketOrderServiceImpl.java

@@ -156,11 +156,11 @@ public class UserTicketOrderServiceImpl extends
     userTicketOrder.setMemo("");
     userTicketOrder.setResource(TicketTypeEnum.ONLINE);
     userTicketOrder.setCouponInfo(couponIds);
-    if (orderSettleVO.getPayAmt() > 0) {
-      userTicketOrder.setStatus(UserTicketOrderStatusEnum.NOT_PAY);
-    } else {
-      userTicketOrder.setStatus(UserTicketOrderStatusEnum.FINISHED);
+    userTicketOrder.setStatus(UserTicketOrderStatusEnum.NOT_PAY);
+    if (orderSettleVO.getPayAmt() == 0) {
+      userTicketOrder.setCommStatus(CommStatusEnum.YES); // 无需结佣,直接置为已结佣
     }
+
     // 查询用户的所属经销商,线上票直接查询
     ChannelUserRel channelUserRel = channelUserRelService.getOne(
         new LambdaQueryWrapper<ChannelUserRel>()
@@ -200,6 +200,12 @@ public class UserTicketOrderServiceImpl extends
       orderItem.setTicketId(null); // 付款成功后再分配具体盲票
       userTicketOrderItemService.save(orderItem);
     }
+
+    if (orderSettleVO.getPayAmt() == 0) {
+      // 无需支付的,直接置为成功
+      processTicketOrder(userTicketOrder);
+    }
+
     return userTicketOrder.getOrderId();
   }
 
@@ -223,10 +229,8 @@ public class UserTicketOrderServiceImpl extends
     ticketOrder.setMemo("");
     ticketOrder.setResource(TicketTypeEnum.OFFLINE);
     ticketOrder.setCouponInfo(couponIds);
-    if (orderSettleVO.getPayAmt() > 0) {
-      ticketOrder.setStatus(UserTicketOrderStatusEnum.NOT_PAY);
-    } else {
-      ticketOrder.setStatus(UserTicketOrderStatusEnum.FINISHED);
+    ticketOrder.setStatus(UserTicketOrderStatusEnum.NOT_PAY);
+    if (orderSettleVO.getPayAmt() == 0) {
       ticketOrder.setCommStatus(CommStatusEnum.YES); // 无需结佣,直接置为已结佣
     }
     // 查询用户的所属经销商,线下票根据票包查询
@@ -248,6 +252,11 @@ public class UserTicketOrderServiceImpl extends
     orderItem.setBoxId(ticket.getBoxId());
     orderItem.setTicketId(ticket.getTicketId());
     userTicketOrderItemService.save(orderItem);
+
+    if (orderSettleVO.getPayAmt() == 0) {
+      // 无需支付的,直接置为成功
+      processTicketOrder(ticketOrder);
+    }
     return ticketOrder.getOrderId();
   }
 
@@ -346,6 +355,10 @@ public class UserTicketOrderServiceImpl extends
           JSONObject.toJSONString(payOrder), JSONObject.toJSONString(ticketOrder));
       throw new ServiceException("支付回调用户购票订单处理,订单状态异常,不是待支付。orderId:" + payOrder.getBizId());
     }
+    return processTicketOrder(ticketOrder);
+  }
+
+  private boolean processTicketOrder(UserTicketOrder ticketOrder) {
     List<UserTicketOrderItem> orderItemList = userTicketOrderItemService.list(
         new LambdaQueryWrapper<UserTicketOrderItem>()
             .eq(UserTicketOrderItem::getOrderId, ticketOrder.getOrderId()));
@@ -518,6 +531,6 @@ public class UserTicketOrderServiceImpl extends
 	public List<TicketCntVO> listTicketSaleCnt(Wrapper<UserTicketOrder> queryWrapper) {
 		return getBaseMapper().listTicketSaleCnt(queryWrapper);
 	}
-	
-	
+
+
 }