From a8545de2367c8df88f829f576176fd1c1ec93273 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 30 八月 2024 21:14:27 +0800 Subject: [PATCH] 同步用户信息~ --- se-modules/se-system/src/main/java/com/se/system/service/impl/SysUserServiceImpl.java | 272 +++++++++++++++++++++++++---------------------------- 1 files changed, 129 insertions(+), 143 deletions(-) diff --git a/se-modules/se-system/src/main/java/com/se/system/service/impl/SysUserServiceImpl.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysUserServiceImpl.java index 54fc967..de8df48 100644 --- a/se-modules/se-system/src/main/java/com/se/system/service/impl/SysUserServiceImpl.java +++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysUserServiceImpl.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; +import javax.annotation.Resource; import javax.validation.Validator; import com.se.system.domain.SysPost; @@ -38,8 +39,7 @@ * @author admin */ @Service -public class SysUserServiceImpl implements ISysUserService -{ +public class SysUserServiceImpl implements ISysUserService { private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); @Autowired @@ -66,81 +66,77 @@ @Autowired protected Validator validator; + @Resource + SyncUserService syncUserService; + /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List<SysUser> selectUserList(SysUser user) - { + public List<SysUser> selectUserList(SysUser user) { return userMapper.selectUserList(user); } /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛� - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List<SysUser> selectAllocatedList(SysUser user) - { + public List<SysUser> selectAllocatedList(SysUser user) { return userMapper.selectAllocatedList(user); } /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛� - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List<SysUser> selectUnallocatedList(SysUser user) - { + public List<SysUser> selectUnallocatedList(SysUser user) { return userMapper.selectUnallocatedList(user); } /** * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴� - * + * * @param userName 鐢ㄦ埛鍚� * @return 鐢ㄦ埛瀵硅薄淇℃伅 */ @Override - public SysUser selectUserByUserName(String userName) - { + public SysUser selectUserByUserName(String userName) { return userMapper.selectUserByUserName(userName); } /** * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛 - * + * * @param userId 鐢ㄦ埛ID * @return 鐢ㄦ埛瀵硅薄淇℃伅 */ @Override - public SysUser selectUserById(Long userId) - { + public SysUser selectUserById(Long userId) { return userMapper.selectUserById(userId); } /** * 鏌ヨ鐢ㄦ埛鎵�灞炶鑹茬粍 - * + * * @param userName 鐢ㄦ埛鍚� * @return 缁撴灉 */ @Override - public String selectUserRoleGroup(String userName) - { + public String selectUserRoleGroup(String userName) { List<SysRole> list = roleMapper.selectRolesByUserName(userName); - if (CollectionUtils.isEmpty(list)) - { + if (CollectionUtils.isEmpty(list)) { return StringUtils.EMPTY; } return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); @@ -148,16 +144,14 @@ /** * 鏌ヨ鐢ㄦ埛鎵�灞炲矖浣嶇粍 - * + * * @param userName 鐢ㄦ埛鍚� * @return 缁撴灉 */ @Override - public String selectUserPostGroup(String userName) - { + public String selectUserPostGroup(String userName) { List<SysPost> list = postMapper.selectPostsByUserName(userName); - if (CollectionUtils.isEmpty(list)) - { + if (CollectionUtils.isEmpty(list)) { return StringUtils.EMPTY; } return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); @@ -165,17 +159,15 @@ /** * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public boolean checkUserNameUnique(SysUser user) - { + public boolean checkUserNameUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkUserNameUnique(user.getUserName()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -188,12 +180,10 @@ * @return */ @Override - public boolean checkPhoneUnique(SysUser user) - { + public boolean checkPhoneUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -206,12 +196,10 @@ * @return */ @Override - public boolean checkEmailUnique(SysUser user) - { + public boolean checkEmailUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkEmailUnique(user.getEmail()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -219,33 +207,28 @@ /** * 鏍¢獙鐢ㄦ埛鏄惁鍏佽鎿嶄綔 - * + * * @param user 鐢ㄦ埛淇℃伅 */ @Override - public void checkUserAllowed(SysUser user) - { - if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) - { + public void checkUserAllowed(SysUser user) { + if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) { throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳鐢ㄦ埛"); } } /** * 鏍¢獙鐢ㄦ埛鏄惁鏈夋暟鎹潈闄� - * + * * @param userId 鐢ㄦ埛id */ @Override - public void checkUserDataScope(Long userId) - { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) - { + public void checkUserDataScope(Long userId) { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) { SysUser user = new SysUser(); user.setUserId(userId); List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user); - if (StringUtils.isEmpty(users)) - { + if (StringUtils.isEmpty(users)) { throw new ServiceException("娌℃湁鏉冮檺璁块棶鐢ㄦ埛鏁版嵁锛�"); } } @@ -253,45 +236,49 @@ /** * 鏂板淇濆瓨鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override @Transactional(rollbackFor = Exception.class) - public int insertUser(SysUser user) - { + public int insertUser(SysUser user) { // 鏂板鐢ㄦ埛淇℃伅 int rows = userMapper.insertUser(user); // 鏂板鐢ㄦ埛宀椾綅鍏宠仈 insertUserPost(user); // 鏂板鐢ㄦ埛涓庤鑹茬鐞� insertUserRole(user); + if (rows > 0) { + syncUserService.insertUser(user); + } return rows; } /** * 娉ㄥ唽鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public boolean registerUser(SysUser user) - { - return userMapper.insertUser(user) > 0; + public boolean registerUser(SysUser user) { + int rows = userMapper.insertUser(user); + if (rows > 0) { + syncUserService.insertUser(user); + } + return rows > 0; } /** * 淇敼淇濆瓨鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override @Transactional(rollbackFor = Exception.class) - public int updateUser(SysUser user) - { + public int updateUser(SysUser user) { Long userId = user.getUserId(); // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱� userRoleMapper.deleteUserRoleByUserId(userId); @@ -301,109 +288,111 @@ userPostMapper.deleteUserPostByUserId(userId); // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞� insertUserPost(user); - return userMapper.updateUser(user); + int rows = userMapper.updateUser(user); + if (rows > 0) { + syncUserService.updateUser(user); + } + return rows; } /** * 鐢ㄦ埛鎺堟潈瑙掕壊 - * - * @param userId 鐢ㄦ埛ID + * + * @param userId 鐢ㄦ埛ID * @param roleIds 瑙掕壊缁� */ @Override @Transactional(rollbackFor = Exception.class) - public void insertUserAuth(Long userId, Long[] roleIds) - { + public void insertUserAuth(Long userId, Long[] roleIds) { userRoleMapper.deleteUserRoleByUserId(userId); insertUserRole(userId, roleIds); } /** * 淇敼鐢ㄦ埛鐘舵�� - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public int updateUserStatus(SysUser user) - { - return userMapper.updateUser(user); + public int updateUserStatus(SysUser user) { + int rows = userMapper.updateUser(user); + if (rows > 0) { + syncUserService.updateUserStatus(user); + } + return rows; } /** * 淇敼鐢ㄦ埛鍩烘湰淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public boolean updateUserProfile(SysUser user) - { - return userMapper.updateUser(user) > 0; + public boolean updateUserProfile(SysUser user) { + int rows = userMapper.updateUser(user); + if (rows > 0) { + syncUserService.updateUser(user); + } + return rows > 0; } /** * 淇敼鐢ㄦ埛澶村儚 - * + * * @param userName 鐢ㄦ埛鍚� - * @param avatar 澶村儚鍦板潃 + * @param avatar 澶村儚鍦板潃 * @return 缁撴灉 */ @Override - public boolean updateUserAvatar(String userName, String avatar) - { + public boolean updateUserAvatar(String userName, String avatar) { return userMapper.updateUserAvatar(userName, avatar) > 0; } /** * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public int resetPwd(SysUser user) - { + public int resetPwd(SysUser user) { return userMapper.updateUser(user); } /** * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * + * * @param userName 鐢ㄦ埛鍚� * @param password 瀵嗙爜 * @return 缁撴灉 */ @Override - public int resetUserPwd(String userName, String password) - { + public int resetUserPwd(String userName, String password) { return userMapper.resetUserPwd(userName, password); } /** * 鏂板鐢ㄦ埛瑙掕壊淇℃伅 - * + * * @param user 鐢ㄦ埛瀵硅薄 */ - public void insertUserRole(SysUser user) - { + public void insertUserRole(SysUser user) { this.insertUserRole(user.getUserId(), user.getRoleIds()); } /** * 鏂板鐢ㄦ埛宀椾綅淇℃伅 - * + * * @param user 鐢ㄦ埛瀵硅薄 */ - public void insertUserPost(SysUser user) - { + public void insertUserPost(SysUser user) { Long[] posts = user.getPostIds(); - if (StringUtils.isNotEmpty(posts)) - { + if (StringUtils.isNotEmpty(posts)) { // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞� List<SysUserPost> list = new ArrayList<SysUserPost>(); - for (Long postId : posts) - { + for (Long postId : posts) { SysUserPost up = new SysUserPost(); up.setUserId(user.getUserId()); up.setPostId(postId); @@ -415,18 +404,15 @@ /** * 鏂板鐢ㄦ埛瑙掕壊淇℃伅 - * - * @param userId 鐢ㄦ埛ID + * + * @param userId 鐢ㄦ埛ID * @param roleIds 瑙掕壊缁� */ - public void insertUserRole(Long userId, Long[] roleIds) - { - if (StringUtils.isNotEmpty(roleIds)) - { + public void insertUserRole(Long userId, Long[] roleIds) { + if (StringUtils.isNotEmpty(roleIds)) { // 鏂板鐢ㄦ埛涓庤鑹茬鐞� List<SysUserRole> list = new ArrayList<SysUserRole>(); - for (Long roleId : roleIds) - { + for (Long roleId : roleIds) { SysUserRole ur = new SysUserRole(); ur.setUserId(userId); ur.setRoleId(roleId); @@ -438,33 +424,35 @@ /** * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛 - * + * * @param userId 鐢ㄦ埛ID * @return 缁撴灉 */ @Override @Transactional(rollbackFor = Exception.class) - public int deleteUserById(Long userId) - { + public int deleteUserById(Long userId) { // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱� userRoleMapper.deleteUserRoleByUserId(userId); // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶈〃 userPostMapper.deleteUserPostByUserId(userId); - return userMapper.deleteUserById(userId); + SysUser user = userMapper.selectUserById(userId); + int rows = userMapper.deleteUserById(userId); + if (rows > 0) { + syncUserService.deleteUser(user); + } + return rows; } /** * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 - * + * * @param userIds 闇�瑕佸垹闄ょ殑鐢ㄦ埛ID * @return 缁撴灉 */ @Override @Transactional(rollbackFor = Exception.class) - public int deleteUserByIds(Long[] userIds) - { - for (Long userId : userIds) - { + public int deleteUserByIds(Long[] userIds) { + for (Long userId : userIds) { checkUserAllowed(new SysUser(userId)); checkUserDataScope(userId); } @@ -472,81 +460,79 @@ userRoleMapper.deleteUserRole(userIds); // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱� userPostMapper.deleteUserPost(userIds); - return userMapper.deleteUserByIds(userIds); + List<SysUser> list = userMapper.selectUserByIds(StringUtils.joinWith(",", userIds)); + int rows = userMapper.deleteUserByIds(userIds); + if (rows > 0 && !CollectionUtils.isEmpty(list)) { + syncUserService.deleteUsers(list); + } + return rows; } /** * 瀵煎叆鐢ㄦ埛鏁版嵁 - * - * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃 + * + * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃 * @param isUpdateSupport 鏄惁鏇存柊鏀寔锛屽鏋滃凡瀛樺湪锛屽垯杩涜鏇存柊鏁版嵁 - * @param operName 鎿嶄綔鐢ㄦ埛 + * @param operName 鎿嶄綔鐢ㄦ埛 * @return 缁撴灉 */ @Override - public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) - { - if (StringUtils.isNull(userList) || userList.size() == 0) - { + public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(userList) || userList.size() == 0) { throw new ServiceException("瀵煎叆鐢ㄦ埛鏁版嵁涓嶈兘涓虹┖锛�"); } int successNum = 0; int failureNum = 0; StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); - for (SysUser user : userList) - { - try - { + List<SysUser> list = new ArrayList<>(); + for (SysUser user : userList) { + try { // 楠岃瘉鏄惁瀛樺湪杩欎釜鐢ㄦ埛 SysUser u = userMapper.selectUserByUserName(user.getUserName()); - if (StringUtils.isNull(u)) - { + if (StringUtils.isNull(u)) { BeanValidators.validateWithException(validator, user); deptService.checkDeptDataScope(user.getDeptId()); String password = configService.selectConfigByKey("sys.user.initPassword"); user.setPassword(SecurityUtils.encryptPassword(password)); user.setCreateBy(operName); - userMapper.insertUser(user); + if (userMapper.insertUser(user) > 0) { + list.add(user); + } successNum++; successMsg.append("<br/>" + successNum + "銆佽处鍙� " + user.getUserName() + " 瀵煎叆鎴愬姛"); - } - else if (isUpdateSupport) - { + } else if (isUpdateSupport) { BeanValidators.validateWithException(validator, user); checkUserAllowed(u); checkUserDataScope(u.getUserId()); deptService.checkDeptDataScope(user.getDeptId()); user.setUserId(u.getUserId()); user.setUpdateBy(operName); - userMapper.updateUser(user); + if (userMapper.updateUser(user) > 0) { + syncUserService.updateUser(user); + } successNum++; successMsg.append("<br/>" + successNum + "銆佽处鍙� " + user.getUserName() + " 鏇存柊鎴愬姛"); - } - else - { + } else { failureNum++; failureMsg.append("<br/>" + failureNum + "銆佽处鍙� " + user.getUserName() + " 宸插瓨鍦�"); } - } - catch (Exception e) - { + } catch (Exception e) { failureNum++; String msg = "<br/>" + failureNum + "銆佽处鍙� " + user.getUserName() + " 瀵煎叆澶辫触锛�"; failureMsg.append(msg + e.getMessage()); log.error(msg, e); } } - if (failureNum > 0) - { + if (list.size() > 0) { + syncUserService.insertUsers(list); + } + if (failureNum > 0) { failureMsg.insert(0, "寰堟姳姝夛紝瀵煎叆澶辫触锛佸叡 " + failureNum + " 鏉℃暟鎹牸寮忎笉姝g‘锛岄敊璇涓嬶細"); throw new ServiceException(failureMsg.toString()); - } - else - { + } else { successMsg.insert(0, "鎭枩鎮紝鏁版嵁宸插叏閮ㄥ鍏ユ垚鍔燂紒鍏� " + successNum + " 鏉★紝鏁版嵁濡備笅锛�"); } return successMsg.toString(); } - } -- Gitblit v1.9.3