diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java new file mode 100644 index 0000000..099378b --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java @@ -0,0 +1,100 @@ +package cn.estsh.i3plus.core.api.iservice.busi; + +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import cn.estsh.i3plus.pojo.platform.bean.SysUser; +import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo; +import io.swagger.annotations.ApiOperation; + +import java.util.List; + +/** + * @Description : 用户服务 + * @Reference : + * @Author : wei.peng + * @Date : 2018-10-25 16:21 + * @Modify : + **/ +public interface ISysUserInfoService { + + + /** + * 新增数据 + * @param userInfo + * @return + */ + @ApiOperation(value = "新增用户",notes = "新增一个用户信息") + SysUserInfo insertSysUserInfo(SysUserInfo userInfo); + + /** + * 修改数据 + * @param userInfo + */ + @ApiOperation(value = "修改用户",notes = "修改一个用户信息") + void updateSysUserInfo(SysUserInfo userInfo); + + /** + * 刷新 用户部门关系 + * @param userInfoId + * @param departmentId + * @param userName + */ + void refreshRefUserDepartment(String userInfoId, String[] departmentId , String userName); + + /** + * 刷新用户岗位信息 + * @param userInfoId + * @param positionIds + * @param userName + */ + void refreshRefUserPosition(String userInfoId, String[] positionIds , String userName); + + /** + * 刷新用户组织信息 + * @param userInfoId + * @param organizeId + * @param userName + */ + void refreshRefUserOrganize(String userInfoId, String organizeId , String userName); + + /** + * 根据Key 删除数据 + * @param id + */ + @ApiOperation(value = "删除用户",notes = "根据UserInfoId 删除用户信息") + void deleteSysUserInfoById(String id); + + /** + * 根据id批量删除岗位 + * @param ids id数组 + * @return + */ + @ApiOperation(value = "删除用户-批量",notes = "根据UserInfoId 批量删除用户信息") + void deleteSysUserInfoByIds(String[] ids); + + /** + * 根据Key 数据 + * @param id + * @return + */ + @ApiOperation(value = "查询用户信息",notes = "根据 UserInfoId查询用户信息") + SysUserInfo getSysUserInfoById(Long id); + + /** + * 查询所有数据 + * @return + */ + @ApiOperation(value = "查询用户信息",notes = "查询所有用户信息") + List listSysUserInfo(); + + /** + * 复杂查询 + * @param userInfo + * @param pager + * @return + */ + @ApiOperation(value = "查询用户信息",notes = "根据复杂查询条件查询用户信息(分页信息)") + ListPager querySysUserInfo(SysUserInfo userInfo, Pager pager); + +} 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 4737678..425febc 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 @@ -7,7 +7,7 @@ import cn.estsh.i3plus.pojo.platform.bean.*; import java.util.List; /** - * @Description : 用户服务 + * @Description : 用户账号服务 * @Reference : * @Author : wei.peng * @Date : 2018-10-25 16:21 @@ -63,14 +63,6 @@ public interface ISysUserService { SysUser insertSysUser(SysUser sysUser)throws Exception; /** - * 刷新 用户部门关系 - * @param sysUser - * @param departmentId - * @param user - */ - void refreshRefUserDepartment(SysUser sysUser, String departmentId , SessionUser user); - - /** * 刷新用户角色关系 * @param sysUser * @param roleIds @@ -79,14 +71,6 @@ public interface ISysUserService { void refreshRefUserRole(SysUser sysUser, String[] roleIds , SessionUser user); /** - * 刷新用户岗位信息 - * @param sysUser - * @param positionId - * @param user - */ - void refreshRefUserPosition(SysUser sysUser, String positionId , SessionUser user); - - /** * 根据Key 删除数据 * @param id * @return @@ -126,7 +110,7 @@ public interface ISysUserService { * @param id * @return */ - SysUserInfo getSysUserInfoById(String id); + SysUserInfo getSysUserInfoById(Long id); /** * 根据登录名称 获取用户信息 @@ -136,13 +120,6 @@ public interface ISysUserService { SysUser getSysUserByLoginName(String loginName); /** - * 封装用户详细信息 - * @param user - * @return - */ - SysUser dealSysUserInfo(SysUser user); - - /** * 查出用户角色关系 * @param userId * @return 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 675cd4a..52b246e 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 @@ -1,10 +1,12 @@ package cn.estsh.i3plus.core.apiservice.controller.base; import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService; +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.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; -import cn.estsh.i3plus.pojo.platform.bean.SysUser; +import cn.estsh.i3plus.pojo.platform.bean.SysMenu; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; @@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * @Description : 用户权限服务 @@ -41,6 +44,8 @@ public class AuthController { @Autowired private ISysUserService userService; + @Autowired + private ICoreTreeService coreTreeService; @GetMapping(value="/login") @ApiOperation(value="登陆",notes="登陆") @@ -55,10 +60,9 @@ public class AuthController { LOGGER.info("会员登陆:{}",user); AuthUtil.setSessionObject("languageCode",languageCode); - String sessionId = request.getSession().getId(); - String token = "{accessToken:'"+sessionId+"',expiresIn:1800}"; - SysUser sysUser = AuthUtil.getSessionUser().getUser(); - return new ResultBean(true,token,sysUser); + ResultBean result = new ResultBean(true, "", AuthUtil.getSessionUser()); + result.setUrl("/"); + return result; } catch (ImppBusiException e) { return new ResultBean(false,e.getErrorDetail() + ",so:" + e.getErrorSolution()); }catch (Exception e){ @@ -86,7 +90,7 @@ public class AuthController { * * @return */ - @GetMapping(value="/getUserInfo") + @GetMapping(value="/get-user-info") @ApiOperation(value="获取登录用户信息",notes="获取当前登录用户详细信息") public ResultBean getUserInfo(){ LOGGER.info("获取用户信息...lang:{}",AuthUtil.getSessionAttribute("languageCode")); @@ -99,5 +103,22 @@ public class AuthController { } } + @GetMapping(value="/find-menu-tree") + @ApiOperation(value="获取登录用户功能权限信息",notes="获取当前登录用户的权限信息") + public ResultBean getUserMenuTree(){ + try { + List listTree = coreTreeService.findSysMenuTreeByParentId(-1); + + return ResultBean.success("查询部门树成功") + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultList(listTree); + }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/controller/busi/EnumController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/EnumController.java index eace040..d25a2a9 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/EnumController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/EnumController.java @@ -70,7 +70,7 @@ public class EnumController { } @GetMapping("/user-status") - @ApiOperation(value = "用户状态", notes = "查询全部用户状态功能") + @ApiOperation(value = "用户账号状态", notes = "查询全部用户账号功能") public ResultBean getUserStatus(){ return new ResultBean(true, "操作成功", Arrays.asList(CommonEnumUtil.USER_STATUS.values())); @@ -126,9 +126,23 @@ public class EnumController { } @GetMapping("/sys-config-type") - @ApiOperation(value = "系统参数类型", notes = "系统参数类型") + @ApiOperation(value = "系统参数类型", notes = "系统参数") public ResultBean getSysParamType(){ return new ResultBean(true, "操作成功", Arrays.asList(ImppEnumUtil.SYS_CONFIG_TYPE.values())); } + + @GetMapping("/user-sex") + @ApiOperation(value = "用户性别", notes = "用户性别") + public ResultBean getUserSex(){ + return new ResultBean(true, "操作成功", + Arrays.asList(CommonEnumUtil.USER_ESX.values())); + } + + @GetMapping("/user-info-status") + @ApiOperation(value = "用户状态", notes = "用户状态") + public ResultBean getUserInfoStatus(){ + return new ResultBean(true, "操作成功", + Arrays.asList(CommonEnumUtil.USER_INFO_STATUS.values())); + } } 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 bd08ae2..e917922 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 @@ -1,5 +1,6 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; +import cn.estsh.i3plus.core.api.iservice.busi.ISysUserInfoService; import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; @@ -42,18 +43,20 @@ public class SysUserController { @Autowired private ISysUserService sysUserService; + @Autowired + private ISysUserInfoService sysUserInfoService; + @PostMapping(value = "/insert") @ApiOperation(value = "新增用户", notes = "新增系统用户") - public ResultBean insertSysUser(SysUser sysUser,String departmentId,String positionId ,String[] roleIds) { + public ResultBean insertSysUser(SysUser sysUser,String[] roleIds) { try { + ConvertBean.modelSafeArrayNumber(roleIds,true); + ValidatorBean.beginValid(sysUser) + .numberCheck("userInfoId",sysUser.getUserInfoId()) .notNull("userLoginName",sysUser.getUserLoginName()) - .notNull("userLoginPassword",sysUser.getUserLoginPassword()) - .notNull("userEmpNo",sysUser.getUserEmpNo()) - .notNull("userEmail",sysUser.getUserEmpNo()); - - ValidatorBean.checkNotNull(departmentId,"部门 id 不能为空"); - ValidatorBean.checkNotNull(positionId,"岗位 id 不能为空"); + .notNull("userEmail",sysUser.getUserEmail()) + .notNull("userLoginPassword",sysUser.getUserLoginPassword()); if(roleIds == null || roleIds.length <= 0){ throw ImppExceptionBuilder.newInstance() @@ -63,21 +66,27 @@ public class SysUserController { .build(); } + SysUserInfo userInfo = sysUserInfoService.getSysUserInfoById(sysUser.getUserInfoId()); + if(userInfo == null){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("用户信息不存在请重新操作") + .build(); + } + //新增初始化 - ConvertBean.modelInitialize(sysUser, AuthUtil.getSessionUser()); - sysUser.setUserStatusId(CommonEnumUtil.USER_STATUS.NORMAL.getValue()); - sysUser.setUserTypeId(CommonEnumUtil.USER_TYPE.USER.getValue()); + sysUser.setUserName(userInfo.getName()); + sysUser.setUserStatus(CommonEnumUtil.USER_STATUS.NORMAL.getValue()); + sysUser.setDepartmentId(userInfo.getDepartmentId()); + sysUser.setDepartmentNameRdd(userInfo.getDepartmentNameRdd()); + ConvertBean.modelInitialize(sysUser,AuthUtil.getSessionUser()); SysUser user = sysUserService.insertSysUser(sysUser); // 更新用户关系 - sysUserService.refreshRefUserDepartment(user,departmentId,AuthUtil.getSessionUser()); - sysUserService.refreshRefUserPosition(user,positionId,AuthUtil.getSessionUser()); sysUserService.refreshRefUserRole(user,roleIds,AuthUtil.getSessionUser()); - // 更新冗余信息 - sysUserService.updateSysUser(user); - return ResultBean.success("操作成功") .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) .setResultObject(user); @@ -92,17 +101,14 @@ public class SysUserController { @PutMapping(value = "/update") @ApiOperation(value = "修改用户", notes = "修改用户信息") - public ResultBean updateSysUser(SysUser sysUser,String departmentId,String positionId ,String[] roleIds) { + public ResultBean updateSysUser(SysUser sysUser,String[] roleIds) { try { + ConvertBean.modelSafeArrayNumber(roleIds,true); ValidatorBean.beginValid(sysUser) - .notNull("id",sysUser.getId()) + .numberCheck("id",sysUser.getUserInfoId()) + .numberCheck("userInfoId",sysUser.getUserInfoId()) .notNull("userLoginName",sysUser.getUserLoginName()) - .notNull("userLoginPassword",sysUser.getUserLoginPassword()) - .notNull("userEmpNo",sysUser.getUserEmpNo()) - .notNull("userEmail",sysUser.getUserEmpNo()); - - ValidatorBean.checkNotNull(departmentId,"部门 id 不能为空"); - ValidatorBean.checkNotNull(positionId,"岗位 id 不能为空"); + .notNull("userEmail",sysUser.getUserEmail()); if(roleIds == null || roleIds.length <= 0){ throw ImppExceptionBuilder.newInstance() @@ -113,17 +119,22 @@ public class SysUserController { } // 用户信息封装 - SysUserInfo userInfo = sysUserService.getSysUserInfoById(sysUser.getId().toString()); - sysUser.setUserInfo(userInfo); - ConvertBean.modelUpdate(sysUser, AuthUtil.getSessionUser()); - ConvertBean.modelUpdate(userInfo, AuthUtil.getSessionUser()); + SysUserInfo userInfo = sysUserService.getSysUserInfoById(sysUser.getUserInfoId()); + if(userInfo == null){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("用户信息不存在请重新操作") + .build(); + } + + sysUser.setUserName(userInfo.getName()); + sysUser.setDepartmentId(userInfo.getDepartmentId()); + sysUser.setDepartmentNameRdd(userInfo.getDepartmentNameRdd()); + ConvertBean.modelUpdate(sysUser,AuthUtil.getSessionUser()); // 更新用户关系 - sysUserService.refreshRefUserDepartment(sysUser,departmentId,AuthUtil.getSessionUser()); - sysUserService.refreshRefUserPosition(sysUser,positionId,AuthUtil.getSessionUser()); sysUserService.refreshRefUserRole(sysUser,roleIds,AuthUtil.getSessionUser()); - - // 更新冗余信息 sysUserService.updateSysUser(sysUser); return ResultBean.success("操作成功") 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 new file mode 100644 index 0000000..a6133af --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java @@ -0,0 +1,225 @@ +package cn.estsh.i3plus.core.apiservice.controller.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.IDepartmentService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysUserInfoService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.Department; +import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo; +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.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +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; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Description : 用户信息 服务 + * @Reference : + * @Author : wei.peng + * @Date : 2018-11-08 19:57 + * @Modify : + **/ +@RestController +@RequestMapping("/sys-user-info") +@Api(description = "系统用户服务") +public class SysUserInfoController { + + public static final Logger LOGGER = LoggerFactory.getLogger(SysUserInfoController.class); + + @Autowired + private ISysUserInfoService sysUserInfoService; + + @Autowired + private IDepartmentService departmentService; + + @PostMapping(value="/insert") + @ApiOperation(value="添加用户信息",notes="返回内容添加用户信息") + public ResultBean insertSysUserInfo(SysUserInfo userInfo){ + try { + //登陆用户 + SessionUser user = AuthUtil.getSessionUser(); + + //条件验证 + ValidatorBean.beginValid(userInfo) + .notNull("name",userInfo.getName()) + .notNull("userEmpNo",userInfo.getUserEmpNo()) + .checkNotZero("departmentId",userInfo.getDepartmentId()) + .checkNotZero("positionId",userInfo.getPositionId()); + + ConvertBean.modelInitialize(userInfo,user); + SysUserInfo pos = sysUserInfoService.insertSysUserInfo(userInfo); + + + sysUserInfoService.refreshRefUserDepartment(pos.getId().toString(), + new String[]{userInfo.getDepartmentId().toString()}, + user.getUserName()); + + sysUserInfoService.refreshRefUserPosition(pos.getId().toString(), + new String[]{userInfo.getPositionId().toString()}, + user.getUserName()); + + Department department = departmentService.getDepartmentById(userInfo.getDepartmentId().toString()); + if(department != null){ + sysUserInfoService.refreshRefUserOrganize(pos.getId().toString(), + department.getOrganizeId().toString(),user.getUserName()); + } + + return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultObject(pos); + } catch (ImppBusiException busExcep) { + LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); + return ResultBean.fail(busExcep.getErrorShow()); + } catch (Exception e) { + LOGGER.error(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getDescription() + ":{}", e.getMessage(), e); + return ResultBean.fail().setCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()); + } + } + + @PutMapping(value="/update") + @ApiOperation(value="修改用户信息",notes="根据用户信息id修改信息") + public ResultBean updateSysUserInfoById(SysUserInfo userInfo){ + try { + //登陆用户 + SessionUser user = AuthUtil.getSessionUser(); + + //条件验证 + ValidatorBean.beginValid(userInfo) + .notNull("id",userInfo.getId()) + .notNull("name",userInfo.getName()) + .notNull("userEmpNo",userInfo.getUserEmpNo()) + .checkNotZero("departmentId",userInfo.getDepartmentId()) + .checkNotZero("positionId",userInfo.getPositionId()); + + //修改初始化 + ConvertBean.modelUpdate(userInfo,user); + + sysUserInfoService.updateSysUserInfo(userInfo); + + sysUserInfoService.refreshRefUserDepartment(userInfo.getId().toString(), + new String[]{userInfo.getDepartmentId().toString()}, + user.getUserName()); + + sysUserInfoService.refreshRefUserPosition(userInfo.getId().toString(), + new String[]{userInfo.getPositionId().toString()}, + user.getUserName()); + + return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); + return ResultBean.fail(busExcep.getErrorShow()); + } catch (Exception e) { + LOGGER.error(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getDescription() + ":{}", e.getMessage(), e); + return ResultBean.fail().setCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()); + } + } + + @DeleteMapping(value="/delete/{id}") + @ApiOperation(value="删除用户信息",notes="根据用户信息id删除信息") + public ResultBean deleteSysUserInfo(@PathVariable("id") String id){ + try { + //条件验证 + ValidatorBean.checkNotNull(id,"id为空"); + + sysUserInfoService.deleteSysUserInfoById(id); + return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); + return ResultBean.fail(busExcep.getErrorShow()); + } catch (Exception e) { + LOGGER.error(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getDescription() + ":{}", e.getMessage(), e); + return ResultBean.fail().setCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()); + } + } + + @GetMapping(value="/list") + @ApiOperation(value="查询所有用户信息",notes="查询所有用户信息") + public ResultBean findSysUserInfoAll(){ + try{ + List SysUserInfoList = sysUserInfoService.listSysUserInfo(); + return ResultBean.success("操作成功").setResultList(SysUserInfoList) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }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()); + } + } + + @GetMapping(value="/query") + @ApiOperation(value="查询用户信息",notes="复杂查询用户信息带分页") + public ResultBean querySysUserInfo(SysUserInfo SysUserInfo, Pager pager){ + try{ + ListPager listPager = sysUserInfoService.querySysUserInfo(SysUserInfo, pager); + return ResultBean.success("操作成功").setListPager(listPager) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }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()); + } + } + + @GetMapping(value="/get/{id}") + @ApiOperation(value="根据id查询用户信息",notes="根据id用户信息") + public ResultBean getSysUserInfoById(@PathVariable("id") String id){ + try{ + ValidatorBean.checkIsNumber(id, "id 不能为空"); + + SysUserInfo SysUserInfo = sysUserInfoService.getSysUserInfoById(Long.parseLong(id)); + ValidatorBean.beginValid(SysUserInfo) + .notNull("id",SysUserInfo.getId()); + + return ResultBean.success("查询成功") + .setResultObject(SysUserInfo) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }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()); + } + } + + @DeleteMapping(value = "/batch-delete") + @ApiOperation(value = "根据id批量删除", notes = "根据id批量删除") + public ResultBean deleteSysUserInfoByIds(String[] ids){ + try{ + ids = ConvertBean.modelSafeArrayNumber(ids,true); + if(ids.length == 0){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("请选择需要删除的用户信息。") + .build(); + } + sysUserInfoService.deleteSysUserInfoByIds(ids); + return ResultBean.success("删除成功") + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }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/dao/IUserPermissionDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IUserPermissionDao.java index 17e1b59..e281895 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IUserPermissionDao.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/IUserPermissionDao.java @@ -15,10 +15,10 @@ public interface IUserPermissionDao { /** * 查询用户所有部门 - * @param user +` * @param userInfo * @return */ - List findDepartmentByUser(SysUser user); + List findDepartmentByUser(SysUserInfo userInfo); /** * 查询用户所有角色 @@ -36,9 +36,9 @@ public interface IUserPermissionDao { /** * 查询用户所有岗位 - * @param user + * @param userInfo * @return */ - List findPositionByUser(SysUser user); + List findPositionByUser(SysUserInfo userInfo); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java index fdbd6bc..78491d8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/UserPermissionDaoImpl.java @@ -27,12 +27,12 @@ public class UserPermissionDaoImpl implements IUserPermissionDao { @Override - public List findDepartmentByUser(SysUser user) { - LOGGER.info(" 查询用户所有部门 user id:{}", user.getId()); + public List findDepartmentByUser(SysUserInfo userInfo) { + LOGGER.info(" 查询用户所有部门 user id:{}", userInfo.getId()); String hql = "select d from RefUserDepartment as rud " + " left join Department as d on d.id = rud.departmentId " + " where rud.userId =:userId"; - return entityManager.createQuery(hql).setParameter("userId",user.getId()).getResultList(); + return entityManager.createQuery(hql).setParameter("userId",userInfo.getId()).getResultList(); } @Override @@ -57,12 +57,12 @@ public class UserPermissionDaoImpl implements IUserPermissionDao { } @Override - public List findPositionByUser(SysUser user) { - LOGGER.info(" 查询用户所有岗位 user id:{}", user.getId()); + public List findPositionByUser(SysUserInfo userInfo) { + LOGGER.info(" 查询用户所有岗位 user id:{}", userInfo.getId()); String hql = "select p from RefUserPosition as rup " + " left join Position as p on p.id = rup.positionId" + " where rup.userId =:userId"; - return entityManager.createQuery(hql).setParameter("userId",user.getId()).getResultList(); + return entityManager.createQuery(hql).setParameter("userId",userInfo.getId()).getResultList(); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java new file mode 100644 index 0000000..299072a --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java @@ -0,0 +1,229 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysUserInfoService; +import cn.estsh.i3plus.platform.common.tool.StringTool; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +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.base.tool.HqlPack; +import cn.estsh.i3plus.pojo.platform.bean.*; +import cn.estsh.i3plus.pojo.platform.repository.*; +import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description : 用户信息 服务 + * @Reference : + * @Author : wei.peng + * @Date : 2018-11-08 19:44 + * @Modify : + **/ +@Service +public class SysUserInfoService implements ISysUserInfoService { + + public static final Logger LOGGER = LoggerFactory.getLogger(SysUserInfoService.class); + + @Autowired + private SysUserInfoRepository userInfoRDao; + + @Autowired + private SysUserRepository userRDao; + + @Autowired + private DepartmentRepository departmentRDao; + + @Autowired + private RefUserDepartmentRepository refUserDepartmentRDao; + + @Autowired + private PositionRepository positionRDao; + + @Autowired + private RefUserPositionRepository refUserPositionRDao; + + @Autowired + private OrganizeRepository organizeRDao; + + /*** + * @param userInfo + * @return + */ + @Override + public SysUserInfo insertSysUserInfo(SysUserInfo userInfo) { + LOGGER.info("用户信息 SysUserInfo userInfo:{}",userInfo); + + return userInfoRDao.insert(userInfo); + } + + @Override + public void updateSysUserInfo(SysUserInfo userInfo) { + LOGGER.info("用户信息 SysUserInfo userInfo:{}",userInfo); + userInfoRDao.update(userInfo); + } + + @Override + public void refreshRefUserDepartment(String userInfoId, String[] departmentIds, String userName) { + LOGGER.info("用户信息 SysUserInfo userInfoId:{} departmentIds:{} userName:{}",userInfoId,departmentIds,userName); + + SysUserInfo userInfo = userInfoRDao.getById(Long.parseLong(userInfoId)); + if(userInfo != null ){ + // 查询部门信息 + StringBuffer where = new StringBuffer(); + HqlPack.getInPack(String.join(",",departmentIds),"id",where); + List departmentList = departmentRDao.findByHqlWhere(where.toString()); + + // 删除用户部门关系 + refUserDepartmentRDao.deleteByProperty("userId",userInfo.getId()); + + if(departmentList != null && departmentList.size() >0){ + List list = new ArrayList<>(); + List nameList = new ArrayList<>(); + RefUserDepartment ref = null; + for (Department department : departmentList) { + ref = new RefUserDepartment(); + ref.setDepartmentId(department.getId()); + ref.setDepartmentNameRdd(department.getName()); + ref.setUserId(userInfo.getId()); + ref.setUserNameRdd(userInfo.getName()); + ref.setCreateUser(userName); + ref.setCreateDatetime(TimeTool.getNowTime(true)); + list.add(ref); + + nameList.add(department.getName()); + } + + userInfo.setDepartmentNameRdd(String.join(",",nameList)); + + refUserDepartmentRDao.saveAll(list); + userInfoRDao.save(userInfo); + + LOGGER.info("用户信息 SysUserInfo RefUserDepartmentRDao Insert Size :{}",list.size()); + } + }else { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("用户信息不存在") + .setErrorSolution("请重新操作") + .build(); + } + } + + @Override + public void refreshRefUserPosition(String userInfoId, String[] positionIds, String userName) { + LOGGER.info("用户信息 SysUserInfo userInfoId:{} positionIds:{} userName:{}",userInfoId,positionIds,userName); + + SysUserInfo userInfo = userInfoRDao.getById(Long.parseLong(userInfoId)); + if(userInfo != null ){ + // 查询部门信息 + StringBuffer where = new StringBuffer(); + HqlPack.getInPack(String.join(",",positionIds),"id",where); + List positionList = positionRDao.findByHqlWhere(where.toString()); + + // 删除用户岗位关系 + refUserPositionRDao.deleteByProperty("userId",userInfo.getId()); + + if(positionList != null && positionList.size() >0){ + List list = new ArrayList<>(); + List nameList = new ArrayList<>(); + RefUserPosition ref = null; + for (Position position : positionList) { + ref = new RefUserPosition(); + ref.setUserId(userInfo.getId()); + ref.setUserNameRdd(userInfo.getName()); + ref.setPositionId(position.getId()); + ref.setPositionNameRdd(position.getName()); + ref.setCreateUser(userName); + ref.setCreateDatetime(TimeTool.getNowTime(true)); + list.add(ref); + + nameList.add(position.getName()); + } + + userInfo.setPositionNameRdd(String.join(",",nameList)); + + refUserPositionRDao.saveAll(list); + userInfoRDao.save(userInfo); + + LOGGER.info("用户信息 SysUserInfo RefUserPositionRDao Insert Size :{}",list.size()); + } + }else { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("用户信息不存在") + .setErrorSolution("请重新操作") + .build(); + } + } + + @Override + public void refreshRefUserOrganize(String userInfoId, String organizeId, String userName) { + LOGGER.info("用户信息 SysUserInfo userInfoId:{} organizeId:{} userName:{}",userInfoId,organizeId,userName); + SysUserInfo userInfo = userInfoRDao.getById(Long.parseLong(userInfoId)); + if(userInfo != null ){ + Organize organize = organizeRDao.getById(Long.parseLong(organizeId)); + if(organize != null ){ + + userInfo.setOrganizeId(organize.getId()); + userInfo.setOrganizeNameRdd(organize.getName()); + userInfo.setModifyUser(userName); + userInfo.setModifyDatetime(TimeTool.getNowTime(true)); + + userInfoRDao.update(organize); + } + }else { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("用户信息不存在") + .setErrorSolution("请重新操作") + .build(); + } + } + + @Override + public void deleteSysUserInfoById(String id) { + LOGGER.info("用户信息 SysUserInfo id:{}",id); + userInfoRDao.deleteById(Long.parseLong(id)); + } + + @Override + public void deleteSysUserInfoByIds(String[] ids) { + LOGGER.info("用户信息 SysUserInfo ids:{}",ids); + userInfoRDao.deleteByIds(StringTool.getArrayLong(ids)); + } + + @Override + public SysUserInfo getSysUserInfoById(Long id) { + return userInfoRDao.getById(id); + } + + @Override + public List listSysUserInfo() { + return userInfoRDao.findAll(); + } + + @Override + public ListPager querySysUserInfo(SysUserInfo userInfo, Pager pager) { + LOGGER.info("定时任务 TASK_TIME TaskTime:{},Pager:{}",userInfo,pager); + if(userInfo == null) { + pager = PagerHelper.getPager(pager, userInfoRDao.listCount()); + return new ListPager(userInfoRDao.listPager(pager),pager); + }else { + String hqlPack = CoreHqlPack.packHqlSysUserInfo(userInfo); + pager = PagerHelper.getPager(pager, userInfoRDao.findByHqlWhereCount(hqlPack)); + return new ListPager(userInfoRDao.findByHqlWherePage(hqlPack + userInfo.orderBy(),pager),pager); + } + } +} 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 1c9014c..3ad8e85 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 @@ -71,7 +71,7 @@ public class SysUserService implements ISysUserService { @Override public SessionUser queryUserLogin(String loginName, String password, String languageCode) { - LOGGER.info("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode); + LOGGER.debug("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode); SysUser user = getSysUserByLoginName(loginName); @@ -98,7 +98,6 @@ public class SysUserService implements ISysUserService { } SessionUser sessionUser = AuthUtil.login(token); - user = dealSysUserInfo(user); //设置用户详细信息 packSessionUser(sessionUser, user, user.getUserTypeId(), languageCode); AuthUtil.setSessionUser(sessionUser); return sessionUser; @@ -106,22 +105,22 @@ public class SysUserService implements ISysUserService { @Override public void updateSysUserStatus(String id, int status, SessionUser user) { - LOGGER.info("平台用户 SYS_USER id:{} status:{} modifyUser:{}", id, status, user.getUserName()); + LOGGER.debug("平台用户 SYS_USER id:{} status:{} modifyUser:{}", id, status, user.getUserName()); SysUser sysUser = sysUserRDao.getById(Long.parseLong(id)); - sysUser.setUserStatusId(status); +// sysUser.setUserStatusId(status); sysUser.setModifyUser(user.getUserName()); sysUserRDao.update(sysUser); } @Override public void updateBatchSysUserStatus(String[] ids, int status, SessionUser user) { - LOGGER.info("平台用户 SYS_USER DELETE By ids :{} status:{}, SessionUser :{}", ids,status,user); + LOGGER.debug("平台用户 SYS_USER DELETE By ids :{} status:{}, SessionUser :{}", ids,status,user); String where = CoreHqlPack.packHqlIds("id", ids); List list = sysUserRDao.findByHqlWhere(where); if(null != list && list.size() > 0){ for (SysUser sysUser : list) { - sysUser.setUserStatusId(status); +// sysUser.setUserStatusId(status); sysUser.setIsValid(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); ConvertBean.modelUpdate(sysUser,user); } @@ -131,19 +130,19 @@ public class SysUserService implements ISysUserService { @Override public void updateSysUser(SysUser sysUser) throws Exception{ - LOGGER.info("平台用户 SYS_USER SysUser :{}", sysUser); + LOGGER.debug("平台用户 SYS_USER SysUser :{}", sysUser); SysUser loginUser = getSysUserByLoginName(sysUser.getUserLoginName()); // 判断是否修改登录名称 if (loginUser == null || loginUser.getId().equals(sysUser.getId())) { // 密码加密 输入的密码不等于密码一致时修改密码 - if(!sysUser.getUserLoginPassword().isEmpty()){ + if(null != sysUser.getUserLoginPassword() && sysUser.getUserLoginPassword().trim().length() > 0){ if(sysUser.getUserLoginPassword().equals(loginUser.getUserLoginPassword())){ String md5 = EncryptTool.hexMD5(sysUser.getUserLoginPassword()); sysUser.setUserLoginPassword(md5); } } - sysUserInfoRDao.update(sysUser.getUserInfo()); + sysUserRDao.save(sysUser); }else { throw ImppExceptionBuilder.newInstance() @@ -157,7 +156,7 @@ public class SysUserService implements ISysUserService { @Override public void updateSysUserPassword(String userIdStr, String password, String newPwd) throws Exception { - LOGGER.info("平台用户 SYS_USER userIdStr:{} password:{} newPwd:{}", userIdStr,password,newPwd); + LOGGER.debug("平台用户 SYS_USER userIdStr:{} password:{} newPwd:{}", userIdStr,password,newPwd); SysUser user = sysUserRDao.getById(Long.parseLong(userIdStr)); if(user != null){ String md5 = EncryptTool.hexMD5(password); @@ -183,24 +182,15 @@ public class SysUserService implements ISysUserService { } @Override - public SysUser insertSysUser(SysUser sysUser )throws Exception { - LOGGER.info("平台用户 SYS_USER SysUser:{}", sysUser); + public SysUser insertSysUser(SysUser sysUser)throws Exception { + LOGGER.debug("平台用户 SYS_USER SysUser:{}", sysUser); SysUser loginUser = getSysUserByLoginName(sysUser.getUserLoginName()); if (null == loginUser) { // 密码加密 输入的密码不等于密码一致时修改密码 String md5 = EncryptTool.hexMD5(sysUser.getUserLoginPassword()); sysUser.setUserLoginPassword(md5); - - SysUser user = sysUserRDao.insert(sysUser); - - // 保存用户详细信息 - SysUserInfo userInfo = new SysUserInfo(); - userInfo.setUserId(user.getId()); - SysUserInfo info = sysUserInfoRDao.insert(userInfo); - - user.setUserInfo(info); - return user; + return sysUserRDao.insert(sysUser); } else { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) @@ -212,39 +202,9 @@ public class SysUserService implements ISysUserService { } @Override - public void refreshRefUserDepartment(SysUser sysUser, String departmentId, SessionUser user) { - LOGGER.info("平台用户 SYS_USER SysUser:{}", sysUser); - LOGGER.info("平台用户 SYS_USER departmentId:{}", departmentId); - LOGGER.info("平台用户 SYS_USER SessionUser:{}", user); - - refUserDepartmentRDao.deleteByProperty("userId", sysUser.getId()); //删除用户部门关系 - - Department dep = departmentRDao.getById(Long.parseLong(departmentId)); - if(dep != null ){ - ValidatorBean.checkNotNull(dep); - - // 用户部门关系保存 - RefUserDepartment refUserDepartment = new RefUserDepartment(sysUser.getId(), dep.getId(), dep.getName()); - refUserDepartmentRDao.save(refUserDepartment); - - // 组织信息冗余 - Organize organize = organizeRDao.getById(dep.getOrganizeId()); - if(organize != null){ - sysUser.setRedOrganizeName(organize.getName()); - sysUser.setOrganizeId(organize.getId()); - } - - // 冗余 部门信息 - sysUser.setRedDepartmentName(dep.getName()); - } - } - - @Override public void refreshRefUserRole(SysUser sysUser, String[] roleIds, SessionUser user) { - LOGGER.info("平台用户 SYS_USER SysUser:{}", sysUser); - LOGGER.info("平台用户 SYS_USER String[] :{}", roleIds); - LOGGER.info("平台用户 SYS_USER SessionUser:{}", user); - + LOGGER.debug("平台用户 SYS_USER SysUser:{}", sysUser); + LOGGER.debug("平台用户 SYS_USER String[] :{}", roleIds); // 根据IDS 查询所有的角色信息 String where = CoreHqlPack.packHqlIds("id", roleIds); @@ -257,45 +217,31 @@ public class SysUserService implements ISysUserService { // 新增用户角色关系 List refUserRoles = new ArrayList<>(); List roleNameList = new ArrayList<>(); - SysRole sysRole = list.get(0); RefUserRole refUserRole = null; for (SysRole role : list) { roleNameList.add(role.getName()); // 用户角色关系创建 - refUserRole = new RefUserRole(sysUser.getId(), role.getId(), role.getName()); + refUserRole = new RefUserRole(); + refUserRole.setRoleId(role.getId()); + refUserRole.setRoleNameRdd(role.getName()); + refUserRole.setUserId(sysUser.getId()); + refUserRole.setUserNameRdd(sysUser.getUserName()); + refUserRoles.add(refUserRole); } refUserRoleRDao.saveAll(refUserRoles); // 角色名称冗余 - sysUser.getUserInfo().setRedRoleNames(String.join(",", roleNameList)); - sysUser.setRoleId(sysRole.getId()); - sysUser.setRedRoleName(sysRole.getName()); - } - } - - @Override - public void refreshRefUserPosition(SysUser sysUser, String positionId, SessionUser user) { - LOGGER.info("平台用户 SYS_USER SysUser:{}", sysUser); - LOGGER.info("平台用户 SYS_USER positionId :{}", positionId); - LOGGER.info("平台用户 SYS_USER SessionUser:{}", user); - - Position pos = positionRDao.getById(Long.parseLong(positionId)); - ValidatorBean.checkNotNull(pos); - - refUserPositionRDao.deleteByProperty("userId", sysUser.getId()); //删除用户部门关系 - - RefUserPosition refUserPosition = new RefUserPosition(sysUser.getId(), pos.getId(), pos.getName()); - refUserPositionRDao.insert(refUserPosition); + sysUser.setRoleNameRdd(String.join(",", roleNameList)); + sysUser.setRoleId(list.get(0).getId()); - // 岗位名称冗余 - sysUser.getUserInfo().setRedPositionNames(pos.getName()); - sysUser.setRedPositionName(pos.getName()); + sysUserRDao.save(sysUser); + } } @Override public void deleteSysUserById(String id) { - LOGGER.info("平台用户 SYS_USER DELETE By id :{}", id); + LOGGER.debug("平台用户 SYS_USER DELETE By id :{}", id); sysUserRDao.updateByProperties("id", id, "isValid", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); // 删除用户关系(物理删除) @@ -306,7 +252,7 @@ public class SysUserService implements ISysUserService { @Override public void deleteBatchSysUserById(String[] ids,SessionUser user) { - LOGGER.info("平台用户 SYS_USER DELETE By ids :{}", ids); + LOGGER.debug("平台用户 SYS_USER DELETE By ids :{}", ids); // 标记用户已删除 String where = CoreHqlPack.packHqlIds("id", ids); @@ -314,21 +260,22 @@ public class SysUserService implements ISysUserService { if(null != list && list.size() > 0){ for (SysUser sysUser : list) { sysUser.setIsValid(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); - ConvertBean.modelUpdate(sysUser,user); } + sysUserRDao.saveAll(list); + refUserRoleRDao.deleteByPropertyIn("userId",ids); } } @Override public List list() { - LOGGER.info("平台用户 SYS_USER find All"); + LOGGER.debug("平台用户 SYS_USER find All"); return sysUserRDao.findByProperty("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); } @Override public ListPager querySysUserByPager(SysUser user, Pager pager) { - LOGGER.info("系统用户 SysUser find user :{} page :{}", user, pager); + LOGGER.debug("系统用户 SysUser find user :{} page :{}", user, pager); //生成hql查询语句 String hqlPack = CoreHqlPack.packHqlSysUser(user); @@ -338,57 +285,22 @@ public class SysUserService implements ISysUserService { @Override public SysUser getSysUserById(String id) { - LOGGER.info("平台用户 SYS_USER get By id :{}", id); + LOGGER.debug("平台用户 SYS_USER get By id :{}", id); return sysUserRDao.getById(Long.parseLong(id)); } @Override - public SysUserInfo getSysUserInfoById(String id) { - LOGGER.info("平台用户明细 SYS_USER_INFO get By id :{}", id); - return sysUserInfoRDao.getByProperty("userId",Long.parseLong(id)); + public SysUserInfo getSysUserInfoById(Long id) { + return sysUserInfoRDao.getByProperty("id",id); } @Override public SysUser getSysUserByLoginName(String loginName) { - LOGGER.info("平台用户 SYS_USER find By Login Name :{}", loginName); + LOGGER.debug("平台用户 SYS_USER find By Login Name :{}", loginName); return sysUserRDao.getByProperty(new String[]{"userLoginName", "isValid"}, new Object[]{loginName, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}); } - /** - * 设置用户详细信息 - * - * @param user - * @return - */ - @Override - public SysUser dealSysUserInfo(SysUser user) { - LOGGER.info("平台用户 SYS_USER user id :{}", user.getId()); - SysUserInfo userInfo = sysUserInfoRDao.getByProperty("userId", user.getId()); - Organize organize = organizeRDao.getById(user.getOrganizeId()); - - List departmentList = userPermissionDao.findDepartmentByUser(user); - List positionList = userPermissionDao.findPositionByUser(user); - List menuList = userPermissionDao.findSysMenuByUser(user); - List roleList = userPermissionDao.findSysRoleByUser(user); - - LOGGER.info("平台用户 SYS_USER userInfo :{}", userInfo); - LOGGER.info("平台用户 SYS_USER organize :{}", organize); - LOGGER.info("平台用户 SYS_USER departmentList size :{}", departmentList.size()); - LOGGER.info("平台用户 SYS_USER positionList size :{}", positionList.size()); - LOGGER.info("平台用户 SYS_USER menuList size :{}", menuList.size()); - LOGGER.info("平台用户 SYS_USER roleList size :{}", roleList.size()); - - user.setUserInfo(userInfo); - user.setOrganize(organize); - user.setDepartmentList(departmentList); - user.setMenuList(menuList); - user.setPositionList(positionList); - user.setRoleList(roleList); - - return user; - } - @Override public List findRefUserRoleByUserId(String userId) { return refUserRoleRDao.findByProperty("userId",Long.parseLong(userId)); @@ -403,21 +315,39 @@ public class SysUserService implements ISysUserService { * @param languageCode 用户选择的语言 * @return */ - public static SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, String languageCode) { + public SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, String languageCode) { + + LOGGER.debug("平台用户 SYS_USER user id :{}", user.getId()); + SysUserInfo userInfo = sysUserInfoRDao.getById(user.getUserInfoId()); + Organize organize = organizeRDao.getById(userInfo.getOrganizeId()); + + // 权限信息查询 + List menuList = userPermissionDao.findSysMenuByUser(user); + List roleList = userPermissionDao.findSysRoleByUser(user); + List departmentList = userPermissionDao.findDepartmentByUser(userInfo); + List positionList = userPermissionDao.findPositionByUser(userInfo); + + LOGGER.debug("平台用户 SYS_USER userInfo :{}", userInfo); + LOGGER.debug("平台用户 SYS_USER organize :{}", organize); + LOGGER.debug("平台用户 SYS_USER departmentList size :{}", departmentList.size()); + LOGGER.debug("平台用户 SYS_USER positionList size :{}", positionList.size()); + LOGGER.debug("平台用户 SYS_USER menuList size :{}", menuList.size()); + LOGGER.debug("平台用户 SYS_USER roleList size :{}", roleList.size()); + + user.setMenuList(menuList); + user.setRoleList(roleList); + + userInfo.setUser(user); + userInfo.setOrganize(organize); + userInfo.setDepartmentList(departmentList); + userInfo.setPositionList(positionList); + sessionUser.setLanguageCode(languageCode); - sessionUser.setUserName(user.getName()); + sessionUser.setUserName(userInfo.getName()); sessionUser.setUserTypeId(CommonEnumUtil.USER_TYPE.valueOf(userType)); - sessionUser.setUserCode(user.getUserEmpNo()); - sessionUser.setRoleList(user.getRoleList()); - sessionUser.setDepartmentList(user.getDepartmentList()); - sessionUser.setPositionList(user.getPositionList()); - sessionUser.setOrganize(user.getOrganize()); + sessionUser.setUserCode(userInfo.getUserEmpNo()); sessionUser.setUser(user); - sessionUser.setUserInfo(user.getUserInfo()); - - if(null != user.getPositionList() && user.getPositionList().size() > 0){ - sessionUser.setPosition(user.getPositionList().get(0)); - } + sessionUser.setUserInfo(userInfo); return sessionUser; }