Browse Source

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

wangfeng 5 years ago
parent
commit
e7b3b4f33e

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -48,6 +48,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/behospitalInfo/analyze_rpc").permitAll()
                 .antMatchers("/qc/behospitalInfo/analyze_rpc").permitAll()
                 .antMatchers("/qc/behospitalInfo/analyze_api").permitAll()
                 .antMatchers("/qc/behospitalInfo/analyze_api").permitAll()
                 .antMatchers("/qc/module/getById").permitAll()
                 .antMatchers("/qc/module/getById").permitAll()
+                .antMatchers("/qc/module/getModuleMap").permitAll()
                 .antMatchers("/**").authenticated();
                 .antMatchers("/**").authenticated();
 //                .antMatchers("/**").permitAll();
 //                .antMatchers("/**").permitAll();
     }
     }

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -91,6 +91,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/behospitalInfo/analyze_rpc", request)
                 || matchers("/qc/behospitalInfo/analyze_rpc", request)
                 || matchers("/qc/behospitalInfo/analyze_api", request)
                 || matchers("/qc/behospitalInfo/analyze_api", request)
                 || matchers("/qc/module/getById", request)
                 || matchers("/qc/module/getById", request)
+                || matchers("/qc/module/getModuleMap", request)
                 || matchers("/", request)) {
                 || matchers("/", request)) {
             return true;
             return true;
         }
         }

+ 30 - 0
src/main/java/com/diagbot/facade/QcModuleInfoFacade.java

@@ -5,17 +5,22 @@ import com.diagbot.dto.GetModuleInfoOneDTO;
 import com.diagbot.dto.QcModuleDetailDTO;
 import com.diagbot.dto.QcModuleDetailDTO;
 import com.diagbot.dto.QuestionDTO;
 import com.diagbot.dto.QuestionDTO;
 import com.diagbot.entity.QcModuleDetail;
 import com.diagbot.entity.QcModuleDetail;
+import com.diagbot.entity.QcModuleInfo;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.QcModuleInfoServiceImpl;
 import com.diagbot.service.impl.QcModuleInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.vo.GetModuleInfoOneVO;
 import com.diagbot.vo.GetModuleInfoOneVO;
+import com.diagbot.vo.GetModuleMapVO;
 import com.diagbot.vo.QuestionIdsVO;
 import com.diagbot.vo.QuestionIdsVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -69,4 +74,29 @@ public class QcModuleInfoFacade extends QcModuleInfoServiceImpl {
         getModuleInfoOneDTO.setModuleDetail(map);
         getModuleInfoOneDTO.setModuleDetail(map);
         return getModuleInfoOneDTO;
         return getModuleInfoOneDTO;
     }
     }
+
+    /**
+     * 根据模块获取模板信息
+     *
+     * @param getModuleMapVO
+     * @return
+     */
+    public Map<Long, GetModuleInfoOneDTO> getModuleMap(GetModuleMapVO getModuleMapVO) {
+        Map<Long, GetModuleInfoOneDTO> res = new LinkedHashMap<>();
+        List<QcModuleInfo> qcModuleInfoList = this.list(new QueryWrapper<QcModuleInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("mode_id", getModuleMapVO.getModeId())
+                .eq("hospital_id", getModuleMapVO.getHospitalId())
+        );
+        List<Long> ids = qcModuleInfoList.stream().map(r -> r.getId()).collect(Collectors.toList());
+        if (ListUtil.isEmpty(ids)) {
+            return new HashMap<>();
+        }
+        GetModuleInfoOneVO getModuleInfoOneVO = new GetModuleInfoOneVO();
+        for (Long id : ids) {
+            getModuleInfoOneVO.setModuleId(id);
+            res.put(id, getByIdFac(getModuleInfoOneVO));
+        }
+        return res;
+    }
 }
 }

+ 1 - 3
src/main/java/com/diagbot/facade/SysRoleFacade.java

@@ -198,9 +198,7 @@ public class SysRoleFacade extends SysRoleServiceImpl {
         }
         }
         //清除该角色的所有用户的token缓存
         //清除该角色的所有用户的token缓存
         if (ListUtil.isNotEmpty(userIds)) {
         if (ListUtil.isNotEmpty(userIds)) {
-            for (Long id : userIds) {
-                tokenFacade.deleteToken(id.toString());
-            }
+            tokenFacade.deleteBatchToken(userIds);
         }
         }
         return true;
         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 com.diagbot.entity.JwtStore;
 
 
+import java.util.List;
+
 /**
 /**
  * @Description: Token验证类
  * @Description: Token验证类
  * @author: gaodm
  * @author: gaodm
@@ -27,9 +29,18 @@ public interface SysTokenService {
     Boolean verifyToken(String token, Integer type);
     Boolean verifyToken(String token, Integer type);
 
 
     /**
     /**
-     *  删除用户token
+     * 删除用户token
+     *
      * @param userId 用户ID
      * @param userId 用户ID
      * @return 删除是否成功
      * @return 删除是否成功
      */
      */
     Boolean deleteToken(String userId);
     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 org.springframework.stereotype.Service;
 
 
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -143,4 +144,29 @@ public class SysTokenServiceImpl implements SysTokenService {
         });
         });
         return l > 0;
         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;
+    }
 }
 }

+ 23 - 0
src/main/java/com/diagbot/vo/GetModuleMapVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2018/12/28 17:03
+ */
+@Getter
+@Setter
+public class GetModuleMapVO {
+    /**
+     * 模板ID
+     */
+    private Long modeId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+}

+ 14 - 2
src/main/java/com/diagbot/web/QcModuleInfoController.java

@@ -5,6 +5,7 @@ import com.diagbot.dto.GetModuleInfoOneDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.QcModuleInfoFacade;
 import com.diagbot.facade.QcModuleInfoFacade;
 import com.diagbot.vo.GetModuleInfoOneVO;
 import com.diagbot.vo.GetModuleInfoOneVO;
+import com.diagbot.vo.GetModuleMapVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -13,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import java.util.Map;
+
 /**
 /**
  * <p>
  * <p>
  * 模型表 前端控制器
  * 模型表 前端控制器
@@ -35,7 +38,16 @@ public class QcModuleInfoController {
     @PostMapping("/getById")
     @PostMapping("/getById")
     @SysLogger("getById")
     @SysLogger("getById")
     public RespDTO<GetModuleInfoOneDTO> getById(@RequestBody GetModuleInfoOneVO getModuleInfoVO) {
     public RespDTO<GetModuleInfoOneDTO> getById(@RequestBody GetModuleInfoOneVO getModuleInfoVO) {
-        GetModuleInfoOneDTO date = qcModuleInfoFacade.getByIdFac(getModuleInfoVO);
-        return RespDTO.onSuc(date);
+        GetModuleInfoOneDTO data = qcModuleInfoFacade.getByIdFac(getModuleInfoVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "根据模块获取模板信息[by:zhoutg]",
+            notes = "modeName: 模板名称<br>")
+    @PostMapping("/getModuleMap")
+    @SysLogger("getModuleMap")
+    public RespDTO<Map<Long, GetModuleInfoOneDTO>> getModuleMap(@RequestBody GetModuleMapVO getModuleMapVO) {
+        Map<Long, GetModuleInfoOneDTO> data = qcModuleInfoFacade.getModuleMap(getModuleMapVO);
+        return RespDTO.onSuc(data);
     }
     }
 }
 }