Procházet zdrojové kódy

1,去除菜单禁用后 配置不可见效果
2. 新增获取当前登录人行政区划code方法
3. 部门关联行政区划限制只能上级和本级

lzm před 2 roky
rodič
revize
a8100f6084

+ 36 - 0
README.md

@@ -183,6 +183,42 @@ ruoyi-common-swagger添加
 </dependency>
 ```
 
+5.业务改造:
+(0)本身业务只有用户管理和部门管理存在数据权限
+(1)部门改为懒加载,并且新增行政区划表和部门表对应,部门区划选择 限制只能选择部门层级或者上一级(直属)
+(2)角色增删改,不对外开放,数据权限去掉,改造为增加角色可分配权限的字段,由超管进行 角色分配后选择可分配角色进行下级角色分配,需要同步处理用户里角色选择的问题,非自己能分配的角色禁止分配,但是可以取消用户角色
+```
+角色数据权限值跨度修改
+{
+  value: "1",
+  label: "全部数据权限"
+},
+{
+  value: "30",
+  label: "自定数据权限"
+},
+{
+  value: "20",
+  label: "本部门数据权限"
+},
+{
+  value: "10",
+  label: "本部门及以下数据权限"
+},
+{
+  value: "60",
+  label: "仅本人数据权限"
+},
+{
+  value: "50",
+  label: "仅本机构数据权限"
+}
+```
+(3)用户管理左侧部门改为懒加载+触发搜索
+(4)修改gen里的模板生成,添加注解验证等功能
+(5)扩展数据权限为mybatisplus拦截器,并且做了多菜单分别对应不同的数据权限
+(6)
+
 ## 平台简介
 
 若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。

+ 3 - 0
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.web.domain.BaseEntity;
 import com.ruoyi.ext.api.validate.group.AddGroup;
+import com.ruoyi.system.domain.SysDeptJl;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -93,4 +94,6 @@ public class SysDept extends BaseEntity
     @TableField(exist = false)
     private String locationName;
 
+    private SysDeptJl deptJl;
+
 }

+ 1 - 1
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java

@@ -20,6 +20,6 @@ public class TokenConstants
     /**
      * 令牌秘钥
      */
-    public final static String SECRET = "abcdefghijklmnopqrstuvwxyz";
+    public final static String SECRET = "abcdefghijklmnopqrstuvwxyz123";
 
 }

+ 4 - 1
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java

@@ -145,8 +145,11 @@ public class SecurityUtils
     }
 
     /**
-     * 获取用户养老机构id
+     * 获取用户行政区划Code
      */
+    public static String getAreaCode(){
+        return getLoginUser().getSysUser().getDept().getDeptJl().getCode();
+    }
 
 
     /**

+ 2 - 1
ruoyi-modules/mz-search/src/main/java/com/ruoyi/search/service/impl/YljgYgJbxxServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.search.service.impl;
 
+import com.ruoyi.ext.api.enums.SysUserTypeStatus;
 import com.ruoyi.search.mapper.YljgYgJbxxMapper;
 import com.ruoyi.search.service.IYljgYgJbxxService;
 import com.ruoyi.organization.domain.YljgYgJbxx;
@@ -41,7 +42,7 @@ public class YljgYgJbxxServiceImpl implements IYljgYgJbxxService
     @Override
     public List<YljgYgJbxx> selectYljgYgJbxxList(YljgYgJbxx yljgYgJbxx)
     {
-        if(yljgYgJbxx.getCreateUserType().equals("01")){
+        if(yljgYgJbxx.getCreateUserType().equals(SysUserTypeStatus.YLJG.getCode())){
             return yljgYgJbxxMapper.selectYljgYgJbxxList(yljgYgJbxx);
         }else{
             return yljgYgJbxxMapper.selectSqYljgYgJbxxList(yljgYgJbxx);

+ 0 - 1
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java

@@ -57,7 +57,6 @@ public class SysMenuController extends BaseController
     @GetMapping("/treeselect")
     public AjaxResult treeselect(SysMenu menu)
     {
-        menu.setStatus("0");
         Long userId = SecurityUtils.getUserId();
         List<SysMenu> menus = menuService.selectMenuList(menu, userId);
         return AjaxResult.success(menuService.buildMenuTreeSelect(menus));

+ 1 - 0
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java

@@ -8,6 +8,7 @@ import com.ruoyi.common.core.web.page.TableDataInfo;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.ext.api.validate.group.AddGroup;
 import com.ruoyi.system.api.domain.SysRole;
 import com.ruoyi.system.api.domain.SysUser;

+ 12 - 2
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -48,7 +48,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="leader"    column="leader"      />
         <result property="status"    column="dept_status" />
         <result property="locationId"    column="location_id" />
-    </resultMap>
+		<association property="deptJl"    column="locationId" javaType="SysDeptJl" resultMap="deptJLResult" />
+	</resultMap>
+
+	<resultMap id="deptJLResult" type="SysDeptJl">
+		<id     property="id"    column="id"     />
+		<id     property="code"    column="code"     />
+		<id     property="parentId"    column="parentId"     />
+		<id     property="level"    column="level"     />
+	</resultMap>
 
     <resultMap id="RoleResult" type="SysRole">
         <id     property="roleId"       column="role_id"        />
@@ -63,11 +71,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<sql id="selectUserVo">
         select u.user_id, u.dept_id, u.user_name, u.user_type, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.remark, u.jg_id,
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, d.location_id,
-        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.power_rids, r.status as role_status
+        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.power_rids, r.status as role_status,
+		dj.id,dj.code,dj.parent_id,dj.level
         from sys_user u
 		    left join sys_dept d on u.dept_id = d.dept_id
 		    left join sys_user_role ur on u.user_id = ur.user_id
 		    left join sys_role r on r.role_id = ur.role_id
+			left join sys_dept_jl dj on dj.id = d.location_id
     </sql>
 
     <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">

+ 8 - 0
ruoyi-ui/src/views/system/dept/index.vue

@@ -383,6 +383,14 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          if (this.form.location && this.form.parentIdData){
+            if (this.form.location.length != this.form.parentIdData.length + 1
+              || this.form.location.length != this.form.parentIdData.length
+            ){
+              this.$modal.msgError("所属区划只能是当前部门层级或者上一级(直属)");
+              return
+            }
+          }
           if (this.form.location){
             this.form.locationId = this.form.location[this.form.location.length-1];
           }

+ 2 - 2
ruoyi-ui/src/views/system/role/index.vue

@@ -230,7 +230,7 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="数据权限" v-show="form.dataScope == 2">
+        <el-form-item label="数据权限" v-show="form.dataScope == 30">
           <el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox>
           <el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox>
           <el-checkbox v-model="form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox>
@@ -582,7 +582,7 @@ export default {
     },
     /** 选择角色权限范围触发 */
     dataScopeSelectChange(value) {
-      if(value !== '2') {
+      if(value !== '30') {
         this.$refs.dept.setCheckedKeys([]);
       }
     },