Przeglądaj źródła

Merge remote-tracking branch 'origin/dev/20200426_2nd' into dev/20200426_2nd

zhoutg 5 lat temu
rodzic
commit
9aa6522c16

+ 4 - 2
src/main/java/com/diagbot/facade/BasDeptInfoFacade.java

@@ -19,7 +19,8 @@ public class BasDeptInfoFacade extends BasDeptInfoServiceImpl {
     /**
      * 获取医院科室下拉列表信息
      *
-     * @return
+     * @param basDeptInfoVO 搜索参数
+     * @return 医院科室下拉列表信息
      */
     public List<BasDeptInfoDTO> listForUser(BasDeptInfoVO basDeptInfoVO) {
         basDeptInfoVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
@@ -31,7 +32,8 @@ public class BasDeptInfoFacade extends BasDeptInfoServiceImpl {
     /**
      * 获取医院用户下拉列表信息
      *
-     * @return
+     * @param basDeptInfoVO 搜索参数
+     * @return 医院用户下拉列表信息
      */
     public List<BasDeptInfoDTO> getListUserFac(BasDeptInfoVO basDeptInfoVO) {
         basDeptInfoVO.setUserId(Long.valueOf(SysUserUtils.getCurrentPrincipleID()));

+ 2 - 4
src/main/java/com/diagbot/facade/SysRoleFacade.java

@@ -196,11 +196,9 @@ public class SysRoleFacade extends SysRoleServiceImpl {
             }
             sysRolePermissionService.saveBatch(sysRolePermissionList);
         }
-        //清该角色的所有用户的token缓存
+        //清该角色的所有用户的token缓存
         if (ListUtil.isNotEmpty(userIds)) {
-            for (Long id : userIds) {
-                tokenFacade.deleteToken(id.toString());
-            }
+            tokenFacade.deleteBatchToken(userIds);
         }
         return true;
     }

+ 12 - 1
src/main/java/com/diagbot/service/SysTokenService.java

@@ -2,6 +2,8 @@ package com.diagbot.service;
 
 import com.diagbot.entity.JwtStore;
 
+import java.util.List;
+
 /**
  * @Description: Token验证类
  * @author: gaodm
@@ -27,9 +29,18 @@ public interface SysTokenService {
     Boolean verifyToken(String token, Integer type);
 
     /**
-     *  删除用户token
+     * 删除用户token
+     *
      * @param userId 用户ID
      * @return 删除是否成功
      */
     Boolean deleteToken(String userId);
+
+    /**
+     * 批量删除用户token
+     *
+     * @param userIds 用户列表
+     * @return 删除是否成功
+     */
+    Boolean deleteBatchToken(List<Long> userIds);
 }

+ 26 - 0
src/main/java/com/diagbot/service/impl/SysTokenServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -143,4 +144,29 @@ public class SysTokenServiceImpl implements SysTokenService {
         });
         return l > 0;
     }
+
+    /**
+     * 批量删除用户token
+     *
+     * @param userIds 用户列表
+     * @return 删除是否成功
+     */
+    @Override
+    public Boolean deleteBatchToken(List<Long> userIds) {
+        Long l = (Long) redisForToken.execute(new RedisCallback<Long>() {
+            @Override
+            public Long doInRedis(RedisConnection connection) throws DataAccessException {
+                connection.openPipeline();
+                Long cnt = 0L;
+                for (Long userId : userIds) {
+                    byte[] redis_key = getUserTokenKey(userId.toString());
+                    connection.del(redis_key);
+                    cnt++;
+                }
+                connection.closePipeline();
+                return cnt;
+            }
+        });
+        return l > 0;
+    }
 }