fix:修改角色菜单
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package org.nl.sso.system.rest;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -69,28 +70,28 @@ public class RoleController {
|
||||
@PutMapping(value = "/menu")
|
||||
// @SaCheckPermission("roles:edit")
|
||||
public ResponseEntity<Object> updateMenu(@RequestBody JSONObject form) {
|
||||
String role_id = form.getString("role_id");
|
||||
JSONArray menus = form.getJSONArray("menus");
|
||||
|
||||
WQLObject rmTab = WQLObject.getWQLObject("sys_roles_menus");
|
||||
JSONArray result = rmTab.query("role_id = " + role_id + "").getResultJSONArray(0);
|
||||
Set<String> dbMenus = new HashSet<>();
|
||||
if (result.size()>0){
|
||||
dbMenus.addAll(result.stream().map(a -> ((JSONObject) a).getString("menu_id")).collect(Collectors.toSet()));
|
||||
}
|
||||
Set<String> currentMenus = menus.stream().map(a -> ((HashMap<String,String>) a).get("menu_id")).collect(Collectors.toSet());
|
||||
List<String> needAdd = currentMenus.stream().filter(item -> !dbMenus.contains(item)).collect(Collectors.toList());
|
||||
List<String> needDel = dbMenus.stream().filter(item -> !currentMenus.contains(item)).collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(needAdd)){
|
||||
for (String s : needAdd) {
|
||||
rmTab.insert(MapOf.of("role_id",role_id,"menu_id",s));
|
||||
if (ObjectUtil.isNotEmpty(form)){
|
||||
String role_id = form.getString("role_id");
|
||||
JSONArray menus = form.getJSONArray("menus");
|
||||
WQLObject rmTab = WQLObject.getWQLObject("sys_roles_menus");
|
||||
JSONArray result = rmTab.query("role_id = " + role_id + "").getResultJSONArray(0);
|
||||
Set<String> dbMenus = new HashSet<>();
|
||||
if (result.size()>0){
|
||||
dbMenus.addAll(result.stream().map(a -> ((JSONObject) a).getString("menu_id")).collect(Collectors.toSet()));
|
||||
}
|
||||
Set<String> currentMenus = menus.stream().map(a -> ((HashMap<String,String>) a).get("menu_id")).collect(Collectors.toSet());
|
||||
List<String> needAdd = currentMenus.stream().filter(item -> !dbMenus.contains(item)).collect(Collectors.toList());
|
||||
List<String> needDel = dbMenus.stream().filter(item -> !currentMenus.contains(item)).collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(needAdd)){
|
||||
for (String s : needAdd) {
|
||||
rmTab.insert(MapOf.of("role_id",role_id,"menu_id",s));
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(needDel)){
|
||||
String collect = needDel.stream().collect(Collectors.joining("','"));
|
||||
rmTab.delete("role_id = '"+role_id+"' and menu_id in ('"+collect+"')");
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(needDel)){
|
||||
String collect = needDel.stream().collect(Collectors.joining("','"));
|
||||
rmTab.delete("role_id = '"+role_id+"' and menu_id in ('"+collect+"')");
|
||||
}
|
||||
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user