Pārlūkot izejas kodu

系统菜单调整1

yaoyi 1 mēnesi atpakaļ
vecāks
revīzija
1aac682d31

+ 6 - 0
hr-api/hr-api-system/src/main/java/com/hr/system/api/domain/SysRole.java

@@ -31,6 +31,12 @@ public class SysRole extends BaseEntity
     @Excel(name = "角色权限")
     private String roleKey;
 
+
+    @Excel(name = "角色url权限")
+    private String roleUrlmatchKey;
+
+
+
     @Excel(name = "角色业务组织类型")
     private String roleDeptType;
 

+ 16 - 6
hr-api/hr-api-system/src/main/java/com/hr/system/api/model/LoginUser.java

@@ -118,6 +118,13 @@ public class LoginUser implements Serializable
  ***/
 
     private JSONObject sysMenuUrls;
+    public JSONObject getSysMenuUrls() {
+        return sysMenuUrls;
+    }
+
+    public void setSysMenuUrls(JSONObject sysMenuUrls) {
+        this.sysMenuUrls = sysMenuUrls;
+    }
     /***
     private List<String> sysPostsList;
 
@@ -129,13 +136,16 @@ public class LoginUser implements Serializable
         this.sysPostsList = sysPostsList;
     }
     ***/
-    public JSONObject getSysMenuUrls() {
-        return sysMenuUrls;
-    }
 
-    public void setSysMenuUrls(JSONObject sysMenuUrls) {
-        this.sysMenuUrls = sysMenuUrls;
-    }
+//    public List<String> menuUrls;
+//
+//    public List<String> getMenuUrls() {
+//        return menuUrls;
+//    }
+//
+//    public void setMenuUrls(List<String> menuUrls) {
+//        this.menuUrls = menuUrls;
+//    }
 
     public String getToken()
     {

+ 1 - 1
hr-auth/src/main/resources/bootstrap.yml

@@ -6,7 +6,7 @@ server:
 spring: 
   application:
     # 应用名称
-    name: ruoyi-auth
+    name: hr-auth
   profiles:
     # 环境配置
     active: dev

+ 3 - 3
hr-auth/src/main/resources/logback.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="60 seconds" debug="false">
     <!-- 日志存放路径 -->
-	<property name="log.path" value="logs/ruoyi-auth" />
+	<property name="log.path" value="logs/hr-auth" />
    <!-- 日志输出格式 -->
 	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
 
@@ -14,7 +14,7 @@
 
     <!-- 系统日志输出 -->
 	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/info.log</file>
+<!--	    <file>${log.path}/info.log</file>-->
         <!-- 循环政策:基于时间创建日志文件 -->
 		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 日志文件名格式 -->
@@ -36,7 +36,7 @@
 	</appender>
 
     <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/error.log</file>
+<!--	    <file>${log.path}/error.log</file>-->
         <!-- 循环政策:基于时间创建日志文件 -->
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 日志文件名格式 -->

+ 8 - 0
hr-modules/hr-system/src/main/java/com/hr/system/controller/SysMenuController.java

@@ -89,6 +89,9 @@ public class SysMenuController extends BaseController
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysMenu menu)
     {
+        if(menu.getUrl()==null || menu.getUrl().equals("")){
+            return error("新增菜单'" + menu.getMenuName() + "'失败,菜单url不能为空");
+        }
         if (!menuService.checkMenuNameUnique(menu))
         {
             return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
@@ -109,6 +112,11 @@ public class SysMenuController extends BaseController
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysMenu menu)
     {
+        //有些操作权限可以不设置全路径,但是这样就只能实现界面进行权限控制
+        //不能实现url网关拦截
+        if(menu.getUrl()==null || menu.getUrl().equals("")){
+            return error("修改菜单'" + menu.getMenuName() + "'失败,菜单url不能为空");
+        }
         if (!menuService.checkMenuNameUnique(menu))
         {
             return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");

+ 83 - 19
hr-modules/hr-system/src/main/java/com/hr/system/controller/SysUserController.java

@@ -1,10 +1,7 @@
 package com.hr.system.controller;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
 
@@ -134,7 +131,20 @@ public class SysUserController extends BaseController
             return R.fail("用户名或密码错误");
         }
         // 角色集合
-        Set<String> roles = permissionService.getRolePermission(sysUser);
+//        Set<String> roles = permissionService.getRolePermission(sysUser);
+         List<SysRole> roleslist=permissionService.getRoleList(sysUser);
+
+        Set<String> roles = new HashSet<>();
+        for (SysRole perm : roleslist)
+        {
+            if (StringUtils.isNotNull(perm))
+            {
+                roles.addAll(Arrays.asList(perm.getRoleKey().trim().split(",")));
+            }
+        }
+
+        LoginUser sysUserVo = new LoginUser();
+
         // 权限集合
         Set<String> permissions = permissionService.getMenuPermission(sysUser);
 
@@ -142,7 +152,9 @@ public class SysUserController extends BaseController
          * 新增代码查询出当前用户的所有菜单(包括按钮),以便获取菜单权限
          */
         List<SysMenu> menus = menuService.selectMenuTreeByUserId2(sysUser.getUserId());
-        JSONObject menump=dealMenuMap(menus);
+//        JSONObject menump=dealMenuMap(menus);
+        JSONObject menump=calcUserMenuList( menus,roleslist);
+        sysUserVo.setSysMenuUrls(menump);
 
         /**
          * 新增代码获取当前用户的岗位
@@ -153,12 +165,12 @@ public class SysUserController extends BaseController
             userpstlststr.add(_s.getPostCode());
         }
 
-        LoginUser sysUserVo = new LoginUser();
+
 
         /***
          * 设置当前用户的菜单路径集合
          */
-        sysUserVo.setSysMenuUrls(menump);
+//        sysUserVo.setSysMenuUrls(menump);
 //        sysUserVo.setSysPostsList(userpstlststr);
 
 
@@ -207,6 +219,59 @@ public class SysUserController extends BaseController
         return R.ok(sysUserVo);
     }
 
+    private JSONObject calcUserMenuList(List<SysMenu> menus,List<SysRole> roleList){
+        JSONObject menumap=new JSONObject();
+        Map<String,Object> roleKeyMap=new HashMap<>();
+        for(SysRole r:roleList){
+            String[] _spl=r.getRoleKey().split(",");
+            for(String _k:_spl){
+                roleKeyMap.put(_k,null);
+            }
+
+        }
+        for(SysMenu _m:menus){
+            depthCalcMenuMapDealMenu(_m,menumap,roleKeyMap);
+        }
+        return menumap;
+    }
+    private  void depthCalcMenuMapDealMenu(SysMenu _m,JSONObject menumap,Map<String,Object> roleKeyMap){
+
+        if(_m.getUrl()!=null) {
+            menumap=getLastJson(_m,menumap);
+
+            if(StringUtils.isNotEmpty(_m.getUrlmatch())) {
+                delPermsSet(menumap, _m.getUrlmatch());
+            }
+        }
+        JSONArray permsarr=new JSONArray();
+        if (menumap.containsKey(permsKey)) {
+            permsarr = menumap.getJSONArray(permsKey);
+        }
+        boolean flag= false;
+        if(roleKeyMap.size()>0 && permsarr.size()>0){
+            int count=0;
+            for (Object obj : permsarr) {
+                String item = (String) obj;
+                if(roleKeyMap.containsKey(item)){
+                    count++;
+                }
+            }
+            if( count>0){
+                flag=true;
+            }
+        }else{
+            flag=true;
+        }
+        if(flag) {
+            if (_m.getChildren() != null && _m.getChildren().size() > 0) {
+                for (SysMenu _m2 : _m.getChildren()) {
+                    depthCalcMenuMapDealMenu(_m2, menumap, roleKeyMap);
+                }
+            }
+        }
+    }
+
+
     private JSONObject dealMenuMap(List<SysMenu> menus){
         JSONObject menumap=new JSONObject();
         for(SysMenu _m:menus){
@@ -217,17 +282,16 @@ public class SysUserController extends BaseController
 
     private  void depthDealMenuMapDealMenu(SysMenu _m,JSONObject menumap,JSONObject dynamicmap){
         JSONObject _curmap=dynamicmap;
-        //如果当前没有设置地址的,则看当前的SysMenu是否有权限字段,如果有则设置当前的权限字段permsKey
-        if(_m.getComponent()!=null) {
-            String _perms=_m.getPerms();
+
+        if(_m.getUrl()!=null) {
+
             _curmap=getLastJson(_m,menumap);
-        }
-        else{
-            //如果当前没有设置地址的,则看当前的SysMenu是否有权限字段,如果有则设置当前的权限字段permsKey
-            if(StringUtils.isNotEmpty(_m.getPerms())) {
-                delPermsSet(_curmap, _m.getPerms());
+
+            if(StringUtils.isNotEmpty(_m.getUrlmatch())) {
+                delPermsSet(_curmap, _m.getUrlmatch());
             }
         }
+
         if(_m.getChildren()!=null && _m.getChildren().size()>0) {
             for(SysMenu _m2:_m.getChildren()) {
                 depthDealMenuMapDealMenu(_m2,menumap, _curmap);
@@ -237,7 +301,7 @@ public class SysUserController extends BaseController
     }
 
     private void delPermsSet(JSONObject menumap,String perms){
-        //如果当前已经有权限字段,则需要去重
+
         if(StringUtils.isNotEmpty(perms)) {
             JSONArray arr=null;
             if (menumap.containsKey(permsKey)) {
@@ -259,12 +323,12 @@ public class SysUserController extends BaseController
 
     private JSONObject getLastJson(SysMenu _m,JSONObject menumap){
         JSONObject _curmap=menumap;
-        String _path=_m.getComponent();
+        String _path=_m.getUrl();
         if(StringUtils.isNotEmpty(_path)) {
             if (_path.startsWith("/")) {
                 _path = _path.substring(1);
             }
-            //如果当前url带?的,则需要去掉?后面的数据
+
             int hasparmidx = _path.indexOf("?");
             if (hasparmidx > 1) {
                 _path = _path.substring(0, hasparmidx);

+ 34 - 0
hr-modules/hr-system/src/main/java/com/hr/system/domain/SysMenu.java

@@ -60,6 +60,12 @@ public class SysMenu extends BaseEntity
     /** 菜单状态(0正常 1停用) */
     private String status;
 
+    private String url;
+
+    private String urlmatch;
+
+    private String systemCode;
+
     /** 权限字符串 */
     private String perms;
 
@@ -246,6 +252,30 @@ public class SysMenu extends BaseEntity
         this.children = children;
     }
 
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getUrlmatch() {
+        return urlmatch;
+    }
+
+    public void setUrlmatch(String urlmatch) {
+        this.urlmatch = urlmatch;
+    }
+
+    public String getSystemCode() {
+        return systemCode;
+    }
+
+    public void setSystemCode(String systemCode) {
+        this.systemCode = systemCode;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -269,6 +299,10 @@ public class SysMenu extends BaseEntity
             .append("updateBy", getUpdateBy())
             .append("updateTime", getUpdateTime())
             .append("remark", getRemark())
+            .append("url", getUrl())
+            .append("urlmatch", getUrlmatch())
+            .append("systemCode", getSystemCode())
+
             .toString();
     }
 }

+ 4 - 0
hr-modules/hr-system/src/main/java/com/hr/system/service/ISysPermissionService.java

@@ -1,7 +1,9 @@
 package com.hr.system.service;
 
+import java.util.List;
 import java.util.Set;
 
+import com.hr.system.api.domain.SysRole;
 import com.hr.system.api.domain.SysUser;
 
 /**
@@ -28,4 +30,6 @@ public interface ISysPermissionService
     public Set<String> getMenuPermission(SysUser user);
 
 
+    public List<SysRole> getRoleList(SysUser user);
+
 }

+ 11 - 0
hr-modules/hr-system/src/main/java/com/hr/system/service/impl/SysPermissionServiceImpl.java

@@ -1,8 +1,11 @@
 package com.hr.system.service.impl;
 
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+
+import com.hr.system.mapper.SysRoleMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -27,6 +30,14 @@ public class SysPermissionServiceImpl implements ISysPermissionService
 
     @Autowired
     private ISysMenuService menuService;
+    @Autowired
+    private SysRoleMapper roleMapper;
+
+    @Override
+    public List<SysRole> getRoleList(SysUser user) {
+        List<SysRole> roles = roleMapper.selectRolePermissionByUserId(user.getUserId());
+        return roles;
+    }
 
     /**
      * 获取角色数据权限

+ 1 - 4
hr-modules/hr-system/src/main/resources/mapper/system/SysDeptMapper.xml

@@ -12,9 +12,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="orderNum"   column="order_num"   />
 		<result property="leader"     column="leader"      />
 		<result property="phone"      column="phone"       />
-		<result property="depType"      column="dep_type"       />
-		<result property="orgCode"      column="org_code"       />
-
 		<result property="email"      column="email"       />
 		<result property="status"     column="status"      />
 		<result property="delFlag"    column="del_flag"    />
@@ -26,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</resultMap>
 	
 	<sql id="selectDeptVo">
-        select d.dept_id ,d.org_code, d.dep_type,d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
+        select d.dept_id ,d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
         from sys_dept d
     </sql>
     

+ 23 - 5
hr-modules/hr-system/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -26,16 +26,23 @@
 		<result property="updateTime"     column="update_time"    />
 		<result property="updateBy"       column="update_by"      />
 		<result property="remark"         column="remark"         />
+		<result property="url"         column="url"         />
+		<result property="urlmatch"         column="urlmatch"         />
+		<result property="systemCode"         column="system_code"         />
+
 	</resultMap>
 
 	<sql id="selectMenuVo">
-        select menu_id, menu_name, parent_id, order_num, path, component, `query`, route_name, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time 
+        select menu_id, menu_name, parent_id, url ,urlmatch,system_code ,order_num, path, component, `query`, route_name, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time
 		from sys_menu
     </sql>
     
     <select id="selectMenuList" parameterType="SysMenu" resultMap="SysMenuResult">
 		<include refid="selectMenuVo"/>
 		<where>
+			<if test="systemCode != null and systemCode != ''">
+				AND m.system_code = #{systemCode}
+			</if>
 			<if test="menuName != null and menuName != ''">
 				AND menu_name like concat('%', #{menuName}, '%')
 			</if>
@@ -50,18 +57,21 @@
 	</select>
 	
 	<select id="selectMenuTreeAll" resultMap="SysMenuResult">
-		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, 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
+		select distinct m.menu_id, m.parent_id,m.url,m.urlmatch,m.system_code, m.menu_name, m.path, m.component, m.`query`, m.route_name, 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 where m.menu_type in ('M', 'C') and m.status = 0
 		order by m.parent_id, m.order_num
 	</select>
 	
 	<select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult">
-		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, 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
+		select distinct m.menu_id, m.parent_id,m.url,m.urlmatch,m.system_code, m.menu_name, m.path, m.component, m.`query`, m.route_name, 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
 		where ur.user_id = #{params.userId}
+		<if test="systemCode != null and systemCode != ''">
+			AND m.system_code = #{systemCode}
+		</if>
 		<if test="menuName != null and menuName != ''">
             AND m.menu_name like concat('%', #{menuName}, '%')
 		</if>
@@ -75,7 +85,7 @@
 	</select>
     
     <select id="selectMenuTreeByUserId" parameterType="Long" resultMap="SysMenuResult">
-		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, 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
+		select distinct m.menu_id, m.parent_id,m.url,m.urlmatch,m.system_code, m.menu_name, m.path, m.component, m.`query`, m.route_name, 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
@@ -86,7 +96,7 @@
 	</select>
 
 	<select id="selectMenuTreeByUserId2" parameterType="Long" resultMap="SysMenuResult">
-		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, 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
+		select distinct m.menu_id, m.parent_id,m.url,m.urlmatch,m.system_code, m.menu_name, m.path, m.component, m.`query`, m.route_name, 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
@@ -162,6 +172,8 @@
 			<if test="perms !=null">perms = #{perms},</if>
 			<if test="icon !=null and icon != ''">icon = #{icon},</if>
 			<if test="remark != null and remark != ''">remark = #{remark},</if>
+			<if test="url != null and url != ''">url = #{url},</if>
+			<if test="urlmatch != null and urlmatch != ''">urlmatch = #{urlmatch},</if>
 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
 			update_time = sysdate()
 		</set>
@@ -186,6 +198,9 @@
 		<if test="perms !=null and perms != ''">perms,</if>
 		<if test="icon != null and icon != ''">icon,</if>
 		<if test="remark != null and remark != ''">remark,</if>
+		<if test="url != null and url != ''">url,</if>
+		<if test="urlmatch != null and urlmatch != ''">urlmatch,</if>
+
 		<if test="createBy != null and createBy != ''">create_by,</if>
 		create_time
 		)values(
@@ -205,6 +220,9 @@
 		<if test="perms !=null and perms != ''">#{perms},</if>
 		<if test="icon != null and icon != ''">#{icon},</if>
 		<if test="remark != null and remark != ''">#{remark},</if>
+		<if test="url != null and url != ''">#{url},</if>
+		<if test="urlmatch != null and urlmatch != ''">#{urlmatch},</if>
+
 		<if test="createBy != null and createBy != ''">#{createBy},</if>
 		sysdate()
 		)

+ 7 - 1
hr-modules/hr-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -21,10 +21,12 @@ 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="roleUrlmatchKey"             column="role_urlmatch_key"                />
+
 	</resultMap>
 	
 	<sql id="selectRoleVo">
-	    select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope , r.role_dept_type, r.menu_check_strictly, r.dept_check_strictly,
+	    select distinct r.role_id, r.role_name, r.role_key,r.role_urlmatch_key, r.role_sort, r.data_scope , r.role_dept_type, r.menu_check_strictly, r.dept_check_strictly,
             r.status, r.del_flag, r.create_time, r.remark 
         from sys_role r
 	        left join sys_user_role ur on ur.role_id = r.role_id
@@ -105,6 +107,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="roleId != null and roleId != 0">role_id,</if>
  			<if test="roleName != null and roleName != ''">role_name,</if>
  			<if test="roleKey != null and roleKey != ''">role_key,</if>
+			<if test="roleUrlmatchKey != null and roleUrlmatchKey != ''">role_urlmatch_key,</if>
+
  			<if test="roleSort != null">role_sort,</if>
  			<if test="dataScope != null and dataScope != ''">data_scope,</if>
 		<if test="roleDeptType != null and roleDeptType != ''">role_dept_type,</if>
@@ -119,6 +123,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="roleId != null and roleId != 0">#{roleId},</if>
  			<if test="roleName != null and roleName != ''">#{roleName},</if>
  			<if test="roleKey != null and roleKey != ''">#{roleKey},</if>
+		<if test="roleUrlmatchKey != null and roleUrlmatchKey != ''">#{roleUrlmatchKey},</if>
  			<if test="roleSort != null">#{roleSort},</if>
  			<if test="dataScope != null and dataScope != ''">#{dataScope},</if>
 		<if test="roleDeptType != null and roleDeptType != ''">#{roleDeptType},</if>
@@ -137,6 +142,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  		<set>
  			<if test="roleName != null and roleName != ''">role_name = #{roleName},</if>
  			<if test="roleKey != null and roleKey != ''">role_key = #{roleKey},</if>
+			<if test="roleUrlmatchKey != null and roleUrlmatchKey != ''">role_urlmatch_key = #{roleUrlmatchKey},</if>
  			<if test="roleSort != null">role_sort = #{roleSort},</if>
  			<if test="dataScope != null and dataScope != ''">data_scope = #{dataScope},</if>
  			<if test="menuCheckStrictly != null">menu_check_strictly = #{menuCheckStrictly},</if>