zoujiajian 3 år sedan
förälder
incheckning
091c561a62

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDiscountPlusPurchaseRelation.java

@@ -23,4 +23,6 @@ public class GoodsDiscountPlusPurchaseRelation extends BaseEntity{
 	private Long disSid;
 
 	private BigDecimal disPrice;
+
+	private Boolean deleted;
 }

+ 4 - 1
netflix-dao/src/main/java/com/cyksj/model/entity/OrderDon.java

@@ -223,7 +223,10 @@ public class OrderDon extends BaseEntity implements Serializable {
     /**
      * 优惠加购规格id
      */
-    private List<Long> dpSIds;
+    private List<Long> dpIds;
+
+    @TableField(exist = false)
+    private String payTitle;
 
     public enum Status {
         /**

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/request/OrderPayRequest.java

@@ -94,7 +94,7 @@ public class OrderPayRequest {
     /**
      * 优惠加购规格id
      */
-    private List<Long> dpSIds;
+    private List<Long> dpIds;
 
     /**
      * 余额支付

+ 6 - 5
netflix-dao/src/main/java/com/cyksj/model/views/GoodsDiscountPlusPurchaseRelationFrontView.java

@@ -15,17 +15,18 @@ import java.math.BigDecimal;
  */
 @Getter
 @Setter
-@SearchBean(tables = "goods_discount_plus_purchase_relation gpr left join goods_don g on g.id = gpr.goods_id" +
-		" left join goods_don_sku sku on sku.id = gpr.sku_id",
+@SearchBean(tables = "(select dis_gid,dis_sid,dis_price from goods_discount_plus_purchase_relation where deleted is true :skuId: group by dis_gid,dis_sid) gpr" +
+		" left join goods_don g on g.id = gpr.dis_gid" +
+		" left join goods_don_sku sku on sku.id = gpr.dis_sid",
 		where = "g.deleted is true and g.status is true and sku.status is true")
 public class GoodsDiscountPlusPurchaseRelationFrontView {
-	@DbField("gpr.goods_id")
+	@DbField("gpr.dis_gid")
 	private Long goodsId;
 
 	@DbField("g.title")
 	private String title;
 
-	@DbField("gpr.sku_id")
+	@DbField("gpr.dis_sid")
 	private Long skuId;
 
 	@DbField("sku.spec_val")
@@ -34,6 +35,6 @@ public class GoodsDiscountPlusPurchaseRelationFrontView {
 	@DbField("sku.price")
 	private String oPrice;
 
-	@DbField("gpr.price")
+	@DbField("gpr.dis_price")
 	private BigDecimal price;
 }

+ 6 - 3
netflix-service/src/main/java/com/cyksj/service/mange/goods/CmsGoodsDonSkuServiceImpl.java

@@ -37,6 +37,7 @@ public class CmsGoodsDonSkuServiceImpl extends ServiceImpl<GoodsDonSkuMapper,Goo
 		Long skuId = sku.getId();
 		Long goodsId = sku.getGoodsId();
 		List<GoodsDiscountPlusPurchaseRelation> dbDiscountPlusGoodsList = discountPlusPurchaseRelationMapper.selectList(Wrappers.lambdaQuery(GoodsDiscountPlusPurchaseRelation.class)
+				.eq(GoodsDiscountPlusPurchaseRelation::getDeleted, true)
 				.eq(GoodsDiscountPlusPurchaseRelation::getSkuId, skuId));
 		if (CollUtil.isEmpty(dbDiscountPlusGoodsList)) {
 			discountPlusPurchaseGoods.forEach(discountGoods -> {
@@ -47,7 +48,8 @@ public class CmsGoodsDonSkuServiceImpl extends ServiceImpl<GoodsDonSkuMapper,Goo
 		}
 		//优惠加购为空
 		if (CollUtil.isEmpty(discountPlusPurchaseGoods)) {
-			discountPlusPurchaseRelationMapper.delete(Wrappers.lambdaQuery(GoodsDiscountPlusPurchaseRelation.class)
+			discountPlusPurchaseRelationMapper.update(null, Wrappers.lambdaUpdate(GoodsDiscountPlusPurchaseRelation.class)
+					.set(GoodsDiscountPlusPurchaseRelation::getDeleted, false)
 					.eq(GoodsDiscountPlusPurchaseRelation::getSkuId, skuId));
 			sku.setIsDp(false);
 			return;
@@ -80,8 +82,9 @@ public class CmsGoodsDonSkuServiceImpl extends ServiceImpl<GoodsDonSkuMapper,Goo
 			GoodsDiscountPlusPurchaseRelation exists = skuIdMap.get(dbDiscountPlusGoods.getDisGid());
 			//不存在
 			if (exists == null) {
-				discountPlusPurchaseRelationMapper.deleteById(dbDiscountPlusGoods.getId());
-				return;
+				discountPlusPurchaseRelationMapper.update(null, Wrappers.lambdaUpdate(GoodsDiscountPlusPurchaseRelation.class)
+						.set(GoodsDiscountPlusPurchaseRelation::getDeleted, false)
+						.eq(GoodsDiscountPlusPurchaseRelation::getId, dbDiscountPlusGoods.getId()));
 			}
 		});
 	}

+ 17 - 7
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -258,11 +258,14 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			payRequest.setDonMoney(sku.getPrice());
 		}
 
-		List<Long> dpSIds = payRequest.getDpSIds();
-		if (CollUtil.isNotEmpty(dpSIds)) {
+		List<Long> dpIds = payRequest.getDpIds();
+		if (dpIds.size() > 1) {
+			throw BusinessRuntimeException.getInstance("暂只支持优惠加购一件商品");
+		}
+		if (CollUtil.isNotEmpty(dpIds)) {
 			//是否满足关联
-			GoodsDiscountPlusPurchaseRelationDto purchaseRelationDto = discountPlusPurchaseRelationMapper.countDiscountGoodsRelation(dpSIds, sku.getId());
-			if (purchaseRelationDto.getCount() != dpSIds.size()) {
+			GoodsDiscountPlusPurchaseRelationDto purchaseRelationDto = discountPlusPurchaseRelationMapper.countDiscountGoodsRelation(dpIds, sku.getId());
+			if (purchaseRelationDto.getCount() != dpIds.size()) {
 				throw BusinessRuntimeException.getInstance("下单异常,请重新下单");
 			}
 			BigDecimal pay_money = sku.getPrice().add(purchaseRelationDto.getTotalMoney());
@@ -270,7 +273,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 				orderDon.setMoney(pay_money);
 			}
 			orderDon.setIsDp(true);
-			orderDon.setDpSIds(dpSIds);
+			orderDon.setDpIds(dpIds);
 		}
 
 		orderDon.setMoney(payRequest.getDonMoney());
@@ -349,6 +352,13 @@ 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;
 	}
 
@@ -1144,7 +1154,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			log.info("虚物订单orderNo:{}开始更新车票信息", order.getOrderNo());
 			//修改车位状态
 			GroupsRelation relation = groupsRelationMapper.selectById(order.getRelationId());
-			if (CollUtil.isNotEmpty(order.getDpSIds())) {
+			if (CollUtil.isNotEmpty(order.getDpIds())) {
 				//是否已经发送优惠加购车票
 				Integer count = orderRelationTicketRelationMapper.selectCount(Wrappers.lambdaQuery(OrderDiscountPlusPurchaseTicketRelation.class)
 						.eq(OrderDiscountPlusPurchaseTicketRelation::getOrderId, order.getId()));
@@ -1152,7 +1162,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 					return;
 				}
 				//发送优惠加购 规格车票
-				List<GoodsDonSku> relationSkus = discountPlusPurchaseRelationMapper.selectRelationSkuByDpId(order.getDpSIds(), sku.getId());
+				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());

+ 4 - 2
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -182,7 +182,7 @@ public class GoodsDonController {
             data.setSkuList(beanSearcher.searchAll(GoodsDonFrontSkuView.class, MapUtils.builder().field(GoodsDonFrontSkuView::getGoodsId, data.getId()).field(GoodsDonFrontSkuView::getStatus, true).orderBy(GoodsDonFrontSkuView::getPrice).asc().build()));
             data.getSkuList().forEach(sku -> {
                 if (sku.getIsDp()) {
-                    sku.setDpGoods(beanSearcher.searchAll(GoodsDiscountPlusPurchaseRelationFrontView.class, MapUtils.builder().field(GoodsDiscountPlusPurchaseRelationFrontView::getSkuId, sku.getId()).build()));
+                    sku.setDpGoods(beanSearcher.searchAll(GoodsDiscountPlusPurchaseRelationFrontView.class, MapUtils.builder().put("sku_id", String.format("and sku_id = %s", sku.getId())).build()));
                 }
             });
             Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
@@ -298,7 +298,9 @@ public class GoodsDonController {
         List<GoodsDonSku> goodsDonSkus = beanSearcher.searchAll(GoodsDonSku.class, builder.build());
         goodsDonSkus.forEach(sku -> {
             if (sku.getIsDp()) {
-                sku.setDpGoods(beanSearcher.searchAll(GoodsDiscountPlusPurchaseRelationFrontView.class, MapUtils.builder().field(GoodsDiscountPlusPurchaseRelationFrontView::getSkuId, sku.getId()).build()));
+                sku.setDpGoods(beanSearcher.searchAll(GoodsDiscountPlusPurchaseRelationFrontView.class, MapUtils.builder()
+                        .put("sku_id", String.format("and sku_id = %s", sku.getId()))
+                        .build()));
             }
         });
         views.setSkuList(goodsDonSkus);

+ 4 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonController.java

@@ -63,7 +63,10 @@ public class CmsGoodsDonController {
         if (goodsDonViewer.getType() == 1) {
             goodsDonSkus.forEach(sku -> {
                 if (sku.getIsDp()) {
-                    sku.setDiscountPlusPurchaseGoods(beanSearcher.searchAll(GoodsDiscountPlusPurchaseRelation.class, MapUtils.builder().field(GoodsDiscountPlusPurchaseRelation::getSkuId, sku.getId()).build()));
+                    sku.setDiscountPlusPurchaseGoods(beanSearcher.searchAll(GoodsDiscountPlusPurchaseRelation.class, MapUtils.builder()
+                            .field(GoodsDiscountPlusPurchaseRelation::getSkuId, sku.getId())
+                            .field(GoodsDiscountPlusPurchaseRelation::getDeleted, true)
+                            .build()));
                 }
             });
         }