Ver código fonte

cps后台推广链接 推广具体规格

zoujiajian 1 ano atrás
pai
commit
7adf89def7

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserDistributePopularize.java

@@ -26,6 +26,9 @@ public class UserDistributePopularize extends BaseEntity{
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long goodsId;
 
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
+	private Long skuId;
+
 	private String remark;
 
 	private Boolean deleted;

+ 12 - 0
netflix-dao/src/main/java/com/cyksj/model/views/CpsGoodsDonDistributeView.java

@@ -1,10 +1,15 @@
 package com.cyksj.model.views;
 
+import com.cyksj.model.entity.GoodsDonSku;
 import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 项目名: yhlxj2
  * 文件名: CpsGoodsDonDistributeView
@@ -31,4 +36,11 @@ public class CpsGoodsDonDistributeView {
 
 	@DbField("ifnull(upr.rate,bddr.rate)")
 	private Integer rate;
+
+	@JsonIgnore
+	@DbField("g.is_sku_distribute")
+	private Boolean isSkuDistribute;
+
+	@DbIgnore
+	private List<GoodsDonSku> skus;
 }

+ 7 - 1
netflix-dao/src/main/java/com/cyksj/model/views/UserDistributePopularizeView.java

@@ -18,7 +18,7 @@ import java.util.Date;
  */
 @Getter
 @Setter
-@SearchBean(tables = "(select id,name,remark,code,created_time,goods_id from user_distribute_popularize where deleted is true :userId:) dp left join order_don od on od.cps_popularize_id = dp.id" +
+@SearchBean(tables = "(select id,name,remark,code,created_time,goods_id,sku_id from user_distribute_popularize where deleted is true :userId:) dp left join order_don od on od.cps_popularize_id = dp.id" +
 		" and od.status not in ('close','noPayment') and od.relation_id != 0 and is_fixed_distribute is true :time:" +
 		" left join distribute_waiting_send_points dsp on dsp.order_id = od.id and dsp.send_status in ('success','waiting')",
 		groupBy = "dp.id,dp.name,dp.code,dp.remark,dp.created_time,dp.goods_id")
@@ -36,6 +36,12 @@ public class UserDistributePopularizeView {
 	@DbField("dp.goods_id")
 	private Long goodsId;
 
+	@DbField("dp.sku_id")
+	private Long skuId;
+
+	@DbIgnore
+	private String specVal;
+
 	@DbIgnore
 	private String title;
 

+ 1 - 0
netflix-service/src/main/java/com/cyksj/service/cps/impl/CpsPopularizeServiceImpl.java

@@ -90,6 +90,7 @@ public class CpsPopularizeServiceImpl implements CpsPopularizeService {
 				.set(UserDistributePopularize::getRemark, remark)
 				.eq(UserDistributePopularize::getId, popularizeId)
 				.set(UserDistributePopularize::getGoodsId, popularize.getGoodsId())
+				.set(UserDistributePopularize::getSkuId, popularize.getSkuId())
 				.eq(UserDistributePopularize::getUserId, userId));
 	}
 

+ 27 - 0
netflix-web/src/main/java/com/cyksj/web/controller/cps/CpsPopularizeController.java

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.qrcode.QrCodeUtil;
 import cn.hutool.extra.qrcode.QrConfig;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.EnvCommonService;
 import com.cyksj.common.annotation.NoSubmit;
@@ -179,6 +180,10 @@ public class CpsPopularizeController {
 				}
 				link += "/?gid=" + data.getGoodsId();
 			}
+			if (data.getSkuId() != null && data.getSkuId() > 0) {
+				Optional.ofNullable(skuMapper.selectById(data.getSkuId())).ifPresent(sku -> data.setSpecVal(sku.getSpecVal()));
+				link += "&skuId=" + data.getSkuId();
+			}
 			data.setUrlCode(QrCodeUtil.generateAsBase64(link, QrConfig.create(), "png"));
 			//会员订单数据
 			if (data.getGoodsId() != null && data.getGoodsId() == Constant.VIP_RELATE_GOODS_ID) {
@@ -266,6 +271,28 @@ public class CpsPopularizeController {
 		List<CpsGoodsDonDistributeView> list = beanSearcher.searchAll(CpsGoodsDonDistributeView.class, builder
 				.put("distribute_id", String.format("and distribute_id = (select id from user_distribute where user_id = %s and deleted is true limit 1)", cpsUserId))
 				.build());
+		UserDistribute userDistribute = userDistributeMapper.selectOne(Wrappers.lambdaQuery(UserDistribute.class).eq(UserDistribute::getUserId, cpsUserId)
+				.eq(UserDistribute::getDeleted, Boolean.TRUE)
+				.last("limit 1"));
+		list.forEach(goods->{
+			LambdaQueryWrapper<GoodsDonSku> wrapper = Wrappers.lambdaQuery(GoodsDonSku.class)
+					.eq(GoodsDonSku::getGoodsId, goods.getId())
+					.eq(GoodsDonSku::getStatus, Boolean.TRUE);
+			if (goods.getIsSkuDistribute()) {
+				//开启规格分销 需要排除那些为0的规格
+				List<UserPlatSkuDistributeRate> userPlatSkuDistributeRates = beanSearcher.searchList(UserPlatSkuDistributeRate.class, MapUtils.builder()
+						.field(UserPlatSkuDistributeRate::getDistributeId, userDistribute.getId())
+						.field(UserPlatSkuDistributeRate::getRate, 0)
+						.build());
+				List<Long> exuSkuIds = userPlatSkuDistributeRates.stream().map(UserPlatSkuDistributeRate::getSkuId).collect(Collectors.toList());
+				if (CollUtil.isNotEmpty(exuSkuIds)) {
+					wrapper.notIn(GoodsDonSku::getId, exuSkuIds);
+				}
+			}
+			List<GoodsDonSku> goodsDonSkus = skuMapper.selectList(wrapper
+					.select(GoodsDonSku::getId, GoodsDonSku::getSpecVal));
+			goods.setSkus(goodsDonSkus);
+		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(list);
 	}