完成计算作品总数和近7天作品总数接口。

This commit is contained in:
haotianmingyue 2024-11-08 14:45:01 +08:00
parent fb30a58c74
commit 758553cc47
10 changed files with 146 additions and 1 deletions

View File

@ -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<SeUserWorkCountDto> seUserWorkCount = sysUserWorkCountService.getSeUserWorkCount();
ajax.put("seUserWorkCount", seUserWorkCount);
return ajax;
}
else{
return error("无权限访问");
}
}
// 不能这样用啊,
// @PostMapping("/updateUserOnlineTime")
public AjaxResult updateUserOnlineTime(@RequestParam("duration") String duration){

View File

@ -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("更新昨天的统计用户作品总数数据成功");
}
}
}
}

View File

@ -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;
}
}

View File

@ -58,4 +58,6 @@ public interface UserWorkMapper
* @return 结果
*/
public int deleteUserWorkByWorkIds(Long[] workIds);
public Long getUserWorkCount();
}

View File

@ -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<SeUserWorkCountDto> getSeUserWorkCount();
}

View File

@ -58,4 +58,6 @@ public interface IUserWorkService
* @return 结果
*/
public int deleteUserWorkByWorkId(Long workId);
public Long getUserWorkCount();
}

View File

@ -13,7 +13,7 @@ import java.util.List;
@Service
public class ISysUserCountServiceImpl implements ISysUserCountService {
public class SysUserCountServiceImpl implements ISysUserCountService {
@Autowired
private ISysUserService sysUserService;

View File

@ -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<SeUserWorkCountDto> getSeUserWorkCount() {
LocalDate now = LocalDate.now();
LocalDate startDate = now.minusDays(8);
LocalDate endDate = now.minusDays(1);
List<SeUserWorkCountDto> seUserCount = dailySysService.getSeUserWorkCount(startDate, endDate);
return seUserCount;
}
}

View File

@ -92,4 +92,10 @@ public class UserWorkServiceImpl implements IUserWorkService
{
return userWorkMapper.deleteUserWorkByWorkId(workId);
}
@Override
public Long getUserWorkCount()
{
return userWorkMapper.getUserWorkCount();
}
}

View File

@ -127,4 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{workId}
</foreach>
</delete>
<select id="getUserWorkCount" resultType="Long">
select count(*) from user_work
</select>
</mapper>