xdd 1 mesiac pred
rodič
commit
cd736a6a7f

+ 9 - 1
fs-admin/src/main/java/com/fs/api/controller/IndexStatisticsController.java

@@ -10,8 +10,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import com.fs.common.core.domain.R;
 
+import java.util.ArrayList;
 import java.util.List;
 
+import static com.fs.statis.StatisticsRedisConstant.CHARTS_MEMBER_TOP_TEN_WATCH;
 import static com.fs.statis.StatisticsRedisConstant.DATA_OVERVIEW_DEALER_CHARTS;
 
 /**
@@ -76,7 +78,13 @@ public class IndexStatisticsController {
      */
     @PostMapping("/deaMemberTopTen")
     public R deaMemberTopTen(@RequestBody AnalysisPreviewQueryDTO param){
-        List<DeaMemberTopTenDTO> deaMemberTopTenDTOS = statisticsService.deaMemberTopTen(param);
+        Integer type = param.getType();
+        Integer statisticalType = param.getStatisticalType();
+
+        List<DeaMemberTopTenDTO> deaMemberTopTenDTOS = redisCache.getCacheObject(String.format("%s::%d::%d", CHARTS_MEMBER_TOP_TEN_WATCH, type, statisticalType));
+        if(deaMemberTopTenDTOS == null){
+            deaMemberTopTenDTOS = new ArrayList<>();
+        }
         return R.ok().put("data", deaMemberTopTenDTOS);
     }
 

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

@@ -25,6 +25,12 @@ public interface IStatisticsService {
      */
     void watchEndPlayTrendTask(Integer type);
 
+
+    /**
+     * 经销商会员观看TOP10
+     */
+    void companyWatchCourseTopTenTask(Integer type,Integer statisticalType);
+
     /**
      * 课程观看TOP10
      */

+ 69 - 1
fs-service-system/src/main/java/com/fs/statis/service/impl/StatisticsServiceImpl.java

@@ -24,9 +24,10 @@ import java.time.format.DateTimeFormatter;
 import java.time.temporal.TemporalAdjusters;
 import java.util.List;
 
+import static com.fs.statis.StatisticsRedisConstant.CHARTS_MEMBER_TOP_TEN_WATCH;
 import static com.fs.statis.StatisticsRedisConstant.DATA_OVERVIEW_DEALER_CHARTS;
 
-@Service
+@Service("statisticsService")
 public class StatisticsServiceImpl implements IStatisticsService {
     @Autowired
     private ConsumptionBalanceMapper consumptionBalanceMapper;
@@ -185,6 +186,73 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
     }
 
+
+    @Scheduled(cron = "0 0/15 * * * *")
+    public void companyWatchCourseTopTenTask0(){
+        companyWatchCourseTopTenTask(0,0);
+        companyWatchCourseTopTenTask(0,1);
+    }
+
+//    @Scheduled(cron = "0 0 1 * * *")
+    @Scheduled(cron = "0 0/1 * * * *")
+    public void companyWatchCourseTopTenTask1(){
+        companyWatchCourseTopTenTask(1,0);
+        companyWatchCourseTopTenTask(1,1);
+
+        companyWatchCourseTopTenTask(2,0);
+        companyWatchCourseTopTenTask(2,1);
+
+
+        companyWatchCourseTopTenTask(3,0);
+        companyWatchCourseTopTenTask(3,1);
+
+        companyWatchCourseTopTenTask(4,0);
+        companyWatchCourseTopTenTask(4,1);
+    }
+
+    @Override
+    public void companyWatchCourseTopTenTask(Integer type,Integer statisticalType) {
+
+        AnalysisPreviewQueryDTO dto = new AnalysisPreviewQueryDTO();
+        dto.setType(type);
+        dto.setStatisticalType(statisticalType);
+
+        String startDate = "";
+        String endDate = "";
+
+        LocalDateTime now = LocalDateTime.now();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+
+        if(0 == type){
+            startDate = now.format(formatter);
+            endDate = now.format(formatter);
+        } else if(1 == type){
+            LocalDateTime yesterday = now.minusDays(1);
+            startDate = yesterday.format(formatter);
+            endDate = yesterday.format(formatter);
+        } else if(2 == type) {
+            LocalDateTime startOfWeek = now.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
+            startDate = startOfWeek.format(formatter);
+            endDate = now.format(formatter);
+        } else if(3 == type) {
+            LocalDateTime startOfMonth = now.withDayOfMonth(1);
+            startDate = startOfMonth.format(formatter);
+            endDate = now.format(formatter);
+        } else if(4 == type) {
+            LocalDateTime firstDayOfPreviousMonth = now.minusMonths(1).withDayOfMonth(1);
+            LocalDateTime lastDayOfPreviousMonth = now.withDayOfMonth(1).minusDays(1);
+            startDate = firstDayOfPreviousMonth.format(formatter);
+            endDate = lastDayOfPreviousMonth.format(formatter);
+        }
+
+        dto.setStartTime(startDate);
+        dto.setEndTime(endDate);
+
+        List<DeaMemberTopTenDTO> deaMemberTopTenDTOS = deaMemberTopTen(dto);
+        redisCache.setCacheObject(String.format("%s::%d::%d", CHARTS_MEMBER_TOP_TEN_WATCH, type,statisticalType), deaMemberTopTenDTOS);
+    }
+
     @Override
     public void watchCourseTopTenTask() {