From cc4108c6df3e1f856f1b9f5021c8fc0c528f15c6 Mon Sep 17 00:00:00 2001 From: zhangjinli Date: Thu, 30 Jun 2022 10:22:41 +0800 Subject: [PATCH] zh --- .../manage/StatisticsController.java | 35 +++++++++++++++++-- .../zh/project0512/mapper/AdminMapper.java | 26 ++++++++------ 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/zh/project0512/controller/manage/StatisticsController.java b/src/main/java/com/zh/project0512/controller/manage/StatisticsController.java index da58b99..9871d4c 100644 --- a/src/main/java/com/zh/project0512/controller/manage/StatisticsController.java +++ b/src/main/java/com/zh/project0512/controller/manage/StatisticsController.java @@ -1,5 +1,6 @@ package com.zh.project0512.controller.manage; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.fasterxml.jackson.annotation.JsonFormat; import com.zh.project0512.annotation.AdminTokenValid; @@ -20,7 +21,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; /** * 首页数据统计 @@ -33,6 +40,7 @@ public class StatisticsController { private AdminMapper adminMapper; @Resource IRankService rankService; + @Operation(summary = "总数据") @PostMapping("/data1") @AdminTokenValid @@ -76,14 +84,35 @@ public class StatisticsController { break; default: } - qw.between("t1.creatAt",before, LocalDateTime.now()); + qw.between("t1.creatAt", before, LocalDateTime.now()); } else { qw.ge(param.getBeginTime() != null, "date_format(creatAt, '%Y-%m-%d')", param.getBeginTime()); qw.le(param.getEndTime() != null, "date_format(creatAt, '%Y-%m-%d')", param.getEndTime()); } - adminMapper.statistics2(qw); - return Result.success(adminMapper.statistics2(qw), "请求成功"); + List videoDataBydDay = adminMapper.statistics2(qw); + ArrayList res = new ArrayList<>(); + JSONObject first = videoDataBydDay.get(0); + JSONObject last = videoDataBydDay.get(videoDataBydDay.size() - 1); + DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate dat = LocalDate.parse((CharSequence) first.get("dat"), df); + LocalDate dat2 = LocalDate.parse((CharSequence) last.get("dat"), df); + System.out.println(dat + "" + dat2); + System.out.println(ChronoUnit.DAYS.between(dat, dat2)); + for (int i = 0; i <= ChronoUnit.DAYS.between(dat, dat2); i++) { + LocalDate today = dat.plusDays(i); + JSONObject obj = null; +// Stream dat1 = videoDataBydDay.stream().filter(x -> LocalDate.parse((CharSequence) x.get("dat"), df) == today); + for (JSONObject o : videoDataBydDay) { + if (LocalDate.parse((CharSequence) o.get("dat"), df).equals(today)) { + obj = o; + break; + } + } + res.add(obj == null ? new JSONObject().fluentPut("dat", today) : obj); + } + return Result.success(res, "请求成功"); } + @Operation(summary = "排行列表") @PostMapping("/data3") @AdminTokenValid diff --git a/src/main/java/com/zh/project0512/mapper/AdminMapper.java b/src/main/java/com/zh/project0512/mapper/AdminMapper.java index 583b5a4..a4c8e6d 100644 --- a/src/main/java/com/zh/project0512/mapper/AdminMapper.java +++ b/src/main/java/com/zh/project0512/mapper/AdminMapper.java @@ -9,9 +9,11 @@ import com.zh.project0512.model.Video; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

- * Mapper 接口 + * Mapper 接口 *

* * @author zh @@ -30,14 +32,16 @@ public interface AdminMapper extends BaseMapper { "sum(IFNULL(v.recommendNum,0)) as recommendNumSum\n" + " from video as v ") JSONObject statistics1(); - @Select("SELECT \n" + - "IFNULL(sum(playNum),0) as playNumSum, \n" + - "IFNULL(sum(commendNum),0) as commendNumSum, \n" + - "IFNULL(sum(collectionNum),0) as collectionNumSum, \n" + - "IFNULL(sum(commentNum),0) as commentNumSum, \n" + - "IFNULL(sum(reSendNum),0) as reSendNumSum, \n" + - "IFNULL(sum(recommendNum),0) as recommendNumSum\n" + - " from video " + - " ${ew.customSqlSegment}") - JSONObject statistics2( @Param("ew") Wrapper