mirror of https://gitee.com/stylefeng/roses
【UserOrg】业务优化
parent
831525b71f
commit
0d01225b27
|
@ -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:{}");
|
||||
|
||||
/**
|
||||
* 错误编码
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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<SysUserOrg>, 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<SysUserOrg> findList(UserOrgResponse userOrgResponse);
|
||||
|
||||
|
||||
}
|
|
@ -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<SysUserOrgMapper, SysUserOrg> implements SysUserOrgService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateUserOrg(Long userId, Long orgId, Long positionId) {
|
||||
|
||||
// 删除旧的绑定信息
|
||||
LambdaUpdateWrapper<SysUserOrg> 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<SysUserOrgMapper,
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void deleteUserOrg(Long userId) {
|
||||
LambdaUpdateWrapper<SysUserOrg> 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<SysUserOrg> 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<SysUserOrg> queryWrapper = this.createWrapper(userOrgResponse);
|
||||
return this.getOne(queryWrapper, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUserOrg> findList(UserOrgResponse userOrgResponse) {
|
||||
LambdaQueryWrapper<SysUserOrg> queryWrapper = this.createWrapper(userOrgResponse);
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean getUserOrgFlag(Long orgId, Long positionId) {
|
||||
LambdaQueryWrapper<SysUserOrg> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
@ -75,4 +117,34 @@ public class SysUserOrgServiceServiceImpl extends ServiceImpl<SysUserOrgMapper,
|
|||
return this.list(queryWrapper).size() > 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<SysUserOrg> createWrapper(UserOrgResponse userOrgResponse) {
|
||||
LambdaQueryWrapper<SysUserOrg> 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;
|
||||
}
|
||||
|
||||
}
|
|
@ -141,7 +141,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> 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<SysUserMapper, SysUser> 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<SysUserMapper, SysUser> impl
|
|||
Long userId = sysUser.getUserId();
|
||||
|
||||
// 删除该用户对应的员工表信息
|
||||
sysUserOrgService.deleteUserOrg(userId);
|
||||
sysUserOrgService.delByUserId(userId);
|
||||
|
||||
// 删除该用户对应的用户-角色表关联信息
|
||||
sysUserRoleService.deleteUserRoleListByUserId(userId);
|
||||
|
@ -651,24 +651,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
*/
|
||||
private LambdaQueryWrapper<SysUser> createWrapper(SysUserRequest sysUserRequest) {
|
||||
LambdaQueryWrapper<SysUser> 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());
|
||||
|
||||
|
|
Loading…
Reference in New Issue