pref#ncu_日志结构调整、按照要求屏蔽模块(除超级管理员其他人只能看到民主管理)

This commit is contained in:
Paidax
2025-12-15 14:21:07 +08:00
parent fa0606c27b
commit ee0f56bf13
4 changed files with 117 additions and 10 deletions
@@ -2,12 +2,14 @@ package com.budwk.app.sys.controller.v4;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.result.Result;
import com.budwk.app.sys.models.Sys_menu;
import com.budwk.app.sys.models.Sys_module;
import com.budwk.app.sys.models.Sys_user_favorite_app;
import com.budwk.app.sys.services.SysMenuService;
import com.budwk.app.sys.services.SysUserService;
import com.budwk.app.web.commons.auth.utils.AuthUtil;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -26,6 +28,7 @@ import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -47,7 +50,17 @@ public class SysV4AppsController {
@SaCheckLogin
@ApiOperation("获取应用分类")
public Result categories(@Param(value = "platform", df = "PC") String platform) {
List<Sys_module> list = dao.query(Sys_module.class, Cnd.where(Sys_module::getPlatform, "=", platform).asc(Sys_module::getSortNum));
List<Sys_module> list;
if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
list = dao.query(Sys_module.class, Cnd.where(Sys_module::getPlatform, "=", platform).asc(Sys_module::getSortNum));
} else {
list = dao.query(
Sys_module.class,
Cnd.where(Sys_module::getPlatform, "=", platform)
.and(Sys_module::getId, "=", "2")
.asc(Sys_module::getSortNum)
);
}
List<Map<String, Object>> categories = list.stream().map(module -> {
Map<String, Object> category = new HashMap<>();
category.put("id", module.getId());
@@ -84,6 +97,9 @@ public class SysV4AppsController {
LEFT JOIN sys_module sm ON sm.id = m.moduleId
$condition
""");
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
categoryId = "2";
}
Cnd cnd = Cnd.NEW();
cnd.and("m.platform", "=", platform);
cnd.and("m.disabled", "=", false);
@@ -2,9 +2,11 @@ package com.budwk.app.sys.controller.v4;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.result.Result;
import com.budwk.app.flow.entity.ProcessCategory;
import com.budwk.app.sys.services.SysMenuService;
import com.budwk.app.web.commons.auth.utils.AuthUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.nutz.dao.Cnd;
@@ -19,6 +21,7 @@ import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
@IocBean
@@ -36,7 +39,12 @@ public class SysV4ServController {
@SaCheckLogin
@ApiOperation("获取分类")
public Result categories() {
List<ProcessCategory> list = dao.query(ProcessCategory.class, Cnd.NEW());
List<ProcessCategory> list;
if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
list = dao.query(ProcessCategory.class, Cnd.NEW());
} else {
list = dao.query(ProcessCategory.class, Cnd.where(ProcessCategory::getId, "=", "1"));
}
return Result.success(list);
}
@@ -59,6 +67,9 @@ public class SysV4ServController {
if (StrUtil.isNotBlank(keyword)) {
cnd.where().andLike("t.disPlayName", keyword);
}
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
categoryId = "1";
}
cnd.andEX("t.category", "=", categoryId);
sql.setCondition(cnd);
List<NutMap> list = sysMenuService.listMap(sql);