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

fix 标签用户消费时间

zoujiajian 2 жил өмнө
parent
commit
56302bfac2

+ 2 - 2
netflix-dao/src/main/java/com/cyksj/mapper/OrderDonMapper.java

@@ -66,9 +66,9 @@ public interface OrderDonMapper extends BaseMapper<OrderDon> {
 
 	BrokenLineObjView selectDsPlatBrokenLineMoney(@Param("sharedId") Long sharedId, @Param("first") String first, @Param("end") String end);
 
-	UserOrderDetailView getTagUserData(@Param("tagIdStr") String tagIdStr, @Param("startTime") String startTime, @Param("endTime") String endTime);
+	UserOrderDetailView getTagUserData(@Param("tagIdStr") String tagIdStr, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("consumeStTime") String consumeStTime, @Param("consumeEtTime") String consumeEtTime);
 
-	Page<UserOrderDetailView> getTagUserDataPage(@Param("page") Page<UserOrderDetailView> page, @Param("tagIdStr") String tagIdStr, @Param("startTime") String startTime, @Param("endTime") String endTime);
+	Page<UserOrderDetailView> getTagUserDataPage(@Param("page") Page<UserOrderDetailView> page, @Param("tagIdStr") String tagIdStr, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("consumeStTime") String consumeStTime, @Param("consumeEtTime") String consumeEtTime);
 
 	Page<CorpTagUserOrderDataView> getTagUserTimeOrderData(@Param("page") Page<Object> objectPage, @Param("tagIdStr") String tagIdStr, @Param("toDate") String toDate, @Param("startTime") String startTime, @Param("endTime") String endTime);
 

+ 16 - 6
netflix-dao/src/main/resources/mapper/OrderDonMapper.xml

@@ -325,7 +325,8 @@
         count(if(status != 'refund' and o.goods_id = 15,1,NULL)) as numOfEpOrder,
         (sum(if(o.goods_id = 15,money,0)) - sum(ifnull(if(o.goods_id = 15,refund_money,0), 0))) / 100 as epOrderMoney
         from (select cu.user_id
-        from (select relation_id
+        from (select relation_id,
+        ct.created_time
         from `corp_user_tag` ct
         where tag_id = #{tagIdStr}
         <if test="startTime != null">
@@ -341,15 +342,20 @@
         and o.status not in ('close', 'noPayment')
         and o.money > 0
         and o.money > ifnull(o.refund_money,0)
-        <if test="startTime != null">
-            and o.created_time >= #{startTime}
+        <if test="consumeStTime != null">
+            and o.created_time >= #{consumeStTime}
+        </if>
+        <if test="consumeEtTime != null">
+            and o.created_time &lt; #{consumeEtTime}
         </if>
+        and o.created_time > ct.created_time
     </select>
 
     <select id="getTagUserDataPage" resultType="com.cyksj.model.views.UserOrderDetailView">
         select count(if(status != 'refund', 1, NULL)) as numOfOrder, (sum(money) - sum(ifnull(refund_money, 0))) / 100
         as orderMoney,date_format(o.created_time,'%Y-%m-%d') as date from (select cu.user_id
-        from (select relation_id
+        from (select relation_id,
+        ct.created_time
         from `corp_user_tag` ct
         where tag_id = #{tagIdStr}
         <if test="startTime != null">
@@ -365,8 +371,12 @@
         and o.status not in ('close', 'noPayment')
         and o.money > 0
         and o.money > ifnull(o.refund_money,0)
-        <if test="startTime != null">
-            and o.created_time >= #{startTime}
+        and o.created_time > ct.created_time
+        <if test="consumeStTime != null">
+            and o.created_time >= #{consumeStTime}
+        </if>
+        <if test="consumeEtTime != null">
+            and o.created_time &lt; #{consumeEtTime}
         </if>
         group by date_format(o.created_time,'%Y-%m-%d')
         order by date_format(o.created_time,'%Y-%m-%d') desc

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/corp/CorpTagService.java

@@ -45,7 +45,7 @@ public interface CorpTagService {
 	 */
 	CorpTagGroupView addGroup(CorpTagGroupView tagGroup) throws Exception;
 
-	UserOrderDetailView getTagUserData(Integer start, Integer limit, String tagIdStr, String startTime, String endTime);
+	UserOrderDetailView getTagUserData(Integer start, Integer limit, String tagIdStr, String startTime, String endTime, String consumeStTime, String consumeEtTime);
 
 	Page<CorpTagUserOrderDataView> getTagUserTimeOrderData(Integer start, Integer limit, String tagIdStr, String toDate, String startTime, String endTime);
 }

+ 5 - 5
netflix-service/src/main/java/com/cyksj/service/corp/impl/CorpTagServiceImpl.java

@@ -421,16 +421,16 @@ public class CorpTagServiceImpl implements CorpTagService {
 	}
 
 	@Override
-	public UserOrderDetailView getTagUserData(Integer start, Integer limit, String tagIdStr, String startTime, String endTime) {
-		UserOrderDetailView u = orderDonMapper.getTagUserData(tagIdStr, startTime, endTime);
+	public UserOrderDetailView getTagUserData(Integer start, Integer limit, String tagIdStr, String startTime, String endTime, String consumeStTime, String consumeEtTime) {
+		UserOrderDetailView u = orderDonMapper.getTagUserData(tagIdStr, startTime, endTime, consumeStTime, consumeEtTime);
 
-		UserOrderDetailView u2 = corpUserTagMapper.countTagUser(tagIdStr, startTime, endTime,null);
+		UserOrderDetailView u2 = corpUserTagMapper.countTagUser(tagIdStr, startTime, endTime, null);
 
 		u.setNumOfUser(u2.getNumOfUser());
 		u.setDelNumOfUser(u2.getDelNumOfUser());
 		u.setOrderRate(u.getNumOfUser() == 0 ? BigDecimal.ZERO : BigDecimal.valueOf(u.getNumOfEpOrder()).divide(BigDecimal.valueOf(u.getNumOfUser()), 2, RoundingMode.HALF_DOWN));
-		Page<UserOrderDetailView> records = orderDonMapper.getTagUserDataPage(new Page<>(start, limit), tagIdStr, startTime, endTime);
-		records.getRecords().forEach(e->{
+		Page<UserOrderDetailView> records = orderDonMapper.getTagUserDataPage(new Page<>(start, limit), tagIdStr, startTime, endTime, consumeStTime, consumeEtTime);
+		records.getRecords().forEach(e -> {
 			String date = e.getDate();
 			UserOrderDetailView userOrderDetailView = corpUserTagMapper.countTagUser(tagIdStr, null, null, date);
 			e.setNumOfUser(userOrderDetailView.getNumOfUser());

+ 2 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/CorpTagController.java

@@ -173,9 +173,9 @@ public class CorpTagController {
 	 * 通过标签 查找对应用户订单数据
 	 */
 	@GetMapping("/get/tagUser/data")
-	public Result<UserOrderDetailView> getTagUserData(@RequestParam(defaultValue = "1") Integer start, @RequestParam(defaultValue = "10") Integer limit, @RequestParam(required = true) String tagIdStr, String startTime, String endTime) {
+	public Result<UserOrderDetailView> getTagUserData(@RequestParam(defaultValue = "1") Integer start, @RequestParam(defaultValue = "10") Integer limit, @RequestParam(required = true) String tagIdStr, String startTime, String endTime, String consumeStTime, String consumeEtTime) {
 		Assert.notEmpty(tagIdStr, "请输入对应标签");
-		UserOrderDetailView userOrderDetailView = corpTagService.getTagUserData(start, limit, tagIdStr, startTime, endTime);
+		UserOrderDetailView userOrderDetailView = corpTagService.getTagUserData(start, limit, tagIdStr, startTime, endTime, consumeStTime, consumeEtTime);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(userOrderDetailView);
 	}