1
0
Quellcode durchsuchen

优惠券统计逻辑修改

hyq vor 5 Jahren
Ursprung
Commit
2692625e3c

+ 3 - 1
kmall-api/src/main/java/com/kmall/api/dao/ApiOrderMapper.java

@@ -47,5 +47,7 @@ public interface ApiOrderMapper extends BaseDao<OrderVo> {
 
     int updateBatch(List<OrderVo> list);
 
-    int querySubmitNumByStoreTopicId(@Param("storeTopicId")Integer storeTopicId);
+    List<OrderVo> querySubmitNumByStoreTopicId(@Param("storeTopicId")Integer storeTopicId);
+
+    Integer querySubmitOrderNumByStoreTopicId(@Param("storeTopicId")Integer storeTopicId);
 }

+ 2 - 0
kmall-api/src/main/java/com/kmall/api/dao/mk/ApiMkStorePromOrderRealMapper.java

@@ -17,4 +17,6 @@ public interface ApiMkStorePromOrderRealMapper extends BaseDao<MkStorePromOrderR
     List<MkStorePromOrderRealVo> queryPromRealListByMap(Map map);
 
     List<MkStorePromOrderRealVo> querySubmitNumByPromId(Integer promId);
+
+    Integer querySubmitOrderNumByPromId(Integer promId);
 }

+ 2 - 2
kmall-api/src/main/java/com/kmall/api/service/ApiOrderService.java

@@ -408,10 +408,10 @@ public class ApiOrderService {
                         Integer cartId = Integer.parseInt(String.valueOf(goodsItem.getId()));
                         //更新渠道追踪统计下单量数据
                         apiMkStorePromStatService.updateMkStorePromStat(orderGoodsVo, orderInfo, loginUser, cartId);
-                        //记录活动营销统计下单量数据
-                        apiMkStoreTopicStatService.saveStoreTopicStatBySubmitData(orderInfo.getCoupon_id());
                     }
                 }
+                //记录活动营销统计下单量数据
+                apiMkStoreTopicStatService.saveStoreTopicStatBySubmitData(orderInfo.getCoupon_id());
                 OrderProcessRecordEntity entity = new OrderProcessRecordEntity();
                 entity.setOrderSn(orderInfo.getOrder_sn());
                 entity.setUserId(Integer.valueOf(loginUser.getId()+""));

+ 4 - 0
kmall-api/src/main/java/com/kmall/api/service/mk/ApiMkStorePromOrderRealService.java

@@ -24,9 +24,13 @@ public class ApiMkStorePromOrderRealService {
     public MkStorePromOrderRealVo queryObject(Integer promOrderRealId) {
         return apiMkStorePromOrderRealMapper.queryObject(promOrderRealId);
     }
+
     public Integer querySubmitNumByPromId(Integer promId) {
         return apiMkStorePromOrderRealMapper.querySubmitNumByPromId(promId).size();
     }
+    public Integer querySubmitOrderNumByPromId(Integer promId) {
+        return apiMkStorePromOrderRealMapper.querySubmitOrderNumByPromId(promId);
+    }
 
     public MkStorePromOrderRealVo queryPromObjectByCartId(Integer cartId) {
         Map map = new HashMap();

+ 2 - 2
kmall-api/src/main/java/com/kmall/api/service/mk/ApiMkStorePromStatService.java

@@ -80,9 +80,9 @@ public class ApiMkStorePromStatService {
             MkStorePromStatVo mkStorePromStatVo = new MkStorePromStatVo();
             //获取推广订单关联表中根据推广id查询下单人数
             Integer submitNum = apiMkStorePromOrderRealService.querySubmitNumByPromId(statVo.getPromId());
-            Integer submitOrderNum = statVo.getSubmitOrderNum() == null ? 0 : statVo.getSubmitOrderNum();
+            Integer submitOrdNum = apiMkStorePromOrderRealService.querySubmitOrderNumByPromId(statVo.getPromId());
             mkStorePromStatVo.setSubmitNum(submitNum == null ? 0 : submitNum);//下单人数
-            mkStorePromStatVo.setSubmitOrderNum(submitOrderNum + 1);//下单单数
+            mkStorePromStatVo.setSubmitOrderNum(submitOrdNum);//下单单数
             mkStorePromStatVo.setPromStatId(statVo.getPromStatId());
             mkStorePromStatMapper.update(mkStorePromStatVo);
         }

+ 4 - 3
kmall-api/src/main/java/com/kmall/api/service/mk/ApiMkStoreTopicStatService.java

@@ -131,10 +131,11 @@ public class ApiMkStoreTopicStatService {
             if (statVo != null) {
                 MkStoreTopicStatVo mkStorePromStatVo = new MkStoreTopicStatVo();
                 //获取订单表中根据活动id查询下单人数
-                Integer submitNum = apiOrderMapper.querySubmitNumByStoreTopicId(statVo.getStoreTopicId());
-                Integer submitOrderNum = statVo.getSubmitOrderNum() == null ? 0 : statVo.getSubmitOrderNum();
+                List<OrderVo> submitNumList = apiOrderMapper.querySubmitNumByStoreTopicId(statVo.getStoreTopicId());
+                Integer submitNum = submitNumList != null ? submitNumList.size() : 0;
+                Integer submitOrderNum = apiOrderMapper.querySubmitOrderNumByStoreTopicId(statVo.getStoreTopicId());
                 mkStorePromStatVo.setSubmitNum(submitNum == null ? 0 : submitNum);//下单人数
-                mkStorePromStatVo.setSubmitOrderNum(submitOrderNum + 1);//下单单数
+                mkStorePromStatVo.setSubmitOrderNum(submitOrderNum);//下单单数
                 mkStorePromStatVo.setStoreTopicStatId(statVo.getStoreTopicStatId());
                 apiMkStoreTopicStatMapper.update(mkStorePromStatVo);
             }

+ 18 - 4
kmall-api/src/main/resources/mybatis/mapper/ApiOrderMapper.xml

@@ -741,10 +741,24 @@
          and r.refund_status = 2
     </select>
 
-    <select id="querySubmitNumByStoreTopicId" resultType="java.lang.Integer">
-        select count(*)
-        from mall_order a LEFT JOIN mall_user_coupon cc ON a.coupon_id = cc.id
-        LEFT JOIN mall_store_topic s ON cc.store_topic_id = s.id
+    <select id="querySubmitNumByStoreTopicId" resultType="com.kmall.api.entity.OrderVo">
+        SELECT
+            cc.user_id
+        FROM
+            mall_user_coupon cc
+            LEFT JOIN mall_store_topic s ON cc.store_topic_id = s.id
+            LEFT JOIN mall_order a ON a.coupon_id = cc.id
         where s.id = #{storeTopicId}
+        GROUP BY cc.user_id
+    </select>
+
+    <select id="querySubmitOrderNumByStoreTopicId" resultType="java.lang.Integer">
+        SELECT COUNT(*)
+        FROM
+            mall_order
+        WHERE
+            activity_id = #{storeTopicId}
     </select>
+
+
 </mapper>

+ 8 - 0
kmall-api/src/main/resources/mybatis/mapper/mk/ApiMkStorePromOrderRealMapper.xml

@@ -75,6 +75,14 @@
 			GROUP BY r.user_id
 	</select>
 
+	<select id="querySubmitOrderNumByPromId" resultType="java.lang.Integer">
+		SELECT COUNT(*)
+		FROM
+		mk_store_prom_order_real
+		WHERE
+		prom_id = #{promId}
+	</select>
+
 	<select id="queryList" resultType="com.kmall.api.entity.mk.MkStorePromOrderRealVo">
 		select
     		`prom_order_real_id`,