From d3bb38283d059030ae602b0ea6ad04d3531cc318 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Mon, 29 Oct 2018 18:01:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=86=B2=E7=AA=81=E8=A7=A3?= =?UTF-8?q?=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ICoreTreeService.java | 25 +++++++++ .../apiservice/controller/CoreTreeController.java | 2 +- .../apiservice/controller/base/AuthController.java | 48 +++++++++++++++- .../serviceimpl/busi/CoreTreeServiceImpl.java | 64 +++++++++++++++++++--- .../serviceimpl/busi/SysUserServiceImpl.java | 22 ++++++-- 5 files changed, 146 insertions(+), 15 deletions(-) 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 07666c1..b595717 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 @@ -1,6 +1,9 @@ package cn.estsh.i3plus.core.api.iservice.busi; import cn.estsh.i3plus.pojo.platform.bean.Department; +import cn.estsh.i3plus.pojo.platform.bean.Position; + +import java.util.List; /** * @Description : 通用树查询服务 @@ -19,4 +22,26 @@ public interface ICoreTreeService { * @param step 层级 */ void findDepartmentChildrenTreePack(Department parent,int step); + + /** + * 获取岗位树 + * @param parentId + * @return + */ + List findPositionTreeByParentId(long parentId); + + /** + * 获取岗位树 + * @param id + * @return + */ + Position getPositionTreeByParentId(long id); + + /** + * 生成子集树递归方法 + * @param parent 父类对象 + * @param step 层级 + */ + void findPositionChildrenTreePack(Position parent,int step); + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/CoreTreeController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/CoreTreeController.java index 8f0fe3a..01a95a3 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/CoreTreeController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/CoreTreeController.java @@ -38,7 +38,7 @@ import java.util.Locale; * @Modify: **/ @RestController -@RequestMapping("/core/tree") +@RequestMapping("/demo/tree") @Api(description="系统服务demo") public class CoreTreeController { private static final Logger LOGGER = LoggerFactory.getLogger(CoreTreeController.class); 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 38b869e..5d13663 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 @@ -2,13 +2,16 @@ package cn.estsh.i3plus.core.apiservice.controller.base; import cn.estsh.i3plus.core.api.iservice.base.ISysUserService; import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService; +import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService; import cn.estsh.i3plus.core.apiservice.controller.DemoAuthController; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.Department; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; -import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -18,7 +21,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; /** @@ -47,12 +49,17 @@ public class AuthController { public ResultBean login(HttpServletRequest request, String loginName, String loginPwd, String languageCode){ LOGGER.info("用户登陆 loginName:{} loginPwd:{} languageCode:{}",loginName,loginPwd,languageCode); try { + ValidatorBean.checkNotNull(loginName,"用户名不能为空"); + ValidatorBean.checkNotNull(loginPwd,"密码不能为空"); + ValidatorBean.checkNotNull(languageCode,"语言不能为空"); + SessionUser user = userService.queryUserLogin(loginName,loginPwd,languageCode); + LOGGER.info("会员登陆:{}",user); AuthUtil.setSessionObject("languageCode",languageCode); String sessionId = request.getSession().getId(); String token = "{accessToken:'"+sessionId+"',expiresIn:1800}"; - return new ResultBean(true,"",token); + return new ResultBean(true,token,AuthUtil.getSessionUser()); } catch (ImppBusiException e) { return new ResultBean(false,e.getErrorDetail() + ",so:" + e.getErrorSolution()); }catch (Exception e){ @@ -94,4 +101,39 @@ public class AuthController { } + /** + * @Description : 系统资源服务demo + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-09-26 10:34 + * @Modify: + **/ + @RestController + @RequestMapping("/core/tree") + @Api(description="系统服务demo") + public static class CoreTreeController { + private static final Logger LOGGER = LoggerFactory.getLogger(CoreTreeController.class); + + @Autowired + private ICoreTreeService coreTreeService; + + @GetMapping(value="/department") + @ApiOperation(value="查询部门树",notes="通过部门主键获取部门树,-1为根节点") + public ResultBean listDepartmentTree(long depParentId) { + try { + Department department = coreTreeService.getDepartmentTreeByParentId(depParentId); + + return ResultBean.success("查询部门树成功") + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultObject(department); + }catch(ImppBusiException busExcep){ + LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep); + return ResultBean.fail(busExcep.getErrorShow()); + }catch(Exception e){ + LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}",e.getMessage(),e); + return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); + } + } + + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeServiceImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeServiceImpl.java index b8e4fa1..f98d297 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeServiceImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeServiceImpl.java @@ -2,7 +2,11 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService; import cn.estsh.i3plus.pojo.platform.bean.Department; +import cn.estsh.i3plus.pojo.platform.bean.Position; import cn.estsh.i3plus.pojo.platform.repository.DepartmentRepository; +import cn.estsh.i3plus.pojo.platform.repository.PositionRepository; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import javafx.scene.layout.VBox; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -25,31 +29,77 @@ public class CoreTreeServiceImpl implements ICoreTreeService { @Autowired private DepartmentRepository departmentRDao; + @Autowired + private PositionRepository positionRDao; + @Override public Department getDepartmentTreeByParentId(long depParentId) { Department depParent = departmentRDao.getById(depParentId); //封装子集 - findDepartmentChildrenTreePack(depParent,0); + findDepartmentChildrenTreePack(depParent, 0); return depParent; } /** * 封装部门子集 + * * @param parent */ @Override - public void findDepartmentChildrenTreePack(Department parent,int step){ + public void findDepartmentChildrenTreePack(Department parent, int step) { ++step; - List childDepList = departmentRDao.findByProperty("parentId",parent.getId()); + List childDepList = departmentRDao.findByProperty("parentId", parent.getId()); - if(childDepList.size() > 0){ + if (childDepList.size() > 0) { //说明有子集 - for(Department depChild : childDepList){ - findDepartmentChildrenTreePack(depChild,step); + for (Department depChild : childDepList) { + findDepartmentChildrenTreePack(depChild, step); } } - LOGGER.info("【{}】包含子集:{},步长:{}",parent.getDepartmentName(),childDepList.size(),step); + LOGGER.info("【{}】包含子集:{},步长:{}", parent.getName(), childDepList.size(), step); parent.setChildList(childDepList); } + + + @Override + public List findPositionTreeByParentId(long parentId) { + List result = positionRDao.findByProperty("parentId", parentId); + + // 循环设置子集 + if(result != null && result.size() > 0){ + + result.stream().forEach(position -> findPositionChildrenTreePack(position,0)); + } + + return result; + } + + @Override + public Position getPositionTreeByParentId(long id) { + // 查找数据 + Position position = positionRDao.getById(id); + // 数据是否真实存在 + ValidatorBean.checkNotNull(position,"不存在的岗位信息"); + // 递归查询子集 + findPositionChildrenTreePack(position, 0); + + return position; + } + + @Override + public void findPositionChildrenTreePack(Position parent, int step) { + ++step; + List childList = positionRDao.findByProperty("parentId", parent.getId()); + + if (childList.size() > 0) { + //说明有子集 + for (Position child : childList) { + findPositionChildrenTreePack(child, step); + } + } + + LOGGER.info("【{}】包含子集:{},步长:{}", parent.getName(), childList.size(), step); + parent.setChildList(childList); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserServiceImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserServiceImpl.java index 152bbcc..a14e018 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserServiceImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserServiceImpl.java @@ -73,6 +73,15 @@ public class SysUserServiceImpl implements ISysUserService { SysUser user = getSysUserByLoginName(loginName); + if(user == null){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.LOGIN_USER_NAME_EXCEPTION.getCode()) + .setErrorDetail("用户名不存在") + .setErrorSolution("请重新输入用户名") + .build(); + } + AuthenticationToken token = null; switch (user.getUserTypeId()) { case 2: @@ -98,7 +107,7 @@ public class SysUserServiceImpl implements ISysUserService { public void updateSysUserStatus(String id, int status, SessionUser user) { LOGGER.info("平台用户 SYS_USER id:{} status:{} modifyUser:{}", id, status, user.getUserName()); SysUser sysUser = sysUserRDao.getById(Long.parseLong(id)); - sysUser.setUserStatus(status); + sysUser.setUserStatusId(status); sysUser.setModifyUser(user.getUserName()); sysUserRDao.update(sysUser); } @@ -171,7 +180,7 @@ public class SysUserServiceImpl implements ISysUserService { ValidatorBean.checkNotNull(dep); // 用户部门关系保存 - RefUserDepartment refUserDepartment = new RefUserDepartment(sysUser.getId(), dep.getId(), dep.getDepartmentName()); + RefUserDepartment refUserDepartment = new RefUserDepartment(sysUser.getId(), dep.getId(), dep.getName()); refUserDepartmentRDao.save(refUserDepartment); // 组织信息冗余 @@ -182,7 +191,7 @@ public class SysUserServiceImpl implements ISysUserService { } // 冗余 部门信息 - sysUser.setRedDepartmentName(dep.getDepartmentName()); + sysUser.setRedDepartmentName(dep.getName()); } } @@ -322,12 +331,17 @@ public class SysUserServiceImpl implements ISysUserService { public static SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, String languageCode) { sessionUser.setLanguageCode(languageCode); sessionUser.setUserName(user.getName()); - sessionUser.setUserType(CommonEnumUtil.USER_TYPE.valueOf(userType)); + sessionUser.setUserTypeId(userType); sessionUser.setUserCode(user.getUserInfo().getLanguageCode()); sessionUser.setRoleList(user.getRoleList()); sessionUser.setDepartmentList(user.getDepartmentList()); sessionUser.setPositionList(user.getPositionList()); sessionUser.setOrganize(user.getOrganize()); + + if(null != user.getPositionList() && user.getPositionList().size() > 0){ + sessionUser.setPosition(user.getPositionList().get(0)); + } + return sessionUser; }