【UserOrg】业务优化

pull/3/head
chenjinlong 2021-02-03 14:33:20 +08:00
parent 831525b71f
commit 0d01225b27
5 changed files with 213 additions and 51 deletions

View File

@ -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{}");
/**
*

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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());