Forráskód Böngészése

feat: 首页-统计 改成企微和个微

xdd 1 hónapja
szülő
commit
bfc33c77c0

+ 33 - 7
fs-admin/src/main/java/com/fs/api/controller/IndexStatisticsController.java

@@ -3,7 +3,6 @@ package com.fs.api.controller;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.statis.StatisticsRedisConstant;
 import com.fs.statis.dto.*;
-import com.fs.statis.service.IStatisticsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import com.fs.common.core.domain.R;
@@ -28,11 +27,16 @@ public class IndexStatisticsController {
     public R analysisPreview(@RequestBody AnalysisPreviewQueryDTO param){
         AnalysisPreviewDTO analysisPreviewDTO = null;
         Integer type = param.getType();
+        Integer userType = param.getUserType();
+
         if(type == null) {
             type = 0;
         }
 
-        analysisPreviewDTO = redisCache.getCacheObject(String.format("%s:%d",DATA_OVERVIEW_DEALER_ANALYSISPREVIEW,type));
+        if(userType == null) {
+            userType = 0;
+        }
+        analysisPreviewDTO = redisCache.getCacheObject(String.format("%s:%d:%d",DATA_OVERVIEW_DEALER_ANALYSISPREVIEW,type,userType));
 
         return R.ok().put("data",analysisPreviewDTO);
     }
@@ -63,7 +67,16 @@ public class IndexStatisticsController {
      */
     @PostMapping("/watchEndPlayTrend")
     public R watchEndPlayTrend(@RequestBody AnalysisPreviewQueryDTO param){
-        String key = String.format("%s:%d", DATA_OVERVIEW_DEALER_CHARTS, param.getType());
+        Integer type = param.getType();
+        Integer userType = param.getUserType();
+
+        if(type == null) {
+            type = 0;
+        }
+        if(userType == null){
+            userType = 0;
+        }
+        String key = String.format("%s:%d:%d", DATA_OVERVIEW_DEALER_CHARTS, type,userType);
         List<DeaMemberTopTenDTO> deaMemberTopTenDTOS = redisCache.getCacheObject(key);
         return R.ok().put("data", deaMemberTopTenDTOS);
     }
@@ -75,8 +88,16 @@ public class IndexStatisticsController {
     public R deaMemberTopTen(@RequestBody AnalysisPreviewQueryDTO param){
         Integer type = param.getType();
         Integer statisticalType = param.getStatisticalType();
+        Integer userType = param.getUserType();
 
-        List<DeaMemberTopTenDTO> deaMemberTopTenDTOS = redisCache.getCacheObject(String.format("%s:%d:%d", CHARTS_MEMBER_TOP_TEN_WATCH, type, statisticalType));
+        if(type == null) {
+            type = 0;
+        }
+        if(userType == null){
+            userType = 0;
+        }
+
+        List<DeaMemberTopTenDTO> deaMemberTopTenDTOS = redisCache.getCacheObject(String.format("%s:%d:%d:%d", CHARTS_MEMBER_TOP_TEN_WATCH, type, statisticalType,userType));
         if(deaMemberTopTenDTOS == null){
             deaMemberTopTenDTOS = new ArrayList<>();
         }
@@ -90,7 +111,9 @@ public class IndexStatisticsController {
     public R rewardMoneyTopTen(@RequestBody AnalysisPreviewQueryDTO param){
         Integer type = param.getType();
         Integer dataType = param.getDataType();
-        List<RewardMoneyTopTenDTO> rewardMoneyTopTenDTOS = redisCache.getCacheObject( String.format("%s:%d:%d", CHARTS_REWARD_MONEY_TOP_TEN, type,dataType));
+        Integer userType = param.getUserType();
+
+        List<RewardMoneyTopTenDTO> rewardMoneyTopTenDTOS = redisCache.getCacheObject( String.format("%s:%d:%d:%d", CHARTS_REWARD_MONEY_TOP_TEN, type,dataType,userType));
         return R.ok().put("data", rewardMoneyTopTenDTOS);
     }
 
@@ -100,7 +123,8 @@ public class IndexStatisticsController {
     @PostMapping("/rewardMoneyTrend")
     public R rewardMoneyTrend(@RequestBody AnalysisPreviewQueryDTO param){
         Integer type = param.getType();
-        List<RewardMoneyTrendDTO> rewardMoneyTrendDTOS = redisCache.getCacheObject( String.format("%s:%d", CHARTS_REWARD_MONEY_TREND, type));
+        Integer userType = param.getUserType();
+        List<RewardMoneyTrendDTO> rewardMoneyTrendDTOS = redisCache.getCacheObject( String.format("%s:%d:%d", CHARTS_REWARD_MONEY_TREND, type,userType));
         return R.ok().put("data", rewardMoneyTrendDTOS);
     }
 
@@ -112,7 +136,9 @@ public class IndexStatisticsController {
         Integer type = param.getType();
         String sort = param.getSort();
         Integer statisticalType = param.getStatisticalType();
-        List<CourseStatsDTO> courseStatsDTOS = redisCache.getCacheObject(String.format("%s:%d:%d:%s", CHARTS_WATCH_TOP_TEN, type,statisticalType,sort));
+        Integer userType = param.getUserType();
+
+        List<CourseStatsDTO> courseStatsDTOS = redisCache.getCacheObject(String.format("%s:%d:%d:%d:%s", CHARTS_WATCH_TOP_TEN, type,statisticalType,userType,sort));
         return R.ok().put("data", courseStatsDTOS);
     }
 

+ 5 - 0
fs-service-system/src/main/java/com/fs/statis/dto/AnalysisPreviewQueryDTO.java

@@ -37,4 +37,9 @@ public class AnalysisPreviewQueryDTO implements Serializable {
      */
     private Integer dataType;
 
+    /**
+     * 0 用户 1 企微
+     */
+    private Integer userType;
+
 }

+ 5 - 0
fs-service-system/src/main/java/com/fs/statis/dto/DealerAggregatedDTO.java

@@ -27,4 +27,9 @@ public class DealerAggregatedDTO implements Serializable {
      */
     private Long blackNum;
 
+    /**
+     * 企微用户数
+     */
+    private Long qwMemberNum;
+
 }

+ 6 - 6
fs-service-system/src/main/java/com/fs/statis/service/IStatisticsService.java

@@ -17,30 +17,30 @@ public interface IStatisticsService {
     /**
      * 分析概览定时任务
      */
-    void analysisPreviewTask(Integer type);
+    void analysisPreviewTask(Integer type,Integer userType);
 
 
     /**
      * 会员观看、完播人数趋势图
      */
-    void watchEndPlayTrendTask(Integer type);
+    void watchEndPlayTrendTask(Integer type,Integer userType);
 
 
     /**
      * 经销商会员观看TOP10
      */
-    void companyWatchCourseTopTenTask(Integer type,Integer statisticalType);
+    void companyWatchCourseTopTenTask(Integer type,Integer statisticalType,Integer userType);
 
     /**
      * 课程观看TOP10
      */
-    void watchCourseTopTenTask(Integer type,Integer statisticalType,String sort);
+    void watchCourseTopTenTask(Integer type,Integer statisticalType,Integer userType,String sort);
 
     /**
      * 答题红包金额TOP10
      */
-    void rewardMoneyTopTenTask(Integer type,Integer dataType);
-    void rewardMoneyTradeTask(Integer type);
+    void rewardMoneyTopTenTask(Integer type,Integer dataType,Integer userType);
+    void rewardMoneyTradeTask(Integer type,Integer userType);
 
     /**
      * 分析概览 - 经销商统计

+ 191 - 97
fs-service-system/src/main/java/com/fs/statis/service/impl/StatisticsServiceImpl.java

@@ -60,20 +60,27 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
 
     public void analysisPreviewTask0(){
-        analysisPreviewTask(0);
+        analysisPreviewTask(0,0);
+        analysisPreviewTask(0,1);
     }
 
     public void analysisPreviewTask1(){
-        analysisPreviewTask(0);
-        analysisPreviewTask(1);
-        analysisPreviewTask(2);
-        analysisPreviewTask(3);
-        analysisPreviewTask(4);
+        analysisPreviewTask(0,0);
+        analysisPreviewTask(1,0);
+        analysisPreviewTask(2,0);
+        analysisPreviewTask(3,0);
+        analysisPreviewTask(4,0);
+
+        analysisPreviewTask(0,1);
+        analysisPreviewTask(1,1);
+        analysisPreviewTask(2,1);
+        analysisPreviewTask(3,1);
+        analysisPreviewTask(4,1);
     }
 
 
     @Override
-    public void analysisPreviewTask(Integer type) {
+    public void analysisPreviewTask(Integer type,Integer userType) {
         // 根据type计算出时间范围
         String startDate = "";
         String endDate = "";
@@ -111,27 +118,29 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
         AnalysisPreviewDTO analysisPreviewDTO = this.analysisPreview(param);
 
-        redisCache.setCacheObject(String.format("%s:%d",DATA_OVERVIEW_DEALER_ANALYSISPREVIEW,type), analysisPreviewDTO);
+        redisCache.setCacheObject(String.format("%s:%d:%d",DATA_OVERVIEW_DEALER_ANALYSISPREVIEW,type,userType), analysisPreviewDTO);
     }
 
     public void watchEndPlayTrendTask0(){
-        this.watchEndPlayTrendTask(0);
-        this.watchEndPlayTrendTask(1);
-        this.watchEndPlayTrendTask(2);
-        this.watchEndPlayTrendTask(3);
-        this.watchEndPlayTrendTask(4);
+        this.watchEndPlayTrendTask(0,0);
+        this.watchEndPlayTrendTask(0,1);
     }
 
     public void watchEndPlayTrendTask1(){
-        this.watchEndPlayTrendTask(1);
-        this.watchEndPlayTrendTask(2);
-        this.watchEndPlayTrendTask(3);
-        this.watchEndPlayTrendTask(4);
+        this.watchEndPlayTrendTask(1,0);
+        this.watchEndPlayTrendTask(2,0);
+        this.watchEndPlayTrendTask(3,0);
+        this.watchEndPlayTrendTask(4,0);
+
+        this.watchEndPlayTrendTask(1,1);
+        this.watchEndPlayTrendTask(2,1);
+        this.watchEndPlayTrendTask(3,1);
+        this.watchEndPlayTrendTask(4,1);
     }
 
 
     @Override
-    public void watchEndPlayTrendTask(Integer type) {
+    public void watchEndPlayTrendTask(Integer type,Integer userType) {
         // 根据type计算出时间范围
         String startDate = "";
         String endDate = "";
@@ -167,35 +176,47 @@ public class StatisticsServiceImpl implements IStatisticsService {
         param.setEndTime(endDate);
         param.setType(type);
 
+        param.setUserType(userType);
         List<WatchEndPlayTrendDTO> watchEndPlayTrendDTOS = this.watchEndPlayTrend(param);
 
-        redisCache.setCacheObject(String.format("%s:%d",DATA_OVERVIEW_DEALER_CHARTS,type),watchEndPlayTrendDTOS);
+        redisCache.setCacheObject(String.format("%s:%d:%d",DATA_OVERVIEW_DEALER_CHARTS,type,userType),watchEndPlayTrendDTOS);
 
     }
 
 
     public void companyWatchCourseTopTenTask0(){
-        companyWatchCourseTopTenTask(0,0);
-        companyWatchCourseTopTenTask(0,1);
-    }
+        companyWatchCourseTopTenTask(0,0,0);
+        companyWatchCourseTopTenTask(0,1,0);
 
-    public void companyWatchCourseTopTenTask1(){
-        companyWatchCourseTopTenTask(1,0);
-        companyWatchCourseTopTenTask(1,1);
 
-        companyWatchCourseTopTenTask(2,0);
-        companyWatchCourseTopTenTask(2,1);
+        companyWatchCourseTopTenTask(0,0,1);
+        companyWatchCourseTopTenTask(0,1,1);
+    }
 
+    public void companyWatchCourseTopTenTask1(){
+        companyWatchCourseTopTenTask(1,0,0);
+        companyWatchCourseTopTenTask(1,1,0);
+        companyWatchCourseTopTenTask(2,0,0);
+        companyWatchCourseTopTenTask(2,1,0);
+        companyWatchCourseTopTenTask(3,0,0);
+        companyWatchCourseTopTenTask(3,1,0);
+        companyWatchCourseTopTenTask(4,0,0);
+        companyWatchCourseTopTenTask(4,1,0);
+
+        companyWatchCourseTopTenTask(1,0,1);
+        companyWatchCourseTopTenTask(1,1,1);
+        companyWatchCourseTopTenTask(2,0,1);
+        companyWatchCourseTopTenTask(2,1,1);
+        companyWatchCourseTopTenTask(3,0,1);
+        companyWatchCourseTopTenTask(3,1,1);
+        companyWatchCourseTopTenTask(4,0,1);
+        companyWatchCourseTopTenTask(4,1,1);
 
-        companyWatchCourseTopTenTask(3,0);
-        companyWatchCourseTopTenTask(3,1);
 
-        companyWatchCourseTopTenTask(4,0);
-        companyWatchCourseTopTenTask(4,1);
     }
 
     @Override
-    public void companyWatchCourseTopTenTask(Integer type,Integer statisticalType) {
+    public void companyWatchCourseTopTenTask(Integer type,Integer statisticalType,Integer userType) {
 
         AnalysisPreviewQueryDTO dto = new AnalysisPreviewQueryDTO();
         dto.setType(type);
@@ -232,13 +253,14 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
         dto.setStartTime(startDate);
         dto.setEndTime(endDate);
+        dto.setUserType(userType);
 
         List<DeaMemberTopTenDTO> deaMemberTopTenDTOS = deaMemberTopTen(dto);
-        redisCache.setCacheObject(String.format("%s:%d:%d", CHARTS_MEMBER_TOP_TEN_WATCH, type,statisticalType), deaMemberTopTenDTOS);
+        redisCache.setCacheObject(String.format("%s:%d:%d:%d", CHARTS_MEMBER_TOP_TEN_WATCH, type,statisticalType,userType), deaMemberTopTenDTOS);
     }
 
     @Override
-    public void watchCourseTopTenTask(Integer type,Integer statisticalType,String sort) {
+    public void watchCourseTopTenTask(Integer type,Integer statisticalType,Integer userType,String sort) {
         AnalysisPreviewQueryDTO dto = new AnalysisPreviewQueryDTO();
         dto.setType(type);
         dto.setStatisticalType(statisticalType);
@@ -275,111 +297,181 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
         dto.setStartTime(startDate);
         dto.setEndTime(endDate);
-
+        dto.setUserType(userType);
         List<CourseStatsDTO> courseStatsDTOS = watchCourseTopTen(dto);
 
-        redisCache.setCacheObject( String.format("%s:%d:%d:%s", CHARTS_WATCH_TOP_TEN, type,statisticalType,sort), courseStatsDTOS);
+        redisCache.setCacheObject( String.format("%s:%d:%d:%d:%s", CHARTS_WATCH_TOP_TEN, type,statisticalType,userType,sort), courseStatsDTOS);
     }
 
     public void watchCourseTopTenTask0(){
-        watchCourseTopTenTask(0,0,"DESC");
-        watchCourseTopTenTask(0,0,"ASC");
+        watchCourseTopTenTask(0,0,0,"DESC");
+        watchCourseTopTenTask(0,0,0,"ASC");
+        watchCourseTopTenTask(0,1,0,"DESC");
+        watchCourseTopTenTask(0,1,0,"ASC");
+        watchCourseTopTenTask(0,2,0,"DESC");
+        watchCourseTopTenTask(0,2,0,"ASC");
+        watchCourseTopTenTask(0,3,0,"DESC");
+        watchCourseTopTenTask(0,3,0,"ASC");
+
+        watchCourseTopTenTask(0,0,0,"DESC");
+        watchCourseTopTenTask(0,0,0,"ASC");
+        watchCourseTopTenTask(0,1,0,"DESC");
+        watchCourseTopTenTask(0,1,0,"ASC");
+        watchCourseTopTenTask(0,2,0,"DESC");
+        watchCourseTopTenTask(0,2,0,"ASC");
+        watchCourseTopTenTask(0,3,0,"DESC");
+        watchCourseTopTenTask(0,3,0,"ASC");
+    }
 
-        watchCourseTopTenTask(0,1,"DESC");
-        watchCourseTopTenTask(0,1,"ASC");
+    public void watchCourseTopTenTask1(){
+        watchCourseTopTenTask(1,0,0,"DESC");
+        watchCourseTopTenTask(1,0,0,"ASC");
 
-        watchCourseTopTenTask(0,2,"DESC");
-        watchCourseTopTenTask(0,2,"ASC");
+        watchCourseTopTenTask(1,0,1,"DESC");
+        watchCourseTopTenTask(1,0,1,"ASC");
 
-        watchCourseTopTenTask(0,3,"DESC");
-        watchCourseTopTenTask(0,3,"ASC");
-    }
 
-    public void watchCourseTopTenTask1(){
-        watchCourseTopTenTask(1,0,"DESC");
-        watchCourseTopTenTask(1,0,"ASC");
+        watchCourseTopTenTask(1,1,0,"DESC");
+        watchCourseTopTenTask(1,1,0,"ASC");
+
+        watchCourseTopTenTask(1,1,1,"DESC");
+        watchCourseTopTenTask(1,1,1,"ASC");
+
+        watchCourseTopTenTask(1,2,0,"DESC");
+        watchCourseTopTenTask(1,2,0,"ASC");
+
+        watchCourseTopTenTask(1,2,1,"DESC");
+        watchCourseTopTenTask(1,2,1,"ASC");
 
-        watchCourseTopTenTask(1,1,"DESC");
-        watchCourseTopTenTask(1,1,"ASC");
 
-        watchCourseTopTenTask(1,2,"DESC");
-        watchCourseTopTenTask(1,2,"ASC");
+        watchCourseTopTenTask(1,3,0,"DESC");
+        watchCourseTopTenTask(1,3,0,"ASC");
 
-        watchCourseTopTenTask(1,3,"DESC");
-        watchCourseTopTenTask(1,3,"ASC");
+        watchCourseTopTenTask(1,3,1,"DESC");
+        watchCourseTopTenTask(1,3,1,"ASC");
 
+        watchCourseTopTenTask(2,0,0,"DESC");
+        watchCourseTopTenTask(2,0,0,"ASC");
 
-        watchCourseTopTenTask(2,0,"DESC");
-        watchCourseTopTenTask(2,0,"ASC");
+        watchCourseTopTenTask(2,0,1,"DESC");
+        watchCourseTopTenTask(2,0,1,"ASC");
 
-        watchCourseTopTenTask(2,1,"DESC");
-        watchCourseTopTenTask(2,1,"ASC");
+        watchCourseTopTenTask(2,1,0,"DESC");
+        watchCourseTopTenTask(2,1,0,"ASC");
 
-        watchCourseTopTenTask(2,2,"DESC");
-        watchCourseTopTenTask(2,2,"ASC");
+        watchCourseTopTenTask(2,1,1,"DESC");
+        watchCourseTopTenTask(2,1,1,"ASC");
 
-        watchCourseTopTenTask(2,3,"DESC");
-        watchCourseTopTenTask(2,3,"ASC");
+        watchCourseTopTenTask(2,2,0,"DESC");
+        watchCourseTopTenTask(2,2,0,"ASC");
 
+        watchCourseTopTenTask(2,2,1,"DESC");
+        watchCourseTopTenTask(2,2,1,"ASC");
 
-        watchCourseTopTenTask(3,0,"DESC");
-        watchCourseTopTenTask(3,0,"ASC");
 
-        watchCourseTopTenTask(3,1,"DESC");
-        watchCourseTopTenTask(3,1,"ASC");
+        watchCourseTopTenTask(2,3,0,"DESC");
+        watchCourseTopTenTask(2,3,0,"ASC");
 
-        watchCourseTopTenTask(3,2,"DESC");
-        watchCourseTopTenTask(3,2,"ASC");
+        watchCourseTopTenTask(2,3,1,"DESC");
+        watchCourseTopTenTask(2,3,1,"ASC");
 
-        watchCourseTopTenTask(3,3,"DESC");
-        watchCourseTopTenTask(3,3,"ASC");
+        watchCourseTopTenTask(3,0,0,"DESC");
+        watchCourseTopTenTask(3,0,0,"ASC");
 
+        watchCourseTopTenTask(3,0,1,"DESC");
+        watchCourseTopTenTask(3,0,1,"ASC");
 
-        watchCourseTopTenTask(4,0,"DESC");
-        watchCourseTopTenTask(4,0,"ASC");
+        watchCourseTopTenTask(3,1,0,"DESC");
+        watchCourseTopTenTask(3,1,0,"ASC");
 
-        watchCourseTopTenTask(4,1,"DESC");
-        watchCourseTopTenTask(4,1,"ASC");
+        watchCourseTopTenTask(3,1,1,"DESC");
+        watchCourseTopTenTask(3,1,1,"ASC");
 
-        watchCourseTopTenTask(4,2,"DESC");
-        watchCourseTopTenTask(4,2,"ASC");
+        watchCourseTopTenTask(3,2,0,"DESC");
+        watchCourseTopTenTask(3,2,0,"ASC");
 
-        watchCourseTopTenTask(4,3,"DESC");
-        watchCourseTopTenTask(4,3,"ASC");
+        watchCourseTopTenTask(3,2,1,"DESC");
+        watchCourseTopTenTask(3,2,1,"ASC");
+
+        watchCourseTopTenTask(3,3,0,"DESC");
+        watchCourseTopTenTask(3,3,0,"ASC");
+
+        watchCourseTopTenTask(3,3,1,"DESC");
+        watchCourseTopTenTask(3,3,1,"ASC");
+
+        watchCourseTopTenTask(4,0,0,"DESC");
+        watchCourseTopTenTask(4,0,0,"ASC");
+
+        watchCourseTopTenTask(4,0,1,"DESC");
+        watchCourseTopTenTask(4,0,1,"ASC");
+
+        watchCourseTopTenTask(4,1,0,"DESC");
+        watchCourseTopTenTask(4,1,0,"ASC");
+        watchCourseTopTenTask(4,2,0,"DESC");
+        watchCourseTopTenTask(4,2,0,"ASC");
+        watchCourseTopTenTask(4,3,0,"DESC");
+        watchCourseTopTenTask(4,3,0,"ASC");
+
+        watchCourseTopTenTask(4,1,1,"DESC");
+        watchCourseTopTenTask(4,1,1,"ASC");
+        watchCourseTopTenTask(4,2,1,"DESC");
+        watchCourseTopTenTask(4,2,1,"ASC");
+        watchCourseTopTenTask(4,3,1,"DESC");
+        watchCourseTopTenTask(4,3,1,"ASC");
     }
 
 
     public void rewardMoneyTask15Minutes(){
-        rewardMoneyTopTenTask(0,0);
-        rewardMoneyTopTenTask(0,1);
+        rewardMoneyTopTenTask(0,0,0);
+        rewardMoneyTopTenTask(0,1,0);
 
-        rewardMoneyTradeTask(0);
+        rewardMoneyTradeTask(0,0);
+
+        rewardMoneyTopTenTask(0,0,1);
+        rewardMoneyTopTenTask(0,1,1);
+
+        rewardMoneyTradeTask(0,1);
     }
 
 
     public void rewardMoneyTaskEveryday(){
-        rewardMoneyTopTenTask(1,0);
-        rewardMoneyTopTenTask(1,1);
+        rewardMoneyTopTenTask(1,0,0);
+        rewardMoneyTopTenTask(1,1,0);
+
+
+        rewardMoneyTopTenTask(2,0,0);
+        rewardMoneyTopTenTask(2,1,0);
+
+        rewardMoneyTopTenTask(3,0,0);
+        rewardMoneyTopTenTask(3,1,0);
 
+        rewardMoneyTopTenTask(4,0,0);
+        rewardMoneyTopTenTask(4,1,0);
 
-        rewardMoneyTopTenTask(2,0);
-        rewardMoneyTopTenTask(2,1);
 
-        rewardMoneyTopTenTask(3,0);
-        rewardMoneyTopTenTask(3,1);
+        rewardMoneyTradeTask(1,0);
+        rewardMoneyTradeTask(2,0);
+        rewardMoneyTradeTask(3,0);
+        rewardMoneyTradeTask(4,0);
 
-        rewardMoneyTopTenTask(4,0);
-        rewardMoneyTopTenTask(4,1);
 
+        rewardMoneyTopTenTask(1,0,1);
+        rewardMoneyTopTenTask(1,1,1);
+        rewardMoneyTopTenTask(2,0,1);
+        rewardMoneyTopTenTask(2,1,1);
+        rewardMoneyTopTenTask(3,0,1);
+        rewardMoneyTopTenTask(3,1,1);
+        rewardMoneyTopTenTask(4,0,1);
+        rewardMoneyTopTenTask(4,1,1);
 
-        rewardMoneyTradeTask(1);
-        rewardMoneyTradeTask(2);
-        rewardMoneyTradeTask(3);
-        rewardMoneyTradeTask(4);
+        rewardMoneyTradeTask(1,1);
+        rewardMoneyTradeTask(2,1);
+        rewardMoneyTradeTask(3,1);
+        rewardMoneyTradeTask(4,1);
     }
 
     @Override
-    public void rewardMoneyTopTenTask(Integer type,Integer dataType) {
+    public void rewardMoneyTopTenTask(Integer type,Integer dataType,Integer userType) {
         AnalysisPreviewQueryDTO dto = new AnalysisPreviewQueryDTO();
         dto.setType(type);
         dto.setDataType(dataType);
@@ -415,15 +507,16 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
         dto.setStartTime(startDate);
         dto.setEndTime(endDate);
+        dto.setUserType(userType);
 
         List<RewardMoneyTopTenDTO> rewardMoneyTopTenDTOS = rewardMoneyTopTen(dto);
 
-        redisCache.setCacheObject( String.format("%s:%d:%d", CHARTS_REWARD_MONEY_TOP_TEN, type,dataType), rewardMoneyTopTenDTOS);
+        redisCache.setCacheObject( String.format("%s:%d:%d:%d", CHARTS_REWARD_MONEY_TOP_TEN, type,dataType,userType), rewardMoneyTopTenDTOS);
 
     }
 
     @Override
-    public void rewardMoneyTradeTask(Integer type) {
+    public void rewardMoneyTradeTask(Integer type,Integer userType) {
         AnalysisPreviewQueryDTO dto = new AnalysisPreviewQueryDTO();
         dto.setType(type);
 
@@ -458,8 +551,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
         dto.setStartTime(startDate);
         dto.setEndTime(endDate);
+        dto.setUserType(userType);
         List<RewardMoneyTrendDTO> rewardMoneyTrendDTOS = rewardMoneyTrendDTO(dto);
-        redisCache.setCacheObject( String.format("%s:%d", CHARTS_REWARD_MONEY_TREND, type), rewardMoneyTrendDTOS);
+        redisCache.setCacheObject( String.format("%s:%d:%d", CHARTS_REWARD_MONEY_TREND, type,userType), rewardMoneyTrendDTOS);
 
     }
 

+ 81 - 9
fs-service-system/src/main/resources/mapper/statis/ConsumptionBalanceMapper.xml

@@ -16,7 +16,8 @@
                 (SELECT COUNT(*) FROM COMPANY_USER) AS group_mgr_count,
                 (SELECT COUNT(*) FROM FS_USER) AS member_count,
                 (SELECT COUNT(*) FROM FS_USER WHERE STATUS=1) AS normal_num,
-                (SELECT COUNT(*) FROM FS_USER WHERE STATUS=0) AS black_num
+                (SELECT COUNT(*) FROM FS_USER WHERE STATUS=0) AS black_num,
+                (select COUNT(*) FROM qw_user) AS qw_member_num
     </select>
     <select id="analysisPreview" resultType="com.fs.statis.dto.AnalysisPreviewDTO">
         -- 观看人数
@@ -37,31 +38,93 @@
                (select 0) as reward_money
     </select>
     <select id="queryWatchCount" resultType="java.lang.Long">
-        select count(log_id) from fs_course_watch_log where create_time between #{startTime} and #{endTime}
+        select count(log_id) from fs_course_watch_log
+        <where>
+            <if test="userType != null">
+                and send_type=${userType}
+            </if>
+            <if test="startTime != null and endTime != null">
+                and create_time between #{startTime} and #{endTime}
+            </if>
+        </where>
     </select>
     <select id="queryCompletedUserCount" resultType="java.lang.Long">
-        select count(DISTINCT user_id) from fs_course_watch_log where finish_time is not null and create_time between #{startTime} and #{endTime}
+        select count(DISTINCT user_id) from fs_course_watch_log
+        <where>
+            finish_time is not null
+            <if test="userType != null">
+                and send_type=${userType}
+            </if>
+            <if test="startTime != null and endTime != null">
+                and create_time between #{startTime} and #{endTime}
+            </if>
+        </where>
     </select>
     <select id="queryWatchUserCount" resultType="java.lang.Long">
-        select count(distinct user_id) from fs_course_watch_log where create_time between #{startTime} and #{endTime}
+        select count(distinct user_id) from fs_course_watch_log
+        <where>
+            <if test="userType != null">
+                and send_type=${userType}
+            </if>
+            <if test="startTime != null and endTime != null">
+                and create_time between #{startTime} and #{endTime}
+            </if>
+
+        </where>
     </select>
     <select id="queryCompletedCount" resultType="java.lang.Long">
         SELECT COUNT(log_id) FROM fs_course_watch_log
-        WHERE finish_time IS NOT NULL AND create_time BETWEEN #{startTime} AND #{endTime}
+         <where>
+             finish_time IS NOT NULL
+             <if test="startTime != null and endTime != null">
+                 AND create_time BETWEEN #{startTime} AND #{endTime}
+             </if>
+         </where>
     </select>
     <select id="queryAnswerMemberCount" resultType="java.lang.Long">
         SELECT COUNT(DISTINCT user_id) FROM fs_course_answer_logs
-        WHERE create_time BETWEEN #{startTime} AND #{endTime}
+       <where>
+           <if test="startTime != null and endTime != null">
+               create_time BETWEEN #{startTime} AND #{endTime}
+           </if>
+       </where>
     </select>
     <select id="queryCorrectUserCount" resultType="java.lang.Long">
         SELECT COUNT(DISTINCT user_id) FROM fs_course_answer_logs
-        WHERE is_right = 1 AND create_time BETWEEN #{startTime} AND #{endTime}
+        <where>
+            is_right = 1
+            <if test="startTime != null and endTime != null">
+                and create_time BETWEEN #{startTime} AND #{endTime}
+            </if>
+        </where>
     </select>
     <select id="queryRewardCount" resultType="java.lang.Long">
-        select count(*) from company_red_package_logs where operate_type=1 AND create_time BETWEEN #{startTime} AND #{endTime}
+        select count(*) from company_red_package_logs rpl
+            left join fs_course_watch_log log
+            on rpl.watch_log_id=log.log_id
+        <where>
+            rpl.operate_type=1
+            <if test="startTime != null and endTime != null">
+                and rpl.create_time BETWEEN #{startTime} AND #{endTime}
+            </if>
+            <if test="userType != null">
+                and log.send_type = ${userType}
+            </if>
+        </where>
     </select>
     <select id="queryRewardMoney" resultType="java.math.BigDecimal">
-        select sum(up_money) from company_red_package_logs where operate_type=1 AND create_time BETWEEN #{startTime} AND #{endTime}
+        select sum(up_money) from company_red_package_logs
+        left join fs_course_watch_log log
+        on rpl.watch_log_id=log.log_id
+        <where>
+            rpl.operate_type=1
+            <if test="startTime != null and endTime != null">
+                and rpl.create_time BETWEEN #{startTime} AND #{endTime}
+            </if>
+            <if test="userType != null">
+                and log.send_type = ${userType}
+            </if>
+        </where>
     </select>
     <select id="smsBalance" resultType="java.lang.Long">
         select sum(remain_sms_count) from company_sms
@@ -90,6 +153,9 @@
             <if test="endTime != null">
                 AND create_time <![CDATA[<]]> #{endTime}
             </if>
+            <if test="userType != null">
+                AND send_type = ${userType}
+            </if>
         </where>
         GROUP BY
         start_date
@@ -114,6 +180,9 @@
             <if test="endTime != null">
                 AND create_time <![CDATA[<]]> #{endTime}
             </if>
+            <if test="userType != null">
+                AND send_type = ${userType}
+            </if>
         </where>
         GROUP BY company_id
         limit 10
@@ -136,6 +205,9 @@
             <if test="endTime != null">
                 AND w.create_time <![CDATA[<]]> #{endTime}
             </if>
+            <if test="userType != null">
+                AND send_type = ${userType}
+            </if>
         </where>
         GROUP BY
         w.course_id