Browse Source

调用目录接口获取每个医院的首页路由 返回给前端供WEB端使用

wangzl 2 months ago
parent
commit
e89aebed41

+ 3 - 0
tr-modules-api/tr-module-system-api/src/main/java/cn/tr/module/api/sys/user/SysMenuApi.java

@@ -26,4 +26,7 @@ public interface SysMenuApi {
     List<CbbMenuDTO> selectCbbMenu(String parentId);
 
     List<Pair<String,String>> selectAllMenuIdAndName();
+
+    String findFirstMenuPathByUserAndTenant(String userId);
+
 }

+ 9 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/DoctorUserServiceImpl.java

@@ -7,6 +7,7 @@ import cn.tr.core.exception.ServiceException;
 import cn.tr.core.exception.TRExcCode;
 import cn.tr.core.strategy.LoginUserStrategy;
 import cn.tr.core.utils.PswUtils;
+import cn.tr.module.api.sys.user.SysMenuApi;
 import cn.tr.module.smart.common.dto.BizAppUserBindHospitalDTO;
 import cn.tr.module.smart.common.dto.BizAppUserCheckPhoneCodeDTO;
 import cn.tr.module.smart.common.dto.BizAppUserInfoDTO;
@@ -43,6 +44,7 @@ public class DoctorUserServiceImpl  implements IDoctorUserService {
     private final SysUserTenantRepository userTenantRepository;
     private final IBizSmsService smsService;
     private final SysTenantRepository tenantRepository;
+    private final SysMenuApi sysMenuApi;
 
     @Override
     public void insertUserInfo(BizAppUserInfoDTO source) {
@@ -66,7 +68,13 @@ public class DoctorUserServiceImpl  implements IDoctorUserService {
 
     @Override
     public List<DoctorUserHospitalVO> stdSelectHospitalList(String currentUserId) {
-        return userRepository.stdSelectHospitalList(currentUserId);
+        List<DoctorUserHospitalVO> doctorUserHospitalVOS = userRepository.stdSelectHospitalList(currentUserId);
+        doctorUserHospitalVOS.forEach(doctorUserHospitalVO -> {
+                    String firstMenuPathByUserAndTenant = sysMenuApi.findFirstMenuPathByUserAndTenant(currentUserId);
+                    doctorUserHospitalVO.setHospitalHomeRoute(firstMenuPathByUserAndTenant);
+                }
+        );
+        return doctorUserHospitalVOS;
     }
 
     /**

+ 15 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/provider/SysMenuApiProvider.java

@@ -8,13 +8,16 @@ import cn.hutool.core.util.StrUtil;
 import cn.tr.core.exception.ServiceException;
 import cn.tr.core.exception.TRExcCode;
 import cn.tr.core.utils.MenuUtil;
+import cn.tr.core.utils.TreeUtil;
 import cn.tr.module.api.sys.user.CbbMenuDTO;
 import cn.tr.module.api.sys.user.SysMenuApi;
+import cn.tr.module.sys.oauth2.service.CurrentUserService;
 import cn.tr.module.sys.user.mapper.SysMenuMapper;
 import cn.tr.module.sys.user.dto.SysMenuDTO;
 import cn.tr.module.sys.user.po.SysMenuPO;
 import cn.tr.module.sys.user.repository.SysMenuRepository;
 import cn.tr.module.sys.user.service.ISysMenuService;
+import cn.tr.module.sys.user.vo.RouteItemVO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Component;
@@ -36,6 +39,8 @@ public class SysMenuApiProvider implements SysMenuApi {
     private final SysMenuRepository menuRepository;
     private final ISysMenuService menuService;
 
+    private final CurrentUserService currentUserService;
+
 
     @PostConstruct
     public void init() {
@@ -46,6 +51,16 @@ public class SysMenuApiProvider implements SysMenuApi {
     public List<Pair<String, String>> selectAllMenuIdAndName() {
         return menuService.selectAllMenuIdAndName();
     }
+
+    @Override
+    public String findFirstMenuPathByUserAndTenant(String userId) {
+        List<RouteItemVO> routeItemVOS = TreeUtil.buildTree(currentUserService.currentUserMenus(""));
+        return routeItemVOS.stream()
+                .findFirst()
+                .map(RouteItemVO::getName)
+                .orElse("");
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Pair<String,String> addForGenMenu(String parentId, String busName, String frontModuleName,String backModuleName,String permissionPrefix, String functionName) {

+ 3 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/vo/DoctorUserHospitalVO.java

@@ -15,4 +15,7 @@ public class DoctorUserHospitalVO {
     //todo
     @ApiModelProperty("医院头像")
     private String avatar;
+
+    @ApiModelProperty("WEB首页路由")
+    private String hospitalHomeRoute;
 }