From a47249a92509c49d5e6dc5650ec43e5bcc7d0cb4 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Thu, 21 Feb 2019 19:07:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E6=A3=80=E6=9F=A5=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9Bug=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysRoleService.java | 4 +++ .../controller/busi/PersonnelController.java | 2 +- .../controller/busi/SysRoleController.java | 3 ++ .../controller/busi/SysUserController.java | 2 ++ .../serviceimpl/busi/SysRoleService.java | 38 ++++++++++++++++++++++ 5 files changed, 48 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java index 70b8537..db5e921 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SysRefRoleMenu; import cn.estsh.i3plus.pojo.platform.bean.SysRole; +import cn.estsh.i3plus.pojo.platform.bean.SysUser; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -122,4 +123,7 @@ public interface ISysRoleService { @ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") ListPager querySysRole(SysRole role, Pager pager); + @ApiOperation(value = "角色唯一检查") + void checkSysRoleOnly(SysRole role); + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java index c788cef..a5b8d2f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java @@ -196,7 +196,7 @@ public class PersonnelController extends CoreBaseController { refreshSysUserPassword(user); personnelService.saveSysUser(user); - personnelService.saveSysUserInfo(info); + personnelService.saveSysUserInfo(userInfo); return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java index 92e4dae..d6ecb0e 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java @@ -51,6 +51,8 @@ public class SysRoleController extends CoreBaseController{ ValidatorBean.beginValid(role) .notNull("name", role.getName()); + sysRoleService.checkSysRoleOnly(role); + //新增初始化 ConvertBean.modelInitialize(role, AuthUtil.getSessionUser()); role.setRoleStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); @@ -74,6 +76,7 @@ public class SysRoleController extends CoreBaseController{ ValidatorBean.beginValid(role) .notNull("id", role.getId()) .notNull("name", role.getName()); + sysRoleService.checkSysRoleOnly(role); ConvertBean.modelUpdate(role, AuthUtil.getSessionUser()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java index 06f5199..42b02bb 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java @@ -223,6 +223,8 @@ public class SysUserController extends CoreBaseController{ ValidatorBean.checkNotNull(password, "旧密码不能为空"); ValidatorBean.checkNotNull(newPwd, "新密码不能为空"); + personnelService.checkSysUserPassword(newPwd); + sysUserService.updateSysUserPassword(sessionUser.getUser().getId(),password,newPwd); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index ffb50af..0d91857 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -250,4 +250,42 @@ public class SysRoleService implements ISysRoleService { return new ListPager(roleRDao.findByHqlWherePage(hqlPack + role.orderBy(), pager), pager); } } + + @Override + public void checkSysRoleOnly(SysRole role) { + if(role != null){ + // 登录名唯一教研 + if(!checkSysRoleName(role.getName(), role.getId() == null ? 0 : role.getId())){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) + .setErrorDetail("用户名已存在") + .setErrorSolution("请重新输入用户名") + .build(); + } + } + } + + + /** + * 登录名 唯一检查 + * @param roleName + * @param roleId + * @return + */ + private boolean checkSysRoleName(String roleName, long roleId) { + int count = 0; + if(roleId > 0){ + StringBuffer sw = new StringBuffer(); + HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw); + HqlPack.getStringEqualPack(roleName,"name",sw); + HqlPack.getNumNOEqualPack(roleId,"id",sw); + count = roleRDao.findByHqlWhereCount(sw.toString()); + }else{ + count = roleRDao.findByPropertyCount( + new String[]{"name","isValid"}, + new Object[]{roleName,CommonEnumUtil.IS_VAILD.VAILD.getValue()}); + } + return count <= 0 ; + } } From f9d88b6a93c1ab8b9c7298861ded7b22cd0a5a1b Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Fri, 22 Feb 2019 11:36:49 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=20?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=E4=BC=98=E5=8C=96=20?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=20=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/SystemLoginService.java | 3 +- .../serviceimpl/busi/PersonnelServiceService.java | 54 +++++++++++----------- .../serviceimpl/busi/SysDepartmentService.java | 6 +-- .../serviceimpl/busi/SysOrganizeService.java | 6 +-- 4 files changed, 35 insertions(+), 34 deletions(-) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java index ab4e0a0..f92a34f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java @@ -98,7 +98,8 @@ public class SystemLoginService implements ISystemLoginService { @Override @ApiOperation(value = "登录密码错误",notes = "登录密码错误记录错误次数功能") public Integer doLoginPasswordError(String loginName,String sessionId) { - SysUser user = sysUserRDao.getByProperty("userLoginName",loginName); + SysUser user = sysUserRDao.getByProperty(new String[]{"userLoginName", "isValid"}, + new Object[]{loginName, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}); if(user != null){ String redisKey = CommonConstWords.USER_LOGIN_ERROR + "_" + sessionId + "_" + user.getId(); Object redisValue = redisCore.getObject(redisKey); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java index 7237f47..9e43d44 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java @@ -399,12 +399,12 @@ public class PersonnelServiceService implements IPersonnelService { LOGGER.debug("平台岗位 SysPosition positionId:{}", positionId); if(positionId != null){ - long positionCount = positionRDao.findByPropertyCount("parentId",positionId); - if (positionCount >= 1) { + List positionList = positionRDao.findByProperty("parentId", positionId); + if (positionList!= null && positionList.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在相关岗位信息无法删除!") + .setErrorDetail("["+positionList.get(0).getName()+"]存在相关岗位信息无法删除!") .setErrorSolution("请先删除子集信息在操作") .build(); } @@ -417,12 +417,12 @@ public class PersonnelServiceService implements IPersonnelService { // .setErrorSolution("请先删除用户关系信息再操作") // .build(); // } - long refUserInfoCount = userInfoRDao.findByPropertyCount("positionId",positionId); - if (refUserInfoCount >= 1) { + List userInfoList = userInfoRDao.findByProperty("positionId", positionId); + if (userInfoList != null && userInfoList.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在用户信息无法删除!") + .setErrorDetail("["+userInfoList.get(0).getName()+"]存在用户信息无法删除!") .setErrorSolution("请先删除用户引用信息再操作") .build(); } @@ -434,12 +434,12 @@ public class PersonnelServiceService implements IPersonnelService { LOGGER.debug("平台部门 SysDepartment departmentId:{}", departmentId); if(departmentId != null){ - long departmentCount = departmentRDao.findByPropertyCount("parentId",departmentId); - if (departmentCount >= 1) { + List departmentList = departmentRDao.findByProperty("parentId", departmentId); + if (departmentList != null && departmentList.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在相关部门信息无法删除!") + .setErrorDetail("["+departmentList.get(0).getName()+"]存在相关部门信息无法删除!") .setErrorSolution("请先删除子集信息在操作") .build(); } @@ -452,22 +452,22 @@ public class PersonnelServiceService implements IPersonnelService { // .setErrorSolution("请先删除用户关系信息再操作") // .build(); // } - long userInfoCount = userInfoRDao.findByPropertyCount("departmentId",departmentId); - if (userInfoCount >= 1) { + List userInfoList = userInfoRDao.findByProperty("departmentId", departmentId); + if (userInfoList != null && userInfoList.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在用户信息无法删除!") + .setErrorDetail("["+userInfoList.get(0).getName()+"]存在用户信息无法删除!") .setErrorSolution("请先删除用户引用信息再操作") .build(); } - long userCount = userRDao.findByPropertyCount("departmentId",departmentId); - if (userCount >= 1) { + List userList = userRDao.findByProperty("departmentId", departmentId); + if (userList != null && userList.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在账号信息无法删除!") + .setErrorDetail("["+userList.get(0).getUserLoginName()+"]存在账号信息无法删除!") .setErrorSolution("请先删除账号引用信息再操作") .build(); } @@ -479,12 +479,12 @@ public class PersonnelServiceService implements IPersonnelService { LOGGER.debug("平台部门 SysOrganize organizeId:{}", organizeId); if(organizeId != null){ - long organizeCount = organizeRDao.findByPropertyCount("parentId",organizeId); - if (organizeCount >= 1) { + List organizeList = organizeRDao.findByProperty("parentId", organizeId); + if (organizeList != null && organizeList.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在相关组织信息无法删除!") + .setErrorDetail("["+organizeList.get(0).getName()+"]存在相关组织信息无法删除!") .setErrorSolution("请先删除子集信息在操作") .build(); } @@ -499,32 +499,32 @@ public class PersonnelServiceService implements IPersonnelService { // .build(); // } - long departmentCount = departmentRDao.findByPropertyCount("organizeId",organizeId); - if (departmentCount >= 1) { + List departmentList = departmentRDao.findByProperty("organizeId", organizeId); + if (departmentList != null && departmentList.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在部门信息无法删除!") + .setErrorDetail("["+departmentList.get(0).getName()+"]存在部门信息无法删除!") .setErrorSolution("请先删除部门引用信息再操作") .build(); } - long userInfoCount = userInfoRDao.findByPropertyCount("organizeId",organizeId); - if (userInfoCount >= 1) { + List userInfoList = userInfoRDao.findByProperty("organizeId", organizeId); + if (userInfoList != null && userInfoList.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在用户信息无法删除!") + .setErrorDetail("["+userInfoList.get(0).getName()+"]存在用户信息无法删除!") .setErrorSolution("请先删除用户引用信息再操作") .build(); } - long userCount = userRDao.findByPropertyCount("organizeId",organizeId); - if (userCount >= 1) { + List userList = userRDao.findByProperty("organizeId", organizeId); + if (userList != null && userList.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在账号信息无法删除!") + .setErrorDetail("["+userList.get(0).getUserLoginName()+"]存在账号信息无法删除!") .setErrorSolution("请先删除账号引用信息再操作") .build(); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java index 061a1b6..fa0befd 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java @@ -105,12 +105,12 @@ public class SysDepartmentService implements ISysDepartmentService { @ApiOperation(value = "删除部门信息",notes = "根据ID 批量删除部门信息") public void deleteSysDepartmentByIds(Long[] ids) { LOGGER.info("部门信息 DEPARTMENT ids :{}", ids); - long positionCount = departmentRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("parentId",ids)); - if (positionCount >= 1) { + List list = departmentRDao.findByHqlWhere(CoreHqlPack.packHqlIds("parentId", ids)); + if (list != null && list.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在相关部门信息无法删除!") + .setErrorDetail("["+list.get(0).getName()+"]存在相关部门信息无法删除!") .setErrorSolution("请先删除子集信息在操作") .build(); }else { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java index 354b4a3..5c7986a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java @@ -111,12 +111,12 @@ public class SysOrganizeService implements ISysOrganizeService { @Override @ApiOperation(value = "删除组织信息",notes = "根据 ID 批量删除组织信息") public void deleteSysOrganizeByIds(Long[] ids) { - long positionCount = organizeRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("parentId",ids)); - if (positionCount >= 1) { + List list = organizeRDao.findByHqlWhere(CoreHqlPack.packHqlIds("parentId", ids)); + if (list != null && list.size() >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在相关组织信息无法删除!") + .setErrorDetail("["+list.get(0).getName()+"]存在相关组织信息无法删除!") .setErrorSolution("请先删除子集信息在操作") .build(); }else {