|
|
@@ -201,7 +201,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
private final GoodsDiscountPlusPurchaseRelationMapper discountPlusPurchaseRelationMapper;
|
|
|
|
|
|
- private final OrderDiscountPlusPurchaseTicketRelationMapper orderRelationTicketRelationMapper;
|
|
|
+ private final OrderDiscountPlusPurchaseSkuRelationMapper orderDiscountPlusPurchaseSkuRelationMapper;
|
|
|
|
|
|
private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
|
|
|
|
|
|
@@ -258,22 +258,29 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
payRequest.setDonMoney(sku.getPrice());
|
|
|
}
|
|
|
|
|
|
- List<Long> dpIds = payRequest.getDpIds();
|
|
|
- if (dpIds.size() > 1) {
|
|
|
+ List<Long> dpSkuIds = payRequest.getDpSkuIds();
|
|
|
+ if (dpSkuIds.size() > 1) {
|
|
|
throw BusinessRuntimeException.getInstance("暂只支持优惠加购一件商品");
|
|
|
}
|
|
|
- if (CollUtil.isNotEmpty(dpIds)) {
|
|
|
+ if (CollUtil.isNotEmpty(dpSkuIds)) {
|
|
|
//是否满足关联
|
|
|
- GoodsDiscountPlusPurchaseRelationDto purchaseRelationDto = discountPlusPurchaseRelationMapper.countDiscountGoodsRelation(dpIds, sku.getId());
|
|
|
- if (purchaseRelationDto.getCount() != dpIds.size()) {
|
|
|
- throw BusinessRuntimeException.getInstance("下单异常,请重新下单");
|
|
|
+ List<GoodsDiscountPlusPurchaseRelation> ds_relations = discountPlusPurchaseRelationMapper.selectList(Wrappers.lambdaQuery(GoodsDiscountPlusPurchaseRelation.class)
|
|
|
+ .eq(GoodsDiscountPlusPurchaseRelation::getSkuId, sku.getId())
|
|
|
+ .in(GoodsDiscountPlusPurchaseRelation::getDisSid, dpSkuIds));
|
|
|
+ if (ds_relations.size() != dpSkuIds.size()) {
|
|
|
+ throw BusinessRuntimeException.getInstance("系统异常,请刷新页面重新下单");
|
|
|
}
|
|
|
- BigDecimal pay_money = sku.getPrice().add(purchaseRelationDto.getTotalMoney());
|
|
|
+ BigDecimal goods_discount_plus_pay = BigDecimal.ZERO;
|
|
|
+ List<Long> dsSkuIds = new ArrayList<>();
|
|
|
+ ds_relations.forEach(re -> {
|
|
|
+ goods_discount_plus_pay.add(re.getDisPrice());
|
|
|
+ dsSkuIds.add(re.getDisSid());
|
|
|
+ });
|
|
|
+ BigDecimal pay_money = sku.getPrice().add(goods_discount_plus_pay);
|
|
|
if (pay_money.compareTo(orderDon.getMoney()) < 0) {
|
|
|
orderDon.setMoney(pay_money);
|
|
|
}
|
|
|
orderDon.setIsDp(true);
|
|
|
- orderDon.setDpIds(dpIds);
|
|
|
}
|
|
|
|
|
|
orderDon.setMoney(payRequest.getDonMoney());
|
|
|
@@ -321,8 +328,31 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
|
}
|
|
|
orderDon.setPayDesc(goodsDon.getPayDesc());
|
|
|
+ StringBuilder payTitle = new StringBuilder();
|
|
|
+ payTitle.append(goodsDon.getTitle());
|
|
|
+ payTitle.append(sku.getSpecVal());
|
|
|
+ if (orderDon.getIsDp()) {
|
|
|
+ List<GoodsDonSkuView> dp_skuViewList = beanSearcher.searchAll(GoodsDonSkuView.class, MapUtils.builder().field(GoodsDonSkuView::getSkuId, dpSkuIds).op(Operator.InList).build());
|
|
|
+ if (dp_skuViewList.size() != dpSkuIds.size()) {
|
|
|
+ throw BusinessRuntimeException.getInstance("系统异常,请刷新页面重新下单");
|
|
|
+ }
|
|
|
+ dp_skuViewList.forEach(dp_SkuView -> {
|
|
|
+ payTitle.append(" + ");
|
|
|
+ payTitle.append(dp_SkuView.getGoodsTitle());
|
|
|
+ payTitle.append(dp_SkuView.getSpecVal());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ orderDon.setPayTitle(payTitle.toString());
|
|
|
this.saveOrUpdate(orderDon);
|
|
|
|
|
|
+ if (orderDon.getIsDp()) {
|
|
|
+ //保存订单优惠加购规格 关系
|
|
|
+ OrderDiscountPlusPurchaseSkuRelation orderDiscountPlusPurchaseSkuRelation = new OrderDiscountPlusPurchaseSkuRelation();
|
|
|
+ orderDiscountPlusPurchaseSkuRelation.setOrderId(orderDon.getId());
|
|
|
+ orderDiscountPlusPurchaseSkuRelation.setPlusSkuIds(dpSkuIds);
|
|
|
+ orderDiscountPlusPurchaseSkuRelationMapper.insert(orderDiscountPlusPurchaseSkuRelation);
|
|
|
+ }
|
|
|
+
|
|
|
if (Constant.realGoodsType.contains(goodsDon.getType()) && !goodsDon.getId().equals(27l)) {
|
|
|
saveTransport(payRequest.getAddressId(), orderDon.getId());
|
|
|
}
|
|
|
@@ -352,13 +382,6 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
|
}
|
|
|
orderDon.setSpecialType(goodsDon.getSpecialType());
|
|
|
- StringBuilder payTitle = new StringBuilder();
|
|
|
- payTitle.append(goodsDon.getTitle());
|
|
|
- payTitle.append(sku.getSpecVal());
|
|
|
- if (orderDon.getIsDp()) {
|
|
|
- List<Long> dpIds1 = orderDon.getDpIds();
|
|
|
- orderDon.setPayTitle();
|
|
|
- }
|
|
|
return orderDon;
|
|
|
}
|
|
|
|
|
|
@@ -1154,26 +1177,28 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
log.info("虚物订单orderNo:{}开始更新车票信息", order.getOrderNo());
|
|
|
//修改车位状态
|
|
|
GroupsRelation relation = groupsRelationMapper.selectById(order.getRelationId());
|
|
|
- if (CollUtil.isNotEmpty(order.getDpIds())) {
|
|
|
+ if (order.getIsDp()) {
|
|
|
//是否已经发送优惠加购车票
|
|
|
- Integer count = orderRelationTicketRelationMapper.selectCount(Wrappers.lambdaQuery(OrderDiscountPlusPurchaseTicketRelation.class)
|
|
|
- .eq(OrderDiscountPlusPurchaseTicketRelation::getOrderId, order.getId()));
|
|
|
- if (count > 0) {
|
|
|
- return;
|
|
|
+ OrderDiscountPlusPurchaseSkuRelation purchaseSkuRelation = orderDiscountPlusPurchaseSkuRelationMapper.selectOne(Wrappers.lambdaQuery(OrderDiscountPlusPurchaseSkuRelation.class)
|
|
|
+ .eq(OrderDiscountPlusPurchaseSkuRelation::getOrderId, order.getId()));
|
|
|
+ if (purchaseSkuRelation != null && CollUtil.isNotEmpty(purchaseSkuRelation.getPlusSkuIds()) && CollUtil.isEmpty(purchaseSkuRelation.getRelationIds())) {
|
|
|
+ //发送优惠加购 规格车票
|
|
|
+ List<Long> dis_relation_ids = new ArrayList<>();
|
|
|
+ purchaseSkuRelation.getPlusSkuIds().forEach(plus_skuId -> {
|
|
|
+ GoodsDonSku plus_sku = goodsDonSkuMapper.selectById(plus_skuId);
|
|
|
+ if (plus_sku == null) {
|
|
|
+ log.error("订单id:{}优惠加购规格已被删除 skuId:{},车票未发送", order.getId(), plus_skuId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ GroupsRelation relationNoOrder = exchangeCodeService.getRelationNoOrder(plus_sku, order.getUserId());
|
|
|
+ dis_relation_ids.add(relationNoOrder.getId());
|
|
|
+ });
|
|
|
+ //保存订单关联优惠加购车票
|
|
|
+ orderDiscountPlusPurchaseSkuRelationMapper.update(null, Wrappers.lambdaUpdate(OrderDiscountPlusPurchaseSkuRelation.class)
|
|
|
+ .set(OrderDiscountPlusPurchaseSkuRelation::getRelationIds, dis_relation_ids)
|
|
|
+ .eq(OrderDiscountPlusPurchaseSkuRelation::getOrderId, order.getId())
|
|
|
+ .isNull(OrderDiscountPlusPurchaseSkuRelation::getRelationIds));
|
|
|
}
|
|
|
- //发送优惠加购 规格车票
|
|
|
- List<GoodsDonSku> relationSkus = discountPlusPurchaseRelationMapper.selectRelationSkuByDpId(order.getDpIds(), sku.getId());
|
|
|
- List<Long> dis_relation_ids = new ArrayList<>();
|
|
|
- relationSkus.forEach(reSku -> {
|
|
|
- GroupsRelation relationNoOrder = exchangeCodeService.getRelationNoOrder(reSku, order.getUserId());
|
|
|
- dis_relation_ids.add(relationNoOrder.getId());
|
|
|
- });
|
|
|
- //保存订单关联优惠加购车票
|
|
|
- OrderDiscountPlusPurchaseTicketRelation purchaseTicketRelation = new OrderDiscountPlusPurchaseTicketRelation();
|
|
|
- purchaseTicketRelation.setUserId(order.getUserId());
|
|
|
- purchaseTicketRelation.setOrderId(order.getId());
|
|
|
- purchaseTicketRelation.setRelationIds(dis_relation_ids);
|
|
|
- orderRelationTicketRelationMapper.insert(purchaseTicketRelation);
|
|
|
}
|
|
|
if (order.getRelationId() != 0 && !relation.getUserId().equals(order.getUserId()) && order.getOrderType() == 1) {
|
|
|
GroupsRelation relationNoOrder = exchangeCodeService.getRelationNoOrder(sku, order.getUserId());
|