Commit 0d740b4deaa8c2f95dd41c8f7e4ebd24e469a41e

Authored by pengyongcheng
1 parent 327d5130

数据权限-授权缓存

ant-design-vue-jeecg/src/views/system/DataPermissionList.vue
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 <a href="javascript:" @click="handleDetail(record)">详情</a> 44 <a href="javascript:" @click="handleDetail(record)">详情</a>
45 </a-menu-item> 45 </a-menu-item>
46 <a-menu-item v-has="'permission:addChildren'"> 46 <a-menu-item v-has="'permission:addChildren'">
47 - <a href="javascript:" @click="handleAddSub(record)">添加下级</a> 47 + <a href="javascript:" v-if="record.type === 0" @click="handleAddSub(record)">添加下级</a>
48 </a-menu-item> 48 </a-menu-item>
49 <a-menu-item v-has="'permission:delete'"> 49 <a-menu-item v-has="'permission:delete'">
50 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> 50 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
@@ -170,7 +170,7 @@ export default { @@ -170,7 +170,7 @@ export default {
170 handleAddSub(record) { 170 handleAddSub(record) {
171 this.$refs.modalForm.title = '添加子数据权限' 171 this.$refs.modalForm.title = '添加子数据权限'
172 this.$refs.modalForm.disableSubmit = false 172 this.$refs.modalForm.disableSubmit = false
173 - this.$refs.modalForm.edit({ status: '1', permsType: '1', route: true, 'parentId': record.id, type: 1 }) 173 + this.$refs.modalForm.edit({ status: '1', type: 1, parentId: record.id, perms: record.perms + ":" })
174 }, 174 },
175 handleExpandedRowsChange(expandedRows) { 175 handleExpandedRowsChange(expandedRows) {
176 this.expandedRowKeys = expandedRows 176 this.expandedRowKeys = expandedRows
@@ -191,7 +191,7 @@ export default { @@ -191,7 +191,7 @@ export default {
191 color = 'red' 191 color = 'red'
192 } 192 }
193 return color 193 return color
194 - }, 194 + }
195 } 195 }
196 } 196 }
197 </script> 197 </script>
ant-design-vue-jeecg/src/views/system/modules/DataPermissionModal.vue
@@ -12,8 +12,8 @@ @@ -12,8 +12,8 @@
12 12
13 <a-form-model-item label="资源类型" :labelCol="labelCol" :wrapperCol="wrapperCol"> 13 <a-form-model-item label="资源类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
14 <a-radio-group v-model="model.type"> 14 <a-radio-group v-model="model.type">
15 - <a-radio :value="0">标识</a-radio>  
16 - <a-radio :value="1">权限</a-radio> 15 + <a-radio v-if="model.type === 0" :value="0">标识</a-radio>
  16 + <a-radio v-if="model.type === 1" :value="1">权限</a-radio>
17 </a-radio-group> 17 </a-radio-group>
18 </a-form-model-item> 18 </a-form-model-item>
19 19
@@ -118,7 +118,7 @@ export default { @@ -118,7 +118,7 @@ export default {
118 validatorRules: function() { 118 validatorRules: function() {
119 return { 119 return {
120 name: [{ required: true, message: '请输入权限标题!' }], 120 name: [{ required: true, message: '请输入权限标题!' }],
121 - perms: [{ required: false, message: '请输入授权标识!' }, { validator: this.validatePerms }] 121 + perms: [{ required: true, message: '请输入授权标识!' }, { validator: this.validatePerms }]
122 } 122 }
123 } 123 }
124 }, 124 },
@@ -146,6 +146,7 @@ export default { @@ -146,6 +146,7 @@ export default {
146 edit(record) { 146 edit(record) {
147 this.resetScreenSize() // 调用此方法,根据屏幕宽度自适应调整抽屉的宽度 147 this.resetScreenSize() // 调用此方法,根据屏幕宽度自适应调整抽屉的宽度
148 this.model = { ...record } 148 this.model = { ...record }
  149 + debugger;
149 if (this.model.type === 0) { 150 if (this.model.type === 0) {
150 // 如果资源类型是标识,则没有状态 151 // 如果资源类型是标识,则没有状态
151 this.model.status = null 152 this.model.status = null
@@ -164,7 +165,7 @@ export default { @@ -164,7 +165,7 @@ export default {
164 // 触发表单验证 165 // 触发表单验证
165 this.$refs.form.validate(valid => { 166 this.$refs.form.validate(valid => {
166 if (valid) { 167 if (valid) {
167 - if ((this.model.type === 1 || this.model.type === 2) && !this.model.parentId) { 168 + if (this.model.type === 1 && !this.model.parentId) {
168 that.validateStatus = 'error' 169 that.validateStatus = 'error'
169 that.$message.error('请检查你填的类型以及信息是否正确!') 170 that.$message.error('请检查你填的类型以及信息是否正确!')
170 return 171 return
@@ -201,7 +202,7 @@ export default { @@ -201,7 +202,7 @@ export default {
201 if (value && value.length > 0) { 202 if (value && value.length > 0) {
202 //校验授权标识是否存在 203 //校验授权标识是否存在
203 let params = { 204 let params = {
204 - tableName: 'sys_permission', 205 + tableName: 'sys_data_permission',
205 fieldName: 'perms', 206 fieldName: 'perms',
206 fieldVal: value, 207 fieldVal: value,
207 dataId: this.model.id 208 dataId: this.model.id
ant-design-vue-jeecg/src/views/system/modules/UserRoleModal.vue
@@ -38,7 +38,6 @@ @@ -38,7 +38,6 @@
38 :checkedKeys="dataCheckedKeys" 38 :checkedKeys="dataCheckedKeys"
39 :treeData="dataTreeData" 39 :treeData="dataTreeData"
40 @expand="dataOnExpand" 40 @expand="dataOnExpand"
41 - @select="dataOnTreeNodeSelect"  
42 :selectedKeys="dataSelectedKeys" 41 :selectedKeys="dataSelectedKeys"
43 :expandedKeys="dataExpandedKeys" 42 :expandedKeys="dataExpandedKeys"
44 :checkStrictly="dataCheckStrictly"> 43 :checkStrictly="dataCheckStrictly">
@@ -80,7 +79,7 @@ @@ -80,7 +79,7 @@
80 79
81 </template> 80 </template>
82 <script> 81 <script>
83 -import { queryDataTreeListForRole, queryRoleDataPermission, queryRolePermission, queryTreeListForRole, saveRolePermission } from '@/api/api' 82 +import { queryRolePermission, queryTreeListForRole, saveRolePermission } from '@/api/api'
84 import RoleDataruleModal from './RoleDataruleModal.vue' 83 import RoleDataruleModal from './RoleDataruleModal.vue'
85 84
86 export default { 85 export default {
@@ -122,12 +121,6 @@ export default { @@ -122,12 +121,6 @@ export default {
122 } 121 }
123 this.$refs.datarule.show(this.selectedKeys[0], this.roleId) 122 this.$refs.datarule.show(this.selectedKeys[0], this.roleId)
124 }, 123 },
125 - dataOnTreeNodeSelect(id) {  
126 - if (id && id.length > 0) {  
127 - this.dataSelectedKeys = id  
128 - }  
129 - this.$refs.datarule.show(this.dataSelectedKeys[0], this.roleId)  
130 - },  
131 onCheck(o) { 124 onCheck(o) {
132 if (this.checkStrictly) { 125 if (this.checkStrictly) {
133 this.checkedKeys = o.checked 126 this.checkedKeys = o.checked
huaheng-wms-core/src/main/java/org/jeecg/modules/system/controller/SysDataPermissionController.java
1 package org.jeecg.modules.system.controller; 1 package org.jeecg.modules.system.controller;
2 2
  3 +import cn.hutool.core.util.ObjectUtil;
  4 +import cn.hutool.core.util.StrUtil;
3 import com.alibaba.fastjson.JSONArray; 5 import com.alibaba.fastjson.JSONArray;
4 import com.alibaba.fastjson.JSONObject; 6 import com.alibaba.fastjson.JSONObject;
5 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 7 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 8 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7 import lombok.extern.slf4j.Slf4j; 9 import lombok.extern.slf4j.Slf4j;
8 -import org.apache.commons.lang3.StringUtils;  
9 import org.apache.shiro.SecurityUtils; 10 import org.apache.shiro.SecurityUtils;
10 import org.apache.shiro.authz.annotation.RequiresPermissions; 11 import org.apache.shiro.authz.annotation.RequiresPermissions;
11 import org.jeecg.common.api.vo.Result; 12 import org.jeecg.common.api.vo.Result;
12 import org.jeecg.common.constant.CommonConstant; 13 import org.jeecg.common.constant.CommonConstant;
13 -import org.jeecg.common.constant.enums.RoleIndexConfigEnum;  
14 import org.jeecg.common.system.vo.LoginUser; 14 import org.jeecg.common.system.vo.LoginUser;
15 import org.jeecg.common.util.oConvertUtils; 15 import org.jeecg.common.util.oConvertUtils;
16 import org.jeecg.config.JeeccgBaseConfig; 16 import org.jeecg.config.JeeccgBaseConfig;
17 -import org.jeecg.modules.system.entity.*; 17 +import org.jeecg.modules.system.entity.SysDataPermission;
  18 +import org.jeecg.modules.system.entity.SysRoleDataPermission;
  19 +import org.jeecg.modules.system.entity.SysRolePermission;
18 import org.jeecg.modules.system.model.SysDataPermissionTree; 20 import org.jeecg.modules.system.model.SysDataPermissionTree;
19 import org.jeecg.modules.system.model.TreeModel; 21 import org.jeecg.modules.system.model.TreeModel;
20 import org.jeecg.modules.system.service.*; 22 import org.jeecg.modules.system.service.*;
21 -import org.jeecg.modules.system.util.DataPermissionDataUtil; 23 +import org.jeecg.utils.constant.QuantityConstant;
22 import org.springframework.beans.factory.annotation.Autowired; 24 import org.springframework.beans.factory.annotation.Autowired;
23 import org.springframework.web.bind.annotation.*; 25 import org.springframework.web.bind.annotation.*;
24 26
@@ -27,7 +29,7 @@ import java.util.stream.Collectors; @@ -27,7 +29,7 @@ import java.util.stream.Collectors;
27 29
28 /** 30 /**
29 * <p> 31 * <p>
30 - * 菜单权限表 前端控制器 32 + * 数据权限表 前端控制器
31 * </p> 33 * </p>
32 * 34 *
33 * @Author scott 35 * @Author scott
@@ -54,9 +56,6 @@ public class SysDataPermissionController { @@ -54,9 +56,6 @@ public class SysDataPermissionController {
54 private ISysDepartPermissionService sysDepartPermissionService; 56 private ISysDepartPermissionService sysDepartPermissionService;
55 57
56 @Autowired 58 @Autowired
57 - private ISysUserService sysUserService;  
58 -  
59 - @Autowired  
60 private JeeccgBaseConfig jeeccgBaseConfig; 59 private JeeccgBaseConfig jeeccgBaseConfig;
61 60
62 /** 61 /**
@@ -77,17 +76,17 @@ public class SysDataPermissionController { @@ -77,17 +76,17 @@ public class SysDataPermissionController {
77 getTreeList(treeList, list, null); 76 getTreeList(treeList, list, null);
78 result.setResult(treeList); 77 result.setResult(treeList);
79 result.setSuccess(true); 78 result.setSuccess(true);
80 - log.info("======获取全部菜单数据=====耗时:" + (System.currentTimeMillis() - start) + "毫秒"); 79 + log.info("======获取全部数据权限=====耗时:{}毫秒", System.currentTimeMillis() - start);
81 } catch (Exception e) { 80 } catch (Exception e) {
82 log.error(e.getMessage(), e); 81 log.error(e.getMessage(), e);
83 } 82 }
84 return result; 83 return result;
85 } 84 }
86 85
87 - /* update_begin author:wuxianquan date:20190908 for:先查询一级菜单,当用户点击展开菜单时加载子菜单 */ 86 + /* update_begin author:wuxianquan date:20190908 for:先查询一级数据,当用户点击展开数据时加载子数据 */
88 87
89 /** 88 /**
90 - * 系统菜单列表(一级菜单) 89 + * 系统数据列表(一级数据)
91 * 90 *
92 * @return 91 * @return
93 */ 92 */
@@ -111,12 +110,12 @@ public class SysDataPermissionController { @@ -111,12 +110,12 @@ public class SysDataPermissionController {
111 } catch (Exception e) { 110 } catch (Exception e) {
112 log.error(e.getMessage(), e); 111 log.error(e.getMessage(), e);
113 } 112 }
114 - log.info("======获取一级菜单数据=====耗时:" + (System.currentTimeMillis() - start) + "毫秒"); 113 + log.info("======获取一级数据权限=====耗时:{}毫秒", System.currentTimeMillis() - start);
115 return result; 114 return result;
116 } 115 }
117 116
118 /** 117 /**
119 - * 查询子菜单 118 + * 查询子权限
120 * 119 *
121 * @param parentId 120 * @param parentId
122 * @return 121 * @return
@@ -142,12 +141,12 @@ public class SysDataPermissionController { @@ -142,12 +141,12 @@ public class SysDataPermissionController {
142 } 141 }
143 return result; 142 return result;
144 } 143 }
145 - /* update_end author:wuxianquan date:20190908 for:先查询一级菜单,当用户点击展开菜单时加载子菜单 */ 144 + /* update_end author:wuxianquan date:20190908 for:先查询一级权限,当用户点击展开权限时加载子权限 */
146 145
147 - // update_begin author:sunjianlei date:20200108 for: 新增批量根据父ID查询子级菜单的接口 ------------- 146 + // update_begin author:sunjianlei date:20200108 for: 新增批量根据父ID查询子级权限的接口 -------------
148 147
149 /** 148 /**
150 - * 查询子菜单 149 + * 查询子权限
151 * 150 *
152 * @param parentIds 父ID(多个采用半角逗号分割) 151 * @param parentIds 父ID(多个采用半角逗号分割)
153 * @return 返回 key-value 的 Map 152 * @return 返回 key-value 的 Map
@@ -176,41 +175,19 @@ public class SysDataPermissionController { @@ -176,41 +175,19 @@ public class SysDataPermissionController {
176 return Result.ok(listMap); 175 return Result.ok(listMap);
177 } catch (Exception e) { 176 } catch (Exception e) {
178 log.error(e.getMessage(), e); 177 log.error(e.getMessage(), e);
179 - return Result.error("批量查询子菜单失败:" + e.getMessage()); 178 + return Result.error("批量查询子权限失败:" + e.getMessage());
180 } 179 }
181 } 180 }
182 - // update_end author:sunjianlei date:20200108 for: 新增批量根据父ID查询子级菜单的接口 -------------  
183 -  
184 -// /**  
185 -// * 查询用户拥有的菜单权限和按钮权限(根据用户账号)  
186 -// *  
187 -// * @return  
188 -// */  
189 -// @RequestMapping(value = "/queryByUser", method = RequestMethod.GET)  
190 -// public Result<JSONArray> queryByUser(HttpServletRequest req) {  
191 -// Result<JSONArray> result = new Result<>();  
192 -// try {  
193 -// String username = req.getParameter("username");  
194 -// List<sysDataPermission> metaList = sysDataPermissionService.queryByUser(username);  
195 -// JSONArray jsonArray = new JSONArray();  
196 -// this.getPermissionJsonArray(jsonArray, metaList, null);  
197 -// result.setResult(jsonArray);  
198 -// result.success("查询成功");  
199 -// } catch (Exception e) {  
200 -// result.error500("查询失败:" + e.getMessage());  
201 -// log.error(e.getMessage(), e);  
202 -// }  
203 -// return result;  
204 -// } 181 + // update_end author:sunjianlei date:20200108 for: 新增批量根据父ID查询子级权限的接口 -------------
205 182
206 /** 183 /**
207 - * 查询用户拥有的菜单权限和按钮权限 184 + * 查询用户拥有的数据权限
208 * 185 *
209 * @return 186 * @return
210 */ 187 */
211 - @RequestMapping(value = "/getUserPermissionByToken", method = RequestMethod.GET) 188 + @RequestMapping(value = "/getDataPermissionByToken", method = RequestMethod.GET)
212 public Result<?> getUserPermissionByToken() { 189 public Result<?> getUserPermissionByToken() {
213 - Result<JSONObject> result = new Result<JSONObject>(); 190 + Result<JSONArray> result = new Result<>();
214 try { 191 try {
215 // 直接获取当前用户不适用前端token 192 // 直接获取当前用户不适用前端token
216 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); 193 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -218,45 +195,18 @@ public class SysDataPermissionController { @@ -218,45 +195,18 @@ public class SysDataPermissionController {
218 return Result.error("请登录系统!"); 195 return Result.error("请登录系统!");
219 } 196 }
220 List<SysDataPermission> metaList = sysDataPermissionService.queryByUser(loginUser.getUsername()); 197 List<SysDataPermission> metaList = sysDataPermissionService.queryByUser(loginUser.getUsername());
221 - // 添加首页路由  
222 - // update-begin-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存  
223 - if (!DataPermissionDataUtil.hasIndexPage(metaList)) {  
224 - SysDataPermission indexMenu = sysDataPermissionService.list(new LambdaQueryWrapper<SysDataPermission>().eq(SysDataPermission::getName, "首页")).get(0);  
225 - metaList.add(0, indexMenu);  
226 - }  
227 - // update-end-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存  
228 -  
229 - // update-begin--Author:liusq Date:20210624 for:自定义首页地址LOWCOD-1578  
230 - List<String> roles = sysUserService.getRole(loginUser.getUsername());  
231 - String compUrl = RoleIndexConfigEnum.getIndexByRoles(roles);  
232 - if (StringUtils.isNotBlank(compUrl)) {  
233 - List<SysDataPermission> menus = metaList.stream().filter(sysDataPermission -> "首页".equals(sysDataPermission.getName())).collect(Collectors.toList());  
234 - }  
235 // update-end--Author:liusq Date:20210624 for:自定义首页地址LOWCOD-1578 198 // update-end--Author:liusq Date:20210624 for:自定义首页地址LOWCOD-1578
236 - JSONObject json = new JSONObject();  
237 - JSONArray menujsonArray = new JSONArray();  
238 - this.getPermissionJsonArray(menujsonArray, metaList, null);  
239 - // 一级菜单下的子菜单全部是隐藏路由,则一级菜单不显示  
240 - this.handleFirstLevelMenuHidden(menujsonArray); 199 + //JSONObject json = new JSONObject();
241 200
242 JSONArray authjsonArray = new JSONArray(); 201 JSONArray authjsonArray = new JSONArray();
243 this.getAuthJsonArray(authjsonArray, metaList); 202 this.getAuthJsonArray(authjsonArray, metaList);
244 // 查询所有的权限 203 // 查询所有的权限
245 LambdaQueryWrapper<SysDataPermission> query = new LambdaQueryWrapper<>(); 204 LambdaQueryWrapper<SysDataPermission> query = new LambdaQueryWrapper<>();
246 - query.eq(SysDataPermission::getDelFlag, CommonConstant.DEL_FLAG_0);  
247 - query.eq(SysDataPermission::getType, CommonConstant.MENU_TYPE_2);  
248 - // query.eq(sysDataPermission::getStatus, "1");  
249 - List<SysDataPermission> allAuthList = sysDataPermissionService.list(query);  
250 - JSONArray allauthjsonArray = new JSONArray();  
251 - this.getAllAuthJsonArray(allauthjsonArray, allAuthList);  
252 - // 路由菜单  
253 - json.put("menu", menujsonArray);  
254 - // 按钮权限(用户拥有的权限集合)  
255 - json.put("auth", authjsonArray);  
256 - // 全部权限配置集合(按钮权限,访问权限)  
257 - json.put("allAuth", allauthjsonArray);  
258 - json.put("sysSafeMode", jeeccgBaseConfig.getSafeMode());  
259 - result.setResult(json); 205 + query.eq(SysDataPermission::getDelFlag, CommonConstant.DEL_FLAG_0)
  206 + .eq(SysDataPermission::getType, CommonConstant.MENU_TYPE_1)
  207 + .eq(SysDataPermission::getStatus, QuantityConstant.STATUS_ENABLE);
  208 + //json.put("sysSafeMode", jeeccgBaseConfig.getSafeMode());
  209 + result.setResult(authjsonArray);
260 } catch (Exception e) { 210 } catch (Exception e) {
261 result.error500("查询失败:" + e.getMessage()); 211 result.error500("查询失败:" + e.getMessage());
262 log.error(e.getMessage(), e); 212 log.error(e.getMessage(), e);
@@ -267,7 +217,7 @@ public class SysDataPermissionController { @@ -267,7 +217,7 @@ public class SysDataPermissionController {
267 /** 217 /**
268 * 【vue3专用】获取 218 * 【vue3专用】获取
269 * 1、查询用户拥有的按钮/表单访问权限 219 * 1、查询用户拥有的按钮/表单访问权限
270 - * 2、所有权限 (菜单权限配置) 220 + * 2、所有权限 (数据权限配置)
271 * 3、系统安全模式 (开启则online报表的数据源必填) 221 * 3、系统安全模式 (开启则online报表的数据源必填)
272 */ 222 */
273 @RequestMapping(value = "/getPermCode", method = RequestMethod.GET) 223 @RequestMapping(value = "/getPermCode", method = RequestMethod.GET)
@@ -311,7 +261,7 @@ public class SysDataPermissionController { @@ -311,7 +261,7 @@ public class SysDataPermissionController {
311 } 261 }
312 262
313 /** 263 /**
314 - * 添加菜单 264 + * 添加数据权限
315 * 265 *
316 * @param permission 266 * @param permission
317 * @return 267 * @return
@@ -322,7 +272,6 @@ public class SysDataPermissionController { @@ -322,7 +272,6 @@ public class SysDataPermissionController {
322 public Result<SysDataPermission> add(@RequestBody SysDataPermission permission) { 272 public Result<SysDataPermission> add(@RequestBody SysDataPermission permission) {
323 Result<SysDataPermission> result = new Result<>(); 273 Result<SysDataPermission> result = new Result<>();
324 try { 274 try {
325 - permission = DataPermissionDataUtil.intelligentProcessData(permission);  
326 sysDataPermissionService.addPermission(permission); 275 sysDataPermissionService.addPermission(permission);
327 result.success("添加成功!"); 276 result.success("添加成功!");
328 } catch (Exception e) { 277 } catch (Exception e) {
@@ -333,7 +282,7 @@ public class SysDataPermissionController { @@ -333,7 +282,7 @@ public class SysDataPermissionController {
333 } 282 }
334 283
335 /** 284 /**
336 - * 编辑菜单 285 + * 编辑数据权限
337 * 286 *
338 * @param permission 287 * @param permission
339 * @return 288 * @return
@@ -344,7 +293,6 @@ public class SysDataPermissionController { @@ -344,7 +293,6 @@ public class SysDataPermissionController {
344 public Result<SysDataPermission> edit(@RequestBody SysDataPermission permission) { 293 public Result<SysDataPermission> edit(@RequestBody SysDataPermission permission) {
345 Result<SysDataPermission> result = new Result<>(); 294 Result<SysDataPermission> result = new Result<>();
346 try { 295 try {
347 - permission = DataPermissionDataUtil.intelligentProcessData(permission);  
348 sysDataPermissionService.editPermission(permission); 296 sysDataPermissionService.editPermission(permission);
349 result.success("修改成功!"); 297 result.success("修改成功!");
350 } catch (Exception e) { 298 } catch (Exception e) {
@@ -355,7 +303,7 @@ public class SysDataPermissionController { @@ -355,7 +303,7 @@ public class SysDataPermissionController {
355 } 303 }
356 304
357 /** 305 /**
358 - * 删除菜单 306 + * 删除数据权限
359 * 307 *
360 * @param id 308 * @param id
361 * @return 309 * @return
@@ -376,7 +324,7 @@ public class SysDataPermissionController { @@ -376,7 +324,7 @@ public class SysDataPermissionController {
376 } 324 }
377 325
378 /** 326 /**
379 - * 批量删除菜单 327 + * 批量删除数据权限
380 * 328 *
381 * @param ids 329 * @param ids
382 * @return 330 * @return
@@ -443,7 +391,7 @@ public class SysDataPermissionController { @@ -443,7 +391,7 @@ public class SysDataPermissionController {
443 Result<List<TreeModel>> result = new Result<>(); 391 Result<List<TreeModel>> result = new Result<>();
444 try { 392 try {
445 List<TreeModel> list = sysDataPermissionService.queryListByParentId(parentId); 393 List<TreeModel> list = sysDataPermissionService.queryListByParentId(parentId);
446 - if (list == null || list.size() <= 0) { 394 + if (list == null || list.isEmpty()) {
447 result.error500("未找到角色信息"); 395 result.error500("未找到角色信息");
448 } else { 396 } else {
449 result.setResult(list); 397 result.setResult(list);
@@ -452,7 +400,6 @@ public class SysDataPermissionController { @@ -452,7 +400,6 @@ public class SysDataPermissionController {
452 } catch (Exception e) { 400 } catch (Exception e) {
453 log.error(e.getMessage(), e); 401 log.error(e.getMessage(), e);
454 } 402 }
455 -  
456 return result; 403 return result;
457 } 404 }
458 405
@@ -480,30 +427,6 @@ public class SysDataPermissionController { @@ -480,30 +427,6 @@ public class SysDataPermissionController {
480 return result; 427 return result;
481 } 428 }
482 429
483 - /**  
484 - * 保存角色授权  
485 - *  
486 - * @return  
487 - */  
488 - /*@RequestMapping(value = "/saveRolePermission", method = RequestMethod.POST)  
489 - // @RequiresRoles({ "admin" })  
490 - public Result<String> saveRolePermission(@RequestBody JSONObject json) {  
491 - long start = System.currentTimeMillis();  
492 - Result<String> result = new Result<>();  
493 - try {  
494 - String roleId = json.getString("roleId");  
495 - String permissionIds = json.getString("permissionIds");  
496 - String lastPermissionIds = json.getString("lastpermissionIds");  
497 - this.sysRolePermissionService.saveRolePermission(roleId, permissionIds, lastPermissionIds);  
498 - result.success("保存成功!");  
499 - log.info("======角色授权成功=====耗时:" + (System.currentTimeMillis() - start) + "毫秒");  
500 - } catch (Exception e) {  
501 - result.error500("授权失败!");  
502 - log.error(e.getMessage(), e);  
503 - }  
504 - return result;  
505 - }*/  
506 -  
507 private void getTreeList(List<SysDataPermissionTree> treeList, List<SysDataPermission> metaList, SysDataPermissionTree temp) { 430 private void getTreeList(List<SysDataPermissionTree> treeList, List<SysDataPermission> metaList, SysDataPermissionTree temp) {
508 for (SysDataPermission permission : metaList) { 431 for (SysDataPermission permission : metaList) {
509 String tempPid = String.valueOf(permission.getParentId()); 432 String tempPid = String.valueOf(permission.getParentId());
@@ -519,7 +442,6 @@ public class SysDataPermissionController { @@ -519,7 +442,6 @@ public class SysDataPermissionController {
519 getTreeList(treeList, metaList, tree); 442 getTreeList(treeList, metaList, tree);
520 } 443 }
521 } 444 }
522 -  
523 } 445 }
524 } 446 }
525 447
@@ -543,43 +465,19 @@ public class SysDataPermissionController { @@ -543,43 +465,19 @@ public class SysDataPermissionController {
543 } 465 }
544 466
545 /** 467 /**
546 - * 一级菜单的子菜单全部是隐藏路由,则一级菜单不显示  
547 - *  
548 - * @param jsonArray  
549 - */  
550 - private void handleFirstLevelMenuHidden(JSONArray jsonArray) {  
551 - jsonArray = jsonArray.stream().map(obj -> {  
552 - JSONObject returnObj = new JSONObject();  
553 - JSONObject jsonObj = (JSONObject) obj;  
554 - if (jsonObj.containsKey("children")) {  
555 - JSONArray childrens = jsonObj.getJSONArray("children");  
556 - childrens =  
557 - childrens.stream().filter(arrObj -> !"true".equals(((JSONObject) arrObj).getString("hidden"))).collect(Collectors.toCollection(JSONArray::new));  
558 - if (childrens == null || childrens.size() == 0) {  
559 - jsonObj.put("hidden", true);  
560 -  
561 - // vue3版本兼容代码  
562 - JSONObject meta = new JSONObject();  
563 - meta.put("hideMenu", true);  
564 - jsonObj.put("meta", meta);  
565 - }  
566 - }  
567 - return returnObj;  
568 - }).collect(Collectors.toCollection(JSONArray::new));  
569 - }  
570 -  
571 - /**  
572 * 获取权限JSON数组 468 * 获取权限JSON数组
573 * 469 *
574 * @param jsonArray 470 * @param jsonArray
575 * @param allList 471 * @param allList
576 */ 472 */
577 private void getAllAuthJsonArray(JSONArray jsonArray, List<SysDataPermission> allList) { 473 private void getAllAuthJsonArray(JSONArray jsonArray, List<SysDataPermission> allList) {
578 - JSONObject json = null; 474 + JSONObject json;
579 for (SysDataPermission permission : allList) { 475 for (SysDataPermission permission : allList) {
580 json = new JSONObject(); 476 json = new JSONObject();
581 json.put("action", permission.getPerms()); 477 json.put("action", permission.getPerms());
582 - json.put("describe", permission.getName()); 478 + json.put("status", permission.getStatus());
  479 + json.put("type", permission.getType());
  480 + json.put("describe", permission.getDescription());
583 jsonArray.add(json); 481 jsonArray.add(json);
584 } 482 }
585 } 483 }
@@ -591,258 +489,30 @@ public class SysDataPermissionController { @@ -591,258 +489,30 @@ public class SysDataPermissionController {
591 * @param metaList 489 * @param metaList
592 */ 490 */
593 private void getAuthJsonArray(JSONArray jsonArray, List<SysDataPermission> metaList) { 491 private void getAuthJsonArray(JSONArray jsonArray, List<SysDataPermission> metaList) {
594 - for (SysDataPermission permission : metaList) {  
595 - if (permission.getType() == null) {  
596 - continue;  
597 - }  
598 - /*JSONObject json = null;  
599 - if (permission.getType().equals(CommonConstant.MENU_TYPE_2)) {  
600 - json = new JSONObject();  
601 - json.put("action", permission.getPerms());  
602 - json.put("type", permission.getPermsType());  
603 - json.put("describe", permission.getName());  
604 - jsonArray.add(json);  
605 - }*/  
606 - }  
607 - }  
608 -  
609 - /**  
610 - * 获取菜单JSON数组  
611 - *  
612 - * @param jsonArray  
613 - * @param metaList  
614 - * @param parentJson  
615 - */  
616 - private void getPermissionJsonArray(JSONArray jsonArray, List<SysDataPermission> metaList, JSONObject parentJson) {  
617 - for (SysDataPermission permission : metaList) {  
618 - if (permission.getType() == null) {  
619 - continue;  
620 - }  
621 - String tempPid = String.valueOf(permission.getParentId());  
622 - JSONObject json = getPermissionJsonObject(permission);  
623 - if (json == null) {  
624 - continue;  
625 - }  
626 - if (parentJson == null && oConvertUtils.isEmpty(tempPid)) {  
627 - jsonArray.add(json);  
628 - if (!permission.isLeaf()) {  
629 - getPermissionJsonArray(jsonArray, metaList, json);  
630 - }  
631 - } else if (parentJson != null && oConvertUtils.isNotEmpty(tempPid) && tempPid.equals(parentJson.getString("id"))) {  
632 - // 类型( 0:一级菜单 1:子菜单 2:按钮 )  
633 - if (permission.getType().equals(CommonConstant.MENU_TYPE_2)) {  
634 - JSONObject metaJson = parentJson.getJSONObject("meta");  
635 - if (metaJson.containsKey("permissionList")) {  
636 - metaJson.getJSONArray("permissionList").add(json);  
637 - } else {  
638 - JSONArray permissionList = new JSONArray();  
639 - permissionList.add(json);  
640 - metaJson.put("permissionList", permissionList);  
641 - }  
642 - // 类型( 0:一级菜单 1:子菜单 2:按钮 )  
643 - } else if (permission.getType().equals(CommonConstant.MENU_TYPE_1) || permission.getType().equals(CommonConstant.MENU_TYPE_0)) {  
644 - if (parentJson.containsKey("children")) {  
645 - parentJson.getJSONArray("children").add(json);  
646 - } else {  
647 - JSONArray children = new JSONArray();  
648 - children.add(json);  
649 - parentJson.put("children", children);  
650 - }  
651 -  
652 - if (!permission.isLeaf()) {  
653 - getPermissionJsonArray(jsonArray, metaList, json);  
654 - }  
655 - }  
656 - }  
657 -  
658 - }  
659 - }  
660 -  
661 - /**  
662 - * 根据菜单配置生成路由json  
663 - *  
664 - * @param permission  
665 - * @return  
666 - */  
667 - private JSONObject getPermissionJsonObject(SysDataPermission permission) {  
668 - JSONObject json = new JSONObject();  
669 - // 类型(0:一级菜单 1:子菜单 2:按钮)  
670 - if (permission.getType().equals(CommonConstant.MENU_TYPE_2)) {  
671 - // json.put("action", permission.getPerms());  
672 - // json.put("type", permission.getPermsType());  
673 - // json.put("describe", permission.getName());  
674 - return null;  
675 - } else if (permission.getType().equals(CommonConstant.MENU_TYPE_0) || permission.getType().equals(CommonConstant.MENU_TYPE_1)) {  
676 - json.put("id", permission.getId());  
677 - }  
678 -  
679 - return json;  
680 - }  
681 -  
682 - /**  
683 - * 判断是否外网URL 例如: http://localhost:8080/jeecg-boot/swagger-ui.html#/ 支持特殊格式: {{  
684 - * window._CONFIG['domianURL'] }}/druid/ {{ JS代码片段 }},前台解析会自动执行JS代码片段  
685 - *  
686 - * @return  
687 - */  
688 - private boolean isWWWHttpUrl(String url) {  
689 - if (url != null && (url.startsWith("http://") || url.startsWith("https://") || url.startsWith("{{"))) {  
690 - return true;  
691 - }  
692 - return false;  
693 - }  
694 -  
695 - /**  
696 - * 通过URL生成路由name(去掉URL前缀斜杠,替换内容中的斜杠‘/’为-) 举例: URL = /isystem/role RouteName =  
697 - * isystem-role  
698 - *  
699 - * @return  
700 - */  
701 - private String urlToRouteName(String url) {  
702 - if (oConvertUtils.isNotEmpty(url)) {  
703 - if (url.startsWith("/")) {  
704 - url = url.substring(1);  
705 - }  
706 - url = url.replace("/", "-");  
707 -  
708 - // 特殊标记  
709 - url = url.replace(":", "@");  
710 - return url;  
711 - } else {  
712 - return null;  
713 - }  
714 - } 492 + List<SysDataPermission> parentList = metaList.stream()
  493 + .filter(permission -> Objects.isNull(permission.getParentId()))
  494 + .collect(Collectors.toList());
  495 + parentList.forEach(parentPermission -> {
  496 + List<SysDataPermission> childPermissionList = metaList.stream().filter(permission -> ObjectUtil.isNotNull(permission.getParentId()) && permission.getParentId().equals(parentPermission.getId()))
  497 + .collect(Collectors.toList());
715 498
716 - /**  
717 - * 根据菜单id来获取其对应的权限数据  
718 - *  
719 - * @param sysPermissionDataRule  
720 - * @return  
721 - */  
722 - @RequestMapping(value = "/getPermRuleListByPermId", method = RequestMethod.GET)  
723 - public Result<List<SysPermissionDataRule>> getPermRuleListByPermId(SysPermissionDataRule sysPermissionDataRule) {  
724 - List<SysPermissionDataRule> permRuleList = sysPermissionDataRuleService.getPermRuleListByPermId(sysPermissionDataRule.getPermissionId().toString());  
725 - Result<List<SysPermissionDataRule>> result = new Result<>();  
726 - result.setSuccess(true);  
727 - result.setResult(permRuleList);  
728 - return result;  
729 - }  
730 -  
731 - /**  
732 - * 添加菜单权限数据  
733 - *  
734 - * @param sysPermissionDataRule  
735 - * @return  
736 - */  
737 - // @RequiresRoles({ "admin" })  
738 - @RequestMapping(value = "/addPermissionRule", method = RequestMethod.POST)  
739 - public Result<SysPermissionDataRule> addPermissionRule(@RequestBody SysPermissionDataRule sysPermissionDataRule) {  
740 - Result<SysPermissionDataRule> result = new Result<SysPermissionDataRule>();  
741 - try {  
742 - sysPermissionDataRule.setCreateTime(new Date());  
743 - sysPermissionDataRuleService.savePermissionDataRule(sysPermissionDataRule);  
744 - result.success("添加成功!");  
745 - } catch (Exception e) {  
746 - log.error(e.getMessage(), e);  
747 - result.error500("操作失败");  
748 - }  
749 - return result;  
750 - }  
751 -  
752 - // @RequiresRoles({ "admin" })  
753 - @RequestMapping(value = "/editPermissionRule", method = {RequestMethod.PUT, RequestMethod.POST})  
754 - public Result<SysPermissionDataRule> editPermissionRule(@RequestBody SysPermissionDataRule sysPermissionDataRule) {  
755 - Result<SysPermissionDataRule> result = new Result<SysPermissionDataRule>();  
756 - try {  
757 - sysPermissionDataRuleService.saveOrUpdate(sysPermissionDataRule);  
758 - result.success("更新成功!");  
759 - } catch (Exception e) {  
760 - log.error(e.getMessage(), e);  
761 - result.error500("操作失败");  
762 - }  
763 - return result;  
764 - }  
765 -  
766 - /**  
767 - * 删除菜单权限数据  
768 - *  
769 - * @param id  
770 - * @return  
771 - */  
772 - // @RequiresRoles({ "admin" })  
773 - @RequestMapping(value = "/deletePermissionRule", method = RequestMethod.DELETE)  
774 - public Result<SysPermissionDataRule> deletePermissionRule(@RequestParam(name = "id", required = true) String id) {  
775 - Result<SysPermissionDataRule> result = new Result<SysPermissionDataRule>();  
776 - try {  
777 - sysPermissionDataRuleService.deletePermissionDataRule(id);  
778 - result.success("删除成功!");  
779 - } catch (Exception e) {  
780 - log.error(e.getMessage(), e);  
781 - result.error500("操作失败");  
782 - }  
783 - return result;  
784 - }  
785 -  
786 - /**  
787 - * 查询菜单权限数据  
788 - *  
789 - * @param sysPermissionDataRule  
790 - * @return  
791 - */  
792 - @RequestMapping(value = "/queryPermissionRule", method = RequestMethod.GET)  
793 - public Result<List<SysPermissionDataRule>> queryPermissionRule(SysPermissionDataRule sysPermissionDataRule) {  
794 - Result<List<SysPermissionDataRule>> result = new Result<>();  
795 - try {  
796 - List<SysPermissionDataRule> permRuleList = sysPermissionDataRuleService.queryPermissionRule(sysPermissionDataRule);  
797 - result.setResult(permRuleList);  
798 - } catch (Exception e) {  
799 - log.error(e.getMessage(), e);  
800 - result.error500("操作失败");  
801 - }  
802 - return result;  
803 - }  
804 -  
805 - /**  
806 - * 部门权限表  
807 - *  
808 - * @param departId  
809 - * @return  
810 - */  
811 - @RequestMapping(value = "/queryDepartPermission", method = RequestMethod.GET)  
812 - public Result<List<String>> queryDepartPermission(@RequestParam(name = "departId", required = true) String departId) {  
813 - Result<List<String>> result = new Result<>();  
814 - try {  
815 - List<SysDepartPermission> list =  
816 - sysDepartPermissionService.list(new QueryWrapper<SysDepartPermission>().lambda().eq(SysDepartPermission::getDepartId, departId));  
817 - result.setResult(list.stream().map(SysDepartPermission -> String.valueOf(SysDepartPermission.getPermissionId())).collect(Collectors.toList()));  
818 - result.setSuccess(true);  
819 - } catch (Exception e) {  
820 - log.error(e.getMessage(), e);  
821 - }  
822 - return result;  
823 - }  
824 -  
825 - /**  
826 - * 保存部门授权  
827 - *  
828 - * @return  
829 - */  
830 - @RequestMapping(value = "/saveDepartPermission", method = RequestMethod.POST)  
831 - // @RequiresRoles({ "admin" })  
832 - public Result<String> saveDepartPermission(@RequestBody JSONObject json) {  
833 - long start = System.currentTimeMillis();  
834 - Result<String> result = new Result<>();  
835 - try {  
836 - String departId = json.getString("departId");  
837 - String permissionIds = json.getString("permissionIds");  
838 - String lastPermissionIds = json.getString("lastpermissionIds");  
839 - this.sysDepartPermissionService.saveDepartPermission(departId, permissionIds, lastPermissionIds);  
840 - result.success("保存成功!");  
841 - log.info("======部门授权成功=====耗时:" + (System.currentTimeMillis() - start) + "毫秒");  
842 - } catch (Exception e) {  
843 - result.error500("授权失败!");  
844 - log.error(e.getMessage(), e);  
845 - }  
846 - return result; 499 + JSONObject json = new JSONObject();
  500 + List<Map<String, Object>> params = new ArrayList<>();
  501 + childPermissionList.forEach(childPermission -> {
  502 + Map<String, Object> map = new HashMap<>();
  503 +
  504 + String[] split = childPermission.getPerms().split(StrUtil.COLON);
  505 + String perms = split.length == 2 ? split[1] : childPermission.getPerms();
  506 + map.put("name", childPermission.getName());
  507 + map.put("perms", perms);
  508 + map.put("type", childPermission.getType());
  509 + map.put("status", childPermission.getStatus());
  510 + map.put("describe", childPermission.getDescription());
  511 + params.add(map);
  512 + });
  513 +
  514 + json.put(parentPermission.getPerms(), params);
  515 + jsonArray.add(json);
  516 + });
847 } 517 }
848 } 518 }
huaheng-wms-core/src/main/java/org/jeecg/modules/system/entity/SysDataPermission.java
@@ -3,6 +3,7 @@ package org.jeecg.modules.system.entity; @@ -3,6 +3,7 @@ package org.jeecg.modules.system.entity;
3 import com.baomidou.mybatisplus.annotation.IdType; 3 import com.baomidou.mybatisplus.annotation.IdType;
4 import com.baomidou.mybatisplus.annotation.TableField; 4 import com.baomidou.mybatisplus.annotation.TableField;
5 import com.baomidou.mybatisplus.annotation.TableId; 5 import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.fasterxml.jackson.annotation.JsonInclude;
6 import lombok.Data; 7 import lombok.Data;
7 import lombok.EqualsAndHashCode; 8 import lombok.EqualsAndHashCode;
8 import lombok.experimental.Accessors; 9 import lombok.experimental.Accessors;
huaheng-wms-core/src/main/java/org/jeecg/modules/system/mapper/xml/SysDataPermissionMapper.xml
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 ,name 27 ,name
28 ,icon 28 ,icon
29 ,is_leaf 29 ,is_leaf
30 - FROM sys_permission 30 + FROM sys_data_permission
31 WHERE 1=1 31 WHERE 1=1
32 <choose> 32 <choose>
33 <when test="parentId != null and parentId != ''"> 33 <when test="parentId != null and parentId != ''">
@@ -43,21 +43,19 @@ @@ -43,21 +43,19 @@
43 <select id="queryByUser" parameterType="Object" resultMap="SysDataPermission"> 43 <select id="queryByUser" parameterType="Object" resultMap="SysDataPermission">
44 SELECT * FROM ( 44 SELECT * FROM (
45 SELECT p.* 45 SELECT p.*
46 - FROM sys_permission p 46 + FROM sys_data_permission p
47 WHERE (exists( 47 WHERE (exists(
48 - select a.id from sys_role_permission a 48 + select a.id from sys_role_data_permission a
49 join sys_role b on a.role_id = b.id 49 join sys_role b on a.role_id = b.id
50 join sys_user_role c on c.role_id = b.id 50 join sys_user_role c on c.role_id = b.id
51 join sys_user d on d.id = c.user_id 51 join sys_user d on d.id = c.user_id
52 where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR} 52 where p.id = a.permission_id AND d.username = #{username,jdbcType=VARCHAR}
53 - )  
54 - or (p.url like '%:code' and p.url like '/online%' and p.hidden = 1)  
55 - or p.url = '/online') 53 + ))
56 and p.del_flag = 0 54 and p.del_flag = 0
57 <!--update begin Author:lvdandan Date:20200213 for:加入部门权限 --> 55 <!--update begin Author:lvdandan Date:20200213 for:加入部门权限 -->
58 UNION 56 UNION
59 SELECT p.* 57 SELECT p.*
60 - FROM sys_permission p 58 + FROM sys_data_permission p
61 WHERE exists( 59 WHERE exists(
62 select a.id from sys_depart_role_permission a 60 select a.id from sys_depart_role_permission a
63 join sys_depart_role b on a.role_id = b.id 61 join sys_depart_role b on a.role_id = b.id
@@ -70,13 +68,12 @@ @@ -70,13 +68,12 @@
70 ) h order by h.sort_no ASC 68 ) h order by h.sort_no ASC
71 </select> 69 </select>
72 70
73 -  
74 <!-- 根据用户账号查询菜单权限 --> 71 <!-- 根据用户账号查询菜单权限 -->
75 <select id="queryCountByUsername" parameterType="Object" resultType="int"> 72 <select id="queryCountByUsername" parameterType="Object" resultType="int">
76 select sum(cnt) from ( 73 select sum(cnt) from (
77 select count(*) as cnt 74 select count(*) as cnt
78 - from sys_role_permission a  
79 - join sys_permission b on a.permission_id = b.id 75 + from sys_role_data_permission a
  76 + join sys_data_permission b on a.permission_id = b.id
80 join sys_role c on a.role_id = c.id 77 join sys_role c on a.role_id = c.id
81 join sys_user_role d on d.role_id = c.id 78 join sys_user_role d on d.role_id = c.id
82 join sys_user e on d.user_id = e.id 79 join sys_user e on d.user_id = e.id
@@ -84,12 +81,9 @@ @@ -84,12 +81,9 @@
84 <if test="permission.id !=null and permission.id != ''"> 81 <if test="permission.id !=null and permission.id != ''">
85 and b.id = #{permission.id} 82 and b.id = #{permission.id}
86 </if> 83 </if>
87 - <if test="permission.url !=null and permission.url != ''">  
88 - and b.url = #{permission.url}  
89 - </if>  
90 union all 84 union all
91 select count(*) as cnt 85 select count(*) as cnt
92 - from sys_permission z 86 + from sys_data_permission z
93 join sys_depart_role_permission y on z.id = y.permission_id 87 join sys_depart_role_permission y on z.id = y.permission_id
94 join sys_depart_role x on y.role_id = x.id 88 join sys_depart_role x on y.role_id = x.id
95 join sys_depart_role_user w on w.drole_id = x.id 89 join sys_depart_role_user w on w.drole_id = x.id
@@ -98,11 +92,6 @@ @@ -98,11 +92,6 @@
98 <if test="permission.id !=null and permission.id != ''"> 92 <if test="permission.id !=null and permission.id != ''">
99 and z.id = #{permission.id} 93 and z.id = #{permission.id}
100 </if> 94 </if>
101 - <if test="permission.url !=null and permission.url != ''">  
102 - and z.url = #{permission.url}  
103 - </if>  
104 ) temp 95 ) temp
105 </select> 96 </select>
106 -  
107 -  
108 </mapper> 97 </mapper>
huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysDataPermissionServiceImpl.java
@@ -214,6 +214,7 @@ public class SysDataPermissionServiceImpl extends ServiceImpl&lt;SysDataPermissionM @@ -214,6 +214,7 @@ public class SysDataPermissionServiceImpl extends ServiceImpl&lt;SysDataPermissionM
214 } 214 }
215 215
216 @Override 216 @Override
  217 + @Cacheable(value = "sys:cache:userDataPermission", key = "#username", unless = "#result == null ")
217 public List<SysDataPermission> queryByUser(String username) { 218 public List<SysDataPermission> queryByUser(String username) {
218 return this.sysDataPermissionMapper.queryByUser(username); 219 return this.sysDataPermissionMapper.queryByUser(username);
219 } 220 }
huaheng-wms-core/src/main/java/org/jeecg/modules/system/service/impl/SysRoleDataPermissionServiceImpl.java
@@ -9,6 +9,7 @@ import org.jeecg.common.util.oConvertUtils; @@ -9,6 +9,7 @@ import org.jeecg.common.util.oConvertUtils;
9 import org.jeecg.modules.system.entity.SysRoleDataPermission; 9 import org.jeecg.modules.system.entity.SysRoleDataPermission;
10 import org.jeecg.modules.system.mapper.SysRoleDataPermissionMapper; 10 import org.jeecg.modules.system.mapper.SysRoleDataPermissionMapper;
11 import org.jeecg.modules.system.service.ISysRoleDataPermissionService; 11 import org.jeecg.modules.system.service.ISysRoleDataPermissionService;
  12 +import org.springframework.cache.annotation.CacheEvict;
12 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
13 14
14 import javax.servlet.http.HttpServletRequest; 15 import javax.servlet.http.HttpServletRequest;
@@ -18,8 +19,9 @@ import java.util.*; @@ -18,8 +19,9 @@ import java.util.*;
18 * <p> 19 * <p>
19 * 角色数据权限表 服务实现类 20 * 角色数据权限表 服务实现类
20 * </p> 21 * </p>
  22 + *
21 * @Author scott 23 * @Author scott
22 - * @since 2018-12-21 24 + * @since 2018-12-21
23 */ 25 */
24 @Service 26 @Service
25 public class SysRoleDataPermissionServiceImpl extends ServiceImpl<SysRoleDataPermissionMapper, SysRoleDataPermission> implements ISysRoleDataPermissionService { 27 public class SysRoleDataPermissionServiceImpl extends ServiceImpl<SysRoleDataPermissionMapper, SysRoleDataPermission> implements ISysRoleDataPermissionService {
@@ -51,6 +53,7 @@ public class SysRoleDataPermissionServiceImpl extends ServiceImpl&lt;SysRoleDataPer @@ -51,6 +53,7 @@ public class SysRoleDataPermissionServiceImpl extends ServiceImpl&lt;SysRoleDataPer
51 } 53 }
52 54
53 @Override 55 @Override
  56 + @CacheEvict(value = "sys:cache:userDataPermission", allEntries = true)
54 public void saveRoleDataPermission(String roleId, String permissionIds, String lastPermissionIds) { 57 public void saveRoleDataPermission(String roleId, String permissionIds, String lastPermissionIds) {
55 String ip = ""; 58 String ip = "";
56 try { 59 try {
@@ -79,15 +82,16 @@ public class SysRoleDataPermissionServiceImpl extends ServiceImpl&lt;SysRoleDataPer @@ -79,15 +82,16 @@ public class SysRoleDataPermissionServiceImpl extends ServiceImpl&lt;SysRoleDataPer
79 if (delete != null && !delete.isEmpty()) { 82 if (delete != null && !delete.isEmpty()) {
80 for (String permissionId : delete) { 83 for (String permissionId : delete) {
81 this.remove( 84 this.remove(
82 - new QueryWrapper<SysRoleDataPermission>().lambda().eq(SysRoleDataPermission::getRoleId, roleId).eq(SysRoleDataPermission::getPermissionId, permissionId)); 85 + new QueryWrapper<SysRoleDataPermission>().lambda().eq(SysRoleDataPermission::getRoleId, roleId).eq(SysRoleDataPermission::getPermissionId, permissionId));
83 } 86 }
84 } 87 }
85 } 88 }
86 89
87 /** 90 /**
88 * 从diff中找出main中没有的元素 91 * 从diff中找出main中没有的元素
89 - * @param main  
90 - * @param diff 92 + *
  93 + * @param main
  94 + * @param diff
91 * @return 95 * @return
92 */ 96 */
93 private List<String> getDiff(String main, String diff) { 97 private List<String> getDiff(String main, String diff) {
huaheng-wms-core/src/main/java/org/jeecg/modules/system/util/DataPermissionDataUtil.java deleted
1 -package org.jeecg.modules.system.util;  
2 -  
3 -import org.jeecg.common.util.oConvertUtils;  
4 -import org.jeecg.modules.system.entity.SysDataPermission;  
5 -  
6 -import java.util.List;  
7 -  
8 -/**  
9 - * @Author: scott  
10 - * @Date: 2019-04-03  
11 - */  
12 -public class DataPermissionDataUtil {  
13 -  
14 - /**  
15 - * 智能处理错误数据,简化用户失误操作  
16 - * @param permission  
17 - */  
18 - public static SysDataPermission intelligentProcessData(SysDataPermission permission) {  
19 - if (permission == null) {  
20 - return null;  
21 - }  
22 - return permission;  
23 - }  
24 -  
25 - /**  
26 - * 如果没有index页面 需要new 一个放到list中  
27 - * @param metaList  
28 - */  
29 - public static void addIndexPage(List<SysDataPermission> metaList) {  
30 - boolean hasIndexMenu = false;  
31 - for (SysDataPermission sysDataPermission : metaList) {  
32 - if ("首页".equals(sysDataPermission.getName())) {  
33 - hasIndexMenu = true;  
34 - break;  
35 - }  
36 - }  
37 - if (!hasIndexMenu) {  
38 - metaList.add(0, new SysDataPermission(true));  
39 - }  
40 - }  
41 -  
42 - /**  
43 - * 判断是否授权首页  
44 - * @param metaList  
45 - * @return  
46 - */  
47 - public static boolean hasIndexPage(List<SysDataPermission> metaList) {  
48 - boolean hasIndexMenu = false;  
49 - for (SysDataPermission sysDataPermission : metaList) {  
50 - if ("首页".equals(sysDataPermission.getName())) {  
51 - hasIndexMenu = true;  
52 - break;  
53 - }  
54 - }  
55 - return hasIndexMenu;  
56 - }  
57 -  
58 -}