From 758553cc47c5216d7bd2fcbe5b95b715f034ca41 Mon Sep 17 00:00:00 2001 From: haotianmingyue <2421912570@qq.com> Date: Fri, 8 Nov 2024 14:45:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=AE=A1=E7=AE=97=E4=BD=9C?= =?UTF-8?q?=E5=93=81=E6=80=BB=E6=95=B0=E5=92=8C=E8=BF=917=E5=A4=A9?= =?UTF-8?q?=E4=BD=9C=E5=93=81=E6=80=BB=E6=95=B0=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backstage/BackstageController.java | 20 +++++++++ .../backstage/daily/dailySysServer.java | 44 +++++++++++++++++++ .../system/domain/dto/SeUserWorkCountDto.java | 18 ++++++++ .../ruoyi/system/mapper/UserWorkMapper.java | 2 + .../service/ISysUserWorkCountService.java | 11 +++++ .../system/service/IUserWorkService.java | 2 + ...Impl.java => SysUserCountServiceImpl.java} | 2 +- .../impl/SysUserWorkCountServiceImpl.java | 39 ++++++++++++++++ .../service/impl/UserWorkServiceImpl.java | 6 +++ .../mapper/system/UserWorkMapper.xml | 3 ++ 10 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserWorkCountService.java rename ruoyi-system/src/main/java/com/ruoyi/system/service/impl/{ISysUserCountServiceImpl.java => SysUserCountServiceImpl.java} (94%) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserWorkCountServiceImpl.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/backstage/BackstageController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/backstage/BackstageController.java index f585e019..bc0b9847 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/backstage/BackstageController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/backstage/BackstageController.java @@ -12,6 +12,7 @@ import com.ruoyi.system.domain.DailyUser; import com.ruoyi.system.domain.UserInfo; import com.ruoyi.system.domain.UserWork; import com.ruoyi.system.domain.dto.SeUserCountDto; +import com.ruoyi.system.domain.dto.SeUserWorkCountDto; import com.ruoyi.system.domain.dto.UpdateUserStateDto; import com.ruoyi.system.service.*; import com.ruoyi.web.controller.backstage.daily.dailySysServer; @@ -50,6 +51,9 @@ public class BackstageController { @Autowired private IUserWorkService userWorkService; + @Autowired + private ISysUserWorkCountService sysUserWorkCountService; + @GetMapping("/getAllUserInfo") public TableDataInfo getAllUserInfo(){ @@ -141,6 +145,22 @@ public class BackstageController { } } + @GetMapping("/getSeUserWorkCount") + public AjaxResult getSeUserWorkCount(){ + if(isAtuthority(Constants.USER_TYPE_ADMIN)){ + AjaxResult ajax = new AjaxResult(); + + List seUserWorkCount = sysUserWorkCountService.getSeUserWorkCount(); + ajax.put("seUserWorkCount", seUserWorkCount); + return ajax; + } + else{ + return error("无权限访问"); + + } + } + + // 不能这样用啊, // @PostMapping("/updateUserOnlineTime") public AjaxResult updateUserOnlineTime(@RequestParam("duration") String duration){ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/backstage/daily/dailySysServer.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/backstage/daily/dailySysServer.java index 90a95a3e..e241b106 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/backstage/daily/dailySysServer.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/backstage/daily/dailySysServer.java @@ -5,6 +5,7 @@ import com.ruoyi.framework.websocket.UserOnlineTimeWebSocketServer; import com.ruoyi.system.domain.DailySys; import com.ruoyi.system.service.IDailySysService; import com.ruoyi.system.service.ISysUserCountService; +import com.ruoyi.system.service.ISysUserWorkCountService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -30,8 +31,12 @@ public class dailySysServer { @Autowired private ISysUserCountService sysUserCountService; + @Autowired + private ISysUserWorkCountService sysUserWorkCountService; + //计数当前系统用户数量并且插入daily_sys表(日期是昨天) // 每天凌晨2点计算一次 + // 应该是定时任务, 测试完毕后修改接口类型 @GetMapping("/UserCount") public void updateUserCount(){ @@ -74,7 +79,46 @@ public class dailySysServer { LOGGER.info("更新昨天的统计用户总数数据成功"); } } + } + //测试统计用户作品总数 + @GetMapping("/UserWorkCount") + public void updateUserWorkCount(){ + Long UserWorkCount = sysUserWorkCountService.getUserWorkCount(); + + System.out.println("当前用户作品数量为:"+UserWorkCount); + + LocalDate now = LocalDate.now(); + + LocalDate oneDayAgo = now.minusDays(1); + + DailySys dailySys = dailySysService.selectDailySysByDate(oneDayAgo); + + // 今天未统计过, 统计时一定要先判断这个, 别的定时任务可能会先插入数据. + if (dailySys == null){ + LOGGER.info("计数昨天的用户作品总数, 并插入数据"); + + DailySys dailySys1 = new DailySys(); + dailySys1.settWork(UserWorkCount); + dailySys1.setDate(oneDayAgo); + + int back = dailySysService.insertDailySys(dailySys1); + if(back == 0){ + LOGGER.info("插入昨天的统计用户作品总数数据失败"); + } else{ + LOGGER.info("插入昨天的统计用户作品总数数据成功"); + } + } + // 已有其他任务插入过数据, 后期直接写在一起, + else{ + dailySys.settWork(UserWorkCount); + int back = dailySysService.updateDailySys(dailySys); + if(back == 0){ + LOGGER.info("更新昨天的统计用户作品总数数据失败"); + } else{ + LOGGER.info("更新昨天的统计用户作品总数数据成功"); + } + } } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SeUserWorkCountDto.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SeUserWorkCountDto.java index d4397162..7851d9af 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SeUserWorkCountDto.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/SeUserWorkCountDto.java @@ -1,4 +1,22 @@ package com.ruoyi.system.domain.dto; +import java.time.LocalDate; + public class SeUserWorkCountDto { + private Long tWork; + private LocalDate date; + + public Long gettWork() { + return tWork; + } + public void settWork(Long tWork) { + this.tWork = tWork; + } + public LocalDate getDate() { + return date; + } + + public void setDate(LocalDate date) { + this.date = date; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserWorkMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserWorkMapper.java index 3345125f..88a78e71 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserWorkMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserWorkMapper.java @@ -58,4 +58,6 @@ public interface UserWorkMapper * @return 结果 */ public int deleteUserWorkByWorkIds(Long[] workIds); + + public Long getUserWorkCount(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserWorkCountService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserWorkCountService.java new file mode 100644 index 00000000..9eb5bd1e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserWorkCountService.java @@ -0,0 +1,11 @@ +package com.ruoyi.system.service; + +import com.ruoyi.system.domain.dto.SeUserCountDto; +import com.ruoyi.system.domain.dto.SeUserWorkCountDto; + +import java.util.List; + +public interface ISysUserWorkCountService { + public Long getUserWorkCount(); + public List getSeUserWorkCount(); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserWorkService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserWorkService.java index abee4c01..93a0e214 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserWorkService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserWorkService.java @@ -58,4 +58,6 @@ public interface IUserWorkService * @return 结果 */ public int deleteUserWorkByWorkId(Long workId); + + public Long getUserWorkCount(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ISysUserCountServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserCountServiceImpl.java similarity index 94% rename from ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ISysUserCountServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserCountServiceImpl.java index a4c685b7..362ef201 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ISysUserCountServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserCountServiceImpl.java @@ -13,7 +13,7 @@ import java.util.List; @Service -public class ISysUserCountServiceImpl implements ISysUserCountService { +public class SysUserCountServiceImpl implements ISysUserCountService { @Autowired private ISysUserService sysUserService; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserWorkCountServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserWorkCountServiceImpl.java new file mode 100644 index 00000000..ba1527a1 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserWorkCountServiceImpl.java @@ -0,0 +1,39 @@ +package com.ruoyi.system.service.impl; + +import com.ruoyi.system.domain.UserWork; +import com.ruoyi.system.domain.dto.SeUserCountDto; +import com.ruoyi.system.domain.dto.SeUserWorkCountDto; +import com.ruoyi.system.service.IDailySysService; +import com.ruoyi.system.service.ISysUserWorkCountService; +import com.ruoyi.system.service.IUserWorkService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.List; + + +@Service +public class SysUserWorkCountServiceImpl implements ISysUserWorkCountService { + + @Autowired + private IUserWorkService userWorkService; + + @Autowired + private IDailySysService dailySysService; + + @Override + public Long getUserWorkCount() { + Long userWorkCount = userWorkService.getUserWorkCount(); + return userWorkCount; + } + + @Override + public List getSeUserWorkCount() { + LocalDate now = LocalDate.now(); + LocalDate startDate = now.minusDays(8); + LocalDate endDate = now.minusDays(1); + List seUserCount = dailySysService.getSeUserWorkCount(startDate, endDate); + return seUserCount; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserWorkServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserWorkServiceImpl.java index 0986e96d..b25cc07e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserWorkServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserWorkServiceImpl.java @@ -92,4 +92,10 @@ public class UserWorkServiceImpl implements IUserWorkService { return userWorkMapper.deleteUserWorkByWorkId(workId); } + + @Override + public Long getUserWorkCount() + { + return userWorkMapper.getUserWorkCount(); + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/UserWorkMapper.xml b/ruoyi-system/src/main/resources/mapper/system/UserWorkMapper.xml index 4530d666..c1dbf61b 100644 --- a/ruoyi-system/src/main/resources/mapper/system/UserWorkMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/UserWorkMapper.xml @@ -127,4 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{workId} + \ No newline at end of file