Sfoglia il codice sorgente

当日进粉本月下单情况

zoujiajian 2 anni fa
parent
commit
233e4269a5

+ 4 - 0
netflix-dao/src/main/java/com/cyksj/mapper/corp/CorpUserTagMapper.java

@@ -7,8 +7,10 @@ import com.cyksj.model.excel.CorpUserTagExcelData;
 import com.cyksj.model.views.CorpUserIntentionView;
 import com.cyksj.model.views.CorpUserView;
 import com.cyksj.model.views.UserIntentionPieView;
+import com.cyksj.model.views.UserOrderDetailView;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 
 
@@ -30,4 +32,6 @@ public interface CorpUserTagMapper extends BaseMapper<CorpUserTag> {
 	Page<CorpUserIntentionView> getCorpUserIntentionView(@Param("page") Page<CorpUserIntentionView> page, @Param("userId") Long userId, @Param("nickname") String nickname, @Param("tagIdStr") String tagId, @Param("thisDate") String date, @Param("intention") Integer intention);
 
 	List<CorpUserTag> selectIntentionUserTag(@Param("externalUserId") String externalUserId, @Param("groupName") String groupName);
+
+	UserOrderDetailView getFansUserToMonthOrdersDetai(@Param("tagIdStr") String tagIdStr, @Param("thisDate") String thisDate, @Param("st") Date st, @Param("et") Date et);
 }

+ 20 - 0
netflix-dao/src/main/resources/mapper/CorpUserTagMapper.xml

@@ -133,4 +133,24 @@
         where ct.group_name = #{groupName}
         and cufr.corp_user_id = #{externalUserId}
     </select>
+
+    <select id="getFansUserToMonthOrdersDetai" resultType="com.cyksj.model.views.UserOrderDetailView">
+        select count(distinct o.user_id) as numOfUser,count(1) as numOfOrder,
+        cast(sum(o.money)/100 as decimal(10,2)) as orderMoney,
+        count(if(goods_id = 15,1,NULL)) as numOfEpOrder,
+        cast(sum(if(goods_id = 15,o.money,0))/100 as decimal(10,2)) as epOrderMoney
+        from (select cu.user_id
+        from (select distinct cu.*
+        from (select DISTINCT relation_id from corp_user_tag where tag_id = #{tagIdStr}) ct
+        inner join corp_user_follow_relation cufr on cufr.id = ct.relation_id
+        inner join corp_user_auth ca on ca.external_userid = cufr.corp_user_id
+        inner join corp_user cu on cu.id = ca.corp_user_id and cu.user_id != 0
+        <if test="thisDate != null">
+            where date_format(cu.created_time,'%Y-%m-%d') = #{thisDate}
+        </if>
+        ) cu) cu
+        left join order_don o on o.user_id = cu.user_id
+        where o.status not in ('close','noPayment','refund')
+        and o.created_time between #{st} and #{et}
+    </select>
 </mapper>

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

@@ -52,4 +52,6 @@ public interface CorpTagService {
 	Page<UserOrderDetailView> getTagUserPastRecord(Integer start, Integer limit, String tagIdStr, String startTime, String endTime, String consumeStTime, String consumeEtTime);
 
 	UserOrderDetailView tagUserHeadData(String tagIdStr, String startTime, String endTime, String consumeStTime, String consumeEtTime);
+
+	UserOrderDetailView getFansUserToMonthOrdersDetail(String tagId, String date);
 }

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

@@ -1,6 +1,8 @@
 package com.cyksj.service.corp.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -460,4 +462,12 @@ public class CorpTagServiceImpl implements CorpTagService {
 		headView.setOrderRate(headView.getNumOfUser() == 0 ? BigDecimal.ZERO : BigDecimal.valueOf(headView.getNumOfEpOrder()).divide(BigDecimal.valueOf(headView.getNumOfUser()), 2, RoundingMode.HALF_DOWN));
 		return headView;
 	}
+
+	@Override
+	public UserOrderDetailView getFansUserToMonthOrdersDetail(String tagId, String date) {
+		DateTime monthBegin = DateUtil.beginOfMonth(DateTime.now());
+		DateTime nextMonth = DateUtil.offsetMonth(monthBegin, 1);
+		UserOrderDetailView detailView = corpUserTagMapper.getFansUserToMonthOrdersDetai(tagId, date, monthBegin, nextMonth);
+		return detailView;
+	}
 }

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

@@ -206,4 +206,13 @@ public class CorpTagController {
 		Page<CorpTagUserOrderDataView> page = corpTagService.getTagUserTimeOrderData(start, limit, tagIdStr, toDate, startTime, endTime);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(page);
 	}
+
+	/**
+	 * 当日标签用户 本月下单情况
+	 */
+	@GetMapping("/get/fans/toMonth/orders")
+	public Result<UserOrderDetailView> getFansUserToMonthOrdersDetail(String tagId, String date) {
+		UserOrderDetailView userOrderDetailView = corpTagService.getFansUserToMonthOrdersDetail(tagId, date);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(userOrderDetailView);
+	}
 }