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

+ 6 - 3
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDonSku.java

@@ -104,9 +104,12 @@ public class GoodsDonSku extends BaseEntity {
     @TableField(exist = false)
     private Integer orderBy;
 
+    /**
+     * 加购规格
+     */
     @DbIgnore
     @TableField(exist = false)
-    private List<GoodsDiscountPlusPurchaseRelation> discountPlusPurchaseGoods;
+    private List<GoodsDiscountPlusPurchaseRelation> dpSku;
 
     /**
      * 是否是优惠加购规格
@@ -114,9 +117,9 @@ public class GoodsDonSku extends BaseEntity {
     private Boolean isDp;
 
     /**
-     * 优惠加购商品
+     * 优惠加购商品规格展示
      */
     @DbIgnore
     @TableField(exist = false)
-    private List<GoodsDiscountPlusPurchaseRelationFrontView> dpGoods;
+    private List<GoodsDiscountPlusPurchaseRelationFrontView> dpSkuViews;
 }

+ 2 - 4
netflix-dao/src/main/java/com/cyksj/model/entity/OrderDiscountPlusPurchaseSkuRelation.java

@@ -3,8 +3,6 @@ package com.cyksj.model.entity;
 import lombok.Getter;
 import lombok.Setter;
 
-import java.util.List;
-
 /*
  *项目名: netflix
  *文件名: OrderDiscountPlusPurchaseSkuRelation
@@ -19,7 +17,7 @@ public class OrderDiscountPlusPurchaseSkuRelation extends BaseEntity{
 	/**
 	 * 优惠加购规格id
 	 */
-	private List<Long> plusSkuIds;
+	private String plusSkuIds;
 
-	private List<Long> relationIds;
+	private String relationIds;
 }

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

@@ -87,7 +87,7 @@ public class ReqGoodsSkuInsert {
         /**
          * 优惠加购虚拟商品
          */
-        private List<GoodsDiscountPlusPurchaseRelation> discountPlusPurchaseGoods;
+        private List<GoodsDiscountPlusPurchaseRelation> dpSku;
 
     }
 

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

@@ -15,26 +15,28 @@ import java.math.BigDecimal;
  */
 @Getter
 @Setter
-@SearchBean(tables = "goods_discount_plus_purchase_relation gpr" +
-		" left join goods_don g on g.id = gpr.dis_gid" +
+@SearchBean(tables = "goods_discount_plus_purchase_relation 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.sku_id")
+	private Long skuId;
+
 	@DbField("gpr.dis_gid")
-	private Long goodsId;
+	private Long disGid;
 
 	@DbField("g.title")
 	private String title;
 
 	@DbField("gpr.dis_sid")
-	private Long skuId;
+	private Long disSid;
 
 	@DbField("sku.spec_val")
 	private String specVal;
 
 	@DbField("sku.price")
-	private String oPrice;
+	private BigDecimal oriPrice;
 
 	@DbField("gpr.dis_price")
-	private BigDecimal price;
+	private BigDecimal disPrice;
 }

+ 3 - 1
netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonFrontSkuView.java

@@ -1,5 +1,6 @@
 package com.cyksj.model.views;
 
+import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Getter;
@@ -67,5 +68,6 @@ public class GoodsDonFrontSkuView {
 	/**
 	 * 优惠加购商品
 	 */
-	private List<GoodsDiscountPlusPurchaseRelationFrontView> dpGoods;
+	@DbIgnore
+	private List<GoodsDiscountPlusPurchaseRelationFrontView> dpSkuViews;
 }

+ 14 - 8
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -1,6 +1,5 @@
 package com.cyksj.service.mange.impl;
 
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
@@ -16,7 +15,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
-import com.cyksj.common.util.*;
+import com.cyksj.common.util.Codec;
+import com.cyksj.common.util.Jsons;
+import com.cyksj.common.util.StringUtil;
+import com.cyksj.common.util.Xmls;
 import com.cyksj.config.WeChatConfig;
 import com.cyksj.config.zfb.AliPayClientFactory;
 import com.cyksj.dto.RedisKey;
@@ -602,12 +604,16 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
                 OrderDiscountPlusPurchaseSkuRelation discountPlusPurchaseSkuRelation = orderDiscountPlusPurchaseSkuRelationMapper.selectOne(Wrappers.lambdaQuery(OrderDiscountPlusPurchaseSkuRelation.class)
                         .eq(OrderDiscountPlusPurchaseSkuRelation::getOrderId, orderDon.getId()).last("limit 1"));
                 if (discountPlusPurchaseSkuRelation != null) {
-                    List<Long> relationIds = discountPlusPurchaseSkuRelation.getRelationIds();
-                    if (CollUtil.isNotEmpty(relationIds)) {
-                        List<GroupsRelation> groupsRelations = relationMapper.selectList(Wrappers.lambdaQuery(GroupsRelation.class)
-                                .in(GroupsRelation::getId, relationIds));
-                        log.info("优惠加购订单orderId:{}退款,清除相关车票relation_ids:{}", orderDon.getId(), relationIds);
-                        groupsRelations.forEach(relation -> relationClearService.clearTicket(relation, UserTicketClearedRecord.Source.dp));
+                    String relationIdsStr = discountPlusPurchaseSkuRelation.getRelationIds();
+                    if (StrUtil.isNotBlank(relationIdsStr)) {
+                        try {
+                            List<Long> relationIds = Jsons.parseList(relationIdsStr, Long.class);
+                            List<GroupsRelation> groupsRelations = relationMapper.selectList(Wrappers.lambdaQuery(GroupsRelation.class)
+                                    .in(GroupsRelation::getId, relationIds));
+                            log.info("优惠加购订单orderId:{}退款,清除相关车票relation_ids:{}", orderDon.getId(), relationIds);
+                            groupsRelations.forEach(relation -> relationClearService.clearTicket(relation, UserTicketClearedRecord.Source.dp));
+                        } catch (Exception e) {
+                        }
                     }
                 }
             }

+ 30 - 20
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -262,6 +262,10 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		if (dpSkuIds.size() > 1) {
 			throw BusinessRuntimeException.getInstance("暂只支持优惠加购一件商品");
 		}
+
+		orderDon.setMoney(payRequest.getDonMoney());
+		orderDon.setRealMoney(payRequest.getDonMoney());
+
 		if (CollUtil.isNotEmpty(dpSkuIds)) {
 			//是否满足关联
 			List<GoodsDiscountPlusPurchaseRelation> ds_relations = discountPlusPurchaseRelationMapper.selectList(Wrappers.lambdaQuery(GoodsDiscountPlusPurchaseRelation.class)
@@ -279,13 +283,11 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			BigDecimal pay_money = sku.getPrice().add(goods_discount_plus_pay);
 			if (pay_money.compareTo(orderDon.getMoney()) < 0) {
 				orderDon.setMoney(pay_money);
+				orderDon.setRealMoney(pay_money);
 			}
 			orderDon.setIsDp(true);
 		}
 
-		orderDon.setMoney(payRequest.getDonMoney());
-		orderDon.setRealMoney(payRequest.getDonMoney());
-
 		//渠道链接id
 		if (payRequest.getPopularizeId() != null) {
 			orderDon.setPopularizeId(payRequest.getPopularizeId());
@@ -349,7 +351,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			//保存订单优惠加购规格 关系
 			OrderDiscountPlusPurchaseSkuRelation orderDiscountPlusPurchaseSkuRelation = new OrderDiscountPlusPurchaseSkuRelation();
 			orderDiscountPlusPurchaseSkuRelation.setOrderId(orderDon.getId());
-			orderDiscountPlusPurchaseSkuRelation.setPlusSkuIds(dpSkuIds);
+			orderDiscountPlusPurchaseSkuRelation.setPlusSkuIds(dpSkuIds.toString());
 			orderDiscountPlusPurchaseSkuRelationMapper.insert(orderDiscountPlusPurchaseSkuRelation);
 		}
 
@@ -1181,23 +1183,31 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 				//是否已经发送优惠加购车票
 				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;
+				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:{},车票未发送", 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.toString())
+									.eq(OrderDiscountPlusPurchaseSkuRelation::getOrderId, order.getId())
+									.isNull(OrderDiscountPlusPurchaseSkuRelation::getRelationIds));
+						} catch (Exception e) {
 						}
-						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));
+					}
 				}
 			}
 			if (order.getRelationId() != 0 && !relation.getUserId().equals(order.getUserId()) && order.getOrderType() == 1) {

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

@@ -182,7 +182,8 @@ 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()));
+                    List<GoodsDiscountPlusPurchaseRelationFrontView> dpSkuViews = beanSearcher.searchAll(GoodsDiscountPlusPurchaseRelationFrontView.class, MapUtils.builder().field(GoodsDiscountPlusPurchaseRelationFrontView::getSkuId, sku.getId()).build());
+                    sku.setDpSkuViews(dpSkuViews);
                 }
             });
             Integer sold = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
@@ -298,7 +299,7 @@ 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()
+                sku.setDpSkuViews(beanSearcher.searchAll(GoodsDiscountPlusPurchaseRelationFrontView.class, MapUtils.builder()
                         .field(GoodsDiscountPlusPurchaseRelationFrontView::getSkuId, sku.getId())
                         .build()));
             }

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

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

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

@@ -224,13 +224,13 @@ public class CmsGoodsDonSkuController {
                 if (sku.getMonths() == null && sku.getDays() == null)
                     throw BusinessRuntimeException.getInstance("请输入对应续费时间");
             }
-            if (CollUtil.isNotEmpty(sku.getDiscountPlusPurchaseGoods())) {
+            if (CollUtil.isNotEmpty(sku.getDpSku())) {
                 goodsDonSku.setIsDp(true);
             }
             goodsDonSkuService.save(goodsDonSku);
-            if (CollUtil.isNotEmpty(sku.getDiscountPlusPurchaseGoods())) {
+            if (CollUtil.isNotEmpty(sku.getDpSku())) {
                 Long goodsId = goodsDonSku.getGoodsId();
-                goodsDonSkuService.handleDiscountPurchaseGoods(goodsDonSku, sku.getDiscountPlusPurchaseGoods());
+                goodsDonSkuService.handleDiscountPurchaseGoods(goodsDonSku, sku.getDpSku());
             }
 
         }
@@ -263,7 +263,7 @@ public class CmsGoodsDonSkuController {
             sku.setDays(null);
         }
         //优惠加购
-        goodsDonSkuService.handleDiscountPurchaseGoods(sku, sku.getDiscountPlusPurchaseGoods());
+        goodsDonSkuService.handleDiscountPurchaseGoods(sku, sku.getDpSku());
         goodsDonSkuService.saveOrUpdate(sku);
         //给平台更新额外属性
         goodsDonService.updateGoodsSkuPrice(sku.getGoodsId(), null);