浏览代码

达人数 改sql

zhaoxian 2 年之前
父节点
当前提交
3f73175b47

+ 65 - 70
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouItemCollectSamplesServiceImpl.java

@@ -418,73 +418,71 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
     //渠道数据
     private JSONObject getOrderDataByChannel(List<Long> userList, String startDate, String endDate) {
         JSONObject data = new JSONObject();
-        List<Long> promoterIds = promoterService.selectPromoterIdList(userList);
-        if (Check.isNotNull(promoterIds)) {
-            data.put("promoterCount", promoterIds.size());//达人总数
-            if (Check.isNull(userList)) {
-                //社群查所有
-                promoterIds = null;
-            }
-            JSONObject Sample = kuaishouItemCollectSamplesMapper.queryTheNumberOfCompletedJobs(promoterIds, startDate, endDate);
-            data.put("completeCount", Sample.getInteger("completeCount"));//完成作业数
-            data.put("completeRate", Sample.getString("completeRate"));//合格作业率
-            JSONObject order = supplyChainService.selectOrderInfo(promoterIds, startDate, endDate);
-            data.put("allNumber", order.getInteger("allNumber"));//订单总数
-            data.put("validOrderNUm", order.getInteger("validOrderNUm"));//有效订单数
-            data.put("inValidOrderNUm", order.getInteger("allNumber") - order.getInteger("validOrderNUm"));//失效订单数
-            data.put("orderAmount", order.getInteger("orderAmount"));//订单金额
-            data.put("regimentalPromotionAmount", order.getInteger("regimentalPromotionAmount"));//预估服务费
-            data.put("baseAmount", order.getInteger("baseAmount"));//累计货贷基数
-            //当天
-            String today = DateUtils.getNowDateStr();
-            Date date = new Date();
-            //昨天
-            String yesterday = DateUtils.getSubtractTime(date, 1);
-            //上周的同一天(上个近七天的结束日期)
-            String todayOfLastWeek = DateUtils.getSubtractTime(date, 7);
-            //当天数据
-            JSONObject toData = supplyChainService.selectOrderRate(promoterIds, null, today, today);
-            //昨日数据
-            JSONObject yesData = supplyChainService.selectOrderRate(promoterIds, null, yesterday, yesterday);
-            //上周当日数据
-            JSONObject weeklyDayData = supplyChainService.selectOrderRate(promoterIds, null, todayOfLastWeek, todayOfLastWeek);
-
-            //日环比 (今天-昨天)/昨天*100%
-            data.put("dateOrderRate", getOrderRateValue(toData, yesData));
-            data.put("dateAmountRate", getAmountRateValue(toData, yesData));
-
-            //周同比
-            data.put("monthOrderRate", getOrderRateValue(toData, weeklyDayData));
-            data.put("monthAmountRate", getAmountRateValue(toData, weeklyDayData));
-
-            JSONObject inDayData = null;
-            JSONObject lastDayData = null;
-            if (startDate.equals(endDate) && startDate.equals(today)) {
-                //当前近七天的开始日期
-                String start = DateUtils.getSubtractTime(date, 6);
-                //上个近七天的开始日期
-                String LastStart = DateUtils.getSubtractTime(date, 13);
-                //当前近七天的数据
-                inDayData = supplyChainService.selectOrderRate(promoterIds, null, start, today);
-                //上个近七天的数据
-                lastDayData = supplyChainService.selectOrderRate(promoterIds, null, LastStart, todayOfLastWeek);
-            } else if (startDate.equals(endDate) && !startDate.equals(today)) {
-                // startDate 环比 startDate的前一天
-                inDayData = supplyChainService.selectOrderRate(promoterIds, null, startDate, startDate);
-                String lastDay = DateUtils.getSubtractTime(DateUtils.parseDate(startDate), 1);
-                // startDate -1
-                lastDayData = supplyChainService.selectOrderRate(promoterIds, null, lastDay, lastDay);
-            } else {
-                inDayData = supplyChainService.selectOrderRate(promoterIds, null, startDate, endDate);
-                int days = DateUtils.differentDaysByMillisecond(DateUtils.parseDate(startDate), DateUtils.parseDate(endDate)) + 1;
-                String lastStart = DateUtils.getSubtractTime(DateUtils.parseDate(startDate), days);
-                String lastEnd = DateUtils.getSubtractTime(DateUtils.parseDate(endDate), days);
-                lastDayData = supplyChainService.selectOrderRate(promoterIds, null, lastStart, lastEnd);
-            }
-            //数据对比
-            data.put("dataOrderRate", getOrderRateValue(inDayData, lastDayData));
-            data.put("dataAmountRate", getAmountRateValue(inDayData, lastDayData));
+        List<Long> promoterIds = null;
+        if (Check.isNotNull(userList)) {
+            promoterIds = promoterService.selectPromoterIdList(userList);
+        }
+        JSONObject Sample = kuaishouItemCollectSamplesMapper.queryTheNumberOfCompletedJobs(promoterIds, startDate, endDate);
+        data.put("completeCount", Sample.getInteger("completeCount"));//完成作业数
+        data.put("completeRate", Sample.getString("completeRate"));//合格作业率
+        JSONObject order = supplyChainService.selectOrderInfo(promoterIds, startDate, endDate);
+        data.put("allNumber", order.getInteger("allNumber"));//订单总数
+        data.put("promoterCount", order.getInteger("promoterCount"));//达人总数
+        data.put("validOrderNUm", order.getInteger("validOrderNUm"));//有效订单数
+        data.put("inValidOrderNUm", order.getInteger("allNumber") - order.getInteger("validOrderNUm"));//失效订单数
+        data.put("orderAmount", order.getInteger("orderAmount"));//订单金额
+        data.put("regimentalPromotionAmount", order.getInteger("regimentalPromotionAmount"));//预估服务费
+        data.put("baseAmount", order.getInteger("baseAmount"));//累计货贷基数
+        //当天
+        String today = DateUtils.getNowDateStr();
+        Date date = new Date();
+        //昨天
+        String yesterday = DateUtils.getSubtractTime(date, 1);
+        //上周的同一天(上个近七天的结束日期)
+        String todayOfLastWeek = DateUtils.getSubtractTime(date, 7);
+        //当天数据
+        JSONObject toData = supplyChainService.selectOrderRate(promoterIds, null, today, today);
+        //昨日数据
+        JSONObject yesData = supplyChainService.selectOrderRate(promoterIds, null, yesterday, yesterday);
+        //上周当日数据
+        JSONObject weeklyDayData = supplyChainService.selectOrderRate(promoterIds, null, todayOfLastWeek, todayOfLastWeek);
+
+        //日环比 (今天-昨天)/昨天*100%
+        data.put("dateOrderRate", getOrderRateValue(toData, yesData));
+        data.put("dateAmountRate", getAmountRateValue(toData, yesData));
+
+        //周同比
+        data.put("monthOrderRate", getOrderRateValue(toData, weeklyDayData));
+        data.put("monthAmountRate", getAmountRateValue(toData, weeklyDayData));
+
+        JSONObject inDayData = null;
+        JSONObject lastDayData = null;
+        if (startDate.equals(endDate) && startDate.equals(today)) {
+            //当前近七天的开始日期
+            String start = DateUtils.getSubtractTime(date, 6);
+            //上个近七天的开始日期
+            String LastStart = DateUtils.getSubtractTime(date, 13);
+            //当前近七天的数据
+            inDayData = supplyChainService.selectOrderRate(promoterIds, null, start, today);
+            //上个近七天的数据
+            lastDayData = supplyChainService.selectOrderRate(promoterIds, null, LastStart, todayOfLastWeek);
+        } else if (startDate.equals(endDate) && !startDate.equals(today)) {
+            // startDate 环比 startDate的前一天
+            inDayData = supplyChainService.selectOrderRate(promoterIds, null, startDate, startDate);
+            String lastDay = DateUtils.getSubtractTime(DateUtils.parseDate(startDate), 1);
+            // startDate -1
+            lastDayData = supplyChainService.selectOrderRate(promoterIds, null, lastDay, lastDay);
+        } else {
+            inDayData = supplyChainService.selectOrderRate(promoterIds, null, startDate, endDate);
+            int days = DateUtils.differentDaysByMillisecond(DateUtils.parseDate(startDate), DateUtils.parseDate(endDate)) + 1;
+            String lastStart = DateUtils.getSubtractTime(DateUtils.parseDate(startDate), days);
+            String lastEnd = DateUtils.getSubtractTime(DateUtils.parseDate(endDate), days);
+            lastDayData = supplyChainService.selectOrderRate(promoterIds, null, lastStart, lastEnd);
         }
+        //数据对比
+        data.put("dataOrderRate", getOrderRateValue(inDayData, lastDayData));
+        data.put("dataAmountRate", getAmountRateValue(inDayData, lastDayData));
+
         return data;
     }
 
@@ -510,10 +508,6 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
     //招商数据
     private JSONObject getOrderDataByAttractInvestment(List<Long> userList, String startDate, String endDate) {
         JSONObject data = new JSONObject();
-        List<Long> promoterIds = promoterService.selectPromoterIdList(null);
-        if (Check.isNotNull(promoterIds)) {
-            data.put("promoterCount", promoterIds.size());//达人总数
-        }
         //查询登录人(创建人)的所有商品
         List<Long> itemIds = kuaishouItemCollectSamplesMapper.getItemIdsByCreateId(userList);
         if (Check.isNotNull(itemIds)) {
@@ -521,6 +515,7 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
             data.put("sendCount", order.getInteger("sendCount"));//发货数
             data.put("sendRate", order.getString("sendRate"));//订单发货率
             data.put("allNumber", order.getInteger("allNumber"));//订单总数
+            data.put("promoterCount", order.getInteger("promoterCount"));//达人总数
             data.put("validOrderNUm", order.getInteger("validOrderNUm"));//有效订单数
             data.put("inValidOrderNUm", order.getInteger("allNumber") - order.getInteger("validOrderNUm"));//失效订单数
             data.put("orderAmount", order.getInteger("orderAmount"));//订单金额

+ 15 - 11
ruixuan-live/src/main/resources/mapper/isc/SupplyChainMapper.xml

@@ -1053,11 +1053,14 @@
     </select>
 
     <select id="selectOrderInfo" resultType="com.alibaba.fastjson.JSONObject">
-        SELECT COUNT(oid) as 'allNumber', IFNULL(SUM(CASE WHEN order_status != 80 THEN 1 ELSE 0 END), 0) AS
-        'validOrderNUm', IFNULL(SUM(CASE WHEN order_status != 80 THEN order_amount ELSE 0 END), 0) AS 'orderAmount',
-        IFNULL(
-        SUM(CASE WHEN order_status != 80 THEN regimental_promotion_amount ELSE 0 END),
-        0) AS 'regimentalPromotionAmount', IFNULL(sum(base_amount), 0) as 'baseAmount'
+        SELECT
+        COUNT(DISTINCT promoter_id) as 'promoterCount',
+        COUNT(oid) as 'allNumber',
+        IFNULL(SUM(CASE WHEN order_status != 80 THEN 1 ELSE 0 END), 0) AS 'validOrderNUm',
+        IFNULL(SUM(CASE WHEN order_status != 80 THEN order_amount ELSE 0 END), 0) AS 'orderAmount',
+        IFNULL(SUM(CASE WHEN order_status != 80 THEN regimental_promotion_amount ELSE 0 END),0) AS
+        'regimentalPromotionAmount',
+        IFNULL(sum(base_amount), 0) as 'baseAmount'
         FROM kuaishou_supply_chain
         WHERE stat_date >= #{startDate}
         AND stat_date &lt;= #{endDate}
@@ -1073,13 +1076,14 @@
     <select id="selectOrderInfoByItemIds" resultType="com.alibaba.fastjson.JSONObject">
         SELECT t.*,
         CONCAT(IFNULL(ROUND(sendCount / allNumber * 100, 2),0), '%') as 'sendRate'
-        FROM (SELECT COUNT(oid) as 'allNumber',
-        IFNULL(SUM(CASE WHEN order_status != 80 THEN 1 ELSE 0 END), 0) AS
-        'validOrderNUm',
+        FROM (
+        SELECT
+        count(DISTINCT promoter_id) as 'promoterCount',
+        COUNT(oid) as 'allNumber',
+        IFNULL(SUM(CASE WHEN order_status != 80 THEN 1 ELSE 0 END), 0) AS 'validOrderNUm',
         IFNULL(SUM(CASE WHEN order_status != 80 THEN order_amount ELSE 0 END), 0) AS 'orderAmount',
-        IFNULL(
-        SUM(CASE WHEN order_status != 80 THEN regimental_promotion_amount ELSE 0 END),
-        0) AS 'regimentalPromotionAmount',
+        IFNULL(SUM(CASE WHEN order_status != 80 THEN regimental_promotion_amount ELSE 0 END),0) AS
+        'regimentalPromotionAmount',
         IFNULL(sum(base_amount), 0) as 'baseAmount',
         IFNULL(COUNT(CASE WHEN send_status = 1 THEN oid ELSE null END), 0) AS 'sendCount'
         FROM kuaishou_supply_chain