Przeglądaj źródła

fix 未登录推广额外功能

zoujiajian 3 lat temu
rodzic
commit
a7da689091

+ 15 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ChannelPopularize.java

@@ -36,4 +36,19 @@ public class ChannelPopularize extends BaseEntity{
      */
     private String payMethod;
 
+    /**
+     * 未登录平台展示
+     */
+    private String goodsIds;
+
+    /**
+     * 未登录展示引导平台
+     */
+    private Boolean isShowAttention;
+
+    /**
+     * 未登录介绍文案
+     */
+    private String copyWriting;
+
 }

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ChannelPopularizeView.java

@@ -106,6 +106,24 @@ public class ChannelPopularizeView {
     @DbField("IFNULL(sum(o2.money),0)")
     private BigDecimal refundMoney;
 
+    /**
+     * 未登录平台展示
+     */
+    @DbField("cp.good_ids")
+    private String goodsIds;
+
+    /**
+     * 未登录展示引导平台
+     */
+    @DbField("cp.is_show_attention")
+    private Boolean isShowAttention;
+
+    /**
+     * 未登录介绍文案
+     */
+    @DbField("cp.copy_writing")
+    private String copyWriting;
+
     @DbField("cp.created_time")
     private Date createdTime;
 

+ 34 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsChannelPopularizeView.java

@@ -0,0 +1,34 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.SearchResult;
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: GoodsChannelPopularizeView
+ *创建者: JavaZou
+ *创建时间:2023/1/16 10:27
+ */
+@Getter
+@Setter
+public class GoodsChannelPopularizeView {
+	private Long id;
+
+	/**
+	 * 未登录平台展示
+	 */
+	private String goodsIds;
+
+	/**
+	 * 未登录展示引导平台
+	 */
+	private Boolean isShowAttention;
+
+	/**
+	 * 未登录介绍文案
+	 */
+	private String copyWriting;
+
+	private SearchResult<GoodsDonPopularizeView> goodsViews;
+}

+ 38 - 9
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -1,22 +1,26 @@
 package com.cyksj.web.controller.goods;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.RandomUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.OrderDonMapper;
-import com.cyksj.model.entity.GoodsDon;
-import com.cyksj.model.entity.GoodsDonSku;
-import com.cyksj.model.entity.GoodsDonSpec;
-import com.cyksj.model.entity.OrderDon;
+import com.cyksj.mapper.channel.ChannelPopularizeMapper;
+import com.cyksj.model.entity.*;
+import com.cyksj.model.views.GoodsChannelPopularizeView;
 import com.cyksj.model.views.GoodsDonPopularizeView;
 import com.cyksj.model.views.GoodsDonViews;
 import com.cyksj.task.StatisticsDataScheduler;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.param.Operator;
+import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -47,6 +51,8 @@ public class GoodsDonController {
 
     private final OrderDonMapper orderDonMapper;
 
+    private final ChannelPopularizeMapper channelPopularizeMapper;
+
     /**
      * 获取商品列表
      */
@@ -64,12 +70,33 @@ public class GoodsDonController {
      * 推广未登录,虚拟商品列表
      */
     @GetMapping("/get/popularize")
-    public Result<SearchResult<GoodsDonPopularizeView>> getPopularizeVipGoods() {
-        SearchResult<GoodsDonPopularizeView> search = beanSearcher.search(GoodsDonPopularizeView.class, MapUtils.flatBuilder(request.getParameterMap())
+    public Result<GoodsChannelPopularizeView> getPopularizeVipGoods(Long popularizeId) {
+        if (popularizeId == null || popularizeId < 1) {
+            throw BusinessRuntimeException.getInstance("该推广链接已失效");
+        }
+        ChannelPopularize channelPopularize = channelPopularizeMapper.selectById(popularizeId);
+        if (channelPopularize == null) {
+            throw BusinessRuntimeException.getInstance("该推广链接已失效");
+        }
+        MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap())
                 .field(GoodsDonPopularizeView::getStatus, true)
                 .field(GoodsDonPopularizeView::getDeleted, true)
-                .field(GoodsDonPopularizeView::getType, 1)
-                .build());
+                .field(GoodsDonPopularizeView::getType, 1);
+
+        GoodsChannelPopularizeView goodsChannelPopularizeView = new GoodsChannelPopularizeView();
+        BeanUtil.copyProperties(channelPopularize, goodsChannelPopularizeView);
+        if (channelPopularize.getGoodsIds() != null) {
+            try {
+                List<Long> goodsIds = Jsons.parseList(channelPopularize.getGoodsIds(), Long.class);
+                if (!goodsIds.isEmpty()) {
+                    builder.field(GoodsDonPopularizeView::getImg, goodsIds).op(Operator.InList);
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        SearchResult<GoodsDonPopularizeView> search = beanSearcher.search(GoodsDonPopularizeView.class,
+                builder.build());
         DateTime now = DateTime.now();
         Integer randomNum = 2000;
         List<GoodsDonPopularizeView> collect = search.getDataList().stream().filter(data -> data.getPrice().compareTo(BigDecimal.ZERO) > 0).collect(Collectors.toList());
@@ -112,7 +139,9 @@ public class GoodsDonController {
         });
         search = new SearchResult<>(collect);
         search.setTotalCount(collect.size());
-        return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+
+        goodsChannelPopularizeView.setGoodsViews(search);
+        return GatewayResponse.SUCCESS.newBuilder().toResult(goodsChannelPopularizeView);
     }