소스 검색

fix 文章下单量统计

zwhui 2 년 전
부모
커밋
71af3bdc5d

+ 0 - 5
netflix-dao/src/main/java/com/cyksj/model/entity/OrderDon.java

@@ -167,11 +167,6 @@ public class OrderDon extends BaseEntity implements Serializable {
      */
     private Long popularizeId;
 
-    /**
-     * 文章id
-     */
-    private Long infoId;
-
     /**
      * 是否是推广未登录用户购买订单
      */

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/request/ShoppingCartDonReq.java

@@ -20,6 +20,8 @@ public class ShoppingCartDonReq {
 
 	private Long hmConfigId;
 
+	private Long infoId;
+
 	private Long skuId;
 
 	private Integer num;

+ 11 - 5
netflix-dao/src/main/java/com/cyksj/model/views/InformationView.java

@@ -1,11 +1,15 @@
 package com.cyksj.model.views;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.model.entity.InformationClickUserRecord;
+import com.cyksj.model.entity.OrderDon;
 import com.ejlchina.searcher.bean.DbField;
 import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -14,7 +18,7 @@ import java.util.List;
  */
 @Getter
 @Setter
-@SearchBean(tables = "information i")
+@SearchBean(tables = "information i",where = "i.deleted is true")
 public class InformationView {
     @DbField("i.id")
     private Long id;
@@ -73,6 +77,9 @@ public class InformationView {
     @DbField("i.goods_ids")
     private String goodsIds;
 
+    @DbField("i.created_time")
+    private Date createdTime;
+
     /**
      * 推荐商品名
      */
@@ -82,19 +89,18 @@ public class InformationView {
     /**
      * 点击数
      */
-    @DbIgnore
+    @DbField("select count(*) from information_click_user_record ir where ir.info_id = i.id and ir.goods_id is not null")
     private Integer click;
 
     /**
      * 下单数
      */
-    @DbIgnore
+    @DbField("select count(*) from information_click_user_record ir left join order_don o on o.id = ir.order_id where ir.info_id = i.id and o.status not in ('close','noPayment')")
     private Integer order;
 
     /**
      * 浏览量
      */
-    @DbIgnore
+    @DbField("select count(*) from information_click_user_record ir where ir.info_id = i.id and ir.goods_id is null and ir.order_id is null")
     private Integer visit;
-
 }

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

@@ -46,6 +46,9 @@ public class ShoppingCartDonView {
 	@DbField("sc.hm_config_id")
 	private Long hmConfigId;
 
+	@DbField("sc.info_id")
+	private Long infoId;
+
 	@DbField("sc.created_time")
 	private Date createdTime;
 }

+ 9 - 1
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -247,6 +247,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 
 	private final HomeManagementConfigOrderRecordMapper homeManagementConfigOrderRecordMapper;
 
+	private final InformationClickUserRecordMapper informationClickUserRecordMapper;
+
 	private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
 
 	@Transactional(rollbackFor = Throwable.class)
@@ -428,7 +430,6 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		orderDon.setCouponExCode(payRequest.getCouponExCode());
 		//店铺id
 		orderDon.setYhsId(yhsId);
-		orderDon.setInfoId(payRequest.getInfoId());
 		if (relation != null && relation.getStatus() == GroupsRelation.Status.outside) {
 			orderDon.setIsOt(true);
 		}
@@ -854,6 +855,13 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 				homeManagementConfigOrderRecord.setOrderId(orderDon.getId());
 				homeManagementConfigOrderRecordMapper.insert(homeManagementConfigOrderRecord);
 			}
+			//记录文章下单量
+			if (payRequest.getInfoId() != null){
+				InformationClickUserRecord informationClickUserRecord = new InformationClickUserRecord();
+				informationClickUserRecord.setInfoId(payRequest.getInfoId());
+				informationClickUserRecord.setInfoId(orderDon.getId());
+				informationClickUserRecordMapper.insert(informationClickUserRecord);
+			}
 
 			if (orderDon.getIsDp()) {
 				//保存订单优惠加购规格 关系

+ 0 - 3
netflix-web/src/main/java/com/cyksj/web/controller/manage/information/CmsInformationController.java

@@ -82,9 +82,6 @@ public class CmsInformationController {
     public Result<SearchResult<InformationView>> getInformation() {
         SearchResult<InformationView> list = beanSearcher.search(InformationView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
         list.getDataList().forEach(data -> {
-            data.setClick(informationClickUserRecordMapper.selectCount(Wrappers.lambdaQuery(InformationClickUserRecord.class).eq(InformationClickUserRecord::getInfoId,data.getId()).ne(InformationClickUserRecord::getGoodsId,0)));
-            data.setVisit(informationClickUserRecordMapper.selectCount(Wrappers.lambdaQuery(InformationClickUserRecord.class).eq(InformationClickUserRecord::getInfoId,data.getId()).eq(InformationClickUserRecord::getGoodsId,0)));
-            data.setOrder(orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getInfoId,data.getId()).in(OrderDon::getStatus, List.of(OrderDon.Status.noPayment, OrderDon.Status.close))));
             try {
                 List<Long> goodsIds = Jsons.parseList(data.getGoodsIds(), Long.class);
                 data.setGoodsTitles(goodsDonMapper.selectList(Wrappers.lambdaQuery(GoodsDon.class)