From 3c0f585effdd24399a9fb0b73c267e5bb695a990 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Thu, 20 Dec 2018 18:40:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=B7=BB=E5=8A=A0=E9=A6=96?= =?UTF-8?q?=E5=AD=97=E6=AF=8D=E7=BC=A9=E5=86=99=E5=8A=9F=E8=83=BD=20?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E7=AE=A1=E7=90=86=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9F=A5=E8=AF=A2=E9=80=92=E5=BD=92=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/iservice/base/ISystemLoginService.java | 2 +- .../core/api/iservice/busi/ICoreTreeService.java | 3 ++ .../api/iservice/busi/ISysDepartmentService.java | 3 ++ .../controller/base/WhiteController.java | 2 +- .../controller/busi/SysDepartmentController.java | 32 ++++++++++++++++------ .../controller/busi/SysMenuController.java | 28 +++++++++++++------ .../serviceimpl/base/SystemLoginService.java | 4 +-- .../serviceimpl/busi/CoreTreeService.java | 14 ++++++++++ .../serviceimpl/busi/SysDepartmentService.java | 18 +++++++++++- 9 files changed, 85 insertions(+), 21 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java index abd69bc..3682242 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java @@ -31,5 +31,5 @@ public interface ISystemLoginService { SessionUser queryCheckSaAdminLogin(SaAdminToken authenticationToken); @ApiOperation(value = "登录密码错误",notes = "登录密码错误记录错误次数功能") - Integer doLoginPasswordError(String loginName); + Integer doLoginPasswordError(String loginName,String sessionId); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java index e7e5134..8e6a7af 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java @@ -90,6 +90,9 @@ public interface ICoreTreeService { @ApiOperation(value = "获取组织树",notes = "根据父节点获取组织树集合") List findSysOrganizeTreeByParentId(long parentId); + @ApiOperation(value = "获取组织子集ID集合",notes = "获取组织子集ID集合") + List findSysOrganizeChildIds(SysOrganize organize); + /** * 获取组织树 * @param id diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java index 9b47605..d5e02e5 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java @@ -78,6 +78,9 @@ public interface ISysDepartmentService { @ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组合)") ListPager findSysDepartmentByPager(SysDepartment department, Pager pager); + @ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组织ID集合、组合)") + ListPager findSysDepartmentByPager(SysDepartment department,List organizeIdList, Pager pager); + /** * 获取部门数量 * @return diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index c02fb3d..5bbc3c5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -95,7 +95,7 @@ public class WhiteController extends CoreBaseController { recordSysUserLog(user.getUser().getUserInfoId(), loginName,CommonEnumUtil.USER_LOGIN_STATUS.LOGIN_SUCCESS.getValue(), request); } catch (IncorrectCredentialsException e) { // 密码错误 - Integer num = systemLoginService.doLoginPasswordError(loginName); + Integer num = systemLoginService.doLoginPasswordError(loginName,request.getSession().getId()); num = CommonConstWords.USER_LOGIN_ERROR_MAX_NUM - num; result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD); if(num == 0){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java index 216ccea..07f9c8b 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; +import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService; import cn.estsh.i3plus.core.api.iservice.busi.ISysDepartmentService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysOrganizeService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; @@ -10,6 +12,7 @@ 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.SysDepartment; +import cn.estsh.i3plus.pojo.platform.bean.SysOrganize; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -40,7 +43,13 @@ public class SysDepartmentController extends CoreBaseController { public static final Logger LOGGER = LoggerFactory.getLogger(SysDepartmentController.class); @Autowired - public ISysDepartmentService departmentService; + private ISysDepartmentService departmentService; + + @Autowired + private ICoreTreeService coreTreeService; + + @Autowired + private ISysOrganizeService organizeService; @PostMapping(value = "/insert") @ApiOperation(value = "添加部门", notes = "返回内容添加部门") @@ -146,14 +155,11 @@ public class SysDepartmentController extends CoreBaseController { SysDepartment department = departmentService.getSysDepartmentById(Long.parseLong(id)); - if(department != null){ return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(department); }else { return ResultBean.fail("数据不存在").setCode(ResourceEnumUtil.MESSAGE.EMPTY.getCode()); } - - } catch (ImppBusiException busExcep) { LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); return ResultBean.fail(busExcep); @@ -167,10 +173,20 @@ public class SysDepartmentController extends CoreBaseController { @ApiOperation(value = "查询部门", notes = "组合查询部门信息外加分页信息") public ResultBean querySysDepartment(SysDepartment department, Pager pager) { try { - ListPager departmentListPager = departmentService.findSysDepartmentByPager(department, pager); - return ResultBean.success("查询成功") - .setListPager(departmentListPager) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + ListPager list = null; + if(department.getOrganizeId() != null){ + SysOrganize organize = organizeService.getSysOrganizeById(department.getOrganizeId()); + if(organize != null){ + coreTreeService.findSysOrganizeChildrenTreePack(organize,0); + List childIds = coreTreeService.findSysOrganizeChildIds(organize); + list = departmentService.findSysDepartmentByPager(department,childIds, pager); + }else { + return ResultBean.fail("不存在组织信息").setCode(ResourceEnumUtil.MESSAGE.EMPTY.getCode()); + } + }else{ + list = departmentService.findSysDepartmentByPager(department, pager); + } + return ResultBean.success("查询成功").setListPager(list).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java index afe2dc8..e2534b4 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java @@ -53,9 +53,14 @@ public class SysMenuController extends CoreBaseController { //新增初始化 ConvertBean.modelInitialize(menu, getSessionUser()); + menu.setNameZhShortening(StringTool.getAllFirstLetter(menu.getName())); if(menu.getParentId() == null || menu.getParentId().intValue() == 0){ menu.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue()); } + if(menu.getMenuSort() == null){ + menu.setMenuSort(0); + } + menu.setMenuStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); menu = sysMenuService.insertSysMenu(menu); @@ -70,18 +75,25 @@ public class SysMenuController extends CoreBaseController { @PutMapping(value = "/update") @ApiOperation(value = "修改系统功能", notes = "系统功能") - public ResultBean updateSysMenu(SysMenu sysMenu) { + public ResultBean updateSysMenu(SysMenu menu) { try { // 数据校验 - ValidatorBean.beginValid(sysMenu) - .notNull("id", sysMenu.getId()) - .notNull("menuType", sysMenu.getMenuType()) - .notNull("menuCode", sysMenu.getMenuCode()) - .notNull("name", sysMenu.getName()); + ValidatorBean.beginValid(menu) + .notNull("id", menu.getId()) + .notNull("menuType", menu.getMenuType()) + .notNull("menuCode", menu.getMenuCode()) + .notNull("name", menu.getName()); - ConvertBean.modelUpdate(sysMenu, getSessionUser()); + ConvertBean.modelUpdate(menu, getSessionUser()); + menu.setNameZhShortening(StringTool.getAllFirstLetter(menu.getName())); + if(menu.getParentId() == null || menu.getParentId().intValue() == 0){ + menu.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue()); + } + if(menu.getMenuSort() == null){ + menu.setMenuSort(0); + } - sysMenuService.updateSysMenu(sysMenu); + sysMenuService.updateSysMenu(menu); return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); 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 dbae5e9..3d967f8 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 @@ -97,10 +97,10 @@ public class SystemLoginService implements ISystemLoginService { @Override @ApiOperation(value = "登录密码错误",notes = "登录密码错误记录错误次数功能") - public Integer doLoginPasswordError(String loginName) { + public Integer doLoginPasswordError(String loginName,String sessionId) { SysUser user = sysUserRDao.getByProperty("userLoginName",loginName); if(user != null){ - String redisKey = CommonConstWords.USER_LOGIN_ERROR + "_" + user.getId(); + String redisKey = CommonConstWords.USER_LOGIN_ERROR + "_" + sessionId + "_" + user.getId(); Object redisValue = redisCore.getObject(redisKey); Integer num = redisValue == null ? 1 : Integer.parseInt(redisValue.toString()) + 1; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java index 0081cad..242128b 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java @@ -191,6 +191,20 @@ public class CoreTreeService implements ICoreTreeService { } @Override + public List findSysOrganizeChildIds(SysOrganize organize) { + List result = new ArrayList<>(); + if(null != organize){ + if(organize.getChildList() != null && organize.getChildList().size() > 0){ + for (SysOrganize org : organize.getChildList()) { + result.addAll(findSysOrganizeChildIds(org)); + } + } + result.add(organize.getId()); + } + return result; + } + + @Override @ApiOperation(value = "封装组织树",notes = "封装当前组织树") public void findSysOrganizeChildrenTreePack(SysOrganize parent, int step) { ++step; 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 d49247a..cd51851 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 @@ -173,7 +173,6 @@ public class SysDepartmentService implements ISysDepartmentService { @ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组合)") public ListPager querySysDepartment(SysDepartment department, Pager pager) { LOGGER.info("部门 SysDepartment find department :{} page:{}", department, pager); - if (department == null) { //不传入实体对象,查询所有 int count = departmentRDao.listCount(); @@ -212,6 +211,23 @@ public class SysDepartmentService implements ISysDepartmentService { } @Override + public ListPager findSysDepartmentByPager(SysDepartment department, List organizeIdList, Pager pager) { + LOGGER.info("部门信息 DEPARTMENT department :{} organizeIdList:{}", department,organizeIdList); + + if (department == null) { + pager = PagerHelper.getPager(pager, departmentRDao.listCount()); + return new ListPager(departmentRDao.listPager(pager),pager); + } else { + + String hqlPack = CoreHqlPack.packHqlSysDepartment(department); + hqlPack += CoreHqlPack.packHqlIds("organizeId",organizeIdList.toArray(new Long[organizeIdList.size()])); + + pager = PagerHelper.getPager(pager, departmentRDao.findByHqlWhereCount(hqlPack)); + return new ListPager(departmentRDao.findByHqlWherePage(hqlPack + department.orderBy(),pager),pager); + } + } + + @Override public long getSysDepartmentCount() { return departmentRDao.listCount(); }