Procházet zdrojové kódy

接口权限控制

zhaops před 5 roky
rodič
revize
7a7e6c44b9

+ 206 - 0
common-biz-client/src/main/java/com/diagbot/client/TranServiceClient.java

@@ -0,0 +1,206 @@
+package com.diagbot.client;
+
+import com.diagbot.client.hystrix.TranServiceHystrix;
+import com.diagbot.dto.*;
+import com.diagbot.entity.DoctorInfo;
+import com.diagbot.entity.HospitalDept;
+import com.diagbot.entity.PatientInfo;
+import com.diagbot.vo.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhaops
+ * @Description:
+ * @date 2020/2/17 21:42
+ */
+
+@FeignClient(value = "tran-service", fallback = TranServiceHystrix.class)
+public interface TranServiceClient {
+    @PostMapping(value = "/hospitalRole/getAllPermission")
+    RespDTO<List<HosPermissionDTO>> getAllPermission(@RequestBody PermissionVO permissionVO);
+
+
+    /**
+     * 获取医生信息
+     *
+     * @param doctorInfoVo
+     * @return
+     *//*
+    @PostMapping("/doctorInfo/getDoctorInfo")
+    RespDTO<List<DoctorInfoDTO>> getDoctorInfo(@RequestBody DoctorInfoVO doctorInfoVo);
+
+    *//**
+     * 根据ids获取医生信息map
+     *
+     * @param ids
+     * @return
+     *//*
+    @PostMapping("/doctorInfo/doctorInfoMapByIds")
+    RespDTO<Map<Long, DoctorInfo>> doctorInfoMapByIds(@RequestBody List<Long> ids);
+
+    *//**
+     * 根据id获取医生信息
+     *
+     * @param id
+     * @return
+     *//*
+    @PostMapping("/doctorInfo/doctorInfoById")
+    RespDTO<DoctorInfoDTO> getDoctorInfoById(@RequestBody Long id);
+
+    *//**
+     * 根据ids获取科室信息map
+     *
+     * @param ids
+     * @return
+     *//*
+    @PostMapping("/hospitalDeptInfo/hospitalDeptInfoMapByIds")
+    RespDTO<Map<Long, HospitalDept>> hospitalDeptInfoMapByIds(@RequestBody List<Long> ids);
+
+    *//**
+     * 获取医院信息
+     *
+     * @param hospitalInfoVO
+     * @return
+     *//*
+    @PostMapping("/hospitalInfo/getHospitalInfo")
+    RespDTO<HospitalInfoDTO> getHospitalInfo(@RequestBody HospitalInfoVO hospitalInfoVO);
+
+    *//**
+     * 匹配公表名
+     *
+     * @param lisHospitalCodeVO
+     * @return
+     *//*
+    @PostMapping("/tranLisConfig/getLisConfigByhospitalId")
+    RespDTO<List<LisConfigDTO>> getLisConfigByhospitalId(@RequestBody LisHospitalCodeVO lisHospitalCodeVO);
+
+    *//**
+     * 获取患者信息
+     *
+     * @param patientInfoVO
+     * @return
+     *//*
+    @PostMapping("/patientInfo/getPatientInfo")
+    RespDTO<PatientInfoDTO> getPatientInfo(@RequestBody PatientInfoVO patientInfoVO);
+
+    *//**
+     * 根据ids获取病人信息
+     *
+     * @param ids
+     * @return
+     *//*
+    @PostMapping("/patientInfo/patientInfoMapByIds")
+    RespDTO<Map<Long, PatientInfo>> patientInfoMapByIds(@RequestBody List<Long> ids);
+
+    *//**
+     * 根据uuid获取相关信息
+     *
+     * @param tranFieldInfoVO
+     * @return
+     *//*
+    @PostMapping("/tranFieldInfo/getInfoByUuid")
+    RespDTO<List<TranFieldInfoDTO>> getInfoByUuid(@RequestBody TranFieldInfoVO tranFieldInfoVO);
+
+    *//**
+     * 将问诊记录保存一份至对接层
+     *
+     * @param saveInquiryToHisVO
+     * @return
+     *//*
+    @PostMapping("/inquiryInfo/saveInquiryToHis")
+    RespDTO<Boolean> saveInquiryToHis(@RequestBody SaveInquiryToHisVO saveInquiryToHisVO);
+
+    *//**
+     * 急诊-历史病历列表
+     *
+     * @param hisInquirysForJzVO
+     * @return
+     *//*
+    @PostMapping("/inquiryInfo/hisInquirysForJz")
+    RespDTO<HisInquirysForJzDTO> hisInquirysForJz(@RequestBody HisInquirysForJzVO hisInquirysForJzVO);
+
+    *//**
+     * 急诊-添加二次诊断
+     *
+     * @param addDiagnoseSecondVO
+     * @return
+     *//*
+    @PostMapping("/inquiryInfo/addDiagnoseSecond")
+    RespDTO<Boolean> addDiagnoseSecond(@RequestBody AddDiagnoseSecondVO addDiagnoseSecondVO);
+
+    *//**
+     * 急诊-获取需要导出的问诊数据
+     *
+     * @param inquiryIds
+     * @return
+     *//*
+    @PostMapping("/inquiryInfo/getExportInquirys")
+    RespDTO<List<GetExportInquirysDTO>> getExportInquirys(@RequestBody List<Long> inquiryIds);
+
+    *//**
+     * 根据医院编码获取辅检公表映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     *//*
+    @PostMapping("/pacsConfig/getPacsConfigByHosCode")
+    RespDTO<Map<String, String>> getPacsConfigByHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    *//**
+     * 根据医院编码获取提示信息标题映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     *//*
+    @PostMapping("/introduceTitleConfig/getTitleMappingHosCode")
+    RespDTO<Map<String, String>> getTitleMappingHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    *//**
+     * 根据医院编码查询诊断icd映射
+     *
+     * @param hosCodeVO
+     * @return
+     *//*
+    @PostMapping("/diseaseIcd/getDiseaseIcdByHosCode")
+    RespDTO<Map<String, String>> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    *//**
+     * 根据医院编码查询辅检公表映射,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     *//*
+    @PostMapping("/pacsConfig/getPacsConfigByUniqueNameAndHosCode")
+    RespDTO<Map<String, List<String>>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    @PostMapping("/lisDockingImports/lisDockingImports")
+    public RespDTO<LisRetrieveListAllDTO> getLisDatas(@RequestBody @Valid LisArgumentsVO lisArgumentsVO);
+
+    @PostMapping("/lisDockingImports/getByGroupNameLisData")
+    public RespDTO<LisDataDTO> getByGroupNameLisData(@RequestBody @Valid LisGroupNameVO lisGroupNameVO);
+
+    @PostMapping("/lisDockingImports/pacsDockingImport")
+    RespDTO<PacsRetrieveListAllDTO> pacsDockingImports(@RequestBody @Valid PacsArgumentsVO pacsArgumentsVO);
+
+    @PostMapping("/lisDockingImports/getByCheckItemPacsData")
+    RespDTO<PacsDataDTO> getByCheckItemPacsDatas(@RequestBody @Valid PacsCheckItemVO pacsGroupNameVO);
+
+    @PostMapping("/sysSet/getSysSetInfoDatas")
+    RespDTO<List<SysSetInfoDTO>> getSysSetInfoDatas(@Valid @RequestBody HospitalSetVO hospitalSetVO);
+
+    @PostMapping("/sysSet/getHospitalRankInfo")
+    RespDTO<GetHospitalRankInfoDTO> getHospitalRankInfo(@RequestBody GetHospitalRankInfoVO getHospitalRankInfoVO);
+
+    @PostMapping("/sysSet/getAdminCheckout")
+    RespDTO<Boolean> getAdminCheckout(@Valid @RequestBody HospitalCodeSetVO hospitalCodeSetVO);
+
+    @PostMapping("/hospitalDeptInfo/getHospitalDeptInfoAll")
+    RespDTO<List<HospitalDeptInfoAllDTO>> getHospitalDeptInfoAll(@RequestBody @Valid HospitalCodeVo hospitalCodeVo);*/
+
+}

+ 212 - 0
common-biz-client/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -0,0 +1,212 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.*;
+import com.diagbot.entity.DoctorInfo;
+import com.diagbot.entity.HospitalDept;
+import com.diagbot.entity.PatientInfo;
+import com.diagbot.vo.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhaops
+ * @Description:
+ * @date 2020/2/17 21:41
+ */
+
+@Component
+@Slf4j
+public class TranServiceHystrix implements TranServiceClient {
+    @Override
+    public RespDTO<List<HosPermissionDTO>> getAllPermission(@RequestBody PermissionVO permissionVO) {
+        log.error("【hystrix】调用{}异常", "getAllPermission");
+        return null;
+    }
+
+
+   /* @Override
+    public RespDTO<List<DoctorInfoDTO>> getDoctorInfo(@Valid DoctorInfoVO doctorInfoVo) {
+        log.error("【hystrix】调用{}异常", "getDoctorInfo");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Map<Long, DoctorInfo>> doctorInfoMapByIds(List<Long> ids) {
+        log.error("【hystrix】调用{}异常", "doctorInfoMapByIds");
+        return null;
+    }
+
+    *//**
+     * 根据id获取医生信息
+     *
+     * @param id
+     * @return
+     *//*
+    @Override
+    public RespDTO<DoctorInfoDTO> getDoctorInfoById(@RequestBody Long id) {
+        log.error("【hystrix】调用{}异常", "getDoctorInfoById");
+        return null;
+    }
+
+    @Override
+    public RespDTO<HospitalInfoDTO> getHospitalInfo(HospitalInfoVO hospitalInfoVO) {
+        log.error("【hystrix】调用{}异常", "getHospitalInfo");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Map<Long, HospitalDept>> hospitalDeptInfoMapByIds(List<Long> ids) {
+        log.error("【hystrix】调用{}异常", "hospitalDeptInfoMapByIds");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<LisConfigDTO>> getLisConfigByhospitalId(LisHospitalCodeVO lisHospitalCodeVO) {
+        log.error("【hystrix】调用{}异常", "getLisConfigByhospitalId");
+        return null;
+    }
+
+    @Override
+    public RespDTO<PatientInfoDTO> getPatientInfo(PatientInfoVO patientInfoVO) {
+        log.error("【hystrix】调用{}异常", "getPatientInfo");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Map<Long, PatientInfo>> patientInfoMapByIds(List<Long> ids) {
+        log.error("【hystrix】调用{}异常", "patientInfoMapByIds");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<TranFieldInfoDTO>> getInfoByUuid(TranFieldInfoVO tranFieldInfoVO) {
+        log.error("【hystrix】调用{}异常", "getInfoByUuid");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Boolean> saveInquiryToHis(SaveInquiryToHisVO saveInquiryToHisVO) {
+        log.error("【hystrix】调用{}异常", "saveInquiryToHis");
+        return null;
+    }
+
+    @Override
+    public RespDTO<HisInquirysForJzDTO> hisInquirysForJz(HisInquirysForJzVO hisInquirysForJzVO) {
+        log.error("【hystrix】调用{}异常", "hisInquirysForJz");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Boolean> addDiagnoseSecond(AddDiagnoseSecondVO addDiagnoseSecondVO) {
+        log.error("【hystrix】调用{}异常", "addDiagnoseSecond");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<GetExportInquirysDTO>> getExportInquirys(List<Long> inquiryIds) {
+        log.error("【hystrix】调用{}异常", "getExportInquirys");
+        return null;
+    }
+
+    *//**
+     * 根据医院编码获取辅检公表映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     *//*
+    @Override
+    public RespDTO<Map<String, String>> getPacsConfigByHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getPacsConfigByHosCode");
+        return null;
+    }
+
+    *//**
+     * 根据医院编码获取提示信息标题映射关系
+     *
+     * @param hosCodeVO
+     * @return
+     *//*
+    @Override
+    public RespDTO<Map<String, String>> getTitleMappingHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getTitleMappingHosCode");
+        return null;
+    }
+
+    *//**
+     * 根据医院编码查询诊断icd映射
+     *
+     * @param hosCodeVO
+     * @return
+     *//*
+    @Override
+    public RespDTO<Map<String, String>> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getDiseaseIcdByHosCode");
+        return null;
+    }
+
+    *//**
+     * 根据医院编码查询辅检公表映射,公表项做key
+     *
+     * @param hosCodeVO
+     * @return
+     *//*
+    @Override
+    public RespDTO<Map<String, List<String>>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
+        log.error("【hystrix】调用{}异常", "getPacsConfigByUniqueNameAndHosCode");
+        return null;
+    }
+
+    @Override
+    public RespDTO<LisRetrieveListAllDTO> getLisDatas(@RequestBody @Valid LisArgumentsVO lisArgumentsVO) {
+        log.error("【hystrix】调用{}异常", "getLisDatas");
+        return null;
+    }
+
+    @Override
+    public RespDTO<LisDataDTO> getByGroupNameLisData(@RequestBody @Valid LisGroupNameVO lisGroupNameVO) {
+        log.error("【hystrix】调用{}异常", "getByGroupNameLisData");
+        return null;
+    }
+
+    @Override
+    public RespDTO<PacsRetrieveListAllDTO> pacsDockingImports(@RequestBody @Valid PacsArgumentsVO pacsArgumentsVO) {
+        log.error("【hystrix】调用{}异常", "pacsDockingImports");
+        return null;
+    }
+
+    @Override
+    public RespDTO<PacsDataDTO> getByCheckItemPacsDatas(@RequestBody @Valid PacsCheckItemVO pacsGroupNameVO) {
+        log.error("【hystrix】调用{}异常", "getByCheckItemPacsDatas");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<SysSetInfoDTO>> getSysSetInfoDatas(@Valid HospitalSetVO hospitalSetVO) {
+        log.error("【hystrix】调用{}异常", "getSysSetInfoDatas");
+        return null;
+    }
+
+    @Override
+    public RespDTO<GetHospitalRankInfoDTO> getHospitalRankInfo(GetHospitalRankInfoVO getHospitalRankInfoVO) {
+        log.error("【hystrix】调用{}异常", "getHospitalRankInfo");
+        return null;
+    }
+
+    @Override
+    public RespDTO<Boolean> getAdminCheckout(@Valid HospitalCodeSetVO hospitalCodeSetVO) {
+        log.error("【hystrix】调用{}异常", "getAdminCheckout");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<HospitalDeptInfoAllDTO>> getHospitalDeptInfoAll(@Valid HospitalCodeVo hospitalCodeVo) {
+        log.error("【hystrix】调用{}异常", "getHospitalDeptInfoAll");
+        return null;
+    }*/
+}

+ 5 - 0
common-biz-client/src/main/java/com/diagbot/dto/PermissionDTO.java

@@ -3,6 +3,9 @@ package com.diagbot.dto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * @Description:
  * @author: gaodm
@@ -12,4 +15,6 @@ import lombok.Setter;
 @Setter
 public class PermissionDTO {
     private String test;
+    private Map<String, List<HosPermissionDTO>> permissionMap;
+    private List<HosPermissionDTO> hosPermissionDTOS;
 }

+ 39 - 3
common-biz-client/src/main/java/com/diagbot/facade/PermissionFacade.java

@@ -1,12 +1,25 @@
 package com.diagbot.facade;
 
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.HosPermissionDTO;
 import com.diagbot.dto.PermissionDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.PermissionVO;
+import com.google.common.collect.Lists;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Component;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * @Description:
  * @author: gaodm
@@ -17,21 +30,46 @@ import org.springframework.stereotype.Component;
 public class PermissionFacade {
     private static final String PERMISSIONCACHE = "permissionCache";
 
+    @Autowired
+    private TranServiceClient tranServiceClient;
+
     /**
      * 获取权限
+     *
      * @param permissionVO
      * @return
      */
     @Cacheable(value = PERMISSIONCACHE, key = "'permission:hc_' + #permissionVO.hospitalCode + '_st_' + #permissionVO.sysType")
     public PermissionDTO getPermission(PermissionVO permissionVO) {
         log.info("获取缓存成功");
+        List<HosPermissionDTO> hosPermissionDTOS = Lists.newArrayList();
+        RespDTO<List<HosPermissionDTO>> respDTO = tranServiceClient.getAllPermission(permissionVO);
+
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            hosPermissionDTOS = respDTO.data;
+        }
         PermissionDTO permissionDTO = new PermissionDTO();
-        permissionDTO.setTest("yyyyyy");
+        permissionDTO.setHosPermissionDTOS(hosPermissionDTOS);
+
+        Map<String, List<HosPermissionDTO>> permissionMap = new HashMap<>();
+        if (ListUtil.isNotEmpty(hosPermissionDTOS)) {
+            List<HosPermissionDTO> hasParamList = hosPermissionDTOS.stream()
+                    .filter(hosPermissionDTO -> StringUtil.isNotBlank(hosPermissionDTO.getParamKey()))
+                    .collect(Collectors.toList());
+            permissionMap.put("hasParam", hasParamList);
+            List<HosPermissionDTO> noParamList = hosPermissionDTOS.stream()
+                    .filter(hosPermissionDTO -> StringUtil.isBlank(hosPermissionDTO.getParamKey()))
+                    .collect(Collectors.toList());
+            permissionMap.put("noParam", noParamList);
+        }
+        permissionDTO.setPermissionMap(permissionMap);
+
         return permissionDTO;
     }
 
     /**
      * 清理权限所有缓存
+     *
      * @return
      */
     @CacheEvict(cacheNames = PERMISSIONCACHE, allEntries = true)
@@ -39,6 +77,4 @@ public class PermissionFacade {
         log.info("清理缓存成功");
         return true;
     }
-
-
 }

+ 6 - 0
tran-service/pom.xml

@@ -24,6 +24,12 @@
             <artifactId>common</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.diagbot</groupId>
+            <artifactId>common-biz-client</artifactId>
+        </dependency>
+        
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

+ 21 - 0
tran-service/src/main/java/com/diagbot/dto/HosPermissionDTO.java

@@ -0,0 +1,21 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author zhaops
+ * @Description:
+ * @date 2020/2/18 22:34
+ **/
+@Getter
+@Setter
+public class HosPermissionDTO {
+    private String hosCode;
+    private Long roleId;
+    private String roleName;
+    private String permissionUrl;
+    private String paramKey;
+    private String paramValue;
+    private String permissionName;
+}

+ 4 - 4
tran-service/src/main/java/com/diagbot/facade/PermissionFacade.java

@@ -1,13 +1,13 @@
-package com.diagbot.facade;
+/*package com.diagbot.facade;
 
 import com.diagbot.service.impl.PermissionServiceImpl;
 import org.springframework.stereotype.Component;
 
-/**
+*//**
  * @author zhaops
  * @Description:
  * @date 2020/2/17 16:15
- **/
+ **//*
 @Component
 public class PermissionFacade extends PermissionServiceImpl {
-}
+}*/

+ 13 - 2
tran-service/src/main/java/com/diagbot/mapper/HospitalRoleMapper.java

@@ -1,7 +1,11 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.HospitalRole;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.dto.HosPermissionDTO;
+import com.diagbot.entity.HospitalRole;
+import com.diagbot.vo.PermissionVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface HospitalRoleMapper extends BaseMapper<HospitalRole> {
 
-}
+    /**
+     * 根据医院编码和系统类型获取所有接口权限
+     *
+     * @param permissionVO
+     * @return
+     */
+    List<HosPermissionDTO> getAllPermission(PermissionVO permissionVO);
+}

+ 11 - 1
tran-service/src/main/java/com/diagbot/service/HospitalRoleService.java

@@ -1,7 +1,11 @@
 package com.diagbot.service;
 
+import com.diagbot.dto.HosPermissionDTO;
 import com.diagbot.entity.HospitalRole;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.PermissionVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +16,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2020-02-17
  */
 public interface HospitalRoleService extends IService<HospitalRole> {
-
+    /**
+     * 根据医院编码和系统类型获取所有接口权限
+     *
+     * @param permissionVO
+     * @return
+     */
+    List<HosPermissionDTO> getAllPermission(PermissionVO permissionVO);
 }

+ 13 - 1
tran-service/src/main/java/com/diagbot/service/impl/HospitalRoleServiceImpl.java

@@ -1,11 +1,15 @@
 package com.diagbot.service.impl;
 
+import com.diagbot.dto.HosPermissionDTO;
 import com.diagbot.entity.HospitalRole;
 import com.diagbot.mapper.HospitalRoleMapper;
 import com.diagbot.service.HospitalRoleService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.PermissionVO;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -16,5 +20,13 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class HospitalRoleServiceImpl extends ServiceImpl<HospitalRoleMapper, HospitalRole> implements HospitalRoleService {
-
+    /**
+     * 根据医院编码和系统类型获取所有接口权限
+     *
+     * @param permissionVO
+     * @return
+     */
+    public List<HosPermissionDTO> getAllPermission(PermissionVO permissionVO) {
+        return baseMapper.getAllPermission(permissionVO);
+    }
 }

+ 16 - 0
tran-service/src/main/java/com/diagbot/vo/PermissionVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author zhaops
+ * @Description:
+ * @date 2020/2/18 22:35
+ **/
+@Getter
+@Setter
+public class PermissionVO {
+    private String hospitalCode;
+    private Integer sysType;
+}

+ 22 - 0
tran-service/src/main/java/com/diagbot/web/HospitalRoleController.java

@@ -1,10 +1,21 @@
 package com.diagbot.web;
 
 
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.HosPermissionDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.HospitalRoleFacade;
+import com.diagbot.vo.PermissionVO;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  *  前端控制器
@@ -17,5 +28,16 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/hospitalRole")
 @Api(value = "医院角色对应相关API", tags = { "医院角色对应相关API" })
 public class HospitalRoleController {
+    @Autowired
+    private HospitalRoleFacade hospitalRoleFacade;
 
+    @ApiOperation(value = "根据医院编码和系统类型获取所有接口权限[by:zhaops]",
+            notes = "hospitalCode: 医院code<br>" +
+                    "sysType:系统类型<br>")
+    @PostMapping("/getAllPermission")
+    @SysLogger("getAllPermission")
+    public RespDTO<List<HosPermissionDTO>> getAllPermission(@RequestBody PermissionVO permissionVO) {
+        List<HosPermissionDTO> data = hospitalRoleFacade.getAllPermission(permissionVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 45 - 0
tran-service/src/main/java/com/diagbot/web/PermissionCacheController.java

@@ -0,0 +1,45 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.PermissionDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.PermissionFacade;
+import com.diagbot.vo.PermissionVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/2/17 20:26
+ */
+@RestController
+@RequestMapping("/permissionCache")
+@Api(value = "权限缓存相关API", tags = { "权限缓存相关API" })
+@SuppressWarnings("unchecked")
+public class PermissionCacheController {
+
+    @Autowired
+    private PermissionFacade permissionFacade;
+
+    @ApiOperation(value = "清空权限缓存[by:gaodm]",
+            notes = "")
+    @PostMapping("/delPermission")
+    @SysLogger("delPermission")
+    public RespDTO<Boolean> delPermission() {
+        return RespDTO.onSuc(permissionFacade.delPermission());
+    }
+
+    @ApiOperation(value = "获取权限缓存[by:gaodm]",
+            notes = "")
+    @PostMapping("/getPermission")
+    @SysLogger("getPermission")
+    public RespDTO<PermissionDTO> getPermission(@RequestBody PermissionVO permissionVO) {
+        return RespDTO.onSuc(permissionFacade.getPermission(permissionVO));
+    }
+}

+ 39 - 0
tran-service/src/main/resources/mapper/HospitalRoleMapper.xml

@@ -15,4 +15,43 @@
         <result column="remark" property="remark" />
     </resultMap>
 
+    <!--根据医院编码和系统类型获取所有接口权限-->
+    <select id="getAllPermission" parameterType="com.diagbot.vo.PermissionVO" resultType="com.diagbot.dto.HosPermissionDTO">
+        SELECT
+        hr.hospital_code AS hosCode,
+        ro.id AS roleId,
+        ro.NAME AS roleName,
+        pe.permissionUrl,
+        pe.param_key AS paramKey,
+        pe.param_value AS paramValue,
+        pe.NAME AS permissionName
+        FROM
+        tran_hospital_role hr,
+        tran_role ro,
+        tran_role_permission rp,
+        tran_permission pe
+        WHERE
+        hr.is_deleted = 'N'
+        AND ro.is_deleted = 'N'
+        AND rp.is_deleted = 'N'
+        AND pe.is_deleted = 'N'
+        AND hr.role_id = ro.id
+        AND ro.id = rp.role_id
+        AND rp.permission_id = pe.id
+        <if test="hospitalCode!=null and hospitalCode!=''">
+        AND hr.hospital_code = #{hospitalCode}
+        </if>
+        <if test="sysType!=null">
+        AND pe.sys_type = #{sysType}
+        </if>
+        <!-- if test="hasParam=!null">
+        AND
+        CASE ${hasParam}
+        WHEN TRUE
+        THEN
+        IFNULL( pe.param_key, '' ) &lt;&gt; ''
+        END
+        </if -->
+    </select>
+
 </mapper>