From 2562d6ce39aa405514c9e22ff0237f3f145040b6 Mon Sep 17 00:00:00 2001 From: ZQN <364596817@qq.com> Date: 星期二, 27 八月 2024 10:45:29 +0800 Subject: [PATCH] 企业二维码样式修改 --- project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 200 insertions(+), 8 deletions(-) diff --git a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java index 8c9c811..0326440 100644 --- a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java +++ b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java @@ -1,26 +1,34 @@ package com.project.system.service.impl; +import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.project.common.annotation.DataScope; import com.project.common.constant.UserConstants; +import com.project.common.core.domain.entity.SysDept; import com.project.common.core.domain.entity.SysRole; import com.project.common.core.domain.entity.SysUser; +import com.project.common.core.domain.model.ImportError; import com.project.common.exception.ServiceException; +import com.project.common.exception.base.BaseException; import com.project.common.utils.SecurityUtils; import com.project.common.utils.StringUtils; import com.project.common.utils.bean.BeanValidators; import com.project.common.utils.spring.SpringUtils; -import com.project.system.domain.SysPost; -import com.project.system.domain.SysUserPost; -import com.project.system.domain.SysUserRole; +import com.project.system.domain.*; +import com.project.system.domain.bo.editBo.UserDeptBo; +import com.project.system.domain.vo.SysUserResultVo; +import com.project.system.domain.vo.SysUserVo; import com.project.system.mapper.*; import com.project.system.service.ISysConfigService; +import com.project.system.service.ISysDeptService; +import com.project.system.service.ISysUserDeptService; import com.project.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -47,7 +55,22 @@ private final SysUserRoleMapper userRoleMapper; private final SysUserPostMapper userPostMapper; private final ISysConfigService configService; + private final ISysUserDeptService userDeptService; + private final ISysDeptService deptService; protected final Validator validator; + + /** + * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 + * + * @param user 鐢ㄦ埛淇℃伅 + * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 + */ + @Override + @DataScope(deptAlias = "d", userAlias = "u") + public List<SysUser> selectUserListCommon(SysUser user) + { + return userMapper.selectUserListCommon(user); + } /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 @@ -242,6 +265,7 @@ */ @Override @Transactional + @CacheEvict(value = "sysUser:peerList",allEntries = true) public int insertUser(SysUser user) { // 鏂板鐢ㄦ埛淇℃伅 @@ -250,6 +274,10 @@ insertUserPost(user); // 鏂板鐢ㄦ埛涓庤鑹茬鐞� insertUserRole(user); + // 鏂板鐢ㄦ埛涓庨儴闂ㄧ鐞� + if (!"02".equals(user.getUserType())){ + insertUserDept(user); + } return rows; } @@ -273,6 +301,7 @@ */ @Override @Transactional + @CacheEvict(value = "sysUser:peerList",allEntries = true) public int updateUser(SysUser user) { Long userId = user.getUserId(); @@ -284,6 +313,11 @@ userPostMapper.deleteUserPostByUserId(userId); // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞� insertUserPost(user); + SysUser old = this.selectUserById(userId); + // 鏂板鐢ㄦ埛涓庨儴闂ㄧ鐞� + if (!"02".equals(user.getUserType()) && !old.getDeptId().equals(user.getDeptId())){ + insertUserDept(user); + } return userMapper.updateUser(user); } @@ -374,6 +408,29 @@ } /** + * 鏂板鐢ㄦ埛閮ㄩ棬 + * + * @param user 鐢ㄦ埛瀵硅薄 + */ + public void insertUserDept(SysUser user) + { + if (deptService.getCheckDeptIdByLoginDeptId(user.getDeptId()).equals(user.getDeptId())) { //鍒嗙灞�鍐呮墍鏈夐儴闂� + List<SysDept> list = deptService.list(deptService.lq().eq(SysDept::getParentId, user.getDeptId())); + List<Long> deptIds = list.stream().map(SysDept::getDeptId).collect(Collectors.toList()); + deptIds.add(user.getDeptId()); + UserDeptBo bo = new UserDeptBo(); + bo.setUserId(user.getUserId()); + bo.setDeptIds(deptIds); + userDeptService.batchUserDeptSave(bo); + } else { //鍒嗙鍗曠嫭閮ㄩ棬 + userDeptService.remove(userDeptService.lq().eq(SysUserDept::getUserId, user.getUserId())); + SysUserDept userDept = new SysUserDept().setUserId(user.getUserId()).setDeptId(user.getDeptId()); + userDeptService.save(userDept); + } + + } + + /** * 鏂板鐢ㄦ埛宀椾綅淇℃伅 * * @param user 鐢ㄦ埛瀵硅薄 @@ -427,6 +484,7 @@ */ @Override @Transactional + @CacheEvict(value = "sysUser:peerList",allEntries = true) public int deleteUserById(Long userId) { // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱� @@ -444,6 +502,7 @@ */ @Override @Transactional + @CacheEvict(value = "sysUser:peerList",allEntries = true) public int deleteUserByIds(Long[] userIds) { for (Long userId : userIds) @@ -533,21 +592,154 @@ /** * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 * - * @param deptId 闇�瑕佸垹闄ょ殑鐢ㄦ埛ID + * @param phone 闇�瑕佸垹闄ょ殑鐢ㄦ埛ID * @return 缁撴灉 */ @Override @Transactional - public int deleteUserByDeptId(Long deptId) + public int deleteUserByCompanyPhone(String phone) { - List<SysUser> sysUsers = userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getDeptId, deptId)); + List<SysUser> sysUsers = userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, phone)); Long[] ids = sysUsers.stream().map(SysUser::getUserId).toArray(Long[]::new); return this.deleteUserByIds(ids); } @Override - public List<Long> getNumByRoleKey(String roleKey, Long deptId) + public List<String> getPhonesByRoleKey(String roleKey, Long deptId) { - return userMapper.getNumByRoleKey(roleKey, deptId); + return userMapper.getPhonesByRoleKey(roleKey, deptId); + } + + @Override + public int resetPhone(Long userId, String phone) { + return userMapper.resetPhone(userId, phone); + } + + /** + * 澶勭悊瀵煎叆鏁版嵁 + * @param list 鏁版嵁 + * @param deptId 瀵煎叆閮ㄩ棬id + * @return 缁撴灉 + */ + @Override + public SysUserResultVo doImport(List<SysUserVo> list, Long deptId) + { + if (list==null || list.size()<1){ + throw new BaseException("鏈幏鍙栧埌瀵煎叆淇℃伅锛�"); + } + + SysUserResultVo resultVo = new SysUserResultVo(); + list.forEach(sysUserVo -> { + sysUserVo.setDeptId(deptId); + }); + resultVo.setVoList(list); + return this.checkImport(resultVo); + } + + /** + * 鏍¢獙瀵煎叆鏁版嵁 + * @param resultVo 鏁版嵁 + * @return 缁撴灉 + */ + @Override + public SysUserResultVo checkImport(SysUserResultVo resultVo) + { + if (resultVo==null || StringUtils.isEmpty(resultVo.getVoList())){ + throw new BaseException("鏈幏鍙栧埌瀵煎叆淇℃伅锛�"); + } + for (SysUserVo vo : resultVo.getVoList()) { + List<ImportError> errors = new ArrayList<>(); + validEntityBeforeImport(vo, errors); + vo.setErrorList(errors); + } + return resultVo; + } + + /** + * 楠岃瘉鍙傛暟 + * @param entity 鏁版嵁 + * @param errorList 閿欒鏁版嵁 + */ + private void validEntityBeforeImport(SysUserVo entity, List<ImportError> errorList) + { + if (StringUtils.isEmpty(entity.getNickName())){ + errorList.add(new ImportError(0, "璇峰~濮撳悕锛�")); + } + if (StringUtils.isEmpty(entity.getDeptName())){ + errorList.add(new ImportError(1, "璇峰~鍐欓儴闂ㄤ俊鎭紒")); + } else { + SysDept sysDept = deptService.selectDeptById(entity.getDeptId()); + if (sysDept==null || !sysDept.getDeptName().equals(entity.getDeptName())){ + errorList.add(new ImportError(1, "閮ㄩ棬淇℃伅涓嶅尮閰嶏紒")); + } + } + if (StringUtils.isEmpty(entity.getPhonenumber())){ + errorList.add(new ImportError(2, "璇峰~鍐欐墜鏈哄彿锛�")); + } else { + SysUser user = this.selectUserByUserName(entity.getPhonenumber()); + if (user!=null){ + entity.setUserId(user.getUserId()); + } else { + SysUser check = new SysUser(); + check.setPhonenumber(entity.getPhonenumber()); + String s = checkPhoneUnique(check); + if (UserConstants.NOT_UNIQUE.equals(s)) { + errorList.add(new ImportError(2, "鎵嬫満鍙峰凡瀛樺湪锛�")); + } + } + } + if (StringUtils.isNotEmpty(entity.getEmail())){ + SysUser check = new SysUser(); + check.setPhonenumber(entity.getPhonenumber()); + String s = checkEmailUnique(check); + if (UserConstants.NOT_UNIQUE.equals(s)) { + errorList.add(new ImportError(3, "閭宸插瓨鍦紒")); + } + } + if (StringUtils.isNotEmpty(entity.getImportSex())){ + switch (entity.getImportSex().trim()){ + case "鐢�": + entity.setSex("0"); + break; + case "濂�": + entity.setSex("1"); + break; + case "鏈煡": + entity.setSex("2"); + break; + } + } else { + entity.setSex("2"); + } + } + + /** + * 淇濆瓨瀵煎叆缁撴灉 + * @param resultVo 鏁版嵁 + * @return 缁撴灉 + */ + @Override + @Transactional + public Boolean saveImport(SysUserResultVo resultVo) + { + if (resultVo==null || StringUtils.isEmpty(resultVo.getVoList())){ + throw new BaseException("鏈幏鍙栧埌瀵煎叆淇℃伅锛�"); + } + resultVo.getVoList().forEach(e-> { + if (StringUtils.isNotEmpty(e.getErrorList())) { + throw new BaseException("杩樻湁鏈鐞嗛敊璇俊鎭紒"); + } + }); + List<SysUser> users = Convert.toList(SysUser.class, resultVo.getVoList()); + for (SysUser user : users) { + this.insertUser(user); + } + return true; + } + + @Override + public String getDeptNameByUserId(Long userId) + { + return deptService.selectDeptById(selectUserById(userId).getDeptId()).getDeptName(); } } -- Gitblit v1.9.1