Przeglądaj źródła

用户积分每日消耗统计

三七 2 tygodni temu
rodzic
commit
ae3bf90655

+ 8 - 4
fs-admin/src/main/java/com/fs/his/task/userIntegralTask.java

@@ -1,6 +1,7 @@
 package com.fs.his.task;
 
 
+import com.fs.his.domain.FsIntegralCount;
 import com.fs.his.service.IFsIntegralCountService;
 import com.fs.his.service.IFsUserIntegralLogsService;
 import lombok.AllArgsConstructor;
@@ -8,6 +9,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 @Slf4j
 @Component("userIntegralTask")
 @AllArgsConstructor
@@ -18,11 +21,12 @@ public class userIntegralTask {
 
     @Autowired
     private IFsIntegralCountService integralCountService;
-    /**
-    * 用户积分表 每日消耗统计 除掉看课获取的
-    */
-    public void UserIntegralCount(){
 
+    public void UserIntegralCount(){
+        log.info("=====用户积分每日消耗统计开始=====");
+        List<FsIntegralCount> list = integralLogsService.selectYesterdayIntegralGroupByLogType();
+        integralCountService.saveBatch(list);
+        log.info("=====用户积分每日消耗统计结束=====");
     }
 
 }

+ 11 - 0
fs-service/src/main/java/com/fs/his/mapper/FsUserIntegralLogsMapper.java

@@ -2,6 +2,7 @@ package com.fs.his.mapper;
 
 import com.fs.common.annotation.DataSource;
 import com.fs.common.enums.DataSourceType;
+import com.fs.his.domain.FsIntegralCount;
 import com.fs.his.domain.FsUserIntegralLogs;
 import com.fs.his.param.FsUserIntegralLogsListUParam;
 import com.fs.his.param.FsUserIntegralLogsParam;
@@ -162,4 +163,14 @@ public interface FsUserIntegralLogsMapper
      */
     @Select("select * from fs_user_integral_logs where user_id = #{userId} and log_type = #{logType} order by create_time desc limit 1")
     FsUserIntegralLogs getLast1LogByUserIdAndLogType(@Param("userId") Long userId, @Param("logType") Integer logType);
+
+    @Select("SELECT log_type, " +
+            "SUM(CASE WHEN integral > 0 THEN integral ELSE 0 END) AS integral_consume, " +
+            "SUM(CASE WHEN integral < 0 THEN ABS(integral) ELSE 0 END) AS integral_refund, " +
+            "DATE(create_time) AS consumption_date " +
+            "FROM fs_user_integral_logs " +
+            "WHERE log_type != 17 " +
+            "AND DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY) " +
+            "GROUP BY log_type, DATE(create_time)")
+    List<FsIntegralCount> selectYesterdayIntegralGroupByLogType();
 }

+ 3 - 0
fs-service/src/main/java/com/fs/his/service/IFsUserIntegralLogsService.java

@@ -1,6 +1,7 @@
 package com.fs.his.service;
 
 import com.fs.common.core.domain.R;
+import com.fs.his.domain.FsIntegralCount;
 import com.fs.his.domain.FsUserIntegralLogs;
 import com.fs.his.param.FsUserAddIntegralParam;
 import com.fs.his.param.FsUserAddIntegralTemplateParam;
@@ -86,4 +87,6 @@ public interface IFsUserIntegralLogsService
 
     //app获取新人福利完成情况
     R getNewcomerBenefits(Long userId);
+
+    List<FsIntegralCount> selectYesterdayIntegralGroupByLogType();
 }

+ 6 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsUserIntegralLogsServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.json.JSONUtil;
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.DateUtils;
 import com.fs.his.config.IntegralConfig;
+import com.fs.his.domain.FsIntegralCount;
 import com.fs.his.domain.FsUser;
 import com.fs.his.domain.FsUserIntegralLogs;
 import com.fs.his.domain.FsUserNewTask;
@@ -555,4 +556,9 @@ public class FsUserIntegralLogsServiceImpl implements IFsUserIntegralLogsService
         map.put("isFinishFirstOrderPoint", isFinishFirstOrderPoint);
         return R.ok().put("data",map).put("isNewUser",isNewUser).put("createTime",createTime);
     }
+
+    @Override
+    public List<FsIntegralCount> selectYesterdayIntegralGroupByLogType() {
+        return fsUserIntegralLogsMapper.selectYesterdayIntegralGroupByLogType();
+    }
 }