Преглед на файлове

权限管理-列表查询添加租户概念

jichaobo преди 3 години
родител
ревизия
c3ea2aee27

+ 6 - 1
fiveep-controller/src/main/java/com/bizmatics/controller/web/UserSiteController.java

@@ -46,9 +46,14 @@ public class UserSiteController {
         return ApiResult.success(menuService.getButtonlist(menuName));
     }
 
+//    @GetMapping(value = "/getAuthority")
+//    public ApiResult<List<Object>> getAuthority(@RequestParam(value = "roleId") Long roleId) {
+//        return ApiResult.success(menuService.getAuthority(roleId));
+//    }
+
     @GetMapping(value = "/getAuthority")
     public ApiResult<List<Object>> getAuthority(@RequestParam(value = "roleId") Long roleId) {
-        return ApiResult.success(menuService.getAuthority(roleId));
+        return ApiResult.success(menuService.getAuthority1(roleId));
     }
 }
 

+ 19 - 1
fiveep-controller/src/main/java/com/bizmatics/controller/web/system/SysUserController.java

@@ -13,6 +13,7 @@ import com.bizmatics.model.system.SysRole;
 import com.bizmatics.model.system.SysUser;
 import com.bizmatics.model.system.SysUserVo;
 import com.bizmatics.model.vo.RouterVo;
+import com.bizmatics.persistence.mapper.system.SysUserMapper;
 import com.bizmatics.service.config.security.LoginUser;
 import com.bizmatics.service.system.ISysPostService;
 import com.bizmatics.service.system.ISysRoleService;
@@ -53,6 +54,9 @@ public class SysUserController extends BaseController
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private SysUserMapper userMapper;
+
     /**
      * 获取用户列表
      */
@@ -109,6 +113,13 @@ public class SysUserController extends BaseController
         }
         user.setCreateBy(SecurityUtils.getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        //租户查询
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<SysUser> tenantDaya = userMapper.getTenantId(loginUser.getUser().getUserId());
+        if (tenantDaya.size()<0) {
+            throw new BusinessException("无此租户,请联系管理员");
+        }
+        user.setTenantId(tenantDaya.get(0).getTenantId());
         int row = userService.insertUser(user);
         int userId = user.getUserId().intValue();
         try{
@@ -143,6 +154,13 @@ public class SysUserController extends BaseController
             return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         user.setUpdateBy(SecurityUtils.getUsername());
+        //租户查询
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<SysUser> tenantDaya = userMapper.getTenantId(loginUser.getUser().getUserId());
+        if (tenantDaya.size()<0) {
+            throw new BusinessException("无此租户,请联系管理员");
+        }
+        user.setTenantId(tenantDaya.get(0).getTenantId());
         try{
             userService.deleteUserByIds(user.getUserId());
             int userId = user.getUserId().intValue();
@@ -234,7 +252,7 @@ public class SysUserController extends BaseController
     @PostMapping("/setUserData")
     public ApiResult<Void> setUserData(@RequestBody SysUser user)
     {
-        userService.checkUserAllowed(user);
+//        userService.checkUserAllowed(user);
         if (StringUtils.isNotEmpty(user.getPhonenumber())
                 && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
         {

+ 4 - 0
fiveep-model/src/main/java/com/bizmatics/model/Site.java

@@ -121,5 +121,9 @@ public class Site implements Serializable {
      */
     private Integer groupingId;
 
+    /**
+     * 租户ID
+     */
+    private Integer tenantId;
 
 }

+ 11 - 0
fiveep-model/src/main/java/com/bizmatics/model/system/SysUser.java

@@ -88,6 +88,9 @@ public class SysUser extends BaseEntity
     /** 地址 */
     private String address;
 
+    /** 租户ID */
+    private Integer tenantId;
+
 
 
     public SysUser()
@@ -336,6 +339,14 @@ public class SysUser extends BaseEntity
         this.address = address;
     }
 
+    public Integer getTenantId() {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId) {
+        this.tenantId = tenantId;
+    }
+
 
     @Override
     public String toString() {

+ 1 - 6
fiveep-model/src/main/java/com/bizmatics/model/vo/SysTenantVo.java

@@ -44,7 +44,7 @@ public class SysTenantVo implements Serializable {
     private String email;
 
     /** 手机号码 */
-    private String phonenumber;
+    private String phoneNumber;
 
     /** 用户性别 */
     private String sex;
@@ -124,11 +124,6 @@ public class SysTenantVo implements Serializable {
      */
     private String domain;
 
-    /**
-     * 手机号码
-     */
-    private String phoneNumber;
-
     /**
      * 联系地址
      */

+ 2 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/system/SysMenuMapper.java

@@ -25,6 +25,8 @@ public interface SysMenuMapper
 
     public List<SysMenu> getMenuListOne(Long userId,String menuType);
 
+    public List<SysMenu> getMenuListTwo(Long userId,String menuType,Integer tenantId);
+
     /**
      * 根据用户所有权限
      *

+ 3 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/system/SysUserMapper.java

@@ -31,6 +31,9 @@ public interface SysUserMapper
      */
     public List<SysUser> selectAllocatedList(SysUser user);
 
+
+    public List<SysUser> getTenantId(Long userId);
+
     /**
      * 根据条件分页查询未分配用户角色列表
      * 

+ 17 - 0
fiveep-persistence/src/main/resources/mapper/mysql/system/SysMenuMapper.xml

@@ -196,6 +196,23 @@
 	</select>
 
 
+	<select id="getMenuListTwo" resultType="com.bizmatics.model.system.SysMenu">
+		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
+		from sys_menu m
+		left join sys_role_menu rm on m.menu_id = rm.menu_id
+		left join sys_user_role ur on rm.role_id = ur.role_id
+		left join sys_role ro on ur.role_id = ro.role_id
+		join sys_tenant_menu tm on tm.menu_id=m.menu_id
+		where ur.user_id = #{userId} and tm.tenant_id=#{tenantId}
+		AND m.visible = 0
+		AND m.status = 0
+		<if test="menuType != null and menuType != ''">
+			AND m.menu_type = #{menuType}
+		</if>
+		order by m.parent_id, m.order_num
+	</select>
+
+
 	<select id="selectMenuListByRoleId" resultType="Integer">
 		select m.menu_id
 		from sys_menu m

+ 8 - 0
fiveep-persistence/src/main/resources/mapper/mysql/system/SysUserMapper.xml

@@ -23,6 +23,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="updateBy"     column="update_by"    />
 		<result property="updateTime"   column="update_time"  />
 		<result property="remark"       column="remark"       />
+		<result property="tenantId"       column="tenant_id"       />
+		<result property="address"       column="address"       />
 		<association property="dept"    column="dept_id" javaType="com.bizmatics.model.system.SysDept" resultMap="deptResult" />
 		<collection  property="roles"   javaType="java.util.List"        resultMap="RoleResult" />
 	</resultMap>
@@ -84,6 +86,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		${params.dataScope}
 		ORDER BY u.user_id DESC
 	</select>
+
+
+	<select id="getTenantId" parameterType="com.bizmatics.model.system.SysUser" resultMap="SysUserResult">
+		SELECT * FROM sys_user
+		where user_id = #{userId}
+	</select>
 	
 	<select id="selectAllocatedList" parameterType="com.bizmatics.model.system.SysUser" resultMap="SysUserResult">
 	    select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time

+ 3 - 0
fiveep-service/src/main/java/com/bizmatics/service/system/ISysMenuService.java

@@ -142,4 +142,7 @@ public interface ISysMenuService
 
 
     public List<SysMenu> getButtonlist(String menuName);
+
+
+    List<Object> getAuthority1(Long roleId);
 }

+ 106 - 0
fiveep-service/src/main/java/com/bizmatics/service/system/impl/SysMenuServiceImpl.java

@@ -2,6 +2,7 @@ package com.bizmatics.service.system.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.bizmatics.common.core.exception.BusinessException;
 import com.bizmatics.common.core.util.StringUtils;
 import com.bizmatics.common.mvc.utils.ServletUtils;
 import com.bizmatics.model.PlatformArea;
@@ -15,6 +16,7 @@ import com.bizmatics.model.vo.*;
 import com.bizmatics.persistence.mapper.system.SysMenuMapper;
 import com.bizmatics.persistence.mapper.system.SysRoleMapper;
 import com.bizmatics.persistence.mapper.system.SysRoleMenuMapper;
+import com.bizmatics.persistence.mapper.system.SysUserMapper;
 import com.bizmatics.service.config.security.LoginUser;
 import com.bizmatics.service.impl.DeviceServiceImpl;
 import com.bizmatics.service.system.ISysMenuService;
@@ -50,6 +52,9 @@ public class SysMenuServiceImpl implements ISysMenuService {
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private SysUserMapper userMapper;
+
     /**
      * 根据用户查询系统菜单列表
      *
@@ -633,4 +638,105 @@ public class SysMenuServiceImpl implements ISysMenuService {
         return getChildList(list, t).size() > 0 ? true : false;
     }
 
+
+    /**
+     * 权限管理-列表查询(租户)
+     * @param roleId
+     * @return
+     */
+    @Override
+    public List<Object> getAuthority1(Long roleId) {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<SysUser> tenantDaya = userMapper.getTenantId(loginUser.getUser().getUserId());
+        if (tenantDaya.size()<0) {
+            throw new BusinessException("无此租户,请联系管理员");
+        }
+        List<SysMenu> menuList = null;
+        //全部目录查询
+        List<SysMenu> sysMenuListTwo = sysMenuListTwo = menuMapper.getMenuListTwo(loginUser.getUser().getUserId(), "M",tenantDaya.get(0).getTenantId());
+        //全部菜单查询
+        List<SysMenu> sysMenuListOne = sysMenuListOne = menuMapper.getMenuListTwo(loginUser.getUser().getUserId(), "C",tenantDaya.get(0).getTenantId());
+        //全部按钮列表
+        List<SysMenu> sysMenuListThree = sysMenuListThree = menuMapper.getMenuListTwo(loginUser.getUser().getUserId(), "F",tenantDaya.get(0).getTenantId());
+        //已选中按钮列表
+        List<SysMenu> sysMenuListFour = sysMenuListFour = menuMapper.getButtonlistTwo(0L, null, roleId);
+
+
+        List<SysMenuTwoVo> sysMenuVoListOne = new ArrayList<>();
+        List<SysMenuOneVo> SysMenuVoList = new ArrayList<>();
+        List<SysMenuVo> SysMenuVoListOne = new ArrayList<>();
+        List<Object> list = new ArrayList<>();
+//        if (sysMenuListFour.size()>0){
+        for (int i = 0; i < sysMenuListThree.size(); i++) {
+            SysMenuTwoVo sysMenuTwoVo = new SysMenuTwoVo();
+            sysMenuTwoVo.setId(sysMenuListThree.get(i).getMenuId());
+            sysMenuTwoVo.setName(sysMenuListThree.get(i).getMenuName());
+            sysMenuTwoVo.setFid(sysMenuListThree.get(i).getParentId());
+            long Id = sysMenuListThree.get(i).getMenuId();
+            sysMenuTwoVo.setChecked(false);
+            if (sysMenuListFour.size() > 0) {
+                for (int j = 0; j < sysMenuListFour.size(); j++) {
+                    long MenuId = sysMenuListFour.get(j).getMenuId();
+                    if (Id == MenuId) {
+                        sysMenuTwoVo.setChecked(true);
+                    }
+                }
+            } else {
+                sysMenuTwoVo.setChecked(false);
+            }
+
+            sysMenuVoListOne.add(sysMenuTwoVo);
+        }
+
+        for (int i = 0; i < sysMenuListOne.size(); i++) {
+            SysMenuOneVo sysMenuOneVo = new SysMenuOneVo();
+            sysMenuOneVo.setId(sysMenuListOne.get(i).getMenuId());
+            sysMenuOneVo.setMenu(sysMenuListOne.get(i).getMenuName());
+            sysMenuOneVo.setFid(sysMenuListOne.get(i).getParentId());
+            long id = sysMenuListOne.get(i).getMenuId();
+            List<SysMenuTwoVo> sysMenuVoListTwo = new ArrayList<>();
+            for (int j = 0; j < sysMenuVoListOne.size(); j++) {
+                long FId = sysMenuVoListOne.get(j).getFid();
+                if (id == FId) {
+                    sysMenuVoListTwo.add(sysMenuVoListOne.get(j));
+                }
+            }
+            sysMenuOneVo.setAuthority(sysMenuVoListTwo);
+            SysMenuVoList.add(sysMenuOneVo);
+        }
+
+        for (int i = 0; i < sysMenuListTwo.size(); i++) {
+            SysMenuVo sysMenuVo = new SysMenuVo();
+            sysMenuVo.setId(sysMenuListTwo.get(i).getMenuId());
+            sysMenuVo.setMenu(sysMenuListTwo.get(i).getMenuName());
+            sysMenuVo.setFid(sysMenuListTwo.get(i).getParentId());
+            long id = sysMenuListTwo.get(i).getMenuId();
+            List<SysMenuOneVo> SysMenuVoListThree = new ArrayList<>();
+            for (int j = 0; j < SysMenuVoList.size(); j++) {
+                long FId = SysMenuVoList.get(j).getFid();
+                if (id == FId) {
+                    SysMenuVoListThree.add(SysMenuVoList.get(j));
+                }
+            }
+            sysMenuVo.setChildren(SysMenuVoListThree);
+            SysMenuVoListOne.add(sysMenuVo);
+        }
+
+        for (int i = 0; i < SysMenuVoListOne.size(); i++) {
+            String name = SysMenuVoListOne.get(i).getMenu();
+            if (name.equals("数据管理") || name.equals("电能质量") || name.equals("系统管理")) {
+                list.add(SysMenuVoListOne.get(i));
+            } else {
+                for (int j = 0; j < SysMenuVoList.size(); j++) {
+                    String name2 = SysMenuVoList.get(j).getMenu();
+                    if (name.equals(name2)) {
+                        list.add(SysMenuVoList.get(j));
+                    }
+                }
+            }
+        }
+//        }
+        return list;
+    }
+
 }

+ 2 - 0
fiveep-service/src/main/java/com/bizmatics/service/system/impl/SysUserServiceImpl.java

@@ -2,12 +2,14 @@ package com.bizmatics.service.system.impl;
 
 import com.bizmatics.common.core.exception.BusinessException;
 import com.bizmatics.common.core.util.StringUtils;
+import com.bizmatics.common.mvc.utils.ServletUtils;
 import com.bizmatics.model.UserSite;
 import com.bizmatics.model.constants.UserConstants;
 import com.bizmatics.model.system.*;
 import com.bizmatics.persistence.mapper.UserSiteMapper;
 import com.bizmatics.persistence.mapper.system.*;
 import com.bizmatics.service.aop.DataScope;
+import com.bizmatics.service.config.security.LoginUser;
 import com.bizmatics.service.system.ISysConfigService;
 import com.bizmatics.service.system.ISysUserService;
 import com.bizmatics.service.util.SecurityUtils;