From 0d01225b27e55ca31c73c9af22dd53abb2f39b19 Mon Sep 17 00:00:00 2001 From: chenjinlong <22208488@qq.com> Date: Wed, 3 Feb 2021 14:33:20 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90UserOrg=E3=80=91=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/SysUserOrgExceptionEnum.java | 7 +- .../system/pojo/userOrg/UserOrgResponse.java | 33 +++++ .../user/service/SysUserOrgService.java | 80 ++++++++++-- .../impl/SysUserOrgServiceServiceImpl.java | 116 ++++++++++++++---- .../user/service/impl/SysUserServiceImpl.java | 28 ++--- 5 files changed, 213 insertions(+), 51 deletions(-) create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/userOrg/UserOrgResponse.java diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/SysUserOrgExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/SysUserOrgExceptionEnum.java index b79e3375c..bce2323e5 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/SysUserOrgExceptionEnum.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/SysUserOrgExceptionEnum.java @@ -27,7 +27,12 @@ public enum SysUserOrgExceptionEnum implements AbstractExceptionEnum { /** * 用户未设置主部门,或主部门信息为多个 */ - EMPLOYEE_NOT_OR_MANY(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "23", "用户未设置主部门,或主部门信息为多个"); + EMPLOYEE_NOT_OR_MANY(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "23", "用户未设置主部门,或主部门信息为多个"), + + /** + * 用户组织或部门不存在 + */ + USER_ORG_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "24", "用户组织或部门不存在:用户组织id:{}"); /** * 错误编码 diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/userOrg/UserOrgResponse.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/userOrg/UserOrgResponse.java new file mode 100644 index 000000000..34f22b6a4 --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/userOrg/UserOrgResponse.java @@ -0,0 +1,33 @@ +package cn.stylefeng.roses.kernel.system.pojo.userOrg; + +import lombok.Data; + +/** + * 用户组织机构关联 + * + * @author chenjinlong + * @date 2021/2/3 10:51 + */ +@Data +public class UserOrgResponse { + + /** + * 主键 + */ + private Long userOrgId; + + /** + * 用户id + */ + private Long userId; + + /** + * 所属机构id + */ + private Long orgId; + + /** + * 职位id + */ + private Long positionId; +} diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/SysUserOrgService.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/SysUserOrgService.java index 0e222e69a..1ce1044d5 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/SysUserOrgService.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/SysUserOrgService.java @@ -2,8 +2,11 @@ package cn.stylefeng.roses.kernel.system.modular.user.service; import cn.stylefeng.roses.kernel.system.UserOrgServiceApi; import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserOrg; +import cn.stylefeng.roses.kernel.system.pojo.userOrg.UserOrgResponse; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * 用户组织机构关联信息 * @@ -13,19 +16,80 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface SysUserOrgService extends IService, UserOrgServiceApi { /** - * 更新用户组织机构绑定 + * 新增 * - * @author fengshuonan - * @date 2020/12/19 22:29 + * @param userOrgResponse 参数对象 + * @author chenjinlong + * @date 2021/1/26 12:52 */ - void updateUserOrg(Long userId, Long orgId, Long positionId); + void add(UserOrgResponse userOrgResponse); /** - * 删除用户对应的组织机构信息 + * 新增 * - * @author fengshuonan - * @date 2020/12/19 22:38 + * @param userId 用户id + * @param orgId 机构id + * @param positionId 部门id + * @author chenjinlong + * @date 2021/1/26 12:52 */ - void deleteUserOrg(Long userId); + void add(Long userId, Long orgId, Long positionId); + + /** + * 删除 + * + * @param userOrgResponse 参数对象 + * @author chenjinlong + * @date 2021/1/26 12:52 + */ + void del(UserOrgResponse userOrgResponse); + + /** + * 删除 + * + * @param userId 用户id + * @author chenjinlong + * @date 2021/1/26 12:52 + */ + void delByUserId(Long userId); + + /** + * 修改 + * + * @param userOrgResponse 参数对象 + * @author chenjinlong + * @date 2021/1/26 12:52 + */ + void edit(UserOrgResponse userOrgResponse); + + /** + * 修改 + * + * @param userId 用户id + * @param orgId 机构id + * @param positionId 部门id + * @author chenjinlong + * @date 2021/1/26 12:52 + */ + void edit(Long userId, Long orgId, Long positionId); + + /** + * 详情 + * + * @param userOrgResponse 参数对象 + * @author chenjinlong + * @date 2021/1/26 12:52 + */ + SysUserOrg detail(UserOrgResponse userOrgResponse); + + /** + * 查询-列表 + * + * @param userOrgResponse 参数对象 + * @author chenjinlong + * @date 2021/1/26 12:52 + */ + List findList(UserOrgResponse userOrgResponse); + } \ No newline at end of file diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserOrgServiceServiceImpl.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserOrgServiceServiceImpl.java index 67352538c..6b4b55f27 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserOrgServiceServiceImpl.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserOrgServiceServiceImpl.java @@ -3,12 +3,13 @@ package cn.stylefeng.roses.kernel.system.modular.user.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.system.exception.SystemModularException; +import cn.stylefeng.roses.kernel.system.exception.enums.SysUserOrgExceptionEnum; import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserOrg; import cn.stylefeng.roses.kernel.system.modular.user.mapper.SysUserOrgMapper; import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserOrgService; import cn.stylefeng.roses.kernel.system.pojo.user.SysUserOrgResponse; +import cn.stylefeng.roses.kernel.system.pojo.userOrg.UserOrgResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -26,23 +27,6 @@ import static cn.stylefeng.roses.kernel.system.exception.enums.SysUserOrgExcepti @Service public class SysUserOrgServiceServiceImpl extends ServiceImpl implements SysUserOrgService { - @Override - @Transactional(rollbackFor = Exception.class) - public void updateUserOrg(Long userId, Long orgId, Long positionId) { - - // 删除旧的绑定信息 - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(SysUserOrg::getUserId, userId); - this.remove(updateWrapper); - - // 新增新的绑定信息 - SysUserOrg sysUserOrg = new SysUserOrg(); - sysUserOrg.setUserId(userId); - sysUserOrg.setOrgId(orgId); - sysUserOrg.setPositionId(positionId); - this.save(sysUserOrg); - } - @Override public SysUserOrgResponse getUserOrgInfo(Long userId) { @@ -60,13 +44,71 @@ public class SysUserOrgServiceServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(SysUserOrg::getUserId, userId); - this.remove(updateWrapper); + public void add(UserOrgResponse userOrgResponse) { + SysUserOrg sysUserOrg = new SysUserOrg(); + BeanUtil.copyProperties(userOrgResponse, sysUserOrg); + this.save(sysUserOrg); } + @Override + public void add(Long userId, Long orgId, Long positionId) { + SysUserOrg sysUserOrg = new SysUserOrg(); + sysUserOrg.setUserId(userId); + sysUserOrg.setOrgId(orgId); + sysUserOrg.setPositionId(positionId); + this.save(sysUserOrg); + } + + @Override + public void del(UserOrgResponse userOrgResponse) { + SysUserOrg sysUserOrg = this.querySysUserOrgById(userOrgResponse); + this.removeById(sysUserOrg.getUserOrgId()); + } + + @Override + public void delByUserId(Long userId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUserOrg::getUserId, userId); + this.remove(queryWrapper); + } + + @Override + public void edit(UserOrgResponse userOrgResponse) { + SysUserOrg sysUserOrg = this.querySysUserOrgById(userOrgResponse); + BeanUtil.copyProperties(userOrgResponse, sysUserOrg); + this.updateById(sysUserOrg); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void edit(Long userId, Long orgId, Long positionId) { + UserOrgResponse userOrgResponse = new UserOrgResponse(); + userOrgResponse.setUserId(userId); + userOrgResponse.setOrgId(orgId); + userOrgResponse.setPositionId(positionId); + + // 删除已有 + this.delByUserId(userId); + + this.add(userId, orgId, positionId); + } + + + @Override + public SysUserOrg detail(UserOrgResponse userOrgResponse) { + LambdaQueryWrapper queryWrapper = this.createWrapper(userOrgResponse); + return this.getOne(queryWrapper, false); + } + + @Override + public List findList(UserOrgResponse userOrgResponse) { + LambdaQueryWrapper queryWrapper = this.createWrapper(userOrgResponse); + return this.list(queryWrapper); + } + + @Override public Boolean getUserOrgFlag(Long orgId, Long positionId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -75,4 +117,34 @@ public class SysUserOrgServiceServiceImpl extends ServiceImpl 0; } + + /** + * 根据主键id获取对象 + * + * @author chenjinlong + * @date 2021/1/26 13:28 + */ + private SysUserOrg querySysUserOrgById(UserOrgResponse userOrgResponse) { + SysUserOrg sysUserOrg = this.getById(userOrgResponse.getUserOrgId()); + if (ObjectUtil.isEmpty(sysUserOrg)) { + throw new SystemModularException(SysUserOrgExceptionEnum.USER_ORG_NOT_EXIST, sysUserOrg.getOrgId()); + } + return sysUserOrg; + } + + /** + * 实体构建queryWrapper + * + * @author fengshuonan + * @date 2021/1/24 22:03 + */ + private LambdaQueryWrapper createWrapper(UserOrgResponse userOrgResponse) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(userOrgResponse.getUserOrgId()), SysUserOrg::getUserOrgId, userOrgResponse.getUserOrgId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(userOrgResponse.getUserId()), SysUserOrg::getUserId, userOrgResponse.getUserId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(userOrgResponse.getOrgId()), SysUserOrg::getOrgId, userOrgResponse.getOrgId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(userOrgResponse.getPositionId()), SysUserOrg::getPositionId, userOrgResponse.getPositionId()); + return queryWrapper; + } + } \ No newline at end of file diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java index 1ab2ce1fc..80ca0c4ba 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java @@ -141,7 +141,7 @@ public class SysUserServiceImpl extends ServiceImpl impl this.save(sysUser); // 更新用户员工信息 - sysUserOrgService.updateUserOrg(sysUser.getUserId(), sysUserRequest.getOrgId(), sysUserRequest.getPositionId()); + sysUserOrgService.add(sysUser.getUserId(), sysUserRequest.getOrgId(), sysUserRequest.getPositionId()); } @Override @@ -165,7 +165,7 @@ public class SysUserServiceImpl extends ServiceImpl impl Long sysUserId = sysUser.getUserId(); // 更新用户员工信息 - sysUserOrgService.updateUserOrg(sysUser.getUserId(), sysUserRequest.getOrgId(), sysUserRequest.getPositionId()); + sysUserOrgService.edit(sysUser.getUserId(), sysUserRequest.getOrgId(), sysUserRequest.getPositionId()); } @Override @@ -315,7 +315,7 @@ public class SysUserServiceImpl extends ServiceImpl impl Long userId = sysUser.getUserId(); // 删除该用户对应的员工表信息 - sysUserOrgService.deleteUserOrg(userId); + sysUserOrgService.delByUserId(userId); // 删除该用户对应的用户-角色表关联信息 sysUserRoleService.deleteUserRoleListByUserId(userId); @@ -651,24 +651,12 @@ public class SysUserServiceImpl extends ServiceImpl impl */ private LambdaQueryWrapper createWrapper(SysUserRequest sysUserRequest) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (ObjectUtil.isNotNull(sysUserRequest)) { - - // 组装账号的查询条件 - if (ObjectUtil.isNotEmpty(sysUserRequest.getUserId())) { - queryWrapper.eq(SysUser::getUserId, sysUserRequest.getUserId()); - } - - // 组装账号的查询条件 - if (ObjectUtil.isNotEmpty(sysUserRequest.getAccount())) { - queryWrapper.like(SysUser::getAccount, sysUserRequest.getAccount()); - } - - // 组装用户姓名的查询条件 - if (ObjectUtil.isNotEmpty(sysUserRequest.getRealName())) { - queryWrapper.eq(SysUser::getRealName, sysUserRequest.getRealName()); - } - } + // SQL拼接 + queryWrapper.eq(ObjectUtil.isNotEmpty(sysUserRequest.getUserId()), SysUser::getUserId, sysUserRequest.getUserId()); + queryWrapper.like(ObjectUtil.isNotEmpty(sysUserRequest.getAccount()), SysUser::getAccount, sysUserRequest.getAccount()); + queryWrapper.eq(ObjectUtil.isNotEmpty(sysUserRequest.getRealName()), SysUser::getRealName, sysUserRequest.getRealName()); + // 查询未删除状态的 queryWrapper.eq(SysUser::getDelFlag, YesOrNotEnum.N.getCode());