From 5f44790b7ac00aa7ade9f6c76179803f5d712f9a Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期三, 05 七月 2023 17:20:11 +0800 Subject: [PATCH] 推送ptz获取用户信息更改为从redis中获取 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 312 ++++++++++++++++++++++++------------------- ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java | 4 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java | 14 - ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java | 1 ruoyi-admin/src/main/resources/logback.xml | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java | 80 +++++++---- 6 files changed, 232 insertions(+), 181 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java index c9fe349..667882a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java @@ -44,6 +44,7 @@ caches.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "瀵嗙爜閿欒娆℃暟")); caches.add(new SysCache(CacheConstants.AUTH_CONFIG_KEY, "鎺堟潈閰嶇疆淇℃伅")); caches.add(new SysCache(CacheConstants.CAMERA_LIST_KEY, "鐩告満鍒楄〃")); + caches.add(new SysCache(CacheConstants.USER_LIST_KEY, "鐢ㄦ埛鍒楄〃")); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml index 267157c..ef0f47d 100644 --- a/ruoyi-admin/src/main/resources/logback.xml +++ b/ruoyi-admin/src/main/resources/logback.xml @@ -55,7 +55,6 @@ <onMismatch>DENY</onMismatch> </filter> </appender> - <!-- 鐢ㄦ埛璁块棶鏃ュ織杈撳嚭 --> <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-user.log</file> @@ -187,7 +186,6 @@ <appender-ref ref="file_info"/> <appender-ref ref="file_error"/> </root> - <!--绯荤粺鐢ㄦ埛鎿嶄綔鏃ュ織--> <logger name="sys-user" level="INFO"> <appender-ref ref="sys-user"/> diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java index 55cfcbc..c892e44 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java @@ -50,4 +50,8 @@ * 鎵�鏈夌浉鏈� redis key */ public static final String CAMERA_LIST_KEY = "camera_list:"; + /** + * 鎵�鏈夌敤鎴� redis key + */ + public static final String USER_LIST_KEY = "user_list:"; } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java index 78edeb6..388b551 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SdkTask.java @@ -43,12 +43,11 @@ public void ptzPush() { try { RedisCache redisCache = SpringUtils.getBean(RedisCache.class); - ISysUserService sysUserService = SpringUtils.getBean(ISysUserService.class); IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class); List<Map<String, Object>> list = new ArrayList<>(); ArdCameras ardCameras = new ArdCameras(); ardCameras.setGdtype("1"); - List<Object> Objects = redisCache.getListKey(getCacheKey()); + List<Object> Objects = redisCache.getListKey(CacheConstants.CAMERA_LIST_KEY); if (Objects.size() > 0) { for (Object obj : Objects) { ArdCameras camera = (ArdCameras) obj; @@ -64,7 +63,7 @@ if (StringUtils.isNull(ptz)) { continue; } - SysUser sysUser = sysUserService.selectUserById(camera.getOperatorId()); + SysUser sysUser = redisCache.getCacheObject(CacheConstants.USER_LIST_KEY + camera.getOperatorId()); if (StringUtils.isNotNull(sysUser)) { cmd.setOperatorZh(sysUser.getNickName()); } else { @@ -98,12 +97,5 @@ log.error("鎺ㄩ�乸tz寮傚父:" + ex.getMessage()); } } - /** - * 鑾峰彇cache key - * - * @return 缂撳瓨閿甼ey - */ - private String getCacheKey() { - return CacheConstants.CAMERA_LIST_KEY; - } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 289deb1..980cb0d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -1,18 +1,18 @@ package com.ruoyi.system.service; import java.util.List; + import com.ruoyi.common.core.domain.entity.SysUser; /** * 鐢ㄦ埛 涓氬姟灞� - * + * * @author ruoyi */ -public interface ISysUserService -{ +public interface ISysUserService { /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ @@ -20,7 +20,7 @@ /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛� - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ @@ -28,7 +28,7 @@ /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛� - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ @@ -36,7 +36,7 @@ /** * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴� - * + * * @param userName 鐢ㄦ埛鍚� * @return 鐢ㄦ埛瀵硅薄淇℃伅 */ @@ -44,7 +44,7 @@ /** * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛 - * + * * @param userId 鐢ㄦ埛ID * @return 鐢ㄦ埛瀵硅薄淇℃伅 */ @@ -52,7 +52,7 @@ /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鐢ㄦ埛鎵�灞炶鑹茬粍 - * + * * @param userName 鐢ㄦ埛鍚� * @return 缁撴灉 */ @@ -60,7 +60,7 @@ /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鐢ㄦ埛鎵�灞炲矖浣嶇粍 - * + * * @param userName 鐢ㄦ埛鍚� * @return 缁撴灉 */ @@ -68,7 +68,7 @@ /** * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @@ -92,21 +92,21 @@ /** * 鏍¢獙鐢ㄦ埛鏄惁鍏佽鎿嶄綔 - * + * * @param user 鐢ㄦ埛淇℃伅 */ public void checkUserAllowed(SysUser user); /** * 鏍¢獙鐢ㄦ埛鏄惁鏈夋暟鎹潈闄� - * + * * @param userId 鐢ㄦ埛id */ public void checkUserDataScope(String userId); /** * 鏂板鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @@ -114,7 +114,7 @@ /** * 娉ㄥ唽鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @@ -122,7 +122,7 @@ /** * 淇敼鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @@ -130,15 +130,15 @@ /** * 鐢ㄦ埛鎺堟潈瑙掕壊 - * - * @param userId 鐢ㄦ埛ID + * + * @param userId 鐢ㄦ埛ID * @param roleIds 瑙掕壊缁� */ public void insertUserAuth(String userId, Long[] roleIds); /** * 淇敼鐢ㄦ埛鐘舵�� - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @@ -146,7 +146,7 @@ /** * 淇敼鐢ㄦ埛鍩烘湰淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @@ -154,16 +154,16 @@ /** * 淇敼鐢ㄦ埛澶村儚 - * + * * @param userName 鐢ㄦ埛鍚� - * @param avatar 澶村儚鍦板潃 + * @param avatar 澶村儚鍦板潃 * @return 缁撴灉 */ public boolean updateUserAvatar(String userName, String avatar); /** * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @@ -171,7 +171,7 @@ /** * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * + * * @param userName 鐢ㄦ埛鍚� * @param password 瀵嗙爜 * @return 缁撴灉 @@ -180,7 +180,7 @@ /** * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛 - * + * * @param userId 鐢ㄦ埛ID * @return 缁撴灉 */ @@ -188,7 +188,7 @@ /** * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 - * + * * @param userIds 闇�瑕佸垹闄ょ殑鐢ㄦ埛ID * @return 缁撴灉 */ @@ -196,11 +196,33 @@ /** * 瀵煎叆鐢ㄦ埛鏁版嵁 - * - * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃 + * + * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃 * @param isUpdateSupport 鏄惁鏇存柊鏀寔锛屽鏋滃凡瀛樺湪锛屽垯杩涜鏇存柊鏁版嵁 - * @param operName 鎿嶄綔鐢ㄦ埛 + * @param operName 鎿嶄綔鐢ㄦ埛 * @return 缁撴灉 */ public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName); + + /** + * 鍔犺浇鐢ㄦ埛缂撳瓨 + */ + public void loadingUserCache(); + + /** + * 娓呯┖鐢ㄦ埛缂撳瓨鏁版嵁 + */ + public void clearUserCache(); + + /** + * 閲嶇疆鐢ㄦ埛缂撳瓨鏁版嵁 + */ + public void resetUserCache(); + + /** + * 娓呯┖鐢ㄦ埛缂撳瓨鏁版嵁鎸夌敤鎴穒ds鏁扮粍 + * + * @param userIds 鐢ㄦ埛id鏁扮粍 + */ + public void clearUserCache(String[] userIds); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index f6d605c..6b36d4f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -1,10 +1,15 @@ package com.ruoyi.system.service.impl; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.stream.Collectors; +import javax.annotation.PostConstruct; import javax.annotation.Resource; import javax.validation.Validator; + +import com.ruoyi.common.constant.CacheConstants; +import com.ruoyi.common.core.redis.RedisCache; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -33,12 +38,11 @@ /** * 鐢ㄦ埛 涓氬姟灞傚鐞� - * + * * @author ruoyi */ @Service -public class SysUserServiceImpl implements ISysUserService -{ +public class SysUserServiceImpl implements ISysUserService { private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); @Resource @@ -61,82 +65,126 @@ @Autowired protected Validator validator; + @Resource + private RedisCache redisCache; + + /** + * 椤圭洰鍚姩鏃讹紝鍒濆鍖栧弬鏁板埌缂撳瓨 + */ + @PostConstruct + public void init() { + loadingUserCache(); + } + + /** + * 鍔犺浇鐢ㄦ埛缂撳瓨鏁版嵁 + */ + @Override + public void loadingUserCache() { + List<SysUser> sysUsers = userMapper.selectUserList(new SysUser()); + for (SysUser sysUser : sysUsers) { + redisCache.setCacheObject(getCacheKey(sysUser.getUserId()), sysUser); + } + } + + /** + * 娓呯┖鐢ㄦ埛缂撳瓨鏁版嵁 + */ + @Override + public void clearUserCache() { + Collection<String> keys = redisCache.keys(CacheConstants.USER_LIST_KEY + "*"); + redisCache.deleteObject(keys); + } + + /** + * 娓呯┖鐢ㄦ埛缂撳瓨鏁版嵁鎸夌敤鎴穒ds鏁扮粍 + * + * @param userIds 鐢ㄦ埛id鏁扮粍 + */ + @Override + public void clearUserCache(String[] userIds) { + for (String userId : userIds) { + redisCache.deleteObject(userId); + } + } + + /** + * 閲嶇疆鐢ㄦ埛缂撳瓨鏁版嵁 + */ + @Override + public void resetUserCache() { + clearUserCache(); + loadingUserCache(); + } /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 - * + * * @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(String userId) - { + public SysUser selectUserById(String 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(",")); @@ -144,16 +192,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(",")); @@ -161,17 +207,15 @@ /** * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public String checkUserNameUnique(SysUser user) - { + public String checkUserNameUnique(SysUser user) { String userId = StringUtils.isNull(user.getUserId()) ? "-1" : user.getUserId(); SysUser info = userMapper.checkUserNameUnique(user.getUserName()); - if (StringUtils.isNotNull(info) && !info.getUserId().equals(userId)) - { + if (StringUtils.isNotNull(info) && !info.getUserId().equals(userId)) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -184,12 +228,10 @@ * @return */ @Override - public String checkPhoneUnique(SysUser user) - { + public String checkPhoneUnique(SysUser user) { String userId = StringUtils.isNull(user.getUserId()) ? "-1" : user.getUserId(); SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); - if (StringUtils.isNotNull(info) && !info.getUserId().equals(userId)) - { + if (StringUtils.isNotNull(info) && !info.getUserId().equals(userId)) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -202,12 +244,10 @@ * @return */ @Override - public String checkEmailUnique(SysUser user) - { + public String checkEmailUnique(SysUser user) { String userId = StringUtils.isNull(user.getUserId()) ? "-1" : user.getUserId(); SysUser info = userMapper.checkEmailUnique(user.getEmail()); - if (StringUtils.isNotNull(info) && !info.getUserId().equals(userId)) - { + if (StringUtils.isNotNull(info) && !info.getUserId().equals(userId)) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -215,33 +255,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(String userId) - { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) - { + public void checkUserDataScope(String 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("娌℃湁鏉冮檺璁块棶鐢ㄦ埛鏁版嵁锛�"); } } @@ -249,16 +284,19 @@ /** * 鏂板淇濆瓨鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override @Transactional - public int insertUser(SysUser user) - { + public int insertUser(SysUser user) { + // 鏂板鐢ㄦ埛淇℃伅 int rows = userMapper.insertUser(user); + if (rows > 0) { //澧炲姞鐢ㄦ埛缂撳瓨 + redisCache.setCacheObject(getCacheKey(user.getUserId()), user); + } // 鏂板鐢ㄦ埛宀椾綅鍏宠仈 insertUserPost(user); // 鏂板鐢ㄦ埛涓庤鑹茬鐞� @@ -268,26 +306,24 @@ /** * 娉ㄥ唽鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public boolean registerUser(SysUser user) - { + public boolean registerUser(SysUser user) { return userMapper.insertUser(user) > 0; } /** * 淇敼淇濆瓨鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override @Transactional - public int updateUser(SysUser user) - { + public int updateUser(SysUser user) { String userId = user.getUserId(); // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱� userRoleMapper.deleteUserRoleByUserId(userId); @@ -297,109 +333,109 @@ userPostMapper.deleteUserPostByUserId(userId); // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞� insertUserPost(user); - return userMapper.updateUser(user); + //缂撳瓨鐢ㄦ埛 + SysUser temp = userMapper.selectUserById(user.getUserId()); + if (!StringUtils.equals(temp.getUserName(), user.getUserName())) { + redisCache.deleteObject(getCacheKey(temp.getUserId())); + } + + int row = userMapper.updateUser(user); + if (row > 0) { + redisCache.setCacheObject(getCacheKey(user.getUserId()), temp); + } + return row; } /** * 鐢ㄦ埛鎺堟潈瑙掕壊 - * - * @param userId 鐢ㄦ埛ID + * + * @param userId 鐢ㄦ埛ID * @param roleIds 瑙掕壊缁� */ @Override @Transactional - public void insertUserAuth(String userId, Long[] roleIds) - { + public void insertUserAuth(String userId, Long[] roleIds) { userRoleMapper.deleteUserRoleByUserId(userId); insertUserRole(userId, roleIds); } /** * 淇敼鐢ㄦ埛鐘舵�� - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public int updateUserStatus(SysUser user) - { + public int updateUserStatus(SysUser user) { return userMapper.updateUser(user); } /** * 淇敼鐢ㄦ埛鍩烘湰淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public int updateUserProfile(SysUser user) - { + public int updateUserProfile(SysUser user) { return userMapper.updateUser(user); } /** * 淇敼鐢ㄦ埛澶村儚 - * + * * @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>(posts.length); - for (Long postId : posts) - { + for (Long postId : posts) { SysUserPost up = new SysUserPost(); up.setUserId(user.getUserId()); up.setPostId(postId); @@ -411,18 +447,15 @@ /** * 鏂板鐢ㄦ埛瑙掕壊淇℃伅 - * - * @param userId 鐢ㄦ埛ID + * + * @param userId 鐢ㄦ埛ID * @param roleIds 瑙掕壊缁� */ - public void insertUserRole(String userId, Long[] roleIds) - { - if (StringUtils.isNotEmpty(roleIds)) - { + public void insertUserRole(String userId, Long[] roleIds) { + if (StringUtils.isNotEmpty(roleIds)) { // 鏂板鐢ㄦ埛涓庤鑹茬鐞� List<SysUserRole> list = new ArrayList<SysUserRole>(roleIds.length); - for (Long roleId : roleIds) - { + for (Long roleId : roleIds) { SysUserRole ur = new SysUserRole(); ur.setUserId(userId); ur.setRoleId(roleId); @@ -434,33 +467,34 @@ /** * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛 - * + * * @param userId 鐢ㄦ埛ID * @return 缁撴灉 */ @Override @Transactional - public int deleteUserById(String userId) - { + public int deleteUserById(String userId) { // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱� userRoleMapper.deleteUserRoleByUserId(userId); // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶈〃 userPostMapper.deleteUserPostByUserId(userId); - return userMapper.deleteUserById(userId); + int rows = userMapper.deleteUserById(userId); + if (rows > 0) { + redisCache.deleteObject(getCacheKey(userId)); + } + return rows; } /** * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 - * + * * @param userIds 闇�瑕佸垹闄ょ殑鐢ㄦ埛ID * @return 缁撴灉 */ @Override @Transactional - public int deleteUserByIds(String[] userIds) - { - for (String userId : userIds) - { + public int deleteUserByIds(String[] userIds) { + for (String userId : userIds) { checkUserAllowed(new SysUser(userId)); checkUserDataScope(userId); } @@ -468,22 +502,24 @@ userRoleMapper.deleteUserRole(userIds); // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱� userPostMapper.deleteUserPost(userIds); - return userMapper.deleteUserByIds(userIds); + int rows = userMapper.deleteUserByIds(userIds); + if (rows > 0) { + clearUserCache(userIds); + } + 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; @@ -491,23 +527,18 @@ StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); String password = configService.selectConfigByKey("sys.user.initPassword"); - for (SysUser user : userList) - { - try - { + for (SysUser user : userList) { + try { // 楠岃瘉鏄惁瀛樺湪杩欎釜鐢ㄦ埛 SysUser u = userMapper.selectUserByUserName(user.getUserName()); - if (StringUtils.isNull(u)) - { + if (StringUtils.isNull(u)) { BeanValidators.validateWithException(validator, user); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword()==null?password:user.getPassword())); + user.setPassword(SecurityUtils.encryptPassword(user.getPassword() == null ? password : user.getPassword())); user.setCreateBy(operName); this.insertUser(user); successNum++; successMsg.append("<br/>" + successNum + "銆佽处鍙� " + user.getUserName() + " 瀵煎叆鎴愬姛"); - } - else if (isUpdateSupport) - { + } else if (isUpdateSupport) { BeanValidators.validateWithException(validator, user); checkUserAllowed(user); checkUserDataScope(user.getUserId()); @@ -515,30 +546,33 @@ this.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 (failureNum > 0) { failureMsg.insert(0, "寰堟姳姝夛紝瀵煎叆澶辫触锛佸叡 " + failureNum + " 鏉℃暟鎹牸寮忎笉姝g‘锛岄敊璇涓嬶細"); throw new ServiceException(failureMsg.toString()); - } - else - { + } else { successMsg.insert(0, "鎭枩鎮紝鏁版嵁宸插叏閮ㄥ鍏ユ垚鍔燂紒鍏� " + successNum + " 鏉★紝鏁版嵁濡備笅锛�"); } return successMsg.toString(); } + + /** + * 鑾峰彇cache key + * + * @param configKey 鍙傛暟閿� + * @return 缂撳瓨閿甼ey + */ + private String getCacheKey(String configKey) { + return CacheConstants.USER_LIST_KEY + configKey; + } } -- Gitblit v1.9.3