Browse Source

Merge branch 'dy_popularize_no_sign' into pre

zoujiajian 2 năm trước cách đây
mục cha
commit
9e25133e1f

+ 11 - 1
netflix-common/src/main/java/com/cyksj/common/constant/Constant.java

@@ -164,10 +164,15 @@ public interface Constant {
 	String CHANNEL_360_DISCOUNT = "channel_360_discount";
 
 	/**
-	 * 百度渠道 投放链接优惠下单 系统配置key
+	 * 百度链接免登录下单优惠 系统配置key
 	 */
 	String CHANNEL_BAIDU_DISCOUNT_KEY = "channel_baidu_discount_key";
 
+	/**
+	 * 抖音免登录下单优惠 key
+	 */
+	String CHANNEL_DY_DISCOUNT_KEY = "channel_dy_discount_key";
+
 	/**
 	 * GPT 平台账号重复
 	 */
@@ -284,4 +289,9 @@ public interface Constant {
 	 * GPT 镜像车队唯一账号
 	 */
 	String GPT_CAR_ONLY_ACCOUNT = "gptcaroo21213";
+
+	/**
+	 * 免登录渠道
+	 */
+	List<String> NO_SIGN_CHANNEL_NAMES = List.of("百度", "抖音");
 }

+ 10 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ChannelPopularizeFrontView.java

@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /*
@@ -71,6 +72,15 @@ public class ChannelPopularizeFrontView {
 	@JsonIgnore
 	private String couponIds;
 
+	/**
+	 * 是否免登录
+	 */
+	@DbIgnore
+	private Boolean isSign = false;
+
+	@DbIgnore
+	private BigDecimal discount;
+
 	@DbIgnore
 	private List<CouponTfPopularizeView> coupons;
 }

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RenewalView.java

@@ -32,6 +32,9 @@ public class RenewalView {
     @DbField("sku.id")
     private Long skuId;
 
+    @DbField("g.status")
+    private Boolean goodsStatus;
+
     @DbField("sku.status")
     private Boolean skuStatus;
 

+ 32 - 1
netflix-web/src/main/java/com/cyksj/web/controller/channel/ChannelController.java

@@ -1,6 +1,9 @@
 package com.cyksj.web.controller.channel;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
@@ -9,8 +12,11 @@ import com.cyksj.mapper.channel.ChannelPopularizeMapper;
 import com.cyksj.mapper.channel.ChannelPopularizeVisitMapper;
 import com.cyksj.mapper.channel.MoviesVisitRecordMapper;
 import com.cyksj.mapper.manage.coupon.CouponSkuMapper;
+import com.cyksj.mapper.sys.SysConfigMapper;
 import com.cyksj.model.entity.ChannelPopularizeVisit;
 import com.cyksj.model.entity.MoviesVisitRecord;
+import com.cyksj.model.entity.SysConfig;
+import com.cyksj.model.manage.dto.ChannelBaiDuDiscountDto;
 import com.cyksj.model.views.ChannelPopularizeFrontView;
 import com.cyksj.model.views.CouponTfPopularizeView;
 import com.cyksj.service.corp.CorpCustomerAcquistionService;
@@ -50,10 +56,12 @@ public class ChannelController {
 
     private final CorpCustomerAcquistionService corpCustomerAcquistionService;
 
+    private final SysConfigMapper sysConfigMapper;
+
 
 
     @GetMapping("/get/{id}")
-    public Result<ChannelPopularizeFrontView> getById(@PathVariable Long id, Boolean isLogin) {
+    public Result<ChannelPopularizeFrontView> getById(@PathVariable Long id) {
         ChannelPopularizeFrontView channelPopularize = beanSearcher.searchFirst(ChannelPopularizeFrontView.class, MapUtils.builder()
                 .put("id", String.format("id = %s", id))
                 .build());
@@ -79,6 +87,29 @@ public class ChannelController {
                 System.out.println(e.getMessage());
             }
         }
+        if (Constant.NO_SIGN_CHANNEL_NAMES.contains(channelPopularize.getChannelName())) {
+            String key;
+            if (StrUtil.equals(Constant.NO_SIGN_CHANNEL_NAMES.get(0), channelPopularize.getChannelName())) {
+                key = Constant.CHANNEL_BAIDU_DISCOUNT_KEY;
+            } else {
+                key = Constant.CHANNEL_DY_DISCOUNT_KEY;
+            }
+            SysConfig baiduConfig = sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class)
+                    .eq(SysConfig::getSysKey, key).last("limit 1"));
+            if (baiduConfig != null) {
+                String sysValue = baiduConfig.getSysValue();
+                if (StrUtil.isNotBlank(sysValue)) {
+                    try {
+                        ChannelBaiDuDiscountDto baiDuDiscountDto = Jsons.parseObject(sysValue, ChannelBaiDuDiscountDto.class);
+                        if (baiDuDiscountDto != null && CollUtil.isNotEmpty(baiDuDiscountDto.getPopularizeIds()) && baiDuDiscountDto.getPopularizeIds().contains(id)) {
+                            channelPopularize.setIsSign(true);
+                            channelPopularize.setDiscount(baiDuDiscountDto.getDiscount());
+                        }
+                    } catch (Exception e) {
+                    }
+                }
+            }
+        }
         ChannelPopularizeVisit channelPopularizeVisit = new ChannelPopularizeVisit();
         channelPopularizeVisit.setPopularizeId(id);
         channelPopularizeVisitMapper.insert(channelPopularizeVisit);

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

@@ -357,6 +357,9 @@ public class GoodsDonController {
 		if (o == null) {
 			GoodsFrontListView views = beanSearcher.searchFirst(GoodsFrontListView.class, MapUtils.builder().field(GoodsFrontListView::getId, id)
 					.build());
+			if (views == null) {
+				throw BusinessRuntimeException.getInstance("商品已下架..");
+			}
 
 			views.setSpecs(beanSearcher.searchFirst(GoodsDonSpecFrontView.class, MapUtils.builder().field(GoodsDonSpecFrontView::getGoodsId, views.getId()).build()));
 			MapBuilder builder = MapUtils.builder().field(GoodsDonSkuFrontView::getGoodsId, views.getId()).field(GoodsDonSkuFrontView::getStatus, true);

+ 9 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/CorpMsgAuditController.java

@@ -1,6 +1,8 @@
 package com.cyksj.web.controller.manage.corp;
 
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.model.entity.QyMsgContent;
@@ -23,6 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -89,7 +92,12 @@ public class CorpMsgAuditController {
      */
     @GetMapping("/getMsgByFollowIdAndUserId")
     public Result<SearchResult<QyMsgContent>> getMsgByFollowIdAndUserId(){
-        SearchResult<QyMsgContent> search = beanSearcher.search(QyMsgContent.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+        Map<String, Object> build = MapUtils.flatBuilder(request.getParameterMap()).build();
+        log.info("获取聊天记录 param:{}", JSONUtil.toJsonStr(build));
+        if (!build.containsKey("followId") || !build.containsKey("externalUserid")){
+            throw BusinessRuntimeException.getInstance("缺少必填参数.");
+        }
+        SearchResult<QyMsgContent> search = beanSearcher.search(QyMsgContent.class, build);
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
     }
 

+ 7 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/WxCorpController.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.snowflake.Sequence;
@@ -307,7 +308,12 @@ public class WxCorpController {
 	 */
 	@GetMapping("/getMsgByFollowIdAndUserId")
 	public Result<SearchResult<QyMsgContent>> getMsgByFollowIdAndUserId() {
-		SearchResult<QyMsgContent> search = beanSearcher.search(QyMsgContent.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		Map<String, Object> build = MapUtils.flatBuilder(request.getParameterMap()).build();
+		log.info("获取聊天记录 param:{}", JSONUtil.toJsonStr(build));
+		if (!build.containsKey("followId") || !build.containsKey("externalUserid")){
+			throw BusinessRuntimeException.getInstance("缺少必填参数.");
+		}
+		SearchResult<QyMsgContent> search = beanSearcher.search(QyMsgContent.class, build);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}