From 6e0347a873acbee1559ec4b790abf3ef346867e9 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Mon, 17 Dec 2018 20:14:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysUserService.java | 10 +++++ .../apiservice/controller/base/AuthController.java | 43 ++++++++++++++++++++++ .../controller/busi/SysUserInfoController.java | 3 ++ .../serviceimpl/busi/SysToolService.java | 3 +- .../serviceimpl/busi/SysToolTypeService.java | 3 +- .../serviceimpl/busi/SysUserService.java | 11 ++++++ 6 files changed, 71 insertions(+), 2 deletions(-) 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/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/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..fd20a2b 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 @@ -17,6 +17,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; /** @@ -99,7 +100,7 @@ public class SysToolTypeService implements ISysToolTypeService { @Override @ApiOperation(value = "删除硬件类型",notes = "根据 ID 批量删除硬件类型信息") public void deleteSysToolTypeByIds(Long[] ids) { - LOGGER.info("硬件类型 TOOL_TYPE ids:{}", ids.toString()); + LOGGER.info("硬件类型 TOOL_TYPE ids:{}", Arrays.toString(ids)); long count = toolRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("toolTypeId",ids)); if(count >= 1){ throw ImppExceptionBuilder.newInstance() 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 39e738f..9dab79e 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);