From acd62c1684cbde71954252ffdf89d0918491e6fc Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 02 四月 2025 19:48:10 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/IServiceExternalService.java           |    5 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java |   41 +-
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java |    6 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java      |   14 
 ruoyi-admin/src/main/resources/application-druid.yml                             |   16 
 smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java   |   22 +
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java      |   20 
 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java   |    7 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java |   10 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java |  785 ++++++++++++++++++++++++------------------------
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java |    6 
 12 files changed, 485 insertions(+), 455 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
index 0549669..c5070cb 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
@@ -5,6 +5,7 @@
 
 import com.ruoyi.common.core.domain.entity.SysUserRole;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -52,6 +53,9 @@
 
     @Autowired
     private ISysDeptService deptService;
+    
+    @Value("${isAdmin}")
+    private List<Long> isAdmin;
 
     //@PreAuthorize("@ss.hasPermi('system:role:list')")
     @GetMapping("/list")
@@ -118,7 +122,7 @@
         if (roleService.updateRole(role) > 0) {
             // 鏇存柊缂撳瓨鐢ㄦ埛鏉冮檺
             LoginUser loginUser = getLoginUser();
-            if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) {
+            if (StringUtils.isNotNull(loginUser.getUser()) && !isAdmin.contains(loginUser.getUser().getUserId())) {
                 loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
                 loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
                 tokenService.setLoginUser(loginUser);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 339331e..fdf2888 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -21,6 +21,7 @@
 import com.smartor.mapper.SysUserDeptMapper;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -52,6 +53,9 @@
 
     @Autowired
     private SysUserDeptMapper sysUserDeptMapper;
+
+    @Value("${isAdmin}")
+    private List<Long> isAdmin;
 
     /**
      * 鑾峰彇鐢ㄦ埛鍒楄〃
@@ -99,7 +103,7 @@
         userService.checkUserDataScope(userId);
         AjaxResult ajax = AjaxResult.success();
         List<SysRole> roles = roleService.selectRoleAll();
-        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+        ajax.put("roles", isAdmin.contains(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
         ajax.put("posts", postService.selectPostAll());
         if (StringUtils.isNotNull(userId)) {
             SysUser sysUser = userService.selectUserById(userId);
@@ -213,7 +217,7 @@
         SysUser user = userService.selectUserById(userId);
         List<SysRole> roles = roleService.selectRolesByUserId(userId);
         ajax.put("user", user);
-        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+        ajax.put("roles", isAdmin.contains(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
         return ajax;
     }
 
@@ -225,7 +229,7 @@
     @PostMapping("/authRole")
     public AjaxResult insertAuthRole(Long userId, Long[] roleIds) {
         userService.checkUserDataScope(userId);
-        userService.insertUserAuth(userId, roleIds,getOrgid());
+        userService.insertUserAuth(userId, roleIds, getOrgid());
         return success();
     }
 
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index 56bb6fe..fa70094 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -13,10 +13,10 @@
         #        鍏徃
         #        url: jdbc:mysql://192.168.2.9:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         #        涓芥按
-#        url: jdbc:mysql://127.0.0.1:3308/smartor-lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-#        username: smartor
-#        password: Smartor.2023
-#        driverClassName: com.mysql.cj.jdbc.Driver
+        url: jdbc:mysql://127.0.0.1:3308/smartor-lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        username: smartor
+        password: Smartor.2023
+        driverClassName: com.mysql.cj.jdbc.Driver
         #        # 鏂板崕
 #        url: jdbc:mysql://192.168.191.181:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
 #        username: smartor
@@ -24,10 +24,10 @@
 #        driverClassName: com.mysql.cj.jdbc.Driver
 
         #  鍏徃浜�
-        url: jdbc:mysql://116.62.18.175:6002/smartor_lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-        username: hxsoft
-        password: Hxerp2000
-        driverClassName: com.mysql.cj.jdbc.Driver
+#        url: jdbc:mysql://116.62.18.175:6002/smartor_lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+#        username: hxsoft
+#        password: Hxerp2000
+#        driverClassName: com.mysql.cj.jdbc.Driver
 
 
       # 浠庡簱鏁版嵁婧�
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
index 3c03bda..efd0e22 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
@@ -1,18 +1,12 @@
 package com.ruoyi.common.core.domain.entity;
 
-import java.util.ArrayList;
-import java.util.List;
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-
+import com.ruoyi.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.ruoyi.common.core.domain.BaseEntity;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 閮ㄩ棬琛� sys_dept
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index 16d9393..f868860 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -10,6 +10,7 @@
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
@@ -18,6 +19,7 @@
 import com.ruoyi.common.annotation.Excels;
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.xss.Xss;
+import org.springframework.stereotype.Component;
 
 /**
  * 鐢ㄦ埛瀵硅薄 sys_user
@@ -25,9 +27,13 @@
  * @author ruoyi
  */
 @Data
+@Component
 @ApiModel(value = "SysUser", description = "鐢ㄦ埛瀵硅薄")
 public class SysUser extends BaseEntity {
     private static final long serialVersionUID = 1L;
+//
+//    @Value("${isAdmin}")
+//    private List<Long> isAdmin;
 
     /**
      * 鐢ㄦ埛ID
@@ -301,13 +307,13 @@
         this.userId = userId;
     }
 
-    public boolean isAdmin() {
-        return isAdmin(this.userId);
-    }
-
-    public static boolean isAdmin(Long userId) {
-        return userId != null && 1L == userId;
-    }
+//    public boolean isAdmin() {
+//        return isAdmin(this.userId);
+//    }
+//
+//    public boolean isAdmin(Long userId) {
+//        return isAdmin.contains(userId);
+//    }
 
     public Long getDeptId() {
         return this.deptId;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
index 746530f..7a1b25c 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
@@ -5,6 +5,7 @@
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import com.ruoyi.common.annotation.DataScope;
 import com.ruoyi.common.core.domain.BaseEntity;
@@ -55,6 +56,10 @@
      */
     public static final String DATA_SCOPE = "dataScope";
 
+
+    @Value("${isAdmin}")
+    private  List<Long> isAdmin;
+
     @Before("@annotation(controllerDataScope)")
     public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable
     {
@@ -70,7 +75,7 @@
         {
             SysUser currentUser = loginUser.getUser();
             // 濡傛灉鏄秴绾х鐞嗗憳锛屽垯涓嶈繃婊ゆ暟鎹�
-            if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin())
+            if (StringUtils.isNotNull(currentUser) && !isAdmin.contains(loginUser.getUser().getUserId()))
             {
                 String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), PermissionContextHolder.getContext());
                 dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
index bdd0df7..bba5e52 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -5,6 +5,7 @@
 import java.util.List;
 import java.util.stream.Collectors;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import com.ruoyi.common.annotation.DataScope;
 import com.ruoyi.common.constant.UserConstants;
@@ -23,7 +24,7 @@
 
 /**
  * 閮ㄩ棬绠$悊 鏈嶅姟瀹炵幇
- * 
+ *
  * @author ruoyi
  */
 @Service
@@ -35,9 +36,12 @@
     @Autowired
     private SysRoleMapper roleMapper;
 
+    @Value("${isAdmin}")
+    private  List<Long> isAdmin;
+
     /**
      * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁
-     * 
+     *
      * @param dept 閮ㄩ棬淇℃伅
      * @return 閮ㄩ棬淇℃伅闆嗗悎
      */
@@ -50,7 +54,7 @@
 
     /**
      * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭�
-     * 
+     *
      * @param dept 閮ㄩ棬淇℃伅
      * @return 閮ㄩ棬鏍戜俊鎭泦鍚�
      */
@@ -63,7 +67,7 @@
 
     /**
      * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯
-     * 
+     *
      * @param depts 閮ㄩ棬鍒楄〃
      * @return 鏍戠粨鏋勫垪琛�
      */
@@ -90,7 +94,7 @@
 
     /**
      * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯
-     * 
+     *
      * @param depts 閮ㄩ棬鍒楄〃
      * @return 涓嬫媺鏍戠粨鏋勫垪琛�
      */
@@ -103,7 +107,7 @@
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭�
-     * 
+     *
      * @param roleId 瑙掕壊ID
      * @return 閫変腑閮ㄩ棬鍒楄〃
      */
@@ -116,7 +120,7 @@
 
     /**
      * 鏍规嵁閮ㄩ棬ID鏌ヨ淇℃伅
-     * 
+     *
      * @param deptId 閮ㄩ棬ID
      * @return 閮ㄩ棬淇℃伅
      */
@@ -128,7 +132,7 @@
 
     /**
      * 鏍规嵁ID鏌ヨ鎵�鏈夊瓙閮ㄩ棬锛堟甯哥姸鎬侊級
-     * 
+     *
      * @param deptId 閮ㄩ棬ID
      * @return 瀛愰儴闂ㄦ暟
      */
@@ -140,7 +144,7 @@
 
     /**
      * 鏄惁瀛樺湪瀛愯妭鐐�
-     * 
+     *
      * @param deptId 閮ㄩ棬ID
      * @return 缁撴灉
      */
@@ -153,7 +157,7 @@
 
     /**
      * 鏌ヨ閮ㄩ棬鏄惁瀛樺湪鐢ㄦ埛
-     * 
+     *
      * @param deptId 閮ㄩ棬ID
      * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦�
      */
@@ -166,7 +170,7 @@
 
     /**
      * 鏍¢獙閮ㄩ棬鍚嶇О鏄惁鍞竴
-     * 
+     *
      * @param dept 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
@@ -184,13 +188,14 @@
 
     /**
      * 鏍¢獙閮ㄩ棬鏄惁鏈夋暟鎹潈闄�
-     * 
+     *
      * @param deptId 閮ㄩ棬id
      */
     @Override
     public void checkDeptDataScope(Long deptId)
     {
-        if (!SysUser.isAdmin(SecurityUtils.getUserId()))
+//        if (!SysUser.isAdmin(SecurityUtils.getUserId()))
+        if (!isAdmin.contains(SecurityUtils.getUserId()))
         {
             SysDept dept = new SysDept();
             dept.setDeptId(deptId);
@@ -204,7 +209,7 @@
 
     /**
      * 鏂板淇濆瓨閮ㄩ棬淇℃伅
-     * 
+     *
      * @param dept 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
@@ -223,7 +228,7 @@
 
     /**
      * 淇敼淇濆瓨閮ㄩ棬淇℃伅
-     * 
+     *
      * @param dept 閮ㄩ棬淇℃伅
      * @return 缁撴灉
      */
@@ -251,7 +256,7 @@
 
     /**
      * 淇敼璇ラ儴闂ㄧ殑鐖剁骇閮ㄩ棬鐘舵��
-     * 
+     *
      * @param dept 褰撳墠閮ㄩ棬
      */
     private void updateParentDeptStatusNormal(SysDept dept)
@@ -263,7 +268,7 @@
 
     /**
      * 淇敼瀛愬厓绱犲叧绯�
-     * 
+     *
      * @param deptId 琚慨鏀圭殑閮ㄩ棬ID
      * @param newAncestors 鏂扮殑鐖禝D闆嗗悎
      * @param oldAncestors 鏃х殑鐖禝D闆嗗悎
@@ -283,7 +288,7 @@
 
     /**
      * 鍒犻櫎閮ㄩ棬绠$悊淇℃伅
-     * 
+     *
      * @param deptId 閮ㄩ棬ID
      * @return 缁撴灉
      */
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
index f9b0186..1edc702 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -72,417 +72,404 @@
     public List<SysMenu> selectMenuList(SysMenu menu, Long userId) {
         List<SysMenu> menuList = null;
         // 绠$悊鍛樻樉绀烘墍鏈夎彍鍗曚俊鎭�
-        if (SysUser.isAdmin(userId)) {
-            menuList = menuMapper.selectMenuList(menu);
-        } else {
-            menu.getParams().put("userId", userId);
-            menuList = menuMapper.selectMenuListByUserId(menu);
-        }
-        return menuList;
-    }
-
-    /**
-     * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺
-     *
-     * @param userId 鐢ㄦ埛ID
-     * @return 鏉冮檺鍒楄〃
-     */
-    @Override
-    public Set<String> selectMenuPermsByUserId(Long userId) {
-        List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
-        Set<String> permsSet = new HashSet<>();
-        for (String perm : perms) {
-            if (StringUtils.isNotEmpty(perm)) {
-                permsSet.addAll(Arrays.asList(perm.trim().split(",")));
+//        if (SysUser.isAdmin(userId)) {
+            if (userId != null && isAdmin.contains(userId)) {
+                menuList = menuMapper.selectMenuList(menu);
+            } else {
+                menu.getParams().put("userId", userId);
+                menuList = menuMapper.selectMenuListByUserId(menu);
             }
+            return menuList;
         }
-        return permsSet;
-    }
 
-    /**
-     * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺
-     *
-     * @param roleId 瑙掕壊ID
-     * @return 鏉冮檺鍒楄〃
-     */
-    @Override
-    public Set<String> selectMenuPermsByRoleId(Long roleId) {
-        List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId);
-        Set<String> permsSet = new HashSet<>();
-        for (String perm : perms) {
-            if (StringUtils.isNotEmpty(perm)) {
-                permsSet.addAll(Arrays.asList(perm.trim().split(",")));
-            }
-        }
-        return permsSet;
-    }
-
-    /**
-     * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟
-     *
-     * @param userId 鐢ㄦ埛鍚嶇О
-     * @return 鑿滃崟鍒楄〃
-     */
-    @Override
-    public List<SysMenu> selectMenuTreeByUserId(Long userId) {
-        List<SysMenu> menus = null;
-//        if (SecurityUtils.isAdmin(userId)) {
-        if (userId != null && isAdmin.contains(userId)) {
-            menus = menuMapper.selectMenuTreeAll();
-        } else {
-            menus = menuMapper.selectMenuTreeByUserId(userId);
-        }
-        return getChildPerms(menus, 0);
-    }
-
-    /**
-     * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭�
-     *
-     * @param roleId 瑙掕壊ID
-     * @return 閫変腑鑿滃崟鍒楄〃
-     */
-    @Override
-    public List<Long> selectMenuListByRoleId(Long roleId) {
-        SysRole role = roleMapper.selectRoleById(roleId);
-        return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
-    }
-
-    /**
-     * 鏋勫缓鍓嶇璺敱鎵�闇�瑕佺殑鑿滃崟
-     *
-     * @param menus 鑿滃崟鍒楄〃
-     * @return 璺敱鍒楄〃
-     */
-    @Override
-    public List<RouterVo> buildMenus(List<SysMenu> menus) {
-        log.error("buildMenus鐨勫叆鍙備负锛歿}", menus);
-        List<RouterVo> routers = new LinkedList<RouterVo>();
-        for (SysMenu menu : menus) {
-            RouterVo router = new RouterVo();
-            router.setHidden("1".equals(menu.getVisible()));
-            router.setName(getRouteName(menu));
-            router.setPath(getRouterPath(menu));
-            router.setComponent(getComponent(menu));
-            router.setQuery(menu.getQuery());
-            router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
-            List<SysMenu> cMenus = menu.getChildren();
-            if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
-                router.setAlwaysShow(true);
-                router.setRedirect("noRedirect");
-                router.setChildren(buildMenus(cMenus));
-            } else if (isMenuFrame(menu)) {
-                router.setMeta(null);
-                List<RouterVo> childrenList = new ArrayList<RouterVo>();
-                RouterVo children = new RouterVo();
-                children.setPath(menu.getPath());
-                children.setComponent(menu.getComponent());
-                children.setName(StringUtils.capitalize(menu.getPath()));
-                children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
-                children.setQuery(menu.getQuery());
-                childrenList.add(children);
-                router.setChildren(childrenList);
-            } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) {
-                router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon()));
-                router.setPath("/");
-                List<RouterVo> childrenList = new ArrayList<RouterVo>();
-                RouterVo children = new RouterVo();
-                String routerPath = innerLinkReplaceEach(menu.getPath());
-                children.setPath(routerPath);
-                children.setComponent(UserConstants.INNER_LINK);
-                children.setName(StringUtils.capitalize(routerPath));
-                children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath()));
-                childrenList.add(children);
-                router.setChildren(childrenList);
-            }
-            routers.add(router);
-        }
-        log.error("----------routers鐨勫叆鍙備负锛歿}", routers);
-        for (RouterVo routerVo : routers) {
-            List<String> childName = new ArrayList<>();
-            List<RouterVo> childrens = routerVo.getChildren();
-            if (CollectionUtils.isNotEmpty(childrens)) {
-                for (RouterVo routerVo1 : childrens) {
-                    if (!routerVo1.getHidden()) {
-                        childName.add(routerVo1.getMeta().getTitle());
-                    }
+        /**
+         * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺
+         *
+         * @param userId 鐢ㄦ埛ID
+         * @return 鏉冮檺鍒楄〃
+         */
+        @Override public Set<String> selectMenuPermsByUserId (Long userId){
+            List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
+            Set<String> permsSet = new HashSet<>();
+            for (String perm : perms) {
+                if (StringUtils.isNotEmpty(perm)) {
+                    permsSet.addAll(Arrays.asList(perm.trim().split(",")));
                 }
             }
-            routerVo.setChildName(childName);
+            return permsSet;
         }
-        return routers;
-    }
 
-    /**
-     * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯
-     *
-     * @param menus 鑿滃崟鍒楄〃
-     * @return 鏍戠粨鏋勫垪琛�
-     */
-    @Override
-    public List<SysMenu> buildMenuTree(List<SysMenu> menus) {
-        List<SysMenu> returnList = new ArrayList<SysMenu>();
-        List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
-        for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext(); ) {
-            SysMenu menu = (SysMenu) iterator.next();
-            // 濡傛灉鏄《绾ц妭鐐�, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
-            if (!tempList.contains(menu.getParentId())) {
-                recursionFn(menus, menu);
-                returnList.add(menu);
+        /**
+         * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺
+         *
+         * @param roleId 瑙掕壊ID
+         * @return 鏉冮檺鍒楄〃
+         */
+        @Override public Set<String> selectMenuPermsByRoleId (Long roleId){
+            List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId);
+            Set<String> permsSet = new HashSet<>();
+            for (String perm : perms) {
+                if (StringUtils.isNotEmpty(perm)) {
+                    permsSet.addAll(Arrays.asList(perm.trim().split(",")));
+                }
+            }
+            return permsSet;
+        }
+
+        /**
+         * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟
+         *
+         * @param userId 鐢ㄦ埛鍚嶇О
+         * @return 鑿滃崟鍒楄〃
+         */
+        @Override public List<SysMenu> selectMenuTreeByUserId (Long userId){
+            List<SysMenu> menus = null;
+//        if (SecurityUtils.isAdmin(userId)) {
+            if (userId != null && isAdmin.contains(userId)) {
+                menus = menuMapper.selectMenuTreeAll();
+            } else {
+                menus = menuMapper.selectMenuTreeByUserId(userId);
+            }
+            return getChildPerms(menus, 0);
+        }
+
+        /**
+         * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭�
+         *
+         * @param roleId 瑙掕壊ID
+         * @return 閫変腑鑿滃崟鍒楄〃
+         */
+        @Override public List<Long> selectMenuListByRoleId (Long roleId){
+            SysRole role = roleMapper.selectRoleById(roleId);
+            return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
+        }
+
+        /**
+         * 鏋勫缓鍓嶇璺敱鎵�闇�瑕佺殑鑿滃崟
+         *
+         * @param menus 鑿滃崟鍒楄〃
+         * @return 璺敱鍒楄〃
+         */
+        @Override public List<RouterVo> buildMenus (List < SysMenu > menus) {
+            log.error("buildMenus鐨勫叆鍙備负锛歿}", menus);
+            List<RouterVo> routers = new LinkedList<RouterVo>();
+            for (SysMenu menu : menus) {
+                RouterVo router = new RouterVo();
+                router.setHidden("1".equals(menu.getVisible()));
+                router.setName(getRouteName(menu));
+                router.setPath(getRouterPath(menu));
+                router.setComponent(getComponent(menu));
+                router.setQuery(menu.getQuery());
+                router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
+                List<SysMenu> cMenus = menu.getChildren();
+                if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
+                    router.setAlwaysShow(true);
+                    router.setRedirect("noRedirect");
+                    router.setChildren(buildMenus(cMenus));
+                } else if (isMenuFrame(menu)) {
+                    router.setMeta(null);
+                    List<RouterVo> childrenList = new ArrayList<RouterVo>();
+                    RouterVo children = new RouterVo();
+                    children.setPath(menu.getPath());
+                    children.setComponent(menu.getComponent());
+                    children.setName(StringUtils.capitalize(menu.getPath()));
+                    children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
+                    children.setQuery(menu.getQuery());
+                    childrenList.add(children);
+                    router.setChildren(childrenList);
+                } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) {
+                    router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon()));
+                    router.setPath("/");
+                    List<RouterVo> childrenList = new ArrayList<RouterVo>();
+                    RouterVo children = new RouterVo();
+                    String routerPath = innerLinkReplaceEach(menu.getPath());
+                    children.setPath(routerPath);
+                    children.setComponent(UserConstants.INNER_LINK);
+                    children.setName(StringUtils.capitalize(routerPath));
+                    children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath()));
+                    childrenList.add(children);
+                    router.setChildren(childrenList);
+                }
+                routers.add(router);
+            }
+            log.error("----------routers鐨勫叆鍙備负锛歿}", routers);
+            for (RouterVo routerVo : routers) {
+                List<String> childName = new ArrayList<>();
+                List<RouterVo> childrens = routerVo.getChildren();
+                if (CollectionUtils.isNotEmpty(childrens)) {
+                    for (RouterVo routerVo1 : childrens) {
+                        if (!routerVo1.getHidden()) {
+                            childName.add(routerVo1.getMeta().getTitle());
+                        }
+                    }
+                }
+                routerVo.setChildName(childName);
+            }
+            return routers;
+        }
+
+        /**
+         * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯
+         *
+         * @param menus 鑿滃崟鍒楄〃
+         * @return 鏍戠粨鏋勫垪琛�
+         */
+        @Override public List<SysMenu> buildMenuTree (List < SysMenu > menus) {
+            List<SysMenu> returnList = new ArrayList<SysMenu>();
+            List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
+            for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext(); ) {
+                SysMenu menu = (SysMenu) iterator.next();
+                // 濡傛灉鏄《绾ц妭鐐�, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
+                if (!tempList.contains(menu.getParentId())) {
+                    recursionFn(menus, menu);
+                    returnList.add(menu);
+                }
+            }
+            if (returnList.isEmpty()) {
+                returnList = menus;
+            }
+            return returnList;
+        }
+
+        /**
+         * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯
+         *
+         * @param menus 鑿滃崟鍒楄〃
+         * @return 涓嬫媺鏍戠粨鏋勫垪琛�
+         */
+        @Override public List<TreeSelect> buildMenuTreeSelect (List < SysMenu > menus) {
+            List<SysMenu> menuTrees = buildMenuTree(menus);
+            return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
+        }
+
+        /**
+         * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅
+         *
+         * @param menuId 鑿滃崟ID
+         * @return 鑿滃崟淇℃伅
+         */
+        @Override public SysMenu selectMenuById (Long menuId){
+            return menuMapper.selectMenuById(menuId);
+        }
+
+        /**
+         * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐�
+         *
+         * @param menuId 鑿滃崟ID
+         * @return 缁撴灉
+         */
+        @Override public boolean hasChildByMenuId (Long menuId){
+            int result = menuMapper.hasChildByMenuId(menuId);
+            return result > 0;
+        }
+
+        /**
+         * 鏌ヨ鑿滃崟浣跨敤鏁伴噺
+         *
+         * @param menuId 鑿滃崟ID
+         * @return 缁撴灉
+         */
+        @Override public boolean checkMenuExistRole (Long menuId){
+            int result = roleMenuMapper.checkMenuExistRole(menuId);
+            return result > 0;
+        }
+
+        /**
+         * 鏂板淇濆瓨鑿滃崟淇℃伅
+         *
+         * @param menu 鑿滃崟淇℃伅
+         * @return 缁撴灉
+         */
+        @Override public int insertMenu (SysMenu menu){
+            return menuMapper.insertMenu(menu);
+        }
+
+        /**
+         * 淇敼淇濆瓨鑿滃崟淇℃伅
+         *
+         * @param menu 鑿滃崟淇℃伅
+         * @return 缁撴灉
+         */
+        @Override public int updateMenu (SysMenu menu){
+            return menuMapper.updateMenu(menu);
+        }
+
+        /**
+         * 鍒犻櫎鑿滃崟绠$悊淇℃伅
+         *
+         * @param menuId 鑿滃崟ID
+         * @return 缁撴灉
+         */
+        @Override public int deleteMenuById (Long menuId){
+            return menuMapper.deleteMenuById(menuId);
+        }
+
+        /**
+         * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴
+         *
+         * @param menu 鑿滃崟淇℃伅
+         * @return 缁撴灉
+         */
+        @Override public String checkMenuNameUnique (SysMenu menu){
+            Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId();
+            SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId());
+            if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) {
+                return UserConstants.NOT_UNIQUE;
+            }
+            return UserConstants.UNIQUE;
+        }
+
+        /**
+         * 鑾峰彇璺敱鍚嶇О
+         *
+         * @param menu 鑿滃崟淇℃伅
+         * @return 璺敱鍚嶇О
+         */
+        public String getRouteName (SysMenu menu){
+            String routerName = StringUtils.capitalize(menu.getPath());
+            // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級
+            if (isMenuFrame(menu)) {
+                routerName = StringUtils.EMPTY;
+            }
+            return routerName;
+        }
+
+        /**
+         * 鑾峰彇璺敱鍦板潃
+         *
+         * @param menu 鑿滃崟淇℃伅
+         * @return 璺敱鍦板潃
+         */
+        public String getRouterPath (SysMenu menu){
+            String routerPath = menu.getPath();
+            // 鍐呴摼鎵撳紑澶栫綉鏂瑰紡
+            if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
+                routerPath = innerLinkReplaceEach(routerPath);
+            }
+            // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級
+            if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType()) && UserConstants.NO_FRAME.equals(menu.getIsFrame())) {
+                routerPath = "/" + menu.getPath();
+            }
+            // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓鸿彍鍗曪級
+            else if (isMenuFrame(menu)) {
+                routerPath = "/";
+            }
+            return routerPath;
+        }
+
+        /**
+         * 鑾峰彇缁勪欢淇℃伅
+         *
+         * @param menu 鑿滃崟淇℃伅
+         * @return 缁勪欢淇℃伅
+         */
+        public String getComponent (SysMenu menu){
+            String component = UserConstants.LAYOUT;
+            if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) {
+                component = menu.getComponent();
+            } else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
+                component = UserConstants.INNER_LINK;
+            } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) {
+                component = UserConstants.PARENT_VIEW;
+            }
+            return component;
+        }
+
+        /**
+         * 鏄惁涓鸿彍鍗曞唴閮ㄨ烦杞�
+         *
+         * @param menu 鑿滃崟淇℃伅
+         * @return 缁撴灉
+         */
+        public boolean isMenuFrame (SysMenu menu){
+            return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) && menu.getIsFrame().equals(UserConstants.NO_FRAME);
+        }
+
+        /**
+         * 鏄惁涓哄唴閾剧粍浠�
+         *
+         * @param menu 鑿滃崟淇℃伅
+         * @return 缁撴灉
+         */
+        public boolean isInnerLink (SysMenu menu){
+            return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath());
+        }
+
+        /**
+         * 鏄惁涓簆arent_view缁勪欢
+         *
+         * @param menu 鑿滃崟淇℃伅
+         * @return 缁撴灉
+         */
+        public boolean isParentView (SysMenu menu){
+            return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType());
+        }
+
+        /**
+         * 鏍规嵁鐖惰妭鐐圭殑ID鑾峰彇鎵�鏈夊瓙鑺傜偣
+         *
+         * @param list     鍒嗙被琛�
+         * @param parentId 浼犲叆鐨勭埗鑺傜偣ID
+         * @return String
+         */
+        public List<SysMenu> getChildPerms (List < SysMenu > list,int parentId){
+            List<SysMenu> returnList = new ArrayList<SysMenu>();
+            for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext(); ) {
+                SysMenu t = (SysMenu) iterator.next();
+                // 涓�銆佹牴鎹紶鍏ョ殑鏌愪釜鐖惰妭鐐笽D,閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
+                if (t.getParentId() == parentId) {
+                    recursionFn(list, t);
+                    returnList.add(t);
+                }
+            }
+            return returnList;
+        }
+
+        /**
+         * 閫掑綊鍒楄〃
+         *
+         * @param list 鍒嗙被琛�
+         * @param t    瀛愯妭鐐�
+         */
+        private void recursionFn (List < SysMenu > list, SysMenu t){
+            // 寰楀埌瀛愯妭鐐瑰垪琛�
+            List<SysMenu> childList = getChildList(list, t);
+            t.setChildren(childList);
+            for (SysMenu tChild : childList) {
+                if (hasChild(list, tChild)) {
+                    recursionFn(list, tChild);
+                }
             }
         }
-        if (returnList.isEmpty()) {
-            returnList = menus;
-        }
-        return returnList;
-    }
 
-    /**
-     * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯
-     *
-     * @param menus 鑿滃崟鍒楄〃
-     * @return 涓嬫媺鏍戠粨鏋勫垪琛�
-     */
-    @Override
-    public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus) {
-        List<SysMenu> menuTrees = buildMenuTree(menus);
-        return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
-    }
-
-    /**
-     * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅
-     *
-     * @param menuId 鑿滃崟ID
-     * @return 鑿滃崟淇℃伅
-     */
-    @Override
-    public SysMenu selectMenuById(Long menuId) {
-        return menuMapper.selectMenuById(menuId);
-    }
-
-    /**
-     * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐�
-     *
-     * @param menuId 鑿滃崟ID
-     * @return 缁撴灉
-     */
-    @Override
-    public boolean hasChildByMenuId(Long menuId) {
-        int result = menuMapper.hasChildByMenuId(menuId);
-        return result > 0;
-    }
-
-    /**
-     * 鏌ヨ鑿滃崟浣跨敤鏁伴噺
-     *
-     * @param menuId 鑿滃崟ID
-     * @return 缁撴灉
-     */
-    @Override
-    public boolean checkMenuExistRole(Long menuId) {
-        int result = roleMenuMapper.checkMenuExistRole(menuId);
-        return result > 0;
-    }
-
-    /**
-     * 鏂板淇濆瓨鑿滃崟淇℃伅
-     *
-     * @param menu 鑿滃崟淇℃伅
-     * @return 缁撴灉
-     */
-    @Override
-    public int insertMenu(SysMenu menu) {
-        return menuMapper.insertMenu(menu);
-    }
-
-    /**
-     * 淇敼淇濆瓨鑿滃崟淇℃伅
-     *
-     * @param menu 鑿滃崟淇℃伅
-     * @return 缁撴灉
-     */
-    @Override
-    public int updateMenu(SysMenu menu) {
-        return menuMapper.updateMenu(menu);
-    }
-
-    /**
-     * 鍒犻櫎鑿滃崟绠$悊淇℃伅
-     *
-     * @param menuId 鑿滃崟ID
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteMenuById(Long menuId) {
-        return menuMapper.deleteMenuById(menuId);
-    }
-
-    /**
-     * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴
-     *
-     * @param menu 鑿滃崟淇℃伅
-     * @return 缁撴灉
-     */
-    @Override
-    public String checkMenuNameUnique(SysMenu menu) {
-        Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId();
-        SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId());
-        if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) {
-            return UserConstants.NOT_UNIQUE;
-        }
-        return UserConstants.UNIQUE;
-    }
-
-    /**
-     * 鑾峰彇璺敱鍚嶇О
-     *
-     * @param menu 鑿滃崟淇℃伅
-     * @return 璺敱鍚嶇О
-     */
-    public String getRouteName(SysMenu menu) {
-        String routerName = StringUtils.capitalize(menu.getPath());
-        // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級
-        if (isMenuFrame(menu)) {
-            routerName = StringUtils.EMPTY;
-        }
-        return routerName;
-    }
-
-    /**
-     * 鑾峰彇璺敱鍦板潃
-     *
-     * @param menu 鑿滃崟淇℃伅
-     * @return 璺敱鍦板潃
-     */
-    public String getRouterPath(SysMenu menu) {
-        String routerPath = menu.getPath();
-        // 鍐呴摼鎵撳紑澶栫綉鏂瑰紡
-        if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
-            routerPath = innerLinkReplaceEach(routerPath);
-        }
-        // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級
-        if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType()) && UserConstants.NO_FRAME.equals(menu.getIsFrame())) {
-            routerPath = "/" + menu.getPath();
-        }
-        // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓鸿彍鍗曪級
-        else if (isMenuFrame(menu)) {
-            routerPath = "/";
-        }
-        return routerPath;
-    }
-
-    /**
-     * 鑾峰彇缁勪欢淇℃伅
-     *
-     * @param menu 鑿滃崟淇℃伅
-     * @return 缁勪欢淇℃伅
-     */
-    public String getComponent(SysMenu menu) {
-        String component = UserConstants.LAYOUT;
-        if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) {
-            component = menu.getComponent();
-        } else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
-            component = UserConstants.INNER_LINK;
-        } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) {
-            component = UserConstants.PARENT_VIEW;
-        }
-        return component;
-    }
-
-    /**
-     * 鏄惁涓鸿彍鍗曞唴閮ㄨ烦杞�
-     *
-     * @param menu 鑿滃崟淇℃伅
-     * @return 缁撴灉
-     */
-    public boolean isMenuFrame(SysMenu menu) {
-        return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) && menu.getIsFrame().equals(UserConstants.NO_FRAME);
-    }
-
-    /**
-     * 鏄惁涓哄唴閾剧粍浠�
-     *
-     * @param menu 鑿滃崟淇℃伅
-     * @return 缁撴灉
-     */
-    public boolean isInnerLink(SysMenu menu) {
-        return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath());
-    }
-
-    /**
-     * 鏄惁涓簆arent_view缁勪欢
-     *
-     * @param menu 鑿滃崟淇℃伅
-     * @return 缁撴灉
-     */
-    public boolean isParentView(SysMenu menu) {
-        return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType());
-    }
-
-    /**
-     * 鏍规嵁鐖惰妭鐐圭殑ID鑾峰彇鎵�鏈夊瓙鑺傜偣
-     *
-     * @param list     鍒嗙被琛�
-     * @param parentId 浼犲叆鐨勭埗鑺傜偣ID
-     * @return String
-     */
-    public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) {
-        List<SysMenu> returnList = new ArrayList<SysMenu>();
-        for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext(); ) {
-            SysMenu t = (SysMenu) iterator.next();
-            // 涓�銆佹牴鎹紶鍏ョ殑鏌愪釜鐖惰妭鐐笽D,閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
-            if (t.getParentId() == parentId) {
-                recursionFn(list, t);
-                returnList.add(t);
+        /**
+         * 寰楀埌瀛愯妭鐐瑰垪琛�
+         */
+        private List<SysMenu> getChildList (List < SysMenu > list, SysMenu t){
+            List<SysMenu> tlist = new ArrayList<SysMenu>();
+            Iterator<SysMenu> it = list.iterator();
+            while (it.hasNext()) {
+                SysMenu n = (SysMenu) it.next();
+                if (n.getParentId().longValue() == t.getMenuId().longValue()) {
+                    tlist.add(n);
+                }
             }
+            return tlist;
         }
-        return returnList;
-    }
 
-    /**
-     * 閫掑綊鍒楄〃
-     *
-     * @param list 鍒嗙被琛�
-     * @param t    瀛愯妭鐐�
-     */
-    private void recursionFn(List<SysMenu> list, SysMenu t) {
-        // 寰楀埌瀛愯妭鐐瑰垪琛�
-        List<SysMenu> childList = getChildList(list, t);
-        t.setChildren(childList);
-        for (SysMenu tChild : childList) {
-            if (hasChild(list, tChild)) {
-                recursionFn(list, tChild);
-            }
+        /**
+         * 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣
+         */
+        private boolean hasChild (List < SysMenu > list, SysMenu t){
+            return getChildList(list, t).size() > 0;
+        }
+
+        /**
+         * 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲
+         *
+         * @return 鏇挎崲鍚庣殑鍐呴摼鍩熷悕
+         */
+        public String innerLinkReplaceEach (String path){
+            return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "."}, new String[]{"", "", "", "/"});
         }
     }
-
-    /**
-     * 寰楀埌瀛愯妭鐐瑰垪琛�
-     */
-    private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) {
-        List<SysMenu> tlist = new ArrayList<SysMenu>();
-        Iterator<SysMenu> it = list.iterator();
-        while (it.hasNext()) {
-            SysMenu n = (SysMenu) it.next();
-            if (n.getParentId().longValue() == t.getMenuId().longValue()) {
-                tlist.add(n);
-            }
-        }
-        return tlist;
-    }
-
-    /**
-     * 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣
-     */
-    private boolean hasChild(List<SysMenu> list, SysMenu t) {
-        return getChildList(list, t).size() > 0;
-    }
-
-    /**
-     * 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲
-     *
-     * @return 鏇挎崲鍚庣殑鍐呴摼鍩熷悕
-     */
-    public String innerLinkReplaceEach(String path) {
-        return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "."}, new String[]{"", "", "", "/"});
-    }
-}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index dd84d2b..28880dc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -17,6 +17,7 @@
 import com.ruoyi.system.mapper.SysUserRoleMapper;
 import com.ruoyi.system.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -41,6 +42,9 @@
 
     @Autowired
     private SysRoleDeptMapper roleDeptMapper;
+
+    @Value("${isAdmin}")
+    private List<Long> isAdmin;
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁
@@ -194,7 +198,7 @@
     @Override
     public void checkRoleDataScope(Long roleId)
     {
-        if (!SysUser.isAdmin(SecurityUtils.getUserId()))
+        if (!isAdmin.contains(SecurityUtils.getUserId()))
         {
             SysRole role = new SysRole();
             role.setRoleId(roleId);
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 e71efa3..9143807 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
@@ -17,6 +17,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -60,6 +61,9 @@
 
     @Autowired
     protected Validator validator;
+
+    @Value("${isAdmin}")
+    private List<Long> isAdmin;
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃
@@ -353,7 +357,7 @@
      */
     @Override
     public void checkUserAllowed(SysUser user) {
-        if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) {
+        if (StringUtils.isNotNull(user.getUserId()) && isAdmin.contains(user.getUserId())) {
             throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳鐢ㄦ埛");
         }
     }
@@ -365,7 +369,7 @@
      */
     @Override
     public void checkUserDataScope(Long userId) {
-        if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
+        if (!isAdmin.contains(SecurityUtils.getUserId())) {
             SysUser user = new SysUser();
             user.setUserId(userId);
             List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
diff --git a/smartor/src/main/java/com/smartor/service/IServiceExternalService.java b/smartor/src/main/java/com/smartor/service/IServiceExternalService.java
index 07efb06..e75cdb6 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceExternalService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceExternalService.java
@@ -92,4 +92,9 @@
      * 鏂板鎵嬫湳淇℃伅
      */
     public Boolean addOperationInfo(@RequestBody Map dataMap);
+
+    /**
+     * 鏂板鍖荤枟缁勫尰鐢�
+     */
+    public Boolean addMedicalTeam(Map dataMap);
 }
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
index 90b5937..037a99a 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -543,8 +543,8 @@
         icd10.setGuid(externalDiseaseInfo.getZuZhiJGID());
         icd10.setLastflag(externalDiseaseInfo.getMOJIBZ());
         icd10.setChimedflag("" + externalDiseaseInfo.getZhongYiZDBZ());
+        icd10.setUpdateTime(new Date());
         if (CollectionUtils.isNotEmpty(icd10s)) {
-            icd10.setUpdateTime(new Date());
             icd10.setIcdid(icd10s.get(0).getIcdid());
             icd10Mapper.updateIcd10(icd10);
         } else {
@@ -561,7 +561,7 @@
         Map<String, Object> bqxx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingQuXX") : null;
         ExternalWardArea externalWardArea = BeanUtil.mapToBean(bqxx, ExternalWardArea.class, true);
         SysDept sysDept = new SysDept();
-        sysDept.setGuid(externalWardArea.getZuZhiJGID());
+        sysDept.setOrgid(externalWardArea.getZuZhiJGID());
         sysDept.setHisDeptId(externalWardArea.getBingQuID());
 
         sysDept.setDeptName(externalWardArea.getBingQuMC());
@@ -571,19 +571,26 @@
         sysDept.setDeptCode(externalWardArea.getBingQuID());
         sysDept.setCreateBy(externalWardArea.getChuangJianRXM());
         sysDept.setType(externalWardArea.getBingQuLXDM());
-        sysDept.setCreateTime(externalWardArea.getCreateTime());
         sysDept.setUpdateTime(externalWardArea.getUpdateTime());
         sysDept.setUpdateBy(externalWardArea.getUpdateBy());
         if (StringUtils.isNotEmpty(externalWardArea.getShiJianDM()) && externalWardArea.getShiJianDM().equals("3")) {
             sysDept.setStatus("1");
         }
         if (StringUtils.isNotEmpty(externalWardArea.getShiJianDM()) && externalWardArea.getShiJianDM().equals("1")) {
+            sysDept.setCreateTime(externalWardArea.getCreateTime());
             int i = sysDeptMapper.insertDept(sysDept);
             log.error("ServiceExternalServiceImpl---addWardAreaInfo鏄惁鏂板鎴愬姛锛歿}", i);
         } else {
             int i = sysDeptMapper.updateDept(sysDept);
             log.error("ServiceExternalServiceImpl---addWardAreaInfo鏄惁淇敼鎴愬姛锛歿}", i);
         }
+        return true;
+    }
+
+    @Override
+    public Boolean addMedicalTeam(Map dataMap) {
+        log.error("ServiceExternalServiceImpl---addMedicalTeam鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
+
         return true;
     }
 
@@ -796,17 +803,19 @@
         if (ObjectUtils.isNotEmpty(externalInHospPatientLiaisonInfo))
             patArchive.setRelativetelcode(externalInHospPatientLiaisonInfo.getLianXiRDH());
         patArchive.setInhospno(externalInHospPatientInfo.getBingAnHao());
-        patArchive.setCreateTime(new Date());
+
         patArchive.setIdcardtype(externalInHospPatientInfo.getZhengJianLXMC());
         if (CollectionUtils.isNotEmpty(patArchives)) {
             //濡傛灉涓嶄负绌猴紝鐩存帴灏嗘煡璇㈠嚭鏉ョ殑瀵硅薄杩斿洖
             PatArchive patArchive1 = patArchives.get(0);
             String orgid = patArchive1.getOrgid();
             if (StringUtils.isNotEmpty(orgid)) {
+                patArchive.setUpdateTime(new Date());
                 patArchive.setId(patArchive1.getId());
                 patArchiveMapper.updatePatArchive(patArchive);
             }
         } else {
+            patArchive.setCreateTime(new Date());
             patArchiveMapper.insertPatArchiveSingle(patArchive);
         }
         //鏂板睘淇℃伅
@@ -997,8 +1006,11 @@
                 log.error("鍙栨秷鍑洪櫌鍏ュ弬绫诲瀷涓猴細{}", type);
                 return cancelOutHospInfo(dataMap);
             case "JG_ZZ_BingQu":
-                log.error("鐥呭尯淇℃伅鍏ュ弬绫诲瀷涓鸿緟锛歿}", type);
+                log.error("鐥呭尯淇℃伅鍏ュ弬绫诲瀷涓猴細{}", type);
                 return addWardAreaInfo(dataMap);
+            case "JG_ZZ_YiLiaoZYS":
+                log.error("鍖荤枟缁勫尰鐢熶负锛歿}", type);
+                return addMedicalTeam(dataMap);
         }
         return true;
     }

--
Gitblit v1.9.3