diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDashboardService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDashboardService.java new file mode 100644 index 0000000..5830338 --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDashboardService.java @@ -0,0 +1,80 @@ +package cn.estsh.i3plus.core.api.iservice.busi; + +import io.swagger.annotations.ApiOperation; + +import java.util.List; +import java.util.Map; + +/** + * @Description : Dashboard服务接口 + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-14 15:41 + * @Modify: + **/ +public interface ISysDashboardService { + + /** + * 查询组织个数 + * @return + */ + @ApiOperation(value = "查询组织个数") + long getSysOrganizeCount(); + + /** + * 获取部门数量 + * @return + */ + @ApiOperation(value = "获取部门数量") + long getSysDepartmentCount(); + + /** + * 查询用户登录日志 + * @return + */ + @ApiOperation(value = "查询用户登录日志",notes = "查询用户登录日志") + List findSysUserLoginLog(); + + /** + * 查询最近操作日志 + * @param size + * @return + */ + @ApiOperation(value = "查询操作日志",notes = "查询最近操作日志") + List findNewSysLogOperateSize(Integer size); + + /** + * 查询最近异常日志 + * @param size + * @return + */ + @ApiOperation(value = "查询异常日志",notes = "查询最近异常日志") + List findNewSysLogExceptionSize(Integer size); + + /** + * 查询系统日志各级别占比 + * @param startTime + * @param endTime + * @return + */ + @ApiOperation(value = "查询系统日志",notes = "查询系统日志各级别占比") + Map findSysLogSystempByLevel(String startTime,String endTime); + + /** + * 查询平均耗时 + * @param startTime + * @param endTime + * @return + */ + @ApiOperation(value = "查询操作日志",notes = "查询平均响应耗时") + Map querySysLogSystemAvgExecuteTime(String startTime, String endTime); + + /** + * 查询时间段内各等级日志数量 + * @param startTime + * @param endTime + * @return + */ + @ApiOperation(value = "查询系统日志",notes = "查询各模块系统日志数量") + Map querySysLogSystemByLevel(String startTime, String endTime); +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogSystemService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogSystemService.java index 15e97fc..29dfa2f 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogSystemService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLogSystemService.java @@ -31,13 +31,4 @@ public interface ISysLogSystemService { @ApiOperation(value = "系统日志分页复杂查询",notes = "系统日志分页复杂查询") ListPager querySysLogSystemByPager(SysLogSystem logSystem, Pager pager); - - /** - * 查询时间段内平均请求耗时 - * @param startTime - * @param endTime - * @return - */ - @ApiOperation(value = "查询时间段内平均请求耗时") - Map queryAvgExecuteTime(String startTime,String endTime); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java index bdf6996..810d6f6 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java @@ -5,6 +5,8 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.platform.bean.*; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authc.AuthenticationException; + +import javax.servlet.http.HttpServletRequest; import java.util.List; /** @@ -77,6 +79,14 @@ public interface ISysUserService { SysUser insertSysUser(SysUser sysUser)throws Exception; /** + * 添加 账号登录信息 + * @param sysLogUserLogin + * @return + */ + @ApiOperation(value = "新增登录日志",notes = "新增登录日志信息") + SysLogUserLogin insertSysLogUserLogin(SysLogUserLogin sysLogUserLogin); + + /** * 刷新账号角色关系 * @param sysUser * @param roleIds diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java index 445c068..75f059b 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java @@ -5,11 +5,15 @@ import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService; import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService; import cn.estsh.i3plus.core.apiservice.controller.DemoAuthController; import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.SysLocaleLanguageService; +import cn.estsh.i3plus.platform.common.tool.ServletRequestTool; +import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; +import cn.estsh.i3plus.pojo.platform.bean.SysLogUserLogin; import cn.estsh.i3plus.pojo.platform.bean.SysMenu; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; @@ -77,6 +81,9 @@ public class AuthController extends CoreBaseController { AuthUtil.setSessionObject("languageCode",languageCode); result = new ResultBean(true, AuthUtil.getSession().getId().toString(), AuthUtil.getSessionUser()); result.setUrl("/"); + + // 记录登录记录 + recordSysUserLog(user.getUser().getUserInfoId(), loginName,CommonEnumUtil.USER_LOGIN_STATUS.LOGIN_SUCCESS.getValue(), request); } catch (IncorrectCredentialsException e) { // 密码错误 Integer num = systemLoginService.doLoginPasswordError(loginName); @@ -87,24 +94,45 @@ public class AuthController extends CoreBaseController { }else { result.setErrorMsg("密码输入错误。再输入错误"+ num +"次,用户将被锁定。"); } + + // 记录登录记录 + recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.WRONG_PASSWORD.getValue(), request); } catch (CredentialsException e) { // 用户名或密码错误 result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_NAME); + + // 记录登录记录 + recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.WRONG_USERNAME_OR_PASSWORD.getValue(), request); } catch (LockedAccountException e) { // 账号已锁定 result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_LOCKING); + + // 记录登录记录 + recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.USER_LOGIN_LOCKING.getValue(), request); } catch (UnknownAccountException e) { // 用户信息不存在 result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_INFO_NULL); + + // 记录登录记录 + recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.USER_INFO_NULL.getValue(), request); } catch (AuthenticationException e) { // 系统异常 result = ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); result.setErrorMsg(e.getMessage()); + + // 记录登录记录 + recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.SYSTEM_ERROR.getValue(), request); } catch (ImppBusiException e) { result = ResultBean.fail(e); + + // 记录登录记录 + recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.SYSTEM_ERROR.getValue(), request); } catch (Exception e) { result = ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()) .setErrorMsg(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription()); + + // 记录登录记录 + recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.SYSTEM_ERROR.getValue(), request); } return result; } @@ -197,4 +225,19 @@ public class AuthController extends CoreBaseController { } } + + private void recordSysUserLog(Long userId, String username,Integer userLoginStatus,HttpServletRequest request){ + SysLogUserLogin log = new SysLogUserLogin(); + + log.setUserId(userId); + log.setLogLoginName(username); + log.setLogLoginStatus(userLoginStatus); + log.setLogLoginBrowser(ServletRequestTool.getRequestBrowser(request)); + log.setLogLoginHost(ServletRequestTool.getRequestHost(request)); + log.setLogLoginPlatform(CommonEnumUtil.LOG_LOGIN_PLATFORM.descOf(ServletRequestTool.getRequestOs(request))); + log.setLogLoginDateTime(TimeTool.getNowTime(true)); + + userService.insertSysLogUserLogin(log); + } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java index 7ce95fb..9e42ca4 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; -import cn.estsh.i3plus.core.api.iservice.busi.*; +import cn.estsh.i3plus.core.api.iservice.busi.ISysDashboardService; +import cn.estsh.i3plus.platform.common.tool.SerializeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; @@ -11,6 +12,7 @@ import cn.estsh.impp.framework.boot.util.ImppRedis; 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.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,7 +26,7 @@ import java.util.HashMap; import java.util.Map; /** - * @Description : + * @Description : Dashboard服务 * @Reference : * @Author : yunhao * @CreateDate : 2018-12-10 17:04 @@ -33,50 +35,50 @@ import java.util.Map; @RestController @Api(description = "Dashboard服务") @RequestMapping(PlatformConstWords.BASE_URL + "/dashboard") -public class SysDashboardController { +public class SysDashboardController extends CoreBaseController { @Autowired - private ISysUserService sysUserService; - @Autowired - private ISysOrganizeService sysOrganizeService; - @Autowired - private ISysDepartmentService sysDepartmentService; - @Autowired - private ISysMessageService sysMessageService; - @Autowired - private ISysLogOperateService sysLogOperateService; - @Autowired - private ISysLogSystemService sysLogSystemService; -// @Autowired -// private EurekaServerContext eurekaServerContext; - @Resource(name="redisRes") - private ImppRedis redisRes; + private ISysDashboardService sysDashboardService; + + @Resource(name="redisCore") + private ImppRedis redisCore; + @Resource(name="imppSessionManager") + private DefaultWebSessionManager webSessionManager; @GetMapping("/get") @ApiOperation(value = "获取dashboard数据") public ResultBean getDashboardData(){ try { - Map dashboardData = (Map) redisRes.getObject(PlatformConstWords.DASHBOARD_REDIS_KEY); - if(dashboardData == null){ - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + Object ds = redisCore.getObject(PlatformConstWords.DASHBOARD_REDIS_KEY + new Date().getTime()); + if(ds == null){ + // 前10分钟的日期时间 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); - String startTime = sdf.format(new Date()); - cal.add(Calendar.MINUTE,10); - String endTime = sdf.format(cal.getTime()); + String endTime = TimeTool.getNowTime(true); + cal.add(Calendar.MINUTE,-10); + String startTime = sdf.format(cal.getTime()); + + Map dashboardData = new HashMap<>(); + dashboardData.put("orgNum", sysDashboardService.getSysOrganizeCount()); + dashboardData.put("deptNum",sysDashboardService.getSysDepartmentCount()); + dashboardData.put("onlineUser",webSessionManager.getSessionDAO().getActiveSessions().size()); + dashboardData.put("logOperate",sysDashboardService.findNewSysLogOperateSize(10)); + dashboardData.put("logException",sysDashboardService.findNewSysLogExceptionSize(10)); + dashboardData.put("avgExecuteTime",sysDashboardService.querySysLogSystemAvgExecuteTime(startTime,endTime)); + dashboardData.put("levelLogNum",sysDashboardService.querySysLogSystemByLevel(startTime,endTime)); - dashboardData = new HashMap<>(); - dashboardData.put("userNum",sysUserService.getSysUserCount()); - dashboardData.put("orgNum",sysOrganizeService.getSysOrganizeCount()); - dashboardData.put("deptNum",sysDepartmentService.getSysDepartmentCount()); - dashboardData.put("logOperate",sysLogOperateService.findNewSysLogOperate(10)); - dashboardData.put("",sysLogSystemService.queryAvgExecuteTime(startTime,endTime)); + redisCore.putObject(PlatformConstWords.DASHBOARD_REDIS_KEY + new Date().getTime(), + SerializeTool.serialization(dashboardData),5); - redisRes.putHashMap(PlatformConstWords.DASHBOARD_REDIS_KEY,dashboardData,1000*60); + return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultMap(dashboardData); + }else{ + return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultMap((Map) SerializeTool.deserialization(ds.toString())); } - return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(dashboardData); } catch ( ImppBusiException busExcep) { return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java index a21cdb5..5184ded 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java @@ -72,6 +72,8 @@ public class SysUserInfoController extends CoreBaseController{ userInfo.setUserInfoStatus(CommonEnumUtil.USER_STATUS.ENABLE.getValue()); userInfo.setUserLoginNum(0); + sysUserInfoService.checkSysUserInfoOnly(userInfo); + SysUserInfo info = sysUserInfoService.insertSysUserInfo(userInfo); sysUserInfoService.refreshRefUserDepartment(info.getId(), @@ -105,6 +107,7 @@ public class SysUserInfoController extends CoreBaseController{ //修改初始化 ConvertBean.modelUpdate(userInfo,user); + sysUserInfoService.checkSysUserInfoOnly(userInfo); sysUserInfoService.updateSysUserInfo(userInfo); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ISysLogSystemDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ISysLogSystemDao.java index c318ffd..f9922a0 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ISysLogSystemDao.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ISysLogSystemDao.java @@ -1,9 +1,5 @@ package cn.estsh.i3plus.core.apiservice.dao; -import io.swagger.annotations.ApiOperation; -import org.bson.Document; - -import java.util.List; import java.util.Map; /** @@ -15,14 +11,19 @@ import java.util.Map; **/ public interface ISysLogSystemDao { - /** * 查询时间段内平均请求耗时 * @param startTime * @param endTime * @return */ - @ApiOperation(value = "查询时间段内平均请求耗时") - Map querySysLogOperateAvgExecuteTime(String startTime, String endTime); + Map querySysLogSystemAvgExecuteTime(String startTime, String endTime); + /** + * 查询时间段内各等级日志数量 + * @param startTime + * @param endTime + * @return + */ + Map querySysLogSystemByLevel(String startTime, String endTime); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/SysLogSystemDaoImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/SysLogSystemDaoImpl.java index 893f800..dbdf46f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/SysLogSystemDaoImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/SysLogSystemDaoImpl.java @@ -1,17 +1,13 @@ package cn.estsh.i3plus.core.apiservice.daoimpl; import cn.estsh.i3plus.core.apiservice.dao.ISysLogSystemDao; +import cn.estsh.i3plus.platform.common.tool.MathOperation; import cn.estsh.i3plus.platform.common.tool.StringTool; -import cn.estsh.i3plus.pojo.platform.platbean.SysLogOperate; -import cn.estsh.i3plus.pojo.platform.platbean.SysLogSystem; -import com.alibaba.fastjson.JSONObject; -import com.mongodb.Block; +import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysLogSystem; import com.mongodb.client.AggregateIterable; import com.mongodb.client.MongoCursor; -import io.swagger.annotations.ApiOperation; import org.bson.Document; -import org.bson.json.JsonMode; -import org.bson.json.JsonWriterSettings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,6 +15,7 @@ import org.springframework.data.mongodb.MongoDbFactory; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -38,41 +35,22 @@ public class SysLogSystemDaoImpl implements ISysLogSystemDao { private MongoDbFactory mongoDbFactory; @Override - @ApiOperation(value = "查询时间段内平均请求耗时") - public Map querySysLogOperateAvgExecuteTime(String startTime, String endTime) { - List dList = new ArrayList<>(); - Block saveBlock = new Block() { - @Override - public void apply(final Document document) { - dList.add(document.toJson()); - } - }; - + public Map querySysLogSystemAvgExecuteTime(String startTime, String endTime) { + // 筛选 Document sub_match = new Document(); - sub_match.put("leaveTime", new Document("$gte", startTime).append("$lte", endTime)); - - - Document sub_substr = new Document(); - sub_substr.put("$substr", new Object[]{"$createDatetime", 0, 16}); - - - Document sub_project = new Document(); - sub_project.put("new_time_stamp", sub_substr); - sub_project.put("executeTime", 1); - + sub_match.put("createDatetime", new Document("$gte", startTime).append("$lte", endTime)); + // 分组 Document sub_group = new Document(); - sub_group.put("_id", "createDatetime"); + sub_group.put("_id", "$createDatetime"); sub_group.put("avg", new Document("$avg", "$executeTime")); Document match = new Document("$match", sub_match); - Document project = new Document("$project", sub_project); Document group = new Document("$group", sub_group); - Document sort = new Document("$sort", new Document("_id", 1)); + Document sort = new Document("$sort", new Document("_id", -1)); List aggregateList = new ArrayList<>(); aggregateList.add(match); -// aggregateList.add(project); aggregateList.add(group); aggregateList.add(sort); @@ -80,26 +58,44 @@ public class SysLogSystemDaoImpl implements ISysLogSystemDao { .getCollection(StringTool.toLowerCaseFirstOne(SysLogSystem.class.getSimpleName())) .aggregate(aggregateList); MongoCursor cursor = findIter.iterator(); + + Map resultData = new HashMap(); while (cursor.hasNext()) { Document item_doc = cursor.next(); - int _id = item_doc.getInteger("_id", 0); - int avg = item_doc.getInteger("avg", 0); - System.out.println("_id:" + _id + "abg:" + avg); + resultData.put(item_doc.getString("_id"),MathOperation.round(item_doc.getDouble("avg"),0)); } - - return packObjectListFromDocument(dList); + return resultData; } + @Override + public Map querySysLogSystemByLevel(String startTime, String endTime){ + // 筛选 + Document sub_match = new Document(); + sub_match.put("createDatetime", new Document("$gte", startTime).append("$lte", endTime)); + // 分组 + Document sub_group = new Document(); + sub_group.put("_id", "$logLevel"); + sub_group.put("count", new Document("$sum", 1)); + + Document match = new Document("$match", sub_match); + Document group = new Document("$group", sub_group); - private Map packObjectListFromDocument(List dList) { - //将获取的document转为对象 - List resultList = new ArrayList<>(); - // 设置为宽松模式 - JsonWriterSettings jsonWriterSettings = JsonWriterSettings.builder().outputMode(JsonMode.RELAXED).build(); - for (String d : dList) { - resultList.add(JSONObject.parseObject(d, SysLogOperate.class)); + List aggregateList = new ArrayList<>(); + aggregateList.add(match); + aggregateList.add(group); + + AggregateIterable findIter = mongoDbFactory.getDb() + .getCollection(StringTool.toLowerCaseFirstOne(SysLogSystem.class.getSimpleName())) + .aggregate(aggregateList); + MongoCursor cursor = findIter.iterator(); + + Map resultData = new HashMap(); + while (cursor.hasNext()) { + Document item_doc = cursor.next(); + resultData.put(ImppEnumUtil.LOG_LEVEL.valueOfName(item_doc.getInteger("_id")),MathOperation.round(item_doc.getInteger("count"),0)); } - - return null; + + return resultData; } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDashboardService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDashboardService.java new file mode 100644 index 0000000..18fed9e --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDashboardService.java @@ -0,0 +1,107 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysDashboardService; +import cn.estsh.i3plus.core.apiservice.dao.ISysLogSystemDao; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysLogOperate; +import cn.estsh.i3plus.pojo.platform.repository.SysDepartmentRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysLogUserLoginRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysOrganizeRepository; +import cn.estsh.i3plus.pojo.platform.repositorymongo.SysLogExceptionRepository; +import cn.estsh.i3plus.pojo.platform.repositorymongo.SysLogOperateRepository; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-15 15:26 + * @Modify: + **/ +@Service +public class SysDashboardService implements ISysDashboardService { + public static final Logger LOGGER = LoggerFactory.getLogger(SysConfigService.class); + + @Autowired + private SysOrganizeRepository sysOrganizeRDao; + + @Autowired + private SysDepartmentRepository sysDepartmentRDao; + + @Autowired + private SysLogOperateRepository sysLogOperateRDao; + + @Autowired + private SysLogExceptionRepository sysLogExceptionRDao; + + @Autowired + private ISysLogSystemDao sysLogSystemDao; + + @Override + @ApiOperation(value = "查询组织个数") + public long getSysOrganizeCount() { + return sysOrganizeRDao.listCount(); + } + + @Override + @ApiOperation(value = "获取部门数量") + public long getSysDepartmentCount() { + return sysDepartmentRDao.listCount(); + } + + @Override + @ApiOperation(value = "查询用户登录日志",notes = "查询用户登录日志") + public List findSysUserLoginLog() { + return null; + } + + @Override + @ApiOperation(value = "查询操作日志",notes = "查询最新的几条操作日志") + public List findNewSysLogOperateSize(Integer size) { + Pager page = new Pager(); + page.setCurrentPage(1); + page.setPageSize(size); + SysLogOperate sysLogOperate = new SysLogOperate(); + sysLogOperate.setOrderByParam("createDatetime"); + sysLogOperate.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); + return sysLogOperateRDao.findByBsonPager(null,page,sysLogOperate.getOrderByParam(),sysLogOperate.getAscOrDesc()); + } + + @Override + @ApiOperation(value = "查询操异常日志",notes = "查询最新的几条异常日志") + public List findNewSysLogExceptionSize(Integer size) { + Pager page = new Pager(); + page.setCurrentPage(1); + page.setPageSize(size); + SysLogOperate sysLogOperate = new SysLogOperate(); + sysLogOperate.setOrderByParam("createDatetime"); + sysLogOperate.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); + return sysLogExceptionRDao.findByBsonPager(null,page,sysLogOperate.getOrderByParam(),sysLogOperate.getAscOrDesc()); + } + + @Override + @ApiOperation(value = "查询系统日志",notes = "查询系统日志各级别占比") + public Map findSysLogSystempByLevel(String startTime, String endTime) { + return null; + } + + @Override + @ApiOperation(value = "查询系统日志",notes = "查询系统日志平均执行时间") + public Map querySysLogSystemAvgExecuteTime(String startTime, String endTime) { + return sysLogSystemDao.querySysLogSystemAvgExecuteTime(startTime,endTime); + } + + @Override + @ApiOperation(value = "查询系统日志",notes = "查询各模块系统日志数量") + public Map querySysLogSystemByLevel(String startTime, String endTime) { + return sysLogSystemDao.querySysLogSystemByLevel(startTime,endTime); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogSystemService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogSystemService.java index fcfcfa4..53ca703 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogSystemService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLogSystemService.java @@ -32,8 +32,6 @@ public class SysLogSystemService implements ISysLogSystemService { @Autowired private SysLogSystemRepository logSystemRDao; - @Autowired - private ISysLogSystemDao sysLogSystemDao; @Override @ApiOperation(value = "添加系统日志",notes = "添加系统日志") @@ -72,9 +70,4 @@ public class SysLogSystemService implements ISysLogSystemService { ,logSystem.getAscOrDesc()),pager); } } - - @Override - public Map queryAvgExecuteTime(String startTime, String endTime) { - return sysLogSystemDao.querySysLogOperateAvgExecuteTime(startTime,endTime); - } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolService.java index 6d67bfc..9bdcf72 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolService.java @@ -18,6 +18,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.List; /** @@ -110,7 +111,7 @@ public class SysToolService implements ISysToolService { @Override @ApiOperation(value = "删除硬件信息",notes = "根据 ID 批量删除硬件信息") public void deleteSysToolByIds(Long[] ids) { - LOGGER.info("消息 SYS_MESSAGE ids:{}", ids.toString()); + LOGGER.info("消息 SYS_MESSAGE ids:{}", Arrays.toString(ids)); toolRDao.deleteByIds(ids); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolTypeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolTypeService.java index 2be50ef..caae1c4 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolTypeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolTypeService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysTool; import cn.estsh.i3plus.pojo.platform.bean.SysToolType; import cn.estsh.i3plus.pojo.platform.repository.SysToolRepository; import cn.estsh.i3plus.pojo.platform.repository.SysToolTypeRepository; @@ -100,12 +101,12 @@ public class SysToolTypeService implements ISysToolTypeService { @ApiOperation(value = "删除硬件类型",notes = "根据 ID 批量删除硬件类型信息") public void deleteSysToolTypeByIds(Long[] ids) { LOGGER.info("硬件类型 TOOL_TYPE ids:{}", ids.toString()); - long count = toolRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("toolTypeId",ids)); - if(count >= 1){ + List count = toolRDao.findByHqlWhere(CoreHqlPack.packHqlIds("toolTypeId",ids)); + if(count.size() > 0){ throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在关联硬件无法删除!") + .setErrorDetail(count.get(0).getToolTypeNameRdd() + " - 存在关联硬件无法删除!") .setErrorSolution("请重新操作") .build(); }else { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index 8cdeeaa..3783b59 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; @@ -80,6 +81,9 @@ public class SysUserService implements ISysUserService { @Autowired private ISysUserInfoService sysUserInfoService; + @Autowired + private SysLogUserLoginRepository logUserLoginRDao; + @Override @ApiOperation(value = "用户登录", notes = "用户登录功能实现") public SessionUser queryUserLogin(String loginName, String password, String languageCode) throws AuthenticationException { @@ -198,6 +202,13 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "新增登录日志",notes = "新增登录日志信息") + public SysLogUserLogin insertSysLogUserLogin(SysLogUserLogin sysLogUserLogin) { + LOGGER.debug("平台用户登录记录 SysLogUserLogin sysLogUserLogin:{}", sysLogUserLogin); + return logUserLoginRDao.insert(sysLogUserLogin); + } + + @Override @ApiOperation(value = "新增账号", notes = "新增账号信息") public void refreshSysRefUserRole(SysUser sysUser, Long[] roleIds, String userName) { LOGGER.debug("平台用户 SYS_USER SysUser:{}", sysUser); diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index a20c70a..989d1b7 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -1,15 +1,15 @@ #项目端口 server.port=8100 #本机ip -impp.server.ip=192.168.1.56 +impp.server.ip=192.168.1.20 #console控制台服务(zipkin追踪全路径) -impp.console.ip=http://csd.estsh.com +impp.console.ip=http://192.168.1.20:8010 ################ 功能配置1 ################ #若无法连接注册中心,是否需要一直检测加入 impp.cluster.fetch=true #服务注册中心 -impp.cluster.regist.center=http://regd.estsh.com/eureka/ +impp.cluster.regist.center=http://192.168.1.20:8000/eureka/ #多注册中心 #impp.cluster.regist.center=http://192.168.1.20:8000/eureka/,http://192.168.1.20:8001/eureka/