Browse Source

fix 优惠加购订单兑换

zoujiajian 3 years ago
parent
commit
e92fdb70d0

+ 34 - 0
netflix-service/src/main/java/com/cyksj/service/exchange/impl/ExchangeCodeServiceImpl.java

@@ -11,6 +11,7 @@ import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.snowflake.Sequence;
 import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.StringUtil;
 import com.cyksj.dto.RedisKey;
 import com.cyksj.dto.Result;
@@ -84,6 +85,8 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 
 	private final ChannelPopularizeMapper channelPopularizeMapper;
 
+	private final OrderDiscountPlusPurchaseSkuRelationMapper orderDiscountPlusPurchaseSkuRelationMapper;
+
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
 	public List<ExcelExchangeCodeData> createExchangeCode(ExchangeCodeReq exchangeCodeReq) {
@@ -256,6 +259,37 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 			orderDon.setUserId(userId);
 			orderDon.setStatus(goodsDon.getType() == 1 && goodsDon.getSecondType() == 2 ? OrderDon.Status.complete : OrderDon.Status.hasPayment);
 			orderDonMapper.updateById(orderDon);
+			if (orderDon.getIsDp()) {
+				//是否已经发送优惠加购车票
+				OrderDiscountPlusPurchaseSkuRelation purchaseSkuRelation = orderDiscountPlusPurchaseSkuRelationMapper.selectOne(Wrappers.lambdaQuery(OrderDiscountPlusPurchaseSkuRelation.class)
+						.eq(OrderDiscountPlusPurchaseSkuRelation::getOrderId, orderDon.getId()));
+				if (purchaseSkuRelation != null) {
+					String plusSkuIdsStr = purchaseSkuRelation.getPlusSkuIds();
+					String relationIdsStr = purchaseSkuRelation.getRelationIds();
+					if (StrUtil.isNotEmpty(plusSkuIdsStr) && StrUtil.isEmpty(relationIdsStr)) {
+						try {
+							List<Long> plusSkuIds = Jsons.parseList(plusSkuIdsStr, Long.class);
+							//发送优惠加购 规格车票
+							List<Long> dis_relation_ids = new ArrayList<>();
+							plusSkuIds.forEach(plus_skuId -> {
+								GoodsDonSku plus_sku = goodsDonSkuMapper.selectById(plus_skuId);
+								if (plus_sku == null) {
+									log.error("订单id:{}优惠加购规格已被删除 skuId:{},车票未发送", orderDon.getId(), plus_skuId);
+									return;
+								}
+								GroupsRelation relationNoOrder = getRelationNoOrder(plus_sku, orderDon.getUserId());
+								dis_relation_ids.add(relationNoOrder.getId());
+							});
+							//保存订单关联优惠加购车票
+							orderDiscountPlusPurchaseSkuRelationMapper.update(null, Wrappers.lambdaUpdate(OrderDiscountPlusPurchaseSkuRelation.class)
+									.set(OrderDiscountPlusPurchaseSkuRelation::getRelationIds, dis_relation_ids.toString())
+									.eq(OrderDiscountPlusPurchaseSkuRelation::getOrderId, orderDon.getId())
+									.isNull(OrderDiscountPlusPurchaseSkuRelation::getRelationIds));
+						} catch (Exception e) {
+						}
+					}
+				}
+			}
 		} else {
 			/* 生成订单 */
 			String donNo = SEQUENCE.nextId().toString();