Przeglądaj źródła

修改获取客户数量变化趋势的按天、月、年的请求方式

云殇忆 1 rok temu
rodzic
commit
36d34f976f

+ 4 - 3
ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/AttentionPoolStatisticsDao.java

@@ -4,13 +4,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.demo.entity.AttentionPoolStatistics;
 import com.ruoyi.demo.entity.bo.AttentionPoolStatisticsBo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 @Mapper
 public interface AttentionPoolStatisticsDao extends BaseMapper<AttentionPoolStatistics> {
     List<AttentionPoolStatistics> searchAllByUserId(String userId);
-    List<AttentionPoolStatisticsBo> selectAllByUserIdAndDay(String userId);
-    List<AttentionPoolStatisticsBo> selectAllByUserIdAndMonth(String userId);
-    List<AttentionPoolStatisticsBo> selectAllByUserIdAndYear(String userId);
+    List<AttentionPoolStatisticsBo> selectAllByUserIdAndDay(@Param("userId") String userId,@Param("days") List<String> days);
+    List<AttentionPoolStatisticsBo> selectAllByUserIdAndMonth(@Param("userId") String userId,@Param("months") List<String> months);
+    List<AttentionPoolStatisticsBo> selectAllByUserIdAndYear(@Param("userId") String userId,@Param("years") List<String> years);
 }

+ 26 - 6
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/DatabackServiceImpl.java

@@ -17,6 +17,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -93,12 +95,30 @@ public class DatabackServiceImpl implements DatabackService {
             condition = "day";
         List<AttentionPoolStatisticsBo> list = new ArrayList<>();
         if (condition != null){
-            if (condition.equals("day"))
-                list = attentionPoolStatisticsDao.selectAllByUserIdAndDay(userId);
-            if (condition.equals("month"))
-                list = attentionPoolStatisticsDao.selectAllByUserIdAndMonth(userId);
-            if (condition.equals("year"))
-                list = attentionPoolStatisticsDao.selectAllByUserIdAndYear(userId);
+            if (condition.equals("day")){
+                List<String> days = new ArrayList<>();
+                for (int i = 1;i <= 30;i++){
+                    days.add(LocalDateTime.now(ZoneId.of("Asia/Shanghai")).plusDays(-i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")).toString());
+                }
+//                System.out.println(days);
+                list = attentionPoolStatisticsDao.selectAllByUserIdAndDay(userId,days);
+            }
+            if (condition.equals("month")){
+                List<String> months = new ArrayList<>();
+                for (int i = 0;i < 12;i++){
+                    months.add(LocalDateTime.now(ZoneId.of("Asia/Shanghai")).plusMonths(-i).format(DateTimeFormatter.ofPattern("yyyy-MM")).toString());
+                }
+//                System.out.println(months);
+                list = attentionPoolStatisticsDao.selectAllByUserIdAndMonth(userId,months);
+            }
+            if (condition.equals("year")){
+                List<String> years = new ArrayList<>();
+                for (int i = 0;i < 5;i++){
+                    years.add(LocalDateTime.now(ZoneId.of("Asia/Shanghai")).plusYears(-i).format(DateTimeFormatter.ofPattern("yyyy")).toString());
+                }
+//                System.out.println(years);
+                list = attentionPoolStatisticsDao.selectAllByUserIdAndYear(userId,years);
+            }
         }
 //        List<AttentionPoolStatistics> list = attentionPoolStatisticsDao.searchAllByUserId(userId);
         return list;

+ 9 - 0
ruoyi-demo/src/main/resources/mapper/demo/AttentionPoolStatisticsMapper.xml

@@ -38,6 +38,9 @@
             `bl_attention_pool_statistics`
         WHERE
             user_id = #{userId}
+        <foreach collection="days" item="day" open="and DATE_FORMAT(stat_time,'%Y-%m-%d') in (" separator="," close=")">
+            #{day,jdbcType=VARCHAR}
+        </foreach>
         GROUP BY
             DATE_FORMAT(stat_time,'%Y-%m-%d');
     </select>
@@ -52,6 +55,9 @@
             `bl_attention_pool_statistics`
         WHERE
             user_id = #{userId}
+        <foreach collection="months" item="month" open="and DATE_FORMAT(stat_time,'%Y-%m') in (" separator="," close=")">
+            #{month,jdbcType=VARCHAR}
+        </foreach>
         GROUP BY
             DATE_FORMAT(stat_time,'%Y-%m');
     </select>
@@ -66,6 +72,9 @@
             `bl_attention_pool_statistics`
         WHERE
             user_id = #{userId}
+        <foreach collection="years" item="year" open="and DATE_FORMAT(stat_time,'%Y') in (" separator="," close=")">
+            #{year,jdbcType=VARCHAR}
+        </foreach>
         GROUP BY
             DATE_FORMAT(stat_time,'%Y');
     </select>