Browse Source

供应链管理员权限和社群一致

zhaoxian 2 years ago
parent
commit
8e980e9d43

+ 50 - 16
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouItemCollectSamplesServiceImpl.java

@@ -442,20 +442,12 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
             String yesterday = DateUtils.getSubtractTime(date, 1);
             //上周的同一天(上个近七天的结束日期)
             String todayOfLastWeek = DateUtils.getSubtractTime(date, 7);
-            //当前近七天的开始日期
-            String start = DateUtils.getSubtractTime(date, 6);
-            //上个近七天的开始日期
-            String LastStart = DateUtils.getSubtractTime(date, 13);
             //当天数据
             JSONObject toData = supplyChainService.selectOrderRate(promoterIds, null, today, today);
             //昨日数据
             JSONObject yesData = supplyChainService.selectOrderRate(promoterIds, null, yesterday, yesterday);
             //上周当日数据
             JSONObject weeklyDayData = supplyChainService.selectOrderRate(promoterIds, null, todayOfLastWeek, todayOfLastWeek);
-            //当前近七天的数据
-            JSONObject inDayData = supplyChainService.selectOrderRate(promoterIds, null, start, today);
-            //上个近七天的数据
-            JSONObject lastDayData = supplyChainService.selectOrderRate(promoterIds, null, LastStart, todayOfLastWeek);
 
             //日环比 (今天-昨天)/昨天*100%
             BigDecimal dateOrder = toData.getBigDecimal("allNumber").subtract(yesData.getBigDecimal("allNumber")).divide(yesData.getBigDecimal("allNumber"), 4, RoundingMode.HALF_UP);
@@ -467,6 +459,31 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
             BigDecimal monthAmount = toData.getBigDecimal("orderAmount").subtract(weeklyDayData.getBigDecimal("orderAmount")).divide(weeklyDayData.getBigDecimal("orderAmount"), 4, RoundingMode.HALF_UP);
             data.put("monthOrderRate", monthOrder);
             data.put("monthAmountRate", monthAmount);
+
+            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);
+            }
             //数据对比
             BigDecimal dataOrder = inDayData.getBigDecimal("allNumber").subtract(lastDayData.getBigDecimal("allNumber")).divide(lastDayData.getBigDecimal("allNumber"), 4, RoundingMode.HALF_UP);
             BigDecimal dataAmount = inDayData.getBigDecimal("orderAmount").subtract(lastDayData.getBigDecimal("orderAmount")).divide(lastDayData.getBigDecimal("orderAmount"), 4, RoundingMode.HALF_UP);
@@ -503,10 +520,6 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
             String yesterday = DateUtils.getSubtractTime(date, 1);
             //上周的同一天(上个近七天的结束日期)
             String todayOfLastWeek = DateUtils.getSubtractTime(date, 7);
-            //当前近七天的开始日期
-            String start = DateUtils.getSubtractTime(date, 6);
-            //上个近七天的开始日期
-            String LastStart = DateUtils.getSubtractTime(date, 13);
 
             //当天数据
             JSONObject toData = supplyChainService.selectOrderRate(null, itemIds, today, today);
@@ -514,10 +527,6 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
             JSONObject yesData = supplyChainService.selectOrderRate(null, itemIds, yesterday, yesterday);
             //上周当日数据
             JSONObject weeklyDayData = supplyChainService.selectOrderRate(null, itemIds, todayOfLastWeek, todayOfLastWeek);
-            //当前近七天的数据
-            JSONObject inDayData = supplyChainService.selectOrderRate(null, itemIds, start, today);
-            //上个近七天的数据
-            JSONObject lastDayData = supplyChainService.selectOrderRate(null, itemIds, LastStart, todayOfLastWeek);
 
             //日环比 (今天-昨天)/昨天*100%
             BigDecimal dateOrder = toData.getBigDecimal("allNumber").subtract(yesData.getBigDecimal("allNumber")).divide(yesData.getBigDecimal("allNumber"), 4, RoundingMode.HALF_UP);
@@ -529,6 +538,31 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
             BigDecimal monthAmount = toData.getBigDecimal("orderAmount").subtract(weeklyDayData.getBigDecimal("orderAmount")).divide(weeklyDayData.getBigDecimal("orderAmount"), 4, RoundingMode.HALF_UP);
             data.put("monthOrderRate", monthOrder);
             data.put("monthAmountRate", monthAmount);
+
+            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(null, itemIds, start, today);
+                //上个近七天的数据
+                lastDayData = supplyChainService.selectOrderRate(null, itemIds, LastStart, todayOfLastWeek);
+            } else if (startDate.equals(endDate) && !startDate.equals(today)) {
+                // startDate 环比 startDate的前一天
+                inDayData = supplyChainService.selectOrderRate(null, itemIds, startDate, startDate);
+                String lastDay = DateUtils.getSubtractTime(DateUtils.parseDate(startDate), 1);
+                // startDate -1
+                lastDayData = supplyChainService.selectOrderRate(null, itemIds, lastDay, lastDay);
+            } else {
+                inDayData = supplyChainService.selectOrderRate(null, itemIds, 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(null, itemIds, lastStart, lastEnd);
+            }
             //数据对比
             BigDecimal dataOrder = inDayData.getBigDecimal("allNumber").subtract(lastDayData.getBigDecimal("allNumber")).divide(lastDayData.getBigDecimal("allNumber"), 4, RoundingMode.HALF_UP);
             BigDecimal dataAmount = inDayData.getBigDecimal("orderAmount").subtract(lastDayData.getBigDecimal("orderAmount")).divide(lastDayData.getBigDecimal("orderAmount"), 4, RoundingMode.HALF_UP);