浏览代码

fix 支付回调原车位被清掉,重新分配新车位

zoujiajian 3 年之前
父节点
当前提交
cc78bfe218

+ 11 - 0
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1521,6 +1521,17 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			log.info("虚物订单orderNo:{}开始更新车票信息", order.getOrderNo());
 			//修改车位状态
 			GroupsRelation relation = groupsRelationMapper.selectById(order.getRelationId());
+			if (order.getRelationId() != 0 && !relation.getUserId().equals(order.getRelationId())) {
+				GroupsRelation relationNoOrder = exchangeCodeService.getRelationNoOrder(sku, order.getUserId());
+				if (relationNoOrder == null) {
+					log.error("用户userId:{}支付订单orderId:{}回调后,未分配车票", order.getUserId(), order.getId());
+					return;
+				}
+				log.info("重新安排userId:{}支付订单orderId:{},规格skuId:{},车位relationId:{}", order.getUserId(), order.getId(), order.getSkuId(), relationNoOrder.getId());
+				order.setRelationId(relationNoOrder.getId());
+				return;
+			}
+
 			GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
 			if (GroupsRelation.Status.locking.equals(relation.getStatus()) || GroupsRelation.Status.validity.equals(relation.getStatus())) {
 				log.info("订单号orderNo:{}开始修改车位:{}状态", order.getOrderNo(), relation.getId());

+ 3 - 1
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -155,7 +155,9 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 				.eq(GroupsRelation::getUserId, 0)
 				.orderByAsc(GroupsRelation::getNum)
 				.last("limit 1"));
-		log.info("获取相似车队的车位relationId:{}", relation.getId());
+		if (relation != null) {
+			log.info("用户userId:{},获取相似车队的车位relationId:{}", relation.getId());
+		}
 		return relation;
 	}
 }