Merge remote-tracking branch 'origin/fix-bug-202303' into fix-bug-202303

This commit is contained in:
zhaoxiao
2023-03-06 14:27:53 +08:00
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresRoles;
import com.jero.common.api.vo.Result;
@@ -52,17 +53,23 @@ public class SysPermissionController {
@Autowired
private ISysDepartPermissionService sysDepartPermissionService;
private static String OPTION_SUCCESS = "操作成功!";
private static String DEL_SUCCESS = "删除成功!";
private static String PERMISSION_LIST = "permissionList";
private static String CHILDREN = "children";
/**
* 加载数据节点
*
*
* @return
*/
@RequestMapping(value = "/page", method = RequestMethod.GET)
// @RequestMapping(value = "/page", method = RequestMethod.GET)
@GetMapping("/page")
public Result<List<SysPermissionTree>> list() {
long start = System.currentTimeMillis();
Result<List<SysPermissionTree>> result = new Result<>();
try {
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
query.orderByAsc(SysPermission::getSortNo);
List<SysPermission> list = sysPermissionService.list(query);
@@ -83,17 +90,18 @@ public class SysPermissionController {
*
* @return
*/
@RequestMapping(value = "/getSystemMenuList", method = RequestMethod.GET)
// @RequestMapping(value = "/getSystemMenuList", method = RequestMethod.GET)
@GetMapping("/getSystemMenuList")
public Result<List<SysPermissionTree>> getSystemMenuList() {
long start = System.currentTimeMillis();
Result<List<SysPermissionTree>> result = new Result<>();
try {
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
query.eq(SysPermission::getMenuType,CommonConstant.MENU_TYPE_0);
query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
query.orderByAsc(SysPermission::getSortNo);
List<SysPermission> list = sysPermissionService.list(query);
List<SysPermissionTree> sysPermissionTreeList = new ArrayList<SysPermissionTree>();
List<SysPermissionTree> sysPermissionTreeList = new ArrayList<>();
for(SysPermission sysPermission : list){
SysPermissionTree sysPermissionTree = new SysPermissionTree(sysPermission);
sysPermissionTreeList.add(sysPermissionTree);
@@ -112,16 +120,17 @@ public class SysPermissionController {
* @param parentId
* @return
*/
@RequestMapping(value = "/getSystemSubmenu", method = RequestMethod.GET)
// @RequestMapping(value = "/getSystemSubmenu", method = RequestMethod.GET)
@GetMapping("/getSystemSubmenu")
public Result<List<SysPermissionTree>> getSystemSubmenu(@RequestParam("parentId") String parentId){
Result<List<SysPermissionTree>> result = new Result<>();
try{
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
query.eq(SysPermission::getParentId,parentId);
query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
query.orderByAsc(SysPermission::getSortNo);
List<SysPermission> list = sysPermissionService.list(query);
List<SysPermissionTree> sysPermissionTreeList = new ArrayList<SysPermissionTree>();
List<SysPermissionTree> sysPermissionTreeList = new ArrayList<>();
for(SysPermission sysPermission : list){
SysPermissionTree sysPermissionTree = new SysPermissionTree(sysPermission);
sysPermissionTreeList.add(sysPermissionTree);
@@ -143,7 +152,7 @@ public class SysPermissionController {
* @return 返回 key-value 的 Map
*/
@GetMapping("/getSystemSubmenuBatch")
public Result getSystemSubmenuBatch(@RequestParam("parentIds") String parentIds) {
public Result<Map<String, List<SysPermissionTree>>> getSystemSubmenuBatch(@RequestParam("parentIds") String parentIds) {
try {
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
List<String> parentIdList = Arrays.asList(parentIds.split(","));
@@ -173,7 +182,7 @@ public class SysPermissionController {
// /**
// * 查询用户拥有的菜单权限和按钮权限(根据用户账号)
// *
// *
// * @return
// */
// @RequestMapping(value = "/queryByUser", method = RequestMethod.GET)
@@ -195,12 +204,13 @@ public class SysPermissionController {
/**
* 查询用户拥有的菜单权限和按钮权限
*
*
* @return
*/
@RequestMapping(value = "/getUserPermissionByToken", method = RequestMethod.GET)
public Result<?> getUserPermissionByToken() {
Result<JSONObject> result = new Result<JSONObject>();
// @RequestMapping(value = "/getUserPermissionByToken", method = RequestMethod.GET)
@GetMapping("/getUserPermissionByToken")
public Result<JSONObject> getUserPermissionByToken() {
Result<JSONObject> result = new Result<>();
try {
//直接获取当前用户不适用前端token
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -215,7 +225,7 @@ public class SysPermissionController {
JSONArray authjsonArray = new JSONArray();
this.getAuthJsonArray(authjsonArray, metaList);
//查询所有的权限
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
query.eq(SysPermission::getMenuType, CommonConstant.MENU_TYPE_2);
//query.eq(SysPermission::getStatus, "1");
@@ -243,12 +253,13 @@ public class SysPermissionController {
* @return
*/
//@RequiresRoles({ "admin" })
@RequestMapping(value = "/add", method = RequestMethod.POST)
// @RequestMapping(value = "/add", method = RequestMethod.POST)
@PostMapping("/add")
public Result<Object> add(@RequestBody SysPermission permission) {
try {
permission = PermissionDataUtil.intelligentProcessData(permission);
sysPermissionService.addPermission(permission);
return Result.OK("操作成功!");
return Result.OK(OPTION_SUCCESS);
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error("操作失败");
@@ -266,7 +277,7 @@ public class SysPermissionController {
try {
permission = PermissionDataUtil.intelligentProcessData(permission);
sysPermissionService.editPermission(permission);
return Result.OK("操作成功!");
return Result.OK(OPTION_SUCCESS);
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error("操作失败");
@@ -279,11 +290,12 @@ public class SysPermissionController {
* @return
*/
//@RequiresRoles({ "admin" })
@RequestMapping(value = "/delete", method = RequestMethod.DELETE)
// @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
@DeleteMapping("/delete")
public Result<Object> delete(@RequestParam(name = "id", required = true) String id) {
try {
sysPermissionService.deletePermission(id);
return Result.OK("删除成功!");
return Result.OK(DEL_SUCCESS);
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error(e.getMessage());
@@ -296,7 +308,8 @@ public class SysPermissionController {
* @return
*/
//@RequiresRoles({ "admin" })
@RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE)
// @RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE)
@DeleteMapping("/deleteBatch")
public Result<Object> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
try {
String[] arr = ids.split(",");
@@ -305,25 +318,26 @@ public class SysPermissionController {
sysPermissionService.deletePermission(id);
}
}
return Result.OK("删除成功!");
return Result.OK(DEL_SUCCESS);
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error("删除成功!");
return Result.error(DEL_SUCCESS);
}
}
/**
* 获取全部的权限树
*
*
* @return
*/
@RequestMapping(value = "/queryTreeList", method = RequestMethod.GET)
// @RequestMapping(value = "/queryTreeList", method = RequestMethod.GET)
@GetMapping("/queryTreeList")
public Result<Map<String, Object>> queryTreeList() {
Result<Map<String, Object>> result = new Result<>();
// 全部权限ids
List<String> ids = new ArrayList<>();
try {
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<>();
query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
query.orderByAsc(SysPermission::getSortNo);
List<SysPermission> list = sysPermissionService.list(query);
@@ -333,7 +347,7 @@ public class SysPermissionController {
List<TreeModel> treeList = new ArrayList<>();
getTreeModelList(treeList, list, null);
Map<String, Object> resMap = new HashMap<String, Object>();
Map<String, Object> resMap = new HashMap<>();
resMap.put("treeList", treeList); // 全部树节点数据
resMap.put("ids", ids);// 全部树ids
result.setResult(resMap);
@@ -346,15 +360,16 @@ public class SysPermissionController {
/**
* 异步加载数据节点
*
*
* @return
*/
@RequestMapping(value = "/queryListAsync", method = RequestMethod.GET)
// @RequestMapping(value = "/queryListAsync", method = RequestMethod.GET)
@GetMapping("/queryListAsync")
public Result<List<TreeModel>> queryAsync(@RequestParam(name = "pid", required = false) String parentId) {
Result<List<TreeModel>> result = new Result<>();
try {
List<TreeModel> list = sysPermissionService.queryListByParentId(parentId);
if (list == null || list.size() <= 0) {
if (list == null || list.isEmpty()) {
return Result.error("未找到角色信息");
} else {
result.setResult(list);
@@ -369,10 +384,11 @@ public class SysPermissionController {
/**
* 查询角色授权
*
*
* @return
*/
@RequestMapping(value = "/queryRolePermission", method = RequestMethod.GET)
// @RequestMapping(value = "/queryRolePermission", method = RequestMethod.GET)
@GetMapping("/queryRolePermission")
public Result<List<String>> queryRolePermission(@RequestParam(name = "roleId", required = true) String roleId) {
Result<List<String>> result = new Result<>();
try {
@@ -387,10 +403,11 @@ public class SysPermissionController {
/**
* 保存角色授权
*
*
* @return
*/
@RequestMapping(value = "/saveRolePermission", method = RequestMethod.POST)
// @RequestMapping(value = "/saveRolePermission", method = RequestMethod.POST)
@PostMapping("/saveRolePermission")
//@RequiresRoles({ "admin" })
public Result<String> saveRolePermission(@RequestBody JSONObject json) {
long start = System.currentTimeMillis();
@@ -400,7 +417,7 @@ public class SysPermissionController {
String lastPermissionIds = json.getString("lastpermissionIds");
this.sysRolePermissionService.saveRolePermission(roleId, permissionIds, lastPermissionIds);
log.info("======角色授权成功=====耗时:" + (System.currentTimeMillis() - start) + "毫秒");
return Result.OK("操作成功!");
return Result.OK(OPTION_SUCCESS);
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error("授权失败!");
@@ -444,7 +461,7 @@ public class SysPermissionController {
}
}
/**
* 获取权限JSON数组
* @param jsonArray
@@ -508,21 +525,21 @@ public class SysPermissionController {
// 类型( 0:一级菜单 1:子菜单 2:按钮 )
if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_2)) {
JSONObject metaJson = parentJson.getJSONObject("meta");
if (metaJson.containsKey("permissionList")) {
metaJson.getJSONArray("permissionList").add(json);
if (metaJson.containsKey(PERMISSION_LIST)) {
metaJson.getJSONArray(PERMISSION_LIST).add(json);
} else {
JSONArray permissionList = new JSONArray();
permissionList.add(json);
metaJson.put("permissionList", permissionList);
metaJson.put(PERMISSION_LIST, permissionList);
}
// 类型( 0:一级菜单 1:子菜单 2:按钮 )
} else if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_1) || permission.getMenuType().equals(CommonConstant.MENU_TYPE_0)) {
if (parentJson.containsKey("children")) {
parentJson.getJSONArray("children").add(json);
if (parentJson.containsKey(CHILDREN)) {
parentJson.getJSONArray(CHILDREN).add(json);
} else {
JSONArray children = new JSONArray();
children.add(json);
parentJson.put("children", children);
parentJson.put(CHILDREN, children);
}
if (!permission.isLeaf()) {
@@ -626,7 +643,7 @@ public class SysPermissionController {
/**
* 判断是否外网URL 例如: http://localhost:8080/jero-boot/swagger-ui.html#/ 支持特殊格式: {{
* window._CONFIG['domianURL'] }}/druid/ {{ JS代码片段 }},前台解析会自动执行JS代码片段
*
*
* @return
*/
private boolean isWWWHttpUrl(String url) {
@@ -639,7 +656,7 @@ public class SysPermissionController {
/**
* 通过URL生成路由name(去掉URL前缀斜杠,替换内容中的斜杠‘/’为-) 举例: URL = /isystem/role RouteName =
* isystem-role
*
*
* @return
*/
private String urlToRouteName(String url) {
@@ -659,11 +676,12 @@ public class SysPermissionController {
/**
* 根据菜单id来获取其对应的权限数据
*
*
* @param sysPermissionDataRule
* @return
*/
@RequestMapping(value = "/getPermRuleListByPermId", method = RequestMethod.GET)
// @RequestMapping(value = "/getPermRuleListByPermId", method = RequestMethod.GET)
@GetMapping("/getPermRuleListByPermId")
public Result<List<SysPermissionDataRule>> getPermRuleListByPermId(SysPermissionDataRule sysPermissionDataRule) {
List<SysPermissionDataRule> permRuleList = sysPermissionDataRuleService.getPermRuleListByPermId(sysPermissionDataRule.getPermissionId());
Result<List<SysPermissionDataRule>> result = new Result<>();
@@ -674,17 +692,18 @@ public class SysPermissionController {
/**
* 添加菜单权限数据
*
*
* @param sysPermissionDataRule
* @return
*/
//@RequiresRoles({ "admin" })
@RequestMapping(value = "/addPermissionRule", method = RequestMethod.POST)
// @RequestMapping(value = "/addPermissionRule", method = RequestMethod.POST)
@PostMapping("/addPermissionRule")
public Result<Object> addPermissionRule(@RequestBody SysPermissionDataRule sysPermissionDataRule) {
try {
sysPermissionDataRule.setCreateTime(new Date());
sysPermissionDataRuleService.savePermissionDataRule(sysPermissionDataRule);
return Result.OK("操作成功!");
return Result.OK(OPTION_SUCCESS);
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error("操作失败");
@@ -705,12 +724,13 @@ public class SysPermissionController {
/**
* 删除菜单权限数据
*
*
* @param id
* @return
*/
//@RequiresRoles({ "admin" })
@RequestMapping(value = "/deletePermissionRule", method = RequestMethod.DELETE)
// @RequestMapping(value = "/deletePermissionRule", method = RequestMethod.DELETE)
@DeleteMapping("/deletePermissionRule")
public Result<Object> deletePermissionRule(@RequestParam(name = "id", required = true) String id) {
try {
sysPermissionDataRuleService.deletePermissionDataRule(id);
@@ -723,11 +743,12 @@ public class SysPermissionController {
/**
* 查询菜单权限数据
*
*
* @param sysPermissionDataRule
* @return
*/
@RequestMapping(value = "/queryPermissionRule", method = RequestMethod.GET)
// @RequestMapping(value = "/queryPermissionRule", method = RequestMethod.GET)
@GetMapping("/queryPermissionRule")
public Result<List<SysPermissionDataRule>> queryPermissionRule(SysPermissionDataRule sysPermissionDataRule) {
try {
List<SysPermissionDataRule> permRuleList = sysPermissionDataRuleService.queryPermissionRule(sysPermissionDataRule);
@@ -743,7 +764,8 @@ public class SysPermissionController {
* @param departId
* @return
*/
@RequestMapping(value = "/queryDepartPermission", method = RequestMethod.GET)
// @RequestMapping(value = "/queryDepartPermission", method = RequestMethod.GET)
@GetMapping("/queryDepartPermission")
public Result<List<String>> queryDepartPermission(@RequestParam(name = "departId", required = true) String departId) {
Result<List<String>> result = new Result<>();
try {
@@ -761,7 +783,8 @@ public class SysPermissionController {
*
* @return
*/
@RequestMapping(value = "/saveDepartPermission", method = RequestMethod.POST)
// @RequestMapping(value = "/saveDepartPermission", method = RequestMethod.POST)
@PostMapping("/saveDepartPermission")
//@RequiresRoles({ "admin" })
public Result<String> saveDepartPermission(@RequestBody JSONObject json) {
long start = System.currentTimeMillis();
@@ -771,7 +794,7 @@ public class SysPermissionController {
String lastPermissionIds = json.getString("lastpermissionIds");
this.sysDepartPermissionService.saveDepartPermission(departId, permissionIds, lastPermissionIds);
log.info("======部门授权成功=====耗时:" + (System.currentTimeMillis() - start) + "毫秒");
return Result.OK("操作成功!");
return Result.OK(OPTION_SUCCESS);
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error("授权失败!");