用户管理差MR在线时长。
This commit is contained in:
parent
40cf99a12b
commit
9b73dcf9d9
@ -8,7 +8,6 @@ import com.ruoyi.common.constant.HttpStatus;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.domain.model.AppLoginBody;
|
||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
@ -18,7 +17,6 @@ import com.ruoyi.system.domain.*;
|
||||
import com.ruoyi.system.domain.dto.*;
|
||||
import com.ruoyi.system.service.*;
|
||||
import com.ruoyi.web.controller.app.baidu.GsonUtils;
|
||||
import com.ruoyi.web.controller.backstage.daily.dailySysServer;
|
||||
//import org.apache.commons.collections.map.HashedMap;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -52,7 +50,7 @@ public class BackstageController {
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Autowired
|
||||
private ISysUserCountService sysUserCountService;
|
||||
private ISysUserStService sysUserCountService;
|
||||
|
||||
@Autowired
|
||||
private IDailyUserService dailyUserService;
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
package com.ruoyi.web.controller.backstage;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 角色信息
|
||||
*
|
||||
* @author 详见 system/SysRoleController.java
|
||||
*/
|
||||
//@RestController
|
||||
//@RequestMapping("/system/role")
|
||||
public class SysBackRoleController {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -1,15 +1,14 @@
|
||||
package com.ruoyi.web.controller.backstage.daily;
|
||||
|
||||
|
||||
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.IDailyUserService;
|
||||
import com.ruoyi.system.service.ISysUserStService;
|
||||
import com.ruoyi.system.service.ISysUserWorkCountService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -28,8 +27,13 @@ public class dailySysServer {
|
||||
@Autowired
|
||||
private IDailySysService dailySysService;
|
||||
|
||||
|
||||
// 用户每天统计表
|
||||
@Autowired
|
||||
private ISysUserCountService sysUserCountService;
|
||||
private IDailyUserService dailyUserService;
|
||||
|
||||
@Autowired
|
||||
private ISysUserStService sysUserCountService;
|
||||
|
||||
@Autowired
|
||||
private ISysUserWorkCountService sysUserWorkCountService;
|
||||
@ -121,4 +125,49 @@ public class dailySysServer {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//测试统计每天用户在线时间总数,MR在线时间总数
|
||||
@GetMapping("/UserOnlineTime")
|
||||
public void updateUserOnlineTime(){
|
||||
|
||||
LocalDate now = LocalDate.now();
|
||||
|
||||
LocalDate oneDayAgo = now.minusDays(1);
|
||||
|
||||
|
||||
Long tOnlineTime = dailyUserService.getTotalOnlineTime(oneDayAgo);
|
||||
Long tMRTime = dailyUserService.getTotalMRTime(oneDayAgo);
|
||||
|
||||
System.out.println("昨天用户总在线时间为:"+tOnlineTime+" 昨天用户总的MR在线时间: "+tMRTime);
|
||||
|
||||
//写入系统每天统计数据
|
||||
DailySys dailySys = dailySysService.selectDailySysByDate(oneDayAgo);
|
||||
if (dailySys == null){
|
||||
LOGGER.info("计数昨天的用户作品总数, 并插入数据");
|
||||
|
||||
DailySys dailySys1 = new DailySys();
|
||||
dailySys1.settOnlineTime(tOnlineTime);
|
||||
dailySys1.settMrTime(tMRTime);
|
||||
dailySys1.setDate(oneDayAgo);
|
||||
|
||||
int back = dailySysService.insertDailySys(dailySys1);
|
||||
if(back == 0){
|
||||
LOGGER.info("插入昨天的统计用户在线/MR时长数据失败");
|
||||
} else{
|
||||
LOGGER.info("插入昨天的统计用户在线/MR时长总数数据成功");
|
||||
}
|
||||
}
|
||||
// 已有其他任务插入过数据, 后期直接写在一起,
|
||||
else{
|
||||
dailySys.settOnlineTime(tOnlineTime);
|
||||
dailySys.settMrTime(tMRTime);
|
||||
int back = dailySysService.updateDailySys(dailySys);
|
||||
if(back == 0){
|
||||
LOGGER.info("更新昨天的统计用户在线/MR时长数据失败");
|
||||
} else{
|
||||
LOGGER.info("更新昨天的统计用户在线/MR时长数据成功");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -231,12 +231,12 @@ public class SysLoginService
|
||||
if (userType.equals(Constants.COMMON_USER)){
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, "user.login.not.authority"));
|
||||
throw new ServiceException("无后台访问权限");
|
||||
// return ;
|
||||
|
||||
}
|
||||
if (userStatus.equals("1")){
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, "user.login.not.authority"));
|
||||
throw new ServiceException("账号已停用");
|
||||
// return ;
|
||||
|
||||
}
|
||||
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
package com.ruoyi.system.domain.dto;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class SeOnlineTimeDto {
|
||||
|
||||
private Long tOnlineTime;
|
||||
private LocalDate date;
|
||||
|
||||
public Long gettOnlineTime() {
|
||||
return tOnlineTime;
|
||||
}
|
||||
|
||||
public void settOnlineTime(Long tOnlineTime) {
|
||||
this.tOnlineTime = tOnlineTime;
|
||||
}
|
||||
|
||||
public LocalDate getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(LocalDate date) {
|
||||
this.date = date;
|
||||
}
|
||||
}
|
||||
@ -3,6 +3,7 @@ package com.ruoyi.system.mapper;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import com.ruoyi.system.domain.DailySys;
|
||||
import com.ruoyi.system.domain.dto.SeOnlineTimeDto;
|
||||
import com.ruoyi.system.domain.dto.SeUserCountDto;
|
||||
import com.ruoyi.system.domain.dto.SeUserWorkCountDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -37,6 +38,8 @@ public interface DailySysMapper
|
||||
|
||||
public List<SeUserWorkCountDto> selectDailySysWorkListBetweenDate(@Param("startDate")LocalDate startDate, @Param("endDate") LocalDate endDate);
|
||||
|
||||
public List<SeOnlineTimeDto> gettOnlineTime(@Param("startDate")LocalDate startDate, @Param("endDate") LocalDate endDate);
|
||||
|
||||
/**
|
||||
* 新增记录系统每天需要统计的任务
|
||||
*
|
||||
@ -69,6 +72,8 @@ public interface DailySysMapper
|
||||
*/
|
||||
public int deleteDailySysByDailySysIds(Long[] dailySysIds);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 计数系统中用户的总数
|
||||
* */
|
||||
|
||||
@ -67,4 +67,8 @@ public interface DailyUserMapper
|
||||
public int deleteDailyUserByDailyUserIds(Long[] dailyUserIds);
|
||||
|
||||
public DailyUser selectByUserIdAndDate(@Param("userId") Long userId, @Param("date") LocalDate date);
|
||||
|
||||
public Long getTotalOnlineTime(@Param("date") LocalDate date);
|
||||
|
||||
public Long getTotalMRTime(@Param("date") LocalDate date);
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.ruoyi.system.service;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import com.ruoyi.system.domain.DailySys;
|
||||
import com.ruoyi.system.domain.dto.SeOnlineTimeDto;
|
||||
import com.ruoyi.system.domain.dto.SeUserCountDto;
|
||||
import com.ruoyi.system.domain.dto.SeUserWorkCountDto;
|
||||
|
||||
@ -37,12 +38,14 @@ public interface IDailySysService
|
||||
*/
|
||||
public List<DailySys> selectDailySysList(DailySys dailySys);
|
||||
|
||||
// 获取近7天的每天用户总数
|
||||
// 获取指定时间内的每天用户总数
|
||||
public List<SeUserCountDto> getSeUserCount(LocalDate startDate, LocalDate endDate);
|
||||
|
||||
//获取近7天的每天作品总数
|
||||
//获取指定起止时间内的每天作品总数
|
||||
public List<SeUserWorkCountDto> getSeUserWorkCount(LocalDate startDate, LocalDate endDate);
|
||||
|
||||
public List<SeOnlineTimeDto> gettOnlineTime(LocalDate startDate, LocalDate endDate);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@ -77,6 +80,8 @@ public interface IDailySysService
|
||||
*/
|
||||
public int deleteDailySysByDailySysId(Long dailySysId);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 返回系统中的用户总数
|
||||
* */
|
||||
|
||||
@ -61,4 +61,14 @@ public interface IDailyUserService
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteDailyUserByDailyUserId(Long dailyUserId);
|
||||
|
||||
/*
|
||||
* 返回每天用户总的在线时间
|
||||
* */
|
||||
public Long getTotalOnlineTime(LocalDate date);
|
||||
|
||||
/*
|
||||
* 返回每天用户总的MR在线时间
|
||||
* */
|
||||
public Long getTotalMRTime(LocalDate date);
|
||||
}
|
||||
|
||||
@ -1,12 +0,0 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.dto.SeUserCountDto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// 计算每天用户数量的服务, 并更新数据库
|
||||
public interface ISysUserCountService {
|
||||
public Long getUserCount();
|
||||
public List<SeUserCountDto> getSeUserCount();
|
||||
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.dto.SeOnlineTimeDto;
|
||||
import com.ruoyi.system.domain.dto.SeUserCountDto;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
// 计算每天用户数量的服务, 并更新数据库
|
||||
public interface ISysUserStService {
|
||||
public Long getUserCount();
|
||||
public List<SeUserCountDto> getSeUserCount();
|
||||
|
||||
// 计算时间范围内的用户总数
|
||||
public List<SeUserCountDto> getUserCountByTime(LocalDate startDate, LocalDate endDate);
|
||||
|
||||
// 计算时间范围内用户在线时长
|
||||
public List<SeOnlineTimeDto> gettOnlineTime(LocalDate startDate, LocalDate endDate);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -3,6 +3,7 @@ package com.ruoyi.system.service.impl;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.system.domain.dto.SeOnlineTimeDto;
|
||||
import com.ruoyi.system.domain.dto.SeUserCountDto;
|
||||
import com.ruoyi.system.domain.dto.SeUserWorkCountDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -67,6 +68,10 @@ public class DailySysServiceImpl implements IDailySysService
|
||||
return dailySysMapper.selectDailySysWorkListBetweenDate(startDate, endDate);
|
||||
}
|
||||
|
||||
public List<SeOnlineTimeDto> gettOnlineTime(LocalDate startDate, LocalDate endDate){
|
||||
return dailySysMapper.gettOnlineTime(startDate, endDate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增记录系统每天需要统计的任务
|
||||
*
|
||||
|
||||
@ -100,4 +100,14 @@ public class DailyUserServiceImpl implements IDailyUserService
|
||||
{
|
||||
return dailyUserMapper.deleteDailyUserByDailyUserId(dailyUserId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getTotalOnlineTime(LocalDate date){
|
||||
return dailyUserMapper.getTotalOnlineTime(date);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getTotalMRTime(LocalDate date){
|
||||
return dailyUserMapper.getTotalMRTime(date);
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,6 +30,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="tWork" column="t_work"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="seOnlineTimeDtoResult" type="SeOnlineTimeDto">
|
||||
<result property="date" column="data"/>
|
||||
<result property="tOnlineTime" column="t_online_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectDailySysVo">
|
||||
select daily_sys_id, t_user, t_online_time, t_mr_time, t_bought, t_interactions, t_shares, t_work, t_pass_work, t_back_work, t_income, t_refund, data from daily_sys
|
||||
</sql>
|
||||
@ -70,8 +75,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
select t_work, data from daily_sys where data between #{startDate} and #{endDate}
|
||||
</select>
|
||||
|
||||
<!-- 这里还不能直接套用-->
|
||||
<select id="gettOnlineTime" parameterType="java.time.LocalDate" resultMap="seOnlineTimeDtoResult">
|
||||
select t_online_time, data from daily_sys where data between #{startDate} and #{endDate}
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
<insert id="insertDailySys" parameterType="DailySys" useGeneratedKeys="true" keyProperty="dailySysId">
|
||||
insert into daily_sys
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
||||
@ -41,7 +41,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<select id="selectByUserIdAndDate" resultMap="DailyUserResult">
|
||||
select * from daily_user where user_id = #{userId} and date = #{date}
|
||||
</select>
|
||||
|
||||
<select id="getTotalOnlineTime" resultType="java.lang.Long">
|
||||
select sum(online_time) from daily_user where date = #{date}
|
||||
</select>
|
||||
<select id="getTotalMRTime" resultType="java.lang.Long">
|
||||
select sum(mr_time) from daily_user where date = #{date}
|
||||
</select>
|
||||
|
||||
<insert id="insertDailyUser" parameterType="DailyUser" useGeneratedKeys="true" keyProperty="dailyUserId">
|
||||
insert into daily_user
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user