dashboard优化

bug解决
redis配置
yun-zuoyi
yunhao.wang 6 years ago
parent e976efb112
commit 9b2e1196b8

@ -214,7 +214,9 @@ public class PersonnelController extends CoreBaseController {
SysUserInfo info = personnelService.getSysUserInfoById(Long.parseLong(id));
ValidatorBean.checkNotNull(info,"用户不存在");
SysUser user = personnelService.getSysUserById(info.getUserId());
ValidatorBean.checkNotNull(user,"账号不存在");
List<SysRefUserInfoDepartment> refUserInfoDepartmentList = personnelService.findSysRefUserInfoDepartmentById(info.getId());
List<SysRefUserPosition> refUserPositionList = personnelService.findSysRefUserPositionById(info.getId());

@ -14,6 +14,8 @@ import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -37,6 +39,7 @@ import java.util.Map;
@Api(description = "Dashboard服务")
@RequestMapping(PlatformConstWords.BASE_URL + "/dashboard")
public class SysDashboardController extends CoreBaseController {
private static final Logger LOGGER = LoggerFactory.getLogger(SysDashboardController.class);
@Autowired
private ISysDashboardService sysDashboardService;
@ -51,11 +54,12 @@ public class SysDashboardController extends CoreBaseController {
@ApiOperation(value = "获取基础数据", notes = "获取基础数据,用户,部门,组织等信息")
public ResultBean getBasicInfo() {
try {
LOGGER.info("getBasicInfo:{}",redisCore);
// 保持时间,key统一
Date nowDate = new Date();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_BASIC_INFO + "_" + nowDate.getTime();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_BASIC_INFO + "_" + TimeTool.getNowTime("yyyyMMddhhmmss");
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
LOGGER.info("getBasicInforedisKey:{},dashboardData:{}",redisKey,dashboardData);
if (dashboardData == null || dashboardData.size() == 0) {
dashboardData = new HashMap<>();
dashboardData.put("orgNum", sysDashboardService.getSysOrganizeCount());
@ -63,8 +67,7 @@ public class SysDashboardController extends CoreBaseController {
dashboardData.put("onlineUser", webSessionManager.getSessionDAO().getActiveSessions().size());
dashboardData.put("userLoginLog", sysDashboardService.findSysUserLoginLog(10));
redisCore.putHashMap(redisKey, dashboardData, 180);
redisCore.putHashMap(redisKey, dashboardData, 500);
}
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(dashboardData);
} catch (
@ -79,17 +82,18 @@ public class SysDashboardController extends CoreBaseController {
@ApiOperation(value = "查询日志", notes = "最近操作,异常日志")
public ResultBean getLogInfo() {
try {
LOGGER.info("getLogInfo:{}",redisCore);
// 保持时间,key统一
Date nowDate = new Date();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_LOG_INFO + "_" + nowDate.getTime();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_LOG_INFO + "_" + TimeTool.getNowTime("yyyyMMddhhmmss");
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
LOGGER.info("getLogInforedisKey:{},dashboardData:{}",redisKey,dashboardData);
if (dashboardData == null || dashboardData.size() == 0) {
dashboardData = new HashMap<>();
dashboardData.put("logOperate", sysDashboardService.findNewSysLogOperateSize(10));
dashboardData.put("logException", sysDashboardService.findNewSysLogExceptionSize(10));
redisCore.putHashMap(redisKey, dashboardData, 180);
redisCore.putHashMap(redisKey, dashboardData, 500);
}
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
@ -105,20 +109,22 @@ public class SysDashboardController extends CoreBaseController {
@GetMapping(value = "/get-avg-response-time")
@ApiOperation(value = "获取平均响应时间", notes = "获取平均响应时间")
public ResultBean getAvgResponseTime() {
LOGGER.info("getAvgResponseTime:{}",redisCore);
try {
// 保持时间,key统一
Date nowDate = new Date();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_AVG_RESP_TIME + "_" + nowDate.getTime();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_AVG_RESP_TIME + "_" + TimeTool.getNowTime("yyyyMMddhhmmss");
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
LOGGER.info("getAvgResponseTimeredisKey:{},dashboardData:{}",redisKey,dashboardData);
if (dashboardData == null || dashboardData.size() == 0) {
// 获取前5分钟时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date nowDate = new Date();
dashboardData = sysDashboardService.querySysLogSystemAvgExecuteTime(
sdf.format(TimeTool.timeCalc(nowDate, Calendar.MINUTE, -3)),sdf.format(nowDate));
redisCore.putHashMap(redisKey, dashboardData, 180);
redisCore.putHashMap(redisKey, dashboardData, 500);
}
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultMap(dashboardData);
@ -130,20 +136,22 @@ public class SysDashboardController extends CoreBaseController {
@GetMapping(value = "/get-level-log-num")
@ApiOperation(value = "获取各等级日志数量", notes = "获取各等级日志数量")
public ResultBean getLevelLogNum() {
LOGGER.info("getLevelLogNum:{}",redisCore);
try {
// 保持时间,key统一
Date nowDate = new Date();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_LOG_NUM + "_" + nowDate.getTime();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_LOG_NUM + "_" + TimeTool.getNowTime("yyyyMMddhhmmss");
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
LOGGER.info("getLevelLogNumredisKey:{},dashboardData:{}",redisKey,dashboardData);
if (dashboardData == null || dashboardData.size() == 0) {
// 获取前10分钟时间日志数量
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date nowDate = new Date();
dashboardData = sysDashboardService.querySysLogSystemByLevel(
sdf.format(TimeTool.timeCalc(new Date(), Calendar.MINUTE, -10)), sdf.format(nowDate));
sdf.format(TimeTool.timeCalc(nowDate, Calendar.MINUTE, -10)), sdf.format(nowDate));
redisCore.putHashMap(redisKey, dashboardData, 180);
redisCore.putHashMap(redisKey, dashboardData, 500);
}
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultMap(dashboardData);
@ -157,27 +165,41 @@ public class SysDashboardController extends CoreBaseController {
@GetMapping(value = "/get-server-pressure")
@ApiOperation(value = "获取服务压力情况", notes = "获取服务压力情况")
public ResultBean getServerPressure() {
LOGGER.info("getServerPressure:{}",redisCore);
try {
// 保持时间,key统一
Date nowDate = new Date();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_SERVER_PRESSURE + "_" + nowDate.getTime();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_SERVER_PRESSURE + "_" + TimeTool.getNowTime("yyyyMMddhhmmss");
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
LOGGER.info("getServerPressureredisKey:{},dashboardData:{}",redisKey,dashboardData);
if (dashboardData == null || dashboardData.size() == 0) {
dashboardData = new HashMap<>();
//获取上一分钟,请求来源数据
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
dashboardData.put("requestSource", redisCore.getHashMap(
CommonConstWords.REDIS_DASHBOARD_MINUTE_SOURCE + "_" + sdf.format(TimeTool.timeCalc(nowDate, Calendar.MINUTE, -1))));
Date nowDate = new Date();
Map<?,?> dataMap = redisCore.getHashMap(
CommonConstWords.REDIS_DASHBOARD_MINUTE_SOURCE + "_" + sdf.format(TimeTool.timeCalc(nowDate, Calendar.MINUTE, -1)));
if(dataMap == null){
dataMap = new HashMap<>();
}
dashboardData.put("requestSource", dataMap);
//获取上一秒,服务器压力数据
sdf = new SimpleDateFormat("yyyyMMddHHmmss");
dashboardData.put("serverPressure", redisCore.getObject(
CommonConstWords.REDIS_DASHBOARD_SECOND_PRESSURE + "_" + sdf.format(TimeTool.timeCalc(nowDate, Calendar.SECOND, -1))));
redisCore.putHashMap(redisKey, dashboardData, 180);
Object pressureObj = redisCore.getObject(
CommonConstWords.REDIS_DASHBOARD_SECOND_PRESSURE + "_" + sdf.format(TimeTool.timeCalc(nowDate, Calendar.SECOND, -1)));
int pressure = 0;
if(pressureObj != null){
try {
pressure = Integer.parseInt(pressureObj.toString());
}catch (Exception e){
LOGGER.error("【无法转换压力】data{}",pressureObj);
}
}
dashboardData.put("serverPressure", pressure);
redisCore.putHashMap(redisKey, dashboardData, 500);
}
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultMap(dashboardData);

@ -121,6 +121,8 @@ public class SysFileController extends CoreBaseController{
@ApiOperation(value = "根据id查询文件资源",notes = "根据id查询文件资源")
public ResultBean getSysFileById(@PathVariable("id") String id){
try {
ValidatorBean.checkIsNumber(id,"id必须为数字");
SysFile sysFile = sysFileService.getSysFileById(Long.parseLong(id));
return ResultBean.success("查询成功")
.setResultObject(sysFile)

Loading…
Cancel
Save