Эх сурвалжийг харах

平台不同环境点击、下单数据

zoujiajian 1 жил өмнө
parent
commit
4023b651d4

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GoodsClickUserOrderRecordMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.GoodsClickUserOrderRecord;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: GoodsClickUserOrderRecordMapper
+ * 创建者: JavaZou
+ * 创建时间:2025/5/27 17:22
+ */
+public interface GoodsClickUserOrderRecordMapper extends BaseMapper<GoodsClickUserOrderRecord> {
+}

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GoodsClickUserRecordMapper.java

@@ -2,6 +2,8 @@ package com.cyksj.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.GoodsClickUserRecord;
+import com.cyksj.model.views.GoodsDonCategoryGoodsView;
+import org.apache.ibatis.annotations.Select;
 
 /*
  *项目名: netflix
@@ -10,4 +12,7 @@ import com.cyksj.model.entity.GoodsClickUserRecord;
  *创建时间:2023/8/18 10:48
  */
 public interface GoodsClickUserRecordMapper extends BaseMapper<GoodsClickUserRecord> {
+
+	@Select("select COUNT(if(env_type = 'pc',1,NULL)) AS pcClick,COUNT(if(env_type = 'h5',1,NULL)) AS h5Click,COUNT(if(env_type = 'h5Tj',1,NULL)) AS h5TjClick, from goods_click_user_record where goods_id = #{goodsId}")
+	GoodsDonCategoryGoodsView selectEnvTypeClickRecord(Long goodsId);
 }

+ 31 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsClickUserOrderRecord.java

@@ -0,0 +1,31 @@
+package com.cyksj.model.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: GoodsClickUserOrderRecord
+ * 创建者: JavaZou
+ * 创建时间:2025/5/27 17:21
+ */
+@Getter
+@Setter
+public class GoodsClickUserOrderRecord extends BaseEntity{
+	private Long goodsId;
+
+	private Long orderId;
+
+	private EnvType envType;
+
+	@Getter
+	@AllArgsConstructor
+	public enum EnvType {
+		pc("pc"),
+		h5("h5"),
+		h5Tj("h5推荐"),
+		;
+		String desc;
+	}
+}

+ 16 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsClickUserRecord.java

@@ -1,5 +1,6 @@
 package com.cyksj.model.entity;
 
+import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -17,4 +18,19 @@ public class GoodsClickUserRecord extends BaseEntity{
 	private Long goodsId;
 
 	private Long category;
+
+	/**
+	 * 点击环境 搭配平台分类点击
+	 */
+	private EnvType envType;
+
+	@Getter
+	@AllArgsConstructor
+	public enum EnvType {
+		pc("pc"),
+		h5("h5"),
+		h5Tj("h5推荐"),
+		;
+		String desc;
+	}
 }

+ 1 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/HomeManagementConfigUserClickRecord.java

@@ -15,4 +15,5 @@ public class HomeManagementConfigUserClickRecord extends BaseEntity{
 	private Long userId;
 
 	private Long configId;
+
 }

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/request/ClickRecordReq.java

@@ -1,5 +1,6 @@
 package com.cyksj.model.request;
 
+import com.cyksj.model.entity.GoodsClickUserRecord;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -31,4 +32,9 @@ public class ClickRecordReq {
 	 * 3、文章点击
 	 */
 	private Integer type;
+
+	/**
+	 * 点击环境 搭配平台分类点击
+	 */
+	private GoodsClickUserRecord.EnvType envType = GoodsClickUserRecord.EnvType.pc;
 }

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

@@ -1,5 +1,6 @@
 package com.cyksj.model.request;
 
+import com.cyksj.model.entity.GoodsClickUserOrderRecord;
 import com.cyksj.model.entity.OrderDon;
 import com.cyksj.model.manage.dto.GiftCardDto;
 import lombok.Getter;
@@ -204,7 +205,7 @@ public class OrderPayRequest {
     private Integer cmt = 1;
 
     /**
-     * 优惠弹窗id
+     * 平台下单环境
      */
-    private Long popupsId;
+    private GoodsClickUserOrderRecord.EnvType envType;
 }

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

@@ -46,6 +46,24 @@ public class GoodsDonCategoryGoodsView {
 	@DbIgnore
 	private Integer click;
 
+	/**
+	 * pc平台点击数
+	 */
+	@DbIgnore
+	private Integer pcClick = 0;
+
+	/**
+	 * h5平台点击数
+	 */
+	@DbIgnore
+	private Integer h5Click = 0;
+
+	/**
+	 * h5推荐平台点击数
+	 */
+	@DbIgnore
+	private Integer h5TjClick = 0;
+
 	@DbField("gcr.sorted")
 	private Integer sorted;
 }

+ 3 - 2
netflix-service/src/main/java/com/cyksj/service/home/impl/ClickRecordFrontServiceImpl.java

@@ -47,7 +47,7 @@ public class ClickRecordFrontServiceImpl implements ClickRecordFrontService {
 			return;
 		}
 		if (request.getType() == 2) {
-			clickGoodsCategoryOrGoods(userId, request.getGoodsId(), request.getCategory());
+			clickGoodsCategoryOrGoods(userId, request.getGoodsId(), request.getCategory(), request.getEnvType());
 			return;
 		}
 		if (request.getType() == 3) {
@@ -67,7 +67,7 @@ public class ClickRecordFrontServiceImpl implements ClickRecordFrontService {
 		homeManagementConfigUserClickRecordMapper.insert(clickRecord);
 	}
 
-	public void clickGoodsCategoryOrGoods(Long userId, Long goodsId, Long category) {
+	public void clickGoodsCategoryOrGoods(Long userId, Long goodsId, Long category, GoodsClickUserRecord.EnvType envType) {
 		if (goodsId == null && category == null) {
 			throw BusinessRuntimeException.getInstance("参数错误");
 		}
@@ -78,6 +78,7 @@ public class ClickRecordFrontServiceImpl implements ClickRecordFrontService {
 				goodsClickUserRecord = new GoodsClickUserRecord();
 				goodsClickUserRecord.setUserId(userId);
 				goodsClickUserRecord.setGoodsId(goodsId);
+				goodsClickUserRecord.setEnvType(envType);
 				goodsClickUserRecordMapper.insert(goodsClickUserRecord);
 				return;
 			}

+ 13 - 12
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -368,7 +368,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 
 	private final GptMirrorDayCardActivityRecordMapper gptMirrorDayCardActivityRecordMapper;
 
-	private final CouponUserPopupsOrderRelateMapper couponUserPopupsOrderRelateMapper;
+	private final GoodsClickUserOrderRecordMapper goodsClickUserOrderRecordMapper;
 
 	private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
 
@@ -728,7 +728,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		if (sku != null) {
 			orderDon.setIsMirror(sku.getIsMirror());
 		}
-
+		payRequest.setGoodsId(goodsId);
 		//统一处理订单记录操作
 		unifiedHandlerOrderRecordFunc(orderDon.getId(), payRequest);
 		//余额支付订单
@@ -796,8 +796,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		recordPosterUserOrder(orderId, payRequest.getRid());
 		//记录用户镜像店铺订单
 		recordUserMirrorShopOrderRelate(orderId, payRequest.getUserId(), payRequest.getCmt(), payRequest.getCustomId());
-		//记录优惠弹窗下单关联
-		recordCouponPopupOrderRelate(orderId, payRequest.getUserId(), payRequest.getPopupsId());
+		//记录用户环境下单数据
+		recordEnvTypeOrderRelate(orderId, payRequest.getGoodsId(), payRequest.getEnvType());
 	}
 
 	/**
@@ -830,13 +830,14 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			userMirrorShopOrderRelateMapper.insert(userMirrorShopOrderRelate);
 		}
 	}
-	private void recordCouponPopupOrderRelate(Long orderId, Long userId, Long popupsId) {
-		if (popupsId != null) {
-			CouponUserPopupsOrderRelate relate = new CouponUserPopupsOrderRelate();
-			relate.setUserId(userId);
-			relate.setOrderId(orderId);
-			relate.setPopupsId(popupsId);
-			couponUserPopupsOrderRelateMapper.insert(relate);
+
+	private void recordEnvTypeOrderRelate(Long orderId, Long goodsId, GoodsClickUserOrderRecord.EnvType envType) {
+		if (goodsId != null && envType != null) {
+			GoodsClickUserOrderRecord goodsClickUserOrderRecord = new GoodsClickUserOrderRecord();
+			goodsClickUserOrderRecord.setGoodsId(goodsId);
+			goodsClickUserOrderRecord.setOrderId(orderId);
+			goodsClickUserOrderRecord.setEnvType(envType);
+			goodsClickUserOrderRecordMapper.insert(goodsClickUserOrderRecord);
 		}
 	}
 
@@ -1206,7 +1207,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		//续费订单
 		orderDon.setOrderType(2);
 		orderDon.setStatus(OrderDon.Status.noPayment);
-		orderDon.setUserId(userId);
+		orderDon.setUserId(relation.getUserId());
 		//续费后 是否需要更换车票
 		if (isChangeTicket) {
 			orderDon.setIsChangeTicket(isChangeTicket);

+ 6 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonCategoryController.java

@@ -141,6 +141,12 @@ public class CmsGoodsDonCategoryController {
 			Integer count = goodsClickUserRecordMapper.selectCount(Wrappers.lambdaQuery(GoodsClickUserRecord.class)
 					.eq(GoodsClickUserRecord::getGoodsId, data.getGoodsId()));
 			data.setClick(count);
+//			GoodsDonCategoryGoodsView goodsDonCategoryGoodsView = goodsClickUserRecordMapper.selectEnvTypeClickRecord(data.getGoodsId());
+//			if (goodsDonCategoryGoodsView != null) {
+//				data.setPcClick(goodsDonCategoryGoodsView.getPcClick());
+//				data.setH5Click(goodsDonCategoryGoodsView.getH5Click());
+//				data.setH5TjClick(goodsDonCategoryGoodsView.getH5TjClick());
+//			}
 		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}