From 47fa44a60a9dffee1e122a72b61badc36726b300 Mon Sep 17 00:00:00 2001
From: liyj <1003249715@qq.com>
Date: Tue, 10 Sep 2024 16:29:02 +0800
Subject: [PATCH] 1、角色权限整改
---
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsMenuWebController.java | 205 ++++
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsRole.java | 60 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsMenu.java | 108 ++
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsRoleFun.java | 59 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsRoleService.java | 162 +++
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/dto/RsRoleDTO.java | 38
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CtRoleBO.java | 4
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsRoleFunMapper.java | 72 +
dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/MenuBaseEnum.java | 71 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsRoleMapper.java | 64 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsRoleFunMapper.xml | 142 ++
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRolefunService.java | 75 -
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsRoleFunWebController.java | 180 +++
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsMenuBO.java | 17
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRoleService.java | 32
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsMenuService.java | 133 ++
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsRoleFunBO.java | 17
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/dto/RoleMenuTreeDTO.java | 13
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsRoleBO.java | 17
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/constant/ByRoleBaseEnum.java | 128 ++
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CtRoleWebController.java | 14
dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/RoleBaseEnum.java | 196 ---
dyh-service/dyh-cust/src/main/java/cn/huge/module/bytogz/service/ByToGzService.java | 75 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java | 2
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsMenuMapper.xml | 184 +++
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsRoleFunService.java | 243 +++++
/dev/null | 87 -
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsRoleMapper.xml | 136 ++
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsRoleWebController.java | 165 +++
dyh-service/dyh-cust/src/main/java/cn/huge/module/bytogz/controller/ByToGzController.java | 64 +
dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsMenuMapper.java | 64 +
31 files changed, 2,437 insertions(+), 390 deletions(-)
diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/MenuBaseEnum.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/MenuBaseEnum.java
new file mode 100644
index 0000000..060e1a6
--- /dev/null
+++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/MenuBaseEnum.java
@@ -0,0 +1,71 @@
+package cn.huge.module.cust.constant;
+
+import cn.huge.module.cust.dto.CtUserDTO;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @title: 系统角菜单相关常量枚举类
+ * @description: 系统角菜单相关常量枚举类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2021-11-05 16:51:48
+ * @version: 1.0.0
+ */
+public enum MenuBaseEnum {
+
+ /**
+ * 平台基础角色
+ */
+ MENU_APP_1("mediate", "调解中心"),
+ MENU_APP_2("operation", "客户中心");
+
+ /**
+ * 代码编号
+ */
+ private String index;
+
+ /**
+ * 描述
+ */
+ private String des;
+
+ public String getIndex() {
+ return index;
+ }
+
+ public void setIndex(String index) {
+ this.index = index;
+ }
+
+ public String getDes() {
+ return des;
+ }
+
+ public void setDes(String desc) {
+ this.des = desc;
+ }
+
+ /**
+ * 构造方法
+ * @param index
+ * @param des
+ */
+ MenuBaseEnum(String index, String des) {
+ this.index = index;
+ this.des = des;
+ }
+
+ /**
+ * 静态方法
+ * @param index
+ * @return
+ */
+ public static String getDes(String index) {
+ for (MenuBaseEnum constantEnum : MenuBaseEnum.values()) {
+ if (constantEnum.getIndex().equals(index)) {
+ return constantEnum.des;
+ }
+ }
+ return null;
+ }
+}
diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/RoleBaseEnum.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/RoleBaseEnum.java
index 71cfb40..57f3749 100644
--- a/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/RoleBaseEnum.java
+++ b/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/RoleBaseEnum.java
@@ -4,8 +4,8 @@
import org.apache.commons.lang3.StringUtils;
/**
- * @title: 调解相关常量枚举类
- * @description: 调解相关常量枚举类
+ * @title: 系统角色相关常量枚举类
+ * @description: 系统角色相关常量枚举类
* @company: hugeinfo
* @author: liyj
* @time: 2021-11-05 16:51:48
@@ -16,16 +16,10 @@
/**
* 平台基础角色
*/
- ROLE_1("22_00024-1", "运维技术人员"),
+ ROLE_1("22_00024-1", "运维人员"),
ROLE_2("22_00024-2", "超级管理员"),
- ROLE_3("22_00024-3", "组织管理员"),
- ROLE_4("22_00024-4", "人民调解员"),
- ROLE_5("22_00024-5", "法官"),
- ROLE_6("22_00024-6", "法院"),
- ROLE_7("22_00024-7", "调度人员"),
- ROLE_8("22_00024-8", "法官助理/书记员"),
- ROLE_9("22_00024-9", "调委会管理员"),
- ROLE_10("22_00024-10", "司法局");
+ ROLE_3("22_00024-3", "单位管理员"),
+ ROLE_4("22_00024-4", "纠纷化解人员");
/**
* 代码编号
@@ -78,25 +72,6 @@
}
/**
- * 判断是否有超级管理员权限
- * @param roleCodes 角色代码编号,多个用,分开
- * @return Boolean
- */
- public static Boolean checkAdminPower(String roleCodes){
- if (StringUtils.isNotEmpty(roleCodes)) {
- if (roleCodes.indexOf(ROLE_1.getIndex()) != -1 ||
- roleCodes.indexOf(ROLE_2.getIndex()) != -1 ||
- roleCodes.indexOf(ROLE_7.getIndex()) != -1) {
- return true;
- } else {
- return false;
- }
- }else {
- return false;
- }
- }
-
- /**
* 临时-演示用户赋予超级管理员角色
* 判断是否有超级管理员权限
* @param loginUser 角色代码编号,多个用,分开
@@ -110,166 +85,7 @@
String roleCodes = loginUser.getRoleCodes();
if (StringUtils.isNotEmpty(roleCodes)) {
if (roleCodes.indexOf(ROLE_1.getIndex()) != -1 ||
- roleCodes.indexOf(ROLE_2.getIndex()) != -1 ||
- roleCodes.indexOf(ROLE_7.getIndex()) != -1) {
- return true;
- } else {
- return false;
- }
- }else {
- return false;
- }
- }
-
- /**
- * 判断是否有组织管理员权限
- * @param roleCodes 角色代码编号,多个用,分开
- * @return Boolean
- */
- public static Boolean checkUnitPower(String roleCodes){
- if (StringUtils.isNotEmpty(roleCodes)) {
- if (roleCodes.indexOf(ROLE_3.getIndex()) != -1) {
- return true;
- } else {
- return false;
- }
- }else {
- return false;
- }
- }
-
- /**
- * 判断是否有调委会管理员权限
- * @param roleCodes 角色代码编号,多个用,分开
- * @return Boolean
- */
- public static Boolean checkTwhPower(String roleCodes){
- if (StringUtils.isNotEmpty(roleCodes)) {
- if (roleCodes.indexOf(ROLE_9.getIndex()) != -1) {
- return true;
- } else {
- return false;
- }
- }else {
- return false;
- }
- }
-
- /**
- * 判断是否有是个人权限
- * @param roleCodes 角色代码编号,多个用,分开
- * @return Boolean
- */
- public static Boolean checkUserPower(String roleCodes){
- if (StringUtils.isNotEmpty(roleCodes)) {
- if (roleCodes.indexOf(ROLE_4.getIndex()) != -1 ||
- roleCodes.indexOf(ROLE_5.getIndex()) != -1 ||
- roleCodes.indexOf(ROLE_8.getIndex()) != -1) {
- return true;
- } else {
- return false;
- }
- }else {
- return false;
- }
- }
-
- /**
- * 判断是否是法院或组织管理员的权限
- * @param roleCodes 角色代码编号,多个用,分开
- * @return Boolean
- */
- public static Boolean checkCourtOrUnitPower(String roleCodes){
- if (StringUtils.isNotEmpty(roleCodes)) {
- if (roleCodes.indexOf(ROLE_3.getIndex()) != -1 ||
- roleCodes.indexOf(ROLE_6.getIndex()) != -1) {
- return true;
- } else {
- return false;
- }
- }else {
- return false;
- }
- }
-
- /**
- * 判断是否是法院的权限
- * @param roleCodes 角色代码编号,多个用,分开
- * @return Boolean
- */
- public static Boolean checkCourtPower(String roleCodes){
- if (StringUtils.isNotEmpty(roleCodes)) {
- if (roleCodes.indexOf(ROLE_5.getIndex()) != -1 ||
- roleCodes.indexOf(ROLE_6.getIndex()) != -1 ||
- roleCodes.indexOf(ROLE_8.getIndex()) != -1) {
- return true;
- } else {
- return false;
- }
- }else {
- return false;
- }
- }
-
- /**
- * 判断是否有法院管理权限
- * @param roleCodes 角色代码编号,多个用,分开
- * @return Boolean
- */
- public static Boolean checkCourtAdminPower(String roleCodes){
- if (StringUtils.isNotEmpty(roleCodes)) {
- if (roleCodes.indexOf(ROLE_6.getIndex()) != -1) {
- return true;
- } else {
- return false;
- }
- }else {
- return false;
- }
- }
-
- /**
- * 判断是否有法官权限
- * @param roleCodes 角色代码编号,多个用,分开
- * @return Boolean
- */
- public static Boolean checkJudgePower(String roleCodes){
- if (StringUtils.isNotEmpty(roleCodes)) {
- if (roleCodes.indexOf(ROLE_5.getIndex()) != -1) {
- return true;
- } else {
- return false;
- }
- }else {
- return false;
- }
- }
-
- /**
- * 判断是否有调度权限
- * @param roleCodes 角色代码编号,多个用,分开
- * @return Boolean
- */
- public static Boolean checkDispPower(String roleCodes){
- if (StringUtils.isNotEmpty(roleCodes)) {
- if (roleCodes.indexOf(ROLE_7.getIndex()) != -1) {
- return true;
- } else {
- return false;
- }
- }else {
- return false;
- }
- }
-
- /**
- * 判断是否有司法局权限
- * @param roleCodes 角色代码编号,多个用,分开
- * @return Boolean
- */
- public static Boolean checkSfjPower(String roleCodes){
- if (StringUtils.isNotEmpty(roleCodes)) {
- if (roleCodes.indexOf(ROLE_10.getIndex()) != -1) {
+ roleCodes.indexOf(ROLE_2.getIndex()) != -1) {
return true;
} else {
return false;
diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/RoleFunBaseConsts.java b/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/RoleFunBaseConsts.java
deleted file mode 100644
index ceab3d0..0000000
--- a/dyh-service/dyh-base/src/main/java/cn/huge/module/cust/constant/RoleFunBaseConsts.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package cn.huge.module.cust.constant;
-
-/**
- * @title: 用户相关常量类
- * @description: 用户相关常量
- * @company: hugeinfo
- * @author: liyj
- * @time: 2021-11-05 16:51:48
- * @version: 1.0.0
- */
-public class RoleFunBaseConsts {
-
- /**
- * 应用key
- */
- public static final String APP_1 = "mediate";
- public static final String APP_2 = "operation";
- public static final String APP_3 = "pay";
- public static final String APP_4 = "minipay";
- public static final String APP_5 = "tjipay";
-
- /**
- * 模块菜单key
- */
- public static final String MODULE_1 = "gzt";
- public static final String MODULE_2 = "ddcl";
- public static final String MODULE_3 = "ddzx";
- public static final String MODULE_4 = "ddls";
- public static final String MODULE_5 = "tjgl";
- public static final String MODULE_6 = "djjf";
- public static final String MODULE_7 = "aqws";
- public static final String MODULE_8 = "djlb";
- public static final String MODULE_9 = "qslb";
- public static final String MODULE_10 = "wddb";
- public static final String MODULE_11 = "wdtj";
- public static final String MODULE_12 = "tjzl";
- public static final String MODULE_13 = "tjda";
- public static final String MODULE_14 = "wdsfqr";
- public static final String MODULE_15 = "sfsq";
- public static final String MODULE_16 = "sffa";
- public static final String MODULE_17 = "sfsc";
- public static final String MODULE_18 = "scls";
- public static final String MODULE_19 = "sfqr";
- public static final String MODULE_20 = "sfzl";
- public static final String MODULE_21 = "rhgx";
- public static final String MODULE_22 = "rmtjld";
- public static final String MODULE_23 = "rmtjcs";
- public static final String MODULE_24 = "sfjsh";
- public static final String MODULE_25 = "sfld";
- public static final String MODULE_26 = "wgld";
- public static final String MODULE_27 = "yygl";
- public static final String MODULE_28 = "ddgz";
- public static final String MODULE_29 = "jcxxgl";
- public static final String MODULE_30 = "ryxx";
- public static final String MODULE_31 = "zzjg";
- public static final String MODULE_32 = "jsqx";
-
- /**
- * 功能key
- */
- public static final String FUN_1 = "show";
- public static final String FUN_2 = "registration";
- public static final String FUN_3 = "sign";
- public static final String FUN_4 = "refusal";
-}
-/**
- * -------------------_ooOoo_-------------------
- * ------------------o8888888o------------------
- * ------------------88" . "88------------------
- * ------------------(| -_- |)------------------
- * ------------------O\ = /O------------------
- * ---------------____/`---'\____---------------
- * -------------.' \\| |// `.-------------
- * ------------/ \\||| : |||// \------------
- * -----------/ _||||| -:- |||||- \-----------
- * -----------| | \\\ - /// | |-----------
- * -----------| \_| ''\---/'' | |-----------
- * -----------\ .-\__ `-` ___/-. /-----------
- * ---------___`. .' /--.--\ `. . __----------
- * ------."" '< `.___\_<|>_/___.' >'"".-------
- * -----| | : `- \`.;`\ _ /`;.`/ - ` : | |-----
- * -----\ \ `-. \_ __\ /__ _/ .-` / /-----
- * ======`-.____`-.___\_____/___.-`____.-'======
- * -------------------`=---='
- * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- * ---------佛祖保佑---hugeinfo---永无BUG----------
- */
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/bytogz/controller/ByToGzController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/bytogz/controller/ByToGzController.java
new file mode 100644
index 0000000..8188e80
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/bytogz/controller/ByToGzController.java
@@ -0,0 +1,64 @@
+package cn.huge.module.bytogz.controller;
+
+import cn.huge.base.common.dto.SelectTermDTO;
+import cn.huge.base.common.utils.ObjectUtils;
+import cn.huge.base.common.utils.ReturnFailUtils;
+import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.base.config.CurrentUser;
+import cn.huge.module.bytogz.service.ByToGzService;
+import cn.huge.module.ctrole.service.CtRoleService;
+import cn.huge.module.ctuser.domain.po.CtAccount;
+import cn.huge.module.ctuser.domain.po.CtUser;
+import cn.huge.module.ctuser.dto.CtUserInfoDTO;
+import cn.huge.module.ctuser.dto.CtUserSaveDTO;
+import cn.huge.module.ctuser.service.*;
+import cn.huge.module.cust.constant.UserBaseConsts;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @title: 白云数据割接为广州数据接口api
+ * @description: 白云数据割接为广州数据接口api
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-08-19 20:04:19
+ * @version: 1.0.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/byToGz")
+public class ByToGzController {
+
+ @Autowired(required = false)
+ private HttpServletRequest request;
+
+ @Autowired
+ private ByToGzService service;
+
+ /**
+ * 用户角色更新-白云角色映射为广州角色
+ * @url {ctx}/api/byToGz/upUserole
+ * @return Object
+ */
+ @GetMapping("/upUserole")
+ public Object upUserole() {
+ try {
+ service.upBytoGzUserole();
+ return ReturnSucUtils.getRepInfo();
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/bytogz/service/ByToGzService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/bytogz/service/ByToGzService.java
new file mode 100644
index 0000000..f45b832
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/bytogz/service/ByToGzService.java
@@ -0,0 +1,75 @@
+package cn.huge.module.bytogz.service;
+
+import cn.huge.base.common.exception.ServiceException;
+import cn.huge.base.common.utils.DateUtils;
+import cn.huge.base.common.utils.IdUtils;
+import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.ctrole.constant.ByRoleBaseEnum;
+import cn.huge.module.ctuser.dao.mapper.CtUseroleMapper;
+import cn.huge.module.ctuser.domain.po.CtUser;
+import cn.huge.module.ctuser.domain.po.CtUserole;
+import cn.huge.module.ctuser.service.CtUserService;
+import cn.huge.module.ctuser.service.CtUseroleService;
+import cn.huge.module.cust.constant.RoleBaseEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @title: 白云数据割接为广州数据的业务逻辑处理
+ * @Description 白云数据割接为广州数据的业务逻辑处理
+ * @company hugeinfo
+ * @author liyj
+ * @Time 2024-08-19 20:04:19
+ * @version 1.0.0
+ */
+@Slf4j
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ByToGzService{
+
+ @Autowired
+ private RedisTemplate<String, Object> redisTemplate;
+
+ @Autowired
+ private CtUseroleService ctUseroleService;
+ @Autowired
+ private CtUserService ctUserService;
+
+ /**
+ * 用户角色更新-白云角色映射为广州角色
+ */
+ public void upBytoGzUserole(){
+ try{
+ List<CtUserole> ctUseroleList = ctUseroleService.list();
+ for (CtUserole ctUserole: ctUseroleList){
+ if (ctUserole.getRoleCode().equals(ByRoleBaseEnum.ROLE_5)
+ || ctUserole.getRoleCode().equals(ByRoleBaseEnum.ROLE_7)
+ || ctUserole.getRoleCode().equals(ByRoleBaseEnum.ROLE_8)){
+ ctUseroleService.removeById(ctUserole.getId());
+ }else {
+ RoleBaseEnum roleBaseEnum = ByRoleBaseEnum.getGzRole(ctUserole.getRoleCode());
+ ctUserole.setRoleId(roleBaseEnum.getIndex());
+ ctUserole.setRoleCode(roleBaseEnum.getIndex());
+ ctUserole.setRoleName(roleBaseEnum.getDes());
+ ctUseroleService.updateById(ctUserole);
+ }
+ }
+ }catch (Exception e){
+ log.error("[ByToGzService.upBytoGzUserole]调用失败,异常信息:"+e, e);
+ throw new ServiceException("ByToGzService.upBytoGzUserole", e);
+ }
+ }
+}
\ No newline at end of file
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/constant/ByRoleBaseEnum.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/constant/ByRoleBaseEnum.java
new file mode 100644
index 0000000..dbe1d8f
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/constant/ByRoleBaseEnum.java
@@ -0,0 +1,128 @@
+package cn.huge.module.ctrole.constant;
+
+
+import cn.huge.module.cust.constant.RoleBaseEnum;
+
+/**
+ * @title: 白云多元化的角色相关常量枚举类
+ * @description: 白云多元化的角色相关常量枚举类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2021-11-05 16:51:48
+ * @version: 1.0.0
+ */
+public enum ByRoleBaseEnum {
+
+ /**
+ * 平台基础角色
+ */
+ ROLE_1("22_00024-1", "运维技术人员"),
+ ROLE_2("22_00024-2", "超级管理员"),
+ ROLE_3("22_00024-3", "组织管理员"),
+ ROLE_4("22_00024-4", "人民调解员"),
+ ROLE_5("22_00024-5", "法官"),
+ ROLE_6("22_00024-6", "法院"),
+ ROLE_7("22_00024-7", "调度人员"),
+ ROLE_8("22_00024-8", "法官助理/书记员"),
+ ROLE_9("22_00024-9", "调委会管理员"),
+ ROLE_10("22_00024-10", "司法局");
+
+ /**
+ * 代码编号
+ */
+ private String index;
+
+ /**
+ * 描述
+ */
+ private String des;
+
+ public String getIndex() {
+ return index;
+ }
+
+ public void setIndex(String index) {
+ this.index = index;
+ }
+
+ public String getDes() {
+ return des;
+ }
+
+ public void setDes(String desc) {
+ this.des = desc;
+ }
+
+ /**
+ * 构造方法
+ * @param index
+ * @param des
+ */
+ ByRoleBaseEnum(String index, String des) {
+ this.index = index;
+ this.des = des;
+ }
+
+ /**
+ * 静态方法
+ * @param index
+ * @return
+ */
+ public static String getDes(String index) {
+ for (ByRoleBaseEnum constantEnum : ByRoleBaseEnum.values()) {
+ if (constantEnum.getIndex().equals(index)) {
+ return constantEnum.des;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 根据白云多元化的角色对应获取本平台的角色
+ * @param byRoleIndex 白云多元化的角色编号
+ * @return
+ */
+ public static RoleBaseEnum getGzRole(String byRoleIndex) {
+ if(ROLE_1.getIndex().equals(byRoleIndex)) {
+ return RoleBaseEnum.ROLE_1;
+ }
+
+ if(ROLE_2.getIndex().equals(byRoleIndex)){
+ return RoleBaseEnum.ROLE_2;
+ }
+
+ if(ROLE_3.getIndex().equals(byRoleIndex)){
+ return RoleBaseEnum.ROLE_3;
+ }
+
+ if(ROLE_4.getIndex().equals(byRoleIndex)){
+ return RoleBaseEnum.ROLE_4;
+ }
+
+ if(ROLE_5.getIndex().equals(byRoleIndex)){
+ return RoleBaseEnum.ROLE_4;
+ }
+
+ if(ROLE_6.getIndex().equals(byRoleIndex)){
+ return RoleBaseEnum.ROLE_3;
+ }
+
+ if(ROLE_7.getIndex().equals(byRoleIndex)){
+ return RoleBaseEnum.ROLE_4;
+ }
+
+ if(ROLE_8.getIndex().equals(byRoleIndex)){
+ return RoleBaseEnum.ROLE_4;
+ }
+
+ if(ROLE_9.getIndex().equals(byRoleIndex)){
+ return RoleBaseEnum.ROLE_3;
+ }
+
+ if(ROLE_10.getIndex().equals(byRoleIndex)){
+ return RoleBaseEnum.ROLE_3;
+ }
+
+ return RoleBaseEnum.ROLE_4;
+ }
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CtRoleWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CtRoleWebController.java
index f28d86a..1db725d 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CtRoleWebController.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/controller/web/CtRoleWebController.java
@@ -7,13 +7,12 @@
import cn.huge.module.ctrole.domain.po.CtRole;
import cn.huge.module.ctrole.service.CtRoleService;
import cn.huge.module.ctrole.service.CtRolefunService;
-import cn.huge.module.ctuser.domain.bo.RoleTreeBO;
import cn.huge.module.ctuser.service.CtUserService;
-import cn.huge.module.cust.dto.CtUserDTO;
+import cn.huge.module.rsoper.domain.dto.RsRoleDTO;
+import cn.huge.module.rsoper.service.RsRoleService;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -21,7 +20,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
-import java.util.List;
import java.util.Map;
/**
@@ -42,12 +40,10 @@
@Autowired
private CtRoleService service;
-
@Autowired
private CtUserService ctUserService;
-
@Autowired
- private CtRolefunService ctRolefunService;
+ private RsRoleService rsRoleService;
/**
* 获取请求URL参数
@@ -184,8 +180,8 @@
@GetMapping("/getById")
public Object getById(@RequestParam(value = "id") String id, @CurrentUser String userId) {
try {
- CtRoleBO bo = service.webGetById(id, userId);
- return ReturnSucUtils.getRepInfo(bo);
+ RsRoleDTO rsRoleDTO = rsRoleService.webGetRoleMenu(id, userId);
+ return ReturnSucUtils.getRepInfo(rsRoleDTO);
} catch (Exception e) {
return ReturnFailUtils.getRepInfo();
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CtRoleBO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CtRoleBO.java
index c690c54..c7957ba 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CtRoleBO.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/domain/bo/CtRoleBO.java
@@ -2,7 +2,7 @@
import cn.huge.module.ctrole.domain.po.CtRole;
import cn.huge.module.ctrole.domain.po.CtRolefun;
-import cn.huge.module.ctuser.domain.bo.RoleTreeBO;
+import cn.huge.module.rsoper.domain.dto.RoleMenuTreeDTO;
import lombok.Data;
import java.util.List;
@@ -27,5 +27,5 @@
/**
* 返回树形结构
*/
- List<RoleTreeBO> roleTreeBOS;
+ List<RoleMenuTreeDTO> roleMenuTreeDTOS;
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRoleService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRoleService.java
index dbf45ca..6b53335 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRoleService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRoleService.java
@@ -7,9 +7,10 @@
import cn.huge.module.ctrole.dao.mapper.CtRoleMapper;
import cn.huge.module.ctrole.domain.bo.CtRoleBO;
import cn.huge.module.ctrole.domain.po.CtRole;
-import cn.huge.module.ctuser.domain.bo.RoleTreeBO;
+import cn.huge.module.rsoper.domain.dto.RoleMenuTreeDTO;
import cn.huge.module.ctuser.service.CtUserService;
-import cn.huge.module.cust.dto.CtUserDTO;
+import cn.huge.module.rsoper.domain.po.RsRole;
+import cn.huge.module.rsoper.service.RsRolefunService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
@@ -43,12 +44,12 @@
@Autowired
private UtilsClientImpl utilsClient;
-
@Autowired
private CtUserService ctUserService;
-
@Autowired
private CtRolefunService ctRolefunService;
+ @Autowired
+ private RsRolefunService rsRolefunService;
/**
* 更新对象
@@ -151,28 +152,5 @@
ctRoleQueryWrapper.eq("unit_id", unitId).eq("role_code", roleId);
CtRole ctRole = mapper.selectOne(ctRoleQueryWrapper);
return ctRole;
- }
-
- /**
- * 根据单位编号和角色编号查询
- * @param id
- * @param userId
- * @return
- */
- public CtRoleBO webGetById(String id, String userId){
- // 临时-演示用户赋予超级管理员角色
- // 获取当前登录用户
- CtUserDTO loginUser = ctUserService.clientGetUserAll(userId);
- String acc = loginUser.getAcc();
- if ("yanstjy".equals(acc) || "yansjdb".equals(acc)){
- id = "2303191513151003";
- }
- CtRole ctRole = this.getById(id);
- CtRoleBO bo = new CtRoleBO();
- BeanUtils.copyProperties(ctRole,bo);
- //查询角色权限
- List<RoleTreeBO> roleTrees = ctRolefunService.getRolefunTree(ctRole.getId());
- bo.setRoleTreeBOS(roleTrees);
- return bo;
}
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRolefunService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRolefunService.java
index 3734f66..2d87f5d 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRolefunService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRolefunService.java
@@ -7,21 +7,20 @@
import cn.huge.module.constant.BaseConsts;
import cn.huge.module.ctrole.dao.mapper.CtRolefunMapper;
import cn.huge.module.ctrole.domain.po.CtRolefun;
-import cn.huge.module.ctuser.domain.bo.RoleTreeBO;
-import cn.huge.module.cust.constant.UserBaseConsts;
+import cn.huge.module.rsoper.domain.dto.RoleMenuTreeDTO;
+import cn.huge.module.rsoper.service.RsRolefunService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Maps;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
-import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -45,6 +44,8 @@
@Autowired
private UtilsClientImpl utilsClient;
+ @Autowired
+ private RsRolefunService rsRolefunService;
/**
* 更新对象
@@ -134,71 +135,5 @@
log.error("[CtRolefunService.saveCtRolefun]调用失败,异常信息:"+e, e);
throw new ServiceException("CtRolefunService.saveCtRolefun", e);
}
- }
-
- /**
- * 查询角色树形结构
- * @param roleId 角色编号
- * @return List<RoleTreeBO> 树形结构
- */
- public List<RoleTreeBO> getRolefunTree(String roleId){
- //查询所有的关系
- Map<String, Object> terms = Maps.newHashMap();
- terms.put("roleId",roleId);
- List<CtRolefun> rolefuns = mapper.listTerms(terms);
- List<CtRolefun> list = new ArrayList<>();
- List<RoleTreeBO> treeBOS = new ArrayList<>();
- if (rolefuns.size() > 0) {
- //第一级菜单集合
- for (int i = 0; i < rolefuns.size(); i++) {
- // 一级菜单没有parentId
- if (BaseConsts.ROOT.equals(rolefuns.get(i).getParentId())) {
- list.add(rolefuns.get(i));
- }
- }
- // 为一级菜单设置子菜单,getChild是递归调用的
- for (CtRolefun rolefun : list) {
- RoleTreeBO treeBO = new RoleTreeBO();
- treeBO.setLabel(rolefun.getPowerName());
- treeBO.setValue(rolefun.getPowerId());
- treeBO.setLabelType(rolefun.getPowerType());
- treeBO.setAppClient(rolefun.getAppClient());
- treeBO.setPowerTag(rolefun.getPowerTag());
- treeBO.setPowerUrl(rolefun.getPowerUrl());
- treeBO.setPowerIcon(rolefun.getPowerIcon());
- treeBO.setChildren(getChild(rolefun.getPowerId(), rolefuns));
- treeBOS.add(treeBO);
- }
- }
- return treeBOS;
- }
-
- /**
- * 递归查找子菜单
- * @param id 当前菜单id
- * @param ctRolefuns 要查找的列表
- * @return List<TreeBO> 树形列表集合
- */
- private List<RoleTreeBO> getChild(String id, List<CtRolefun> ctRolefuns) {
- // 子菜单
- List<RoleTreeBO> childList = new ArrayList<>();
- for (CtRolefun rolefun : ctRolefuns) {
- // 遍历所有节点,将父菜单id与传过来的id比较
- if (StringUtils.isNotBlank(rolefun.getParentId())) {
- if (rolefun.getParentId().equals(id)) {
- RoleTreeBO roleTree = new RoleTreeBO();
- roleTree.setLabel(rolefun.getPowerName());
- roleTree.setValue(rolefun.getPowerId());
- roleTree.setLabelType(rolefun.getPowerType());
- roleTree.setAppClient(rolefun.getAppClient());
- roleTree.setPowerTag(rolefun.getPowerTag());
- roleTree.setPowerUrl(rolefun.getPowerUrl());
- roleTree.setPowerIcon(rolefun.getPowerIcon());
- roleTree.setChildren(getChild(rolefun.getPowerId(), ctRolefuns));
- childList.add(roleTree);
- }
- }
- }
- return childList;
}
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java
index 888c322..5411841 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java
@@ -262,7 +262,7 @@
.select("unit_type");
CtUnit ctUnit = ctUnitService.getOne(ctUnitQueryWrapper1);
if (ctUnit.getUnitType() == UserBaseConsts.UNIT_TYPE_4) {
- ctRoleQueryWrapper.ne("role_code", RoleBaseEnum.ROLE_9.getIndex());
+ ctRoleQueryWrapper.ne("role_code", RoleBaseEnum.ROLE_1.getIndex());
}
List<CtRole> ctRoleList = ctRoleService.list(ctRoleQueryWrapper);
List<SelectTermDTO> roleSelectTerms = new ArrayList<>();
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsMenuWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsMenuWebController.java
new file mode 100644
index 0000000..81f83a6
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsMenuWebController.java
@@ -0,0 +1,205 @@
+package cn.huge.module.rsoper.controller.web;
+
+import cn.huge.base.common.utils.ReturnFailUtils;
+import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.module.rsoper.domain.po.RsMenu;
+import cn.huge.module.rsoper.service.RsMenuService;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @title: 平台功能目录表接口api-web端
+ * @description: 平台功能目录表接口api-web端
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-09-10 10:57:02
+ * @version: 1.0.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/web/rsMenu")
+public class RsMenuWebController {
+
+ @Autowired(required = false)
+ private HttpServletRequest request;
+
+ @Autowired
+ private RsMenuService service;
+
+ /**
+ * 获取请求URL参数
+ * @return Map<String, Object>
+ */
+ private Map<String, Object> getParameter(){
+ Map<String, Object> terms = Maps.newHashMap();
+ // 目录编号
+ String id = request.getParameter("id");
+ if (StringUtils.isNotBlank(id)){
+ terms.put("id", id);
+ }
+ // 目录类型,0:应用,1:模块,2:菜单,3:功能
+ String menuType = request.getParameter("menuType");
+ if (StringUtils.isNotBlank(menuType)){
+ terms.put("menuType", menuType);
+ }
+ // 目录标签
+ String menuTag = request.getParameter("menuTag");
+ if (StringUtils.isNotBlank(menuTag)){
+ terms.put("menuTag", menuTag);
+ }
+ // 目录名称
+ String menuName = request.getParameter("menuName");
+ if (StringUtils.isNotBlank(menuName)){
+ terms.put("menuName", menuName);
+ }
+ // 目录图标
+ String menuIcon = request.getParameter("menuIcon");
+ if (StringUtils.isNotBlank(menuIcon)){
+ terms.put("menuIcon", menuIcon);
+ }
+ // 目录访问url
+ String menuUrl = request.getParameter("menuUrl");
+ if (StringUtils.isNotBlank(menuUrl)){
+ terms.put("menuUrl", menuUrl);
+ }
+ // 目录描述
+ String menuDes = request.getParameter("menuDes");
+ if (StringUtils.isNotBlank(menuDes)){
+ terms.put("menuDes", menuDes);
+ }
+ // 所属应用客户端,1:web端,2:当事人小程序
+ String appClient = request.getParameter("appClient");
+ if (StringUtils.isNotBlank(appClient)){
+ terms.put("appClient", appClient);
+ }
+ // 所属应用类型,1:普通应用,2:付费应用
+ String appType = request.getParameter("appType");
+ if (StringUtils.isNotBlank(appType)){
+ terms.put("appType", appType);
+ }
+ // 同级目录排序
+ String sorts = request.getParameter("sorts");
+ if (StringUtils.isNotBlank(sorts)){
+ terms.put("sorts", sorts);
+ }
+ // 父模块编号,根级默认root
+ String parentId = request.getParameter("parentId");
+ if (StringUtils.isNotBlank(parentId)){
+ terms.put("parentId", parentId);
+ }
+ // 删除状态,0:未删除,1:已删除
+ String deleteStatus = request.getParameter("deleteStatus");
+ if (StringUtils.isNotBlank(deleteStatus)){
+ terms.put("deleteStatus", deleteStatus);
+ }
+ // 创建时间区间
+ String createStart = request.getParameter("createStart");
+ String createEnd = request.getParameter("createEnd");
+ if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
+ terms.put("createStart", createStart);
+ terms.put("createEnd", createEnd);
+ }
+ // 更新时间区间
+ String updateStart = request.getParameter("updateStart");
+ String updateEnd = request.getParameter("updateEnd");
+ if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) {
+ terms.put("updateStart", updateStart);
+ terms.put("updateEnd", updateEnd);
+ }
+ return terms;
+ }
+
+ /**
+ * 条件查询多个
+ * @url {ctx}/api/web/rsMenu/listQuery
+ * @return Object
+ */
+ @GetMapping("/listQuery")
+ public Object listQuery() {
+ try {
+ Map<String, Object> terms = getParameter();
+ return ReturnSucUtils.getRepInfo(service.listTerms(terms));
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 条件分页查询
+ * @url {ctx}/api/web/rsMenu/pageQuery
+ * @param page 页码
+ * @param size 每页数量
+ * @return Object
+ */
+ @GetMapping("/pageQuery")
+ public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
+ try {
+ Map<String, Object> terms = getParameter();
+ Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
+ PageRequest pageRequest = PageRequest.of(page-1, size, sort);
+ Page<RsMenu> rsMenuPage = service.pageQuery(pageRequest, terms);
+ return ReturnSucUtils.getRepInfo( "处理成功", rsMenuPage);
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 根据编号查询单个
+ * @url {ctx}/api/web/rsMenu/getById
+ * @param id 主键编号
+ * @return Object
+ */
+ @GetMapping("/getById")
+ public Object getById(@RequestParam(value = "id") String id) {
+ try {
+ return ReturnSucUtils.getRepInfo(service.getById(id));
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 根据主键单个
+ * @url {ctx}/api/web/rsMenu/deleteById
+ * @param id 主键编号
+ * @return Object
+ */
+ @GetMapping("/deleteById")
+ public Object deleteById(@RequestParam(value = "id") String id) {
+ try {
+ service.removeById(id);
+ return ReturnSucUtils.getRepInfo();
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 新增或更新对象
+ * @url {ctx}/api/web/rsMenu/saveRsMenu
+ * @param rsMenu 实体对象
+ * @return Object
+ */
+ @PostMapping("/saveRsMenu")
+ public Object saveRsMenu(@RequestBody RsMenu rsMenu) {
+ try {
+ service.saveRsMenu(rsMenu);
+ return ReturnSucUtils.getRepInfo();
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsRoleFunWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsRoleFunWebController.java
new file mode 100644
index 0000000..db33c30
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsRoleFunWebController.java
@@ -0,0 +1,180 @@
+package cn.huge.module.rsoper.controller.web;
+
+import cn.huge.base.common.utils.ReturnFailUtils;
+import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.module.rsoper.domain.po.RsRolefun;
+import cn.huge.module.rsoper.service.RsRolefunService;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @title: 系统角色功能权限表接口api-web端
+ * @description: 系统角色功能权限表接口api-web端
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-09-10 15:46:25
+ * @version: 1.0.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/web/rsRolefun")
+public class RsRolefunWebController {
+
+ @Autowired(required = false)
+ private HttpServletRequest request;
+
+ @Autowired
+ private RsRolefunService service;
+
+ /**
+ * 获取请求URL参数
+ * @return Map<String, Object>
+ */
+ private Map<String, Object> getParameter(){
+ Map<String, Object> terms = Maps.newHashMap();
+ // 角色功能编号
+ String id = request.getParameter("id");
+ if (StringUtils.isNotBlank(id)){
+ terms.put("id", id);
+ }
+ // 角色编号
+ String roleId = request.getParameter("roleId");
+ if (StringUtils.isNotBlank(roleId)){
+ terms.put("roleId", roleId);
+ }
+ // 权限编号
+ String menuId = request.getParameter("menuId");
+ if (StringUtils.isNotBlank(menuId)){
+ terms.put("menuId", menuId);
+ }
+ // 父级编号,根级默认为root
+ String parentId = request.getParameter("parentId");
+ if (StringUtils.isNotBlank(parentId)){
+ terms.put("parentId", parentId);
+ }
+ // 创建时间区间
+ String createStart = request.getParameter("createStart");
+ String createEnd = request.getParameter("createEnd");
+ if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
+ terms.put("createStart", createStart);
+ terms.put("createEnd", createEnd);
+ }
+ // 更新时间区间
+ String updateStart = request.getParameter("updateStart");
+ String updateEnd = request.getParameter("updateEnd");
+ if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) {
+ terms.put("updateStart", updateStart);
+ terms.put("updateEnd", updateEnd);
+ }
+ return terms;
+ }
+
+ /**
+ * 条件查询多个
+ * @url {ctx}/api/web/rsRolefun/listQuery
+ * @return Object
+ */
+ @GetMapping("/listQuery")
+ public Object listQuery() {
+ try {
+ Map<String, Object> terms = getParameter();
+ return ReturnSucUtils.getRepInfo(service.listTerms(terms));
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 条件分页查询
+ * @url {ctx}/api/web/rsRolefun/pageQuery
+ * @param page 页码
+ * @param size 每页数量
+ * @return Object
+ */
+ @GetMapping("/pageQuery")
+ public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
+ try {
+ Map<String, Object> terms = getParameter();
+ Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
+ PageRequest pageRequest = PageRequest.of(page-1, size, sort);
+ Page<RsRolefun> rsRolefunPage = service.pageQuery(pageRequest, terms);
+ return ReturnSucUtils.getRepInfo( "处理成功", rsRolefunPage);
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 根据编号查询单个
+ * @url {ctx}/api/web/rsRolefun/getById
+ * @param id 主键编号
+ * @return Object
+ */
+ @GetMapping("/getById")
+ public Object getById(@RequestParam(value = "id") String id) {
+ try {
+ return ReturnSucUtils.getRepInfo(service.getById(id));
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 根据主键单个
+ * @url {ctx}/api/web/rsRolefun/deleteById
+ * @param id 主键编号
+ * @return Object
+ */
+ @GetMapping("/deleteById")
+ public Object deleteById(@RequestParam(value = "id") String id) {
+ try {
+ service.removeById(id);
+ return ReturnSucUtils.getRepInfo();
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 新增或更新对象
+ * @url {ctx}/api/web/rsRolefun/saveRsRolefun
+ * @param rsRolefun 实体对象
+ * @return Object
+ */
+ @PostMapping("/saveRsRolefun")
+ public Object saveRsRolefun(@RequestBody RsRolefun rsRolefun) {
+ try {
+ service.saveRsRolefun(rsRolefun);
+ return ReturnSucUtils.getRepInfo();
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 人工临时处理-给所有角色赋菜单权限
+ * @url {ctx}/api/web/rsRoleFun/setFun
+ * @return Object
+ */
+ @GetMapping("/setFun")
+ public Object setFun() {
+ try {
+ service.webSetFun();
+ return ReturnSucUtils.getRepInfo();
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsRoleWebController.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsRoleWebController.java
new file mode 100644
index 0000000..43d98a9
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/controller/web/RsRoleWebController.java
@@ -0,0 +1,165 @@
+package cn.huge.module.rsoper.controller.web;
+
+import cn.huge.base.common.utils.ReturnFailUtils;
+import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.module.rsoper.domain.po.RsRole;
+import cn.huge.module.rsoper.service.RsRoleService;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @title: 系统角色定义表接口api-web端
+ * @description: 系统角色定义表接口api-web端
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-09-10 10:57:02
+ * @version: 1.0.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/web/rsRole")
+public class RsRoleWebController {
+
+ @Autowired(required = false)
+ private HttpServletRequest request;
+
+ @Autowired
+ private RsRoleService service;
+
+ /**
+ * 获取请求URL参数
+ * @return Map<String, Object>
+ */
+ private Map<String, Object> getParameter(){
+ Map<String, Object> terms = Maps.newHashMap();
+ // 角色编号
+ String id = request.getParameter("id");
+ if (StringUtils.isNotBlank(id)){
+ terms.put("id", id);
+ }
+ // 角色名称
+ String name = request.getParameter("name");
+ if (StringUtils.isNotBlank(name)){
+ terms.put("name", name);
+ }
+ // 角色类型,1:系统角色,2:用户自定义角色
+ String roleType = request.getParameter("roleType");
+ if (StringUtils.isNotBlank(roleType)){
+ terms.put("roleType", roleType);
+ }
+ // 删除状态,0:未删除,1:已删除
+ String deleteStatus = request.getParameter("deleteStatus");
+ if (StringUtils.isNotBlank(deleteStatus)){
+ terms.put("deleteStatus", deleteStatus);
+ }
+ // 创建时间区间
+ String createStart = request.getParameter("createStart");
+ String createEnd = request.getParameter("createEnd");
+ if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
+ terms.put("createStart", createStart);
+ terms.put("createEnd", createEnd);
+ }
+ // 更新时间区间
+ String updateStart = request.getParameter("updateStart");
+ String updateEnd = request.getParameter("updateEnd");
+ if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) {
+ terms.put("updateStart", updateStart);
+ terms.put("updateEnd", updateEnd);
+ }
+ return terms;
+ }
+
+ /**
+ * 条件查询多个
+ * @url {ctx}/api/web/rsRole/listQuery
+ * @return Object
+ */
+ @GetMapping("/listQuery")
+ public Object listQuery() {
+ try {
+ Map<String, Object> terms = getParameter();
+ return ReturnSucUtils.getRepInfo(service.listTerms(terms));
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 条件分页查询
+ * @url {ctx}/api/web/rsRole/pageQuery
+ * @param page 页码
+ * @param size 每页数量
+ * @return Object
+ */
+ @GetMapping("/pageQuery")
+ public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
+ try {
+ Map<String, Object> terms = getParameter();
+ Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
+ PageRequest pageRequest = PageRequest.of(page-1, size, sort);
+ Page<RsRole> rsRolePage = service.pageQuery(pageRequest, terms);
+ return ReturnSucUtils.getRepInfo( "处理成功", rsRolePage);
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 根据编号查询单个
+ * @url {ctx}/api/web/rsRole/getById
+ * @param id 主键编号
+ * @return Object
+ */
+ @GetMapping("/getById")
+ public Object getById(@RequestParam(value = "id") String id) {
+ try {
+ return ReturnSucUtils.getRepInfo(service.getById(id));
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 根据主键单个
+ * @url {ctx}/api/web/rsRole/deleteById
+ * @param id 主键编号
+ * @return Object
+ */
+ @GetMapping("/deleteById")
+ public Object deleteById(@RequestParam(value = "id") String id) {
+ try {
+ service.removeById(id);
+ return ReturnSucUtils.getRepInfo();
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+ /**
+ * 新增或更新对象
+ * @url {ctx}/api/web/rsRole/saveRsRole
+ * @param rsRole 实体对象
+ * @return Object
+ */
+ @PostMapping("/saveRsRole")
+ public Object saveRsRole(@RequestBody RsRole rsRole) {
+ try {
+ service.saveRsRole(rsRole);
+ return ReturnSucUtils.getRepInfo();
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsMenuMapper.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsMenuMapper.java
new file mode 100644
index 0000000..fdda008
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsMenuMapper.java
@@ -0,0 +1,64 @@
+package cn.huge.module.rsoper.dao.mapper;
+
+import cn.huge.module.rsoper.domain.po.RsMenu;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 平台功能目录表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2024-09-10 10:57:02
+* @version 1.0.0
+*/
+@Repository
+public interface RsMenuMapper extends BaseMapper<RsMenu>{
+
+ /**
+ * 更新对象
+ * @param entity 对象
+ */
+ void updateRsMenu(@Param("entity") RsMenu entity);
+
+ /**
+ * 条件更新对象
+ * @param entity 对象
+ * @param terms 条件
+ */
+ void updateRsMenuTerms(@Param("entity") RsMenu entity, @Param("terms") Map<String, Object> terms);
+
+ /**
+ * 根据编号物理删除
+ * @param id 查询条件集合
+ */
+ void deleteRsMenu(@Param("id") String id);
+
+ /**
+ * 按条件查询结果集
+ * @param terms 查询条件集合
+ * @return List<RsMenu>
+ */
+ List<RsMenu> listTerms(@Param("terms") Map<String, Object> terms);
+
+ /**
+ * 按条件查询实体总数
+ * @param terms 查询条件集合
+ * @return long
+ */
+ long countTerms(@Param("terms") Map<String, Object> terms);
+
+ /**
+ * 按条件查询实体分页结果集
+ * @param page 分页对象
+ * @param terms 查询条件集合
+ * @return List<RsMenu>
+ */
+ List<RsMenu> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsRoleFunMapper.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsRoleFunMapper.java
new file mode 100644
index 0000000..d1d2b04
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsRoleFunMapper.java
@@ -0,0 +1,72 @@
+package cn.huge.module.rsoper.dao.mapper;
+
+import cn.huge.module.rsoper.domain.dto.RoleMenuTreeDTO;
+import cn.huge.module.rsoper.domain.po.RsRolefun;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 系统角色功能权限表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2024-09-10 15:46:25
+* @version 1.0.0
+*/
+@Repository
+public interface RsRolefunMapper extends BaseMapper<RsRolefun>{
+
+ /**
+ * 更新对象
+ * @param entity 对象
+ */
+ void updateRsRolefun(@Param("entity") RsRolefun entity);
+
+ /**
+ * 条件更新对象
+ * @param entity 对象
+ * @param terms 条件
+ */
+ void updateRsRolefunTerms(@Param("entity") RsRolefun entity, @Param("terms") Map<String, Object> terms);
+
+ /**
+ * 根据编号物理删除
+ * @param id 查询条件集合
+ */
+ void deleteRsRolefun(@Param("id") String id);
+
+ /**
+ * 按条件查询结果集
+ * @param terms 查询条件集合
+ * @return List<RsRolefun>
+ */
+ List<RsRolefun> listTerms(@Param("terms") Map<String, Object> terms);
+
+ /**
+ * 按条件查询实体总数
+ * @param terms 查询条件集合
+ * @return long
+ */
+ long countTerms(@Param("terms") Map<String, Object> terms);
+
+ /**
+ * 按条件查询实体分页结果集
+ * @param page 分页对象
+ * @param terms 查询条件集合
+ * @return List<RsRolefun>
+ */
+ List<RsRolefun> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+ /**
+ * 获取角色的菜单权限
+ * @param roleId
+ * @return
+ */
+ List<RoleMenuTreeDTO> listMenuByRoleId(@Param("roleId") String roleId);
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsRoleMapper.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsRoleMapper.java
new file mode 100644
index 0000000..1e7b5d2
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/RsRoleMapper.java
@@ -0,0 +1,64 @@
+package cn.huge.module.rsoper.dao.mapper;
+
+import cn.huge.module.rsoper.domain.po.RsRole;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @title: 系统角色定义表持久层业务处理
+* @Description 此处仅涉及复杂SQL操作,务必不要在此再次写单表的CRUD操作,因为mybatisPlus已经实现。
+* @company: hugeinfo
+* @author: liyj
+* @time: 2024-09-10 10:57:02
+* @version 1.0.0
+*/
+@Repository
+public interface RsRoleMapper extends BaseMapper<RsRole>{
+
+ /**
+ * 更新对象
+ * @param entity 对象
+ */
+ void updateRsRole(@Param("entity") RsRole entity);
+
+ /**
+ * 条件更新对象
+ * @param entity 对象
+ * @param terms 条件
+ */
+ void updateRsRoleTerms(@Param("entity") RsRole entity, @Param("terms") Map<String, Object> terms);
+
+ /**
+ * 根据编号物理删除
+ * @param id 查询条件集合
+ */
+ void deleteRsRole(@Param("id") String id);
+
+ /**
+ * 按条件查询结果集
+ * @param terms 查询条件集合
+ * @return List<RsRole>
+ */
+ List<RsRole> listTerms(@Param("terms") Map<String, Object> terms);
+
+ /**
+ * 按条件查询实体总数
+ * @param terms 查询条件集合
+ * @return long
+ */
+ long countTerms(@Param("terms") Map<String, Object> terms);
+
+ /**
+ * 按条件查询实体分页结果集
+ * @param page 分页对象
+ * @param terms 查询条件集合
+ * @return List<RsRole>
+ */
+ List<RsRole> pageTerms(@Param("page") PageRequest page, @Param("terms") Map<String, Object> terms);
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsMenuMapper.xml b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsMenuMapper.xml
new file mode 100644
index 0000000..e29d730
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsMenuMapper.xml
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+ * @title: 平台功能目录表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2024-09-10 10:57:02
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.rsoper.dao.mapper.RsMenuMapper">
+ <!-- 结果集 -->
+ <resultMap id="dataResult" type="cn.huge.module.rsoper.domain.po.RsMenu">
+ <result property="id" column="id"/>
+ <result property="menuType" column="menu_type"/>
+ <result property="menuTag" column="menu_tag"/>
+ <result property="menuName" column="menu_name"/>
+ <result property="menuIcon" column="menu_icon"/>
+ <result property="menuUrl" column="menu_url"/>
+ <result property="menuDes" column="menu_des"/>
+ <result property="appClient" column="app_client"/>
+ <result property="appType" column="app_type"/>
+ <result property="sorts" column="sorts"/>
+ <result property="parentId" column="parent_id"/>
+ <result property="deleteStatus" column="delete_status"/>
+ <result property="createTime" column="create_time"/>
+ <result property="updateTime" column="update_time"/>
+ </resultMap>
+ <!-- 表 -->
+ <sql id='table-name'>dyh_rs_menu</sql>
+ <!-- 字段 -->
+ <sql id="column-part">
+ id,
+ menu_type,
+ menu_tag,
+ menu_name,
+ menu_icon,
+ menu_url,
+ menu_des,
+ app_client,
+ app_type,
+ sorts,
+ parent_id,
+ delete_status,
+ create_time,
+ update_time
+ </sql>
+ <!-- 更新实体字段 -->
+ <sql id="set-part">
+ <if test="entity.menuType != null">menu_type = #{entity.menuType},</if>
+ <if test="entity.menuTag != null">menu_tag = #{entity.menuTag},</if>
+ <if test="entity.menuName != null">menu_name = #{entity.menuName},</if>
+ <if test="entity.menuIcon != null">menu_icon = #{entity.menuIcon},</if>
+ <if test="entity.menuUrl != null">menu_url = #{entity.menuUrl},</if>
+ <if test="entity.menuDes != null">menu_des = #{entity.menuDes},</if>
+ <if test="entity.appClient != null">app_client = #{entity.appClient},</if>
+ <if test="entity.appType != null">app_type = #{entity.appType},</if>
+ <if test="entity.sorts != null">sorts = #{entity.sorts},</if>
+ <if test="entity.parentId != null">parent_id = #{entity.parentId},</if>
+ <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
+ <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+ <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+ </sql>
+ <!-- 条件 -->
+ <sql id="where-part">
+ <if test="terms != null">
+ <where>
+ <if test="terms.id != null and terms.id !=''">
+ and id = #{terms.id}
+ </if>
+ <if test="terms.menuType != null and terms.menuType !=''">
+ and menu_type = #{terms.menuType}
+ </if>
+ <if test="terms.menuTag != null and terms.menuTag !=''">
+ and menu_tag = #{terms.menuTag}
+ </if>
+ <if test="terms.menuName != null and terms.menuName !=''">
+ and menu_name = #{terms.menuName}
+ </if>
+ <if test="terms.menuIcon != null and terms.menuIcon !=''">
+ and menu_icon = #{terms.menuIcon}
+ </if>
+ <if test="terms.menuUrl != null and terms.menuUrl !=''">
+ and menu_url = #{terms.menuUrl}
+ </if>
+ <if test="terms.menuDes != null and terms.menuDes !=''">
+ and menu_des = #{terms.menuDes}
+ </if>
+ <if test="terms.appClient != null and terms.appClient !=''">
+ and app_client = #{terms.appClient}
+ </if>
+ <if test="terms.appType != null and terms.appType !=''">
+ and app_type = #{terms.appType}
+ </if>
+ <if test="terms.sorts != null and terms.sorts !=''">
+ and sorts = #{terms.sorts}
+ </if>
+ <if test="terms.parentId != null and terms.parentId !=''">
+ and parent_id = #{terms.parentId}
+ </if>
+ <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+ and delete_status = 0
+ </if>
+ <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+ and delete_status = #{terms.deleteStatus}
+ </if>
+ <if test="terms.createTime != null and terms.createTime !=''">
+ and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+ </if>
+ <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+ and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+ and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+ </if>
+ <if test="terms.updateTime != null and terms.updateTime !=''">
+ and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+ </if>
+ <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+ and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+ and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+ </if>
+ </where>
+ </if>
+ </sql>
+ <!-- 更新对象 -->
+ <update id="updateRsMenu">
+ update
+ <include refid="table-name"/>
+ <set>
+ <include refid="set-part"/>
+ </set>
+ <where>
+ id = #{entity.id}
+ </where>
+ </update>
+ <!-- 条件更新对象 -->
+ <update id="updateRsMenuTerms">
+ update
+ <include refid="table-name"/>
+ <set>
+ <include refid="set-part"/>
+ </set>
+ <include refid="where-part"/>
+ </update>
+ <!-- 根据编号物理删除 -->
+ <delete id="deleteRsMenu">
+ delete from
+ <include refid="table-name" />
+ where id = #{id}
+ </delete>
+ <!-- 根据条件查询 -->
+ <select id="listTerms" resultMap="dataResult">
+ select
+ <include refid="column-part"/>
+ from
+ <include refid="table-name" />
+ <include refid="where-part"/>
+ </select>
+ <!-- 根据条件统计 -->
+ <select id="countTerms" resultType="java.lang.Long">
+ select
+ COUNT(1)
+ from
+ <include refid="table-name" />
+ <include refid="where-part"/>
+ </select>
+ <!-- 根据条件分页查询 -->
+ <select id="pageTerms" resultMap="dataResult">
+ SELECT
+ <include refid="column-part"/>
+ FROM
+ <include refid="table-name" />
+ <include refid="where-part"/>
+ <if test="page.sort != null">
+ <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+ isnull(${s.property}), ${s.property} ${s.direction}
+ </foreach>
+ </if>
+ <if test="page.sort == null">
+ order by isnull(create_time), create_time desc
+ </if>
+ limit #{page.offset}, #{page.size}
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsRoleFunMapper.xml b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsRoleFunMapper.xml
new file mode 100644
index 0000000..a0609c2
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsRoleFunMapper.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+ * @title: 系统角色功能权限表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2024-09-10 15:46:25
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.rsoper.dao.mapper.RsRolefunMapper">
+ <!-- 结果集 -->
+ <resultMap id="dataResult" type="cn.huge.module.rsoper.domain.po.RsRolefun">
+ <result property="id" column="id"/>
+ <result property="roleId" column="role_id"/>
+ <result property="menuId" column="menu_id"/>
+ <result property="parentId" column="parent_id"/>
+ <result property="createTime" column="create_time"/>
+ <result property="updateTime" column="update_time"/>
+ </resultMap>
+ <!-- 表 -->
+ <sql id='table-name'>dyh_rs_rolefun</sql>
+ <!-- 字段 -->
+ <sql id="column-part">
+ id,
+ role_id,
+ menu_id,
+ parent_id,
+ create_time,
+ update_time
+ </sql>
+ <!-- 更新实体字段 -->
+ <sql id="set-part">
+ <if test="entity.roleId != null">role_id = #{entity.roleId},</if>
+ <if test="entity.menuId != null">menu_id = #{entity.menuId},</if>
+ <if test="entity.parentId != null">parent_id = #{entity.parentId},</if>
+ <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+ <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+ </sql>
+ <!-- 条件 -->
+ <sql id="where-part">
+ <if test="terms != null">
+ <where>
+ <if test="terms.id != null and terms.id !=''">
+ and id = #{terms.id}
+ </if>
+ <if test="terms.roleId != null and terms.roleId !=''">
+ and role_id = #{terms.roleId}
+ </if>
+ <if test="terms.menuId != null and terms.menuId !=''">
+ and menu_id = #{terms.menuId}
+ </if>
+ <if test="terms.parentId != null and terms.parentId !=''">
+ and parent_id = #{terms.parentId}
+ </if>
+ <if test="terms.createTime != null and terms.createTime !=''">
+ and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+ </if>
+ <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+ and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+ and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+ </if>
+ <if test="terms.updateTime != null and terms.updateTime !=''">
+ and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+ </if>
+ <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+ and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+ and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+ </if>
+ </where>
+ </if>
+ </sql>
+ <!-- 更新对象 -->
+ <update id="updateRsRolefun">
+ update
+ <include refid="table-name"/>
+ <set>
+ <include refid="set-part"/>
+ </set>
+ <where>
+ id = #{entity.id}
+ </where>
+ </update>
+ <!-- 条件更新对象 -->
+ <update id="updateRsRolefunTerms">
+ update
+ <include refid="table-name"/>
+ <set>
+ <include refid="set-part"/>
+ </set>
+ <include refid="where-part"/>
+ </update>
+ <!-- 根据编号物理删除 -->
+ <delete id="deleteRsRolefun">
+ delete from
+ <include refid="table-name" />
+ where id = #{id}
+ </delete>
+ <!-- 根据条件查询 -->
+ <select id="listTerms" resultMap="dataResult">
+ select
+ <include refid="column-part"/>
+ from
+ <include refid="table-name" />
+ <include refid="where-part"/>
+ </select>
+ <!-- 根据条件统计 -->
+ <select id="countTerms" resultType="java.lang.Long">
+ select
+ COUNT(1)
+ from
+ <include refid="table-name" />
+ <include refid="where-part"/>
+ </select>
+ <!-- 根据条件分页查询 -->
+ <select id="pageTerms" resultMap="dataResult">
+ SELECT
+ <include refid="column-part"/>
+ FROM
+ <include refid="table-name" />
+ <include refid="where-part"/>
+ <if test="page.sort != null">
+ <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+ isnull(${s.property}), ${s.property} ${s.direction}
+ </foreach>
+ </if>
+ <if test="page.sort == null">
+ order by isnull(create_time), create_time desc
+ </if>
+ limit #{page.offset}, #{page.size}
+ </select>
+
+ <!-- 获取角色的菜单权限 -->
+ <select id="listMenuByRoleId" resultType="cn.huge.module.rsoper.domain.dto.RoleMenuTreeDTO">
+ select t2.menu_name as label, t2.id as value, t2.menu_type as labelType,
+ t2.app_client as appClient, t2.menu_tag as powerTag, t2.menu_url as powerUrl,
+ t2.menu_icon as powerIcon, t2.parent_id as parentId
+ from dyh_rs_rolefun t1 left join dyh_rs_menu t2 on t1.menu_id = t2.id
+ where role_id = #{roleId}
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsRoleMapper.xml b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsRoleMapper.xml
new file mode 100644
index 0000000..fab74fb
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/dao/mapper/xml/RsRoleMapper.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+ * @title: 系统角色定义表
+ * @description: 自定义sql,请自行实现业务逻辑
+ * @company: hugeinfo
+ * @author: liyj
+ * @time:2024-09-10 10:57:02
+ * @version 1.0.0
+-->
+<mapper namespace="cn.huge.module.rsoper.dao.mapper.RsRoleMapper">
+ <!-- 结果集 -->
+ <resultMap id="dataResult" type="cn.huge.module.rsoper.domain.po.RsRole">
+ <result property="id" column="id"/>
+ <result property="name" column="name"/>
+ <result property="roleType" column="role_type"/>
+ <result property="deleteStatus" column="delete_status"/>
+ <result property="createTime" column="create_time"/>
+ <result property="updateTime" column="update_time"/>
+ </resultMap>
+ <!-- 表 -->
+ <sql id='table-name'>dyh_rs_role</sql>
+ <!-- 字段 -->
+ <sql id="column-part">
+ id,
+ name,
+ role_type,
+ delete_status,
+ create_time,
+ update_time
+ </sql>
+ <!-- 更新实体字段 -->
+ <sql id="set-part">
+ <if test="entity.name != null">name = #{entity.name},</if>
+ <if test="entity.roleType != null">role_type = #{entity.roleType},</if>
+ <if test="entity.deleteStatus != null">delete_status = #{entity.deleteStatus},</if>
+ <if test="entity.createTime != null">create_time = #{entity.createTime},</if>
+ <if test="entity.updateTime != null">update_time = #{entity.updateTime}</if>
+ </sql>
+ <!-- 条件 -->
+ <sql id="where-part">
+ <if test="terms != null">
+ <where>
+ <if test="terms.id != null and terms.id !=''">
+ and id = #{terms.id}
+ </if>
+ <if test="terms.name != null and terms.name !=''">
+ and name = #{terms.name}
+ </if>
+ <if test="terms.roleType != null and terms.roleType !=''">
+ and role_type = #{terms.roleType}
+ </if>
+ <if test="terms.deleteStatus = null and terms.deleteStatus =''">
+ and delete_status = 0
+ </if>
+ <if test="terms.deleteStatus != null and terms.deleteStatus !=''">
+ and delete_status = #{terms.deleteStatus}
+ </if>
+ <if test="terms.createTime != null and terms.createTime !=''">
+ and DATE_FORMAT(create_time,'%Y-%m-%d') = #{terms.createTime}
+ </if>
+ <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+ and (DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.createStart}
+ and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.createEnd})
+ </if>
+ <if test="terms.updateTime != null and terms.updateTime !=''">
+ and DATE_FORMAT(update_time,'%Y-%m-%d') = #{terms.updateTime}
+ </if>
+ <if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
+ and (DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{terms.updateStart}
+ and DATE_FORMAT(update_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{terms.updateEnd})
+ </if>
+ </where>
+ </if>
+ </sql>
+ <!-- 更新对象 -->
+ <update id="updateRsRole">
+ update
+ <include refid="table-name"/>
+ <set>
+ <include refid="set-part"/>
+ </set>
+ <where>
+ id = #{entity.id}
+ </where>
+ </update>
+ <!-- 条件更新对象 -->
+ <update id="updateRsRoleTerms">
+ update
+ <include refid="table-name"/>
+ <set>
+ <include refid="set-part"/>
+ </set>
+ <include refid="where-part"/>
+ </update>
+ <!-- 根据编号物理删除 -->
+ <delete id="deleteRsRole">
+ delete from
+ <include refid="table-name" />
+ where id = #{id}
+ </delete>
+ <!-- 根据条件查询 -->
+ <select id="listTerms" resultMap="dataResult">
+ select
+ <include refid="column-part"/>
+ from
+ <include refid="table-name" />
+ <include refid="where-part"/>
+ </select>
+ <!-- 根据条件统计 -->
+ <select id="countTerms" resultType="java.lang.Long">
+ select
+ COUNT(1)
+ from
+ <include refid="table-name" />
+ <include refid="where-part"/>
+ </select>
+ <!-- 根据条件分页查询 -->
+ <select id="pageTerms" resultMap="dataResult">
+ SELECT
+ <include refid="column-part"/>
+ FROM
+ <include refid="table-name" />
+ <include refid="where-part"/>
+ <if test="page.sort != null">
+ <foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
+ isnull(${s.property}), ${s.property} ${s.direction}
+ </foreach>
+ </if>
+ <if test="page.sort == null">
+ order by isnull(create_time), create_time desc
+ </if>
+ limit #{page.offset}, #{page.size}
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsMenuBO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsMenuBO.java
new file mode 100644
index 0000000..35bae29
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsMenuBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.rsoper.domain.bo;
+
+import cn.huge.module.rsoper.domain.po.RsMenu;
+
+/**
+ * @title: 平台功能目录表业务扩展类
+ * @description: 平台功能目录表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-09-10 10:57:02
+ * @version: 1.0.0
+ * @see cn.huge.module.rsoper.domain.po.RsMenu
+ */
+public class RsMenuBO extends RsMenu {
+
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsRoleBO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsRoleBO.java
new file mode 100644
index 0000000..c98a0be
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsRoleBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.rsoper.domain.bo;
+
+import cn.huge.module.rsoper.domain.po.RsRole;
+
+/**
+ * @title: 系统角色定义表业务扩展类
+ * @description: 系统角色定义表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-09-10 10:57:02
+ * @version: 1.0.0
+ * @see cn.huge.module.rsoper.domain.po.RsRole
+ */
+public class RsRoleBO extends RsRole {
+
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsRoleFunBO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsRoleFunBO.java
new file mode 100644
index 0000000..9e3f1f6
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/bo/RsRoleFunBO.java
@@ -0,0 +1,17 @@
+package cn.huge.module.rsoper.domain.bo;
+
+import cn.huge.module.rsoper.domain.po.RsRolefun;
+
+/**
+ * @title: 系统角色功能权限表业务扩展类
+ * @description: 系统角色功能权限表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-09-10 15:46:25
+ * @version: 1.0.0
+ * @see cn.huge.module.rsoper.domain.po.RsRolefun
+ */
+public class RsRolefunBO extends RsRolefun {
+
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/bo/RoleTreeBO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/dto/RoleMenuTreeDTO.java
similarity index 79%
rename from dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/bo/RoleTreeBO.java
rename to dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/dto/RoleMenuTreeDTO.java
index cf86616..da14bfd 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/domain/bo/RoleTreeBO.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/dto/RoleMenuTreeDTO.java
@@ -1,4 +1,4 @@
-package cn.huge.module.ctuser.domain.bo;
+package cn.huge.module.rsoper.domain.dto;
import lombok.Data;
@@ -11,10 +11,10 @@
* @author: chenx
* @time: 2022-03-05 14:16:28
* @version: 1.0.0
- * @see RoleTreeBO
+ * @see RoleMenuTreeDTO
*/
@Data
-public class RoleTreeBO {
+public class RoleMenuTreeDTO {
/**
* 树形名称
@@ -52,7 +52,12 @@
private String powerIcon;
/**
+ * 父级编号
+ */
+ private String parentId;
+
+ /**
* 子集
*/
- private List<RoleTreeBO> children;
+ private List<RoleMenuTreeDTO> children;
}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/dto/RsRoleDTO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/dto/RsRoleDTO.java
new file mode 100644
index 0000000..c4a4dd7
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/dto/RsRoleDTO.java
@@ -0,0 +1,38 @@
+package cn.huge.module.rsoper.domain.dto;
+
+import cn.huge.module.ctrole.domain.po.CtRolefun;
+import cn.huge.module.rsoper.domain.po.RsRole;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @title: 系统角色定义表业务扩展类
+ * @description: 系统角色定义表业务扩展类
+ * @company: hugeinfo
+ * @author: liyj
+ * @time: 2024-09-10 10:57:02
+ * @version: 1.0.0
+ * @see RsRole
+ */
+@Data
+public class RsRoleDTO extends RsRole {
+
+ /**
+ * 角色代码
+ */
+ private String roleCode;
+
+ /**
+ * 角色类型,1:系统角色,2:用户自定义角色
+ */
+ private Integer roleType;
+
+ /**
+ * 返回树形结构
+ */
+ List<RoleMenuTreeDTO> roleTreeBOS;
+
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsMenu.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsMenu.java
new file mode 100644
index 0000000..262477c
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsMenu.java
@@ -0,0 +1,108 @@
+package cn.huge.module.rsoper.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 平台功能目录表数据库对应关系类
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2024-09-10 10:57:02
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_rs_menu")
+@Data
+public class RsMenu {
+
+ /**
+ * 目录编号
+ */
+ @TableId(value = "id")
+ private String id;
+
+ /**
+ * 目录类型,0:应用,1:模块,2:菜单,3:功能
+ */
+ @TableField(value = "menu_type")
+ private Integer menuType;
+
+ /**
+ * 目录标签
+ */
+ @TableField(value = "menu_tag")
+ private String menuTag;
+
+ /**
+ * 目录名称
+ */
+ @TableField(value = "menu_name")
+ private String menuName;
+
+ /**
+ * 目录图标
+ */
+ @TableField(value = "menu_icon")
+ private String menuIcon;
+
+ /**
+ * 目录访问url
+ */
+ @TableField(value = "menu_url")
+ private String menuUrl;
+
+ /**
+ * 目录描述
+ */
+ @TableField(value = "menu_des")
+ private String menuDes;
+
+ /**
+ * 所属应用客户端,1:web端,2:当事人小程序
+ */
+ @TableField(value = "app_client")
+ private Integer appClient;
+
+ /**
+ * 所属应用类型,1:普通应用,2:付费应用
+ */
+ @TableField(value = "app_type")
+ private Integer appType;
+
+ /**
+ * 同级目录排序
+ */
+ @TableField(value = "sorts")
+ private Integer sorts;
+
+ /**
+ * 父模块编号,根级默认root
+ */
+ @TableField(value = "parent_id")
+ private String parentId;
+
+ /**
+ * 删除状态,0:未删除,1:已删除
+ */
+ @TableLogic
+ @TableField(value = "delete_status")
+ private Integer deleteStatus;
+
+ /**
+ * 创建时间
+ */
+ @TableField(value = "create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField(value = "update_time")
+ private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsRole.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsRole.java
new file mode 100644
index 0000000..3a6c8ef
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsRole.java
@@ -0,0 +1,60 @@
+package cn.huge.module.rsoper.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 系统角色定义表数据库对应关系类
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2024-09-10 10:57:02
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_rs_role")
+@Data
+public class RsRole {
+
+ /**
+ * 角色编号
+ */
+ @TableId(value = "id")
+ private String id;
+
+ /**
+ * 角色名称
+ */
+ @TableField(value = "name")
+ private String name;
+
+ /**
+ * 角色类型,1:系统角色,2:用户自定义角色
+ */
+ @TableField(value = "role_type")
+ private Integer roleType;
+
+ /**
+ * 删除状态,0:未删除,1:已删除
+ */
+ @TableLogic
+ @TableField(value = "delete_status")
+ private Integer deleteStatus;
+
+ /**
+ * 创建时间
+ */
+ @TableField(value = "create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField(value = "update_time")
+ private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsRoleFun.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsRoleFun.java
new file mode 100644
index 0000000..1f8ffcb
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/domain/po/RsRoleFun.java
@@ -0,0 +1,59 @@
+package cn.huge.module.rsoper.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: 系统角色功能权限表数据库对应关系类
+ * @description: PO中的属性与数据表是一一对应关系,如需根据业务处理不同,请使用BO对象。
+ * @company:hugeinfo
+ * @author: liyj
+ * @time: 2024-09-10 15:46:25
+ * @version 1.0.0
+ */
+@TableName(value = "dyh_rs_rolefun")
+@Data
+public class RsRolefun {
+
+ /**
+ * 角色功能编号
+ */
+ @TableId(value = "id")
+ private String id;
+
+ /**
+ * 角色编号
+ */
+ @TableField(value = "role_id")
+ private String roleId;
+
+ /**
+ * 权限编号
+ */
+ @TableField(value = "menu_id")
+ private String menuId;
+
+ /**
+ * 父级编号,根级默认为root
+ */
+ @TableField(value = "parent_id")
+ private String parentId;
+
+ /**
+ * 创建时间
+ */
+ @TableField(value = "create_time")
+ private Date createTime;
+
+ /**
+ * 更新时间
+ */
+ @TableField(value = "update_time")
+ private Date updateTime;
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsMenuService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsMenuService.java
new file mode 100644
index 0000000..a436f1a
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsMenuService.java
@@ -0,0 +1,133 @@
+package cn.huge.module.rsoper.service;
+
+import cn.huge.base.common.exception.ServiceException;
+import cn.huge.base.common.utils.DateUtils;
+import cn.huge.base.common.utils.IdUtils;
+import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.rsoper.dao.mapper.RsMenuMapper;
+import cn.huge.module.rsoper.domain.po.RsMenu;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.PostConstruct;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @title: 平台功能目录表业务逻辑处理
+ * @Description 平台功能目录表业务逻辑处理
+ * @company hugeinfo
+ * @author liyj
+ * @Time 2024-09-10 10:57:02
+ * @version 1.0.0
+ */
+@Slf4j
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class RsMenuService extends ServiceImpl<RsMenuMapper, RsMenu>{
+
+ @Autowired
+ private RsMenuMapper mapper;
+
+ @Autowired
+ private UtilsClientImpl utilsClient;
+
+ /**
+ * 更新对象
+ * @param entity 对象
+ */
+ public void updateRsMenu(RsMenu entity){
+ try{
+ mapper.updateRsMenu(entity);
+ }catch (Exception e){
+ log.error("[RsMenuService.updateRsMenu]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsMenuService.updateRsMenu", e);
+ }
+ }
+
+ /**
+ * 条件更新对象
+ * @param entity 对象
+ * @param terms 条件
+ */
+ public void updateRsMenuTerms(RsMenu entity, Map<String, Object> terms){
+ try{
+ mapper.updateRsMenuTerms(entity, terms);
+ }catch (Exception e){
+ log.error("[RsMenuService.updateRsMenuTerms]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsMenuService.updateRsMenuTerms", e);
+ }
+ }
+
+ /**
+ * 根据编号物理删除
+ * @param id 查询条件集合
+ */
+ public void deleteRsMenu(String id){
+ try{
+ mapper.deleteRsMenu(id);
+ }catch (Exception e){
+ log.error("[RsMenuService.deleteRsMenu]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsMenuService.deleteRsMenu", e);
+ }
+ }
+
+ /**
+ * 按条件查询
+ * @param terms 条件
+ * @return List
+ */
+ public List<RsMenu> listTerms(Map<String, Object> terms){
+ return mapper.listTerms(terms);
+ }
+
+ /**
+ * 按条件统计
+ * @param terms 条件
+ * @return long
+ */
+ public long countTerms(Map<String, Object> terms){
+ return mapper.countTerms(terms);
+ }
+
+ /**
+ * 按条件分页查询
+ * @param page 分页对象
+ * @param terms 条件
+ * @return Page
+ */
+ public Page<RsMenu> pageQuery(PageRequest page, Map<String, Object> terms){
+ long total = mapper.countTerms(terms);
+ List<RsMenu> content = mapper.pageTerms(page, terms);
+ return new PageImpl<RsMenu>(content, page, total);
+ }
+
+ /**
+ * 新增或更新对象
+ * @param rsMenu 实体对象
+ */
+ public void saveRsMenu(RsMenu rsMenu){
+ try{
+ Date nowDate = DateUtils.getNowDate();
+ // 判断是否新增
+ if (IdUtils.checkNewId(rsMenu.getId())){
+ rsMenu.setId(utilsClient.getNewTimeId());
+ rsMenu.setCreateTime(nowDate);
+ }
+ rsMenu.setUpdateTime(nowDate);
+ this.saveOrUpdate(rsMenu);
+ }catch (Exception e){
+ log.error("[RsMenuService.saveRsMenu]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsMenuService.saveRsMenu", e);
+ }
+ }
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsRoleFunService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsRoleFunService.java
new file mode 100644
index 0000000..56493d4
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsRoleFunService.java
@@ -0,0 +1,243 @@
+package cn.huge.module.rsoper.service;
+
+import cn.huge.base.common.exception.ServiceException;
+import cn.huge.base.common.utils.DateUtils;
+import cn.huge.base.common.utils.IdUtils;
+import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.constant.BaseConsts;
+import cn.huge.module.cust.constant.MenuBaseEnum;
+import cn.huge.module.cust.constant.RoleBaseEnum;
+import cn.huge.module.rsoper.dao.mapper.RsRolefunMapper;
+import cn.huge.module.rsoper.domain.dto.RoleMenuTreeDTO;
+import cn.huge.module.rsoper.domain.po.RsMenu;
+import cn.huge.module.rsoper.domain.po.RsRole;
+import cn.huge.module.rsoper.domain.po.RsRolefun;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.PostConstruct;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @title: 系统角色功能权限表业务逻辑处理
+ * @Description 系统角色功能权限表业务逻辑处理
+ * @company hugeinfo
+ * @author liyj
+ * @Time 2024-09-10 15:46:25
+ * @version 1.0.0
+ */
+@Slf4j
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class RsRolefunService extends ServiceImpl<RsRolefunMapper, RsRolefun>{
+
+ @Autowired
+ private RsRolefunMapper mapper;
+
+ @Autowired
+ private UtilsClientImpl utilsClient;
+ @Autowired
+ private RsMenuService rsMenuService;
+ @Autowired
+ private RsRoleService rsRoleService;
+
+ /**
+ * 更新对象
+ * @param entity 对象
+ */
+ public void updateRsRolefun(RsRolefun entity){
+ try{
+ mapper.updateRsRolefun(entity);
+ }catch (Exception e){
+ log.error("[RsRolefunService.updateRsRolefun]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRolefunService.updateRsRolefun", e);
+ }
+ }
+
+ /**
+ * 条件更新对象
+ * @param entity 对象
+ * @param terms 条件
+ */
+ public void updateRsRolefunTerms(RsRolefun entity, Map<String, Object> terms){
+ try{
+ mapper.updateRsRolefunTerms(entity, terms);
+ }catch (Exception e){
+ log.error("[RsRolefunService.updateRsRolefunTerms]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRolefunService.updateRsRolefunTerms", e);
+ }
+ }
+
+ /**
+ * 根据编号物理删除
+ * @param id 查询条件集合
+ */
+ public void deleteRsRolefun(String id){
+ try{
+ mapper.deleteRsRolefun(id);
+ }catch (Exception e){
+ log.error("[RsRolefunService.deleteRsRolefun]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRolefunService.deleteRsRolefun", e);
+ }
+ }
+
+ /**
+ * 按条件查询
+ * @param terms 条件
+ * @return List
+ */
+ public List<RsRolefun> listTerms(Map<String, Object> terms){
+ return mapper.listTerms(terms);
+ }
+
+ /**
+ * 按条件统计
+ * @param terms 条件
+ * @return long
+ */
+ public long countTerms(Map<String, Object> terms){
+ return mapper.countTerms(terms);
+ }
+
+ /**
+ * 按条件分页查询
+ * @param page 分页对象
+ * @param terms 条件
+ * @return Page
+ */
+ public Page<RsRolefun> pageQuery(PageRequest page, Map<String, Object> terms){
+ long total = mapper.countTerms(terms);
+ List<RsRolefun> content = mapper.pageTerms(page, terms);
+ return new PageImpl<RsRolefun>(content, page, total);
+ }
+
+ /**
+ * 新增或更新对象
+ * @param rsRolefun 实体对象
+ */
+ public void saveRsRolefun(RsRolefun rsRolefun){
+ try{
+ Date nowDate = DateUtils.getNowDate();
+ // 判断是否新增
+ if (IdUtils.checkNewId(rsRolefun.getId())){
+ rsRolefun.setId(utilsClient.getNewTimeId());
+ rsRolefun.setCreateTime(nowDate);
+ }
+ rsRolefun.setUpdateTime(nowDate);
+ this.saveOrUpdate(rsRolefun);
+ }catch (Exception e){
+ log.error("[RsRolefunService.saveRsRolefun]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRolefunService.saveRsRolefun", e);
+ }
+ }
+
+ /**
+ * 获取角色的菜单权限
+ * @param roleId
+ * @return
+ */
+ public List<RoleMenuTreeDTO> listMenuByRoleId(String roleId){
+ return mapper.listMenuByRoleId(roleId);
+ }
+
+ /**
+ * 查询角色菜单权限树形结构
+ * @param roleId 角色编号
+ * @return List<RoleTreeBO> 树形结构
+ */
+ public List<RoleMenuTreeDTO> getRolefunTree(String roleId){
+ try{
+ List<RoleMenuTreeDTO> roleMenuTreeDTOList = mapper.listMenuByRoleId(roleId);
+ List<RoleMenuTreeDTO> firstList = new ArrayList<>();
+ List<RoleMenuTreeDTO> treeList = new ArrayList<>();
+ if (CollectionUtils.isNotEmpty(roleMenuTreeDTOList)) {
+ //第一级菜单集合
+ for (RoleMenuTreeDTO roleMenuTreeDTO: roleMenuTreeDTOList) {
+ // 一级菜单parentId为root
+ if (BaseConsts.ROOT.equals(roleMenuTreeDTO.getParentId())) {
+ firstList.add(roleMenuTreeDTO);
+ }
+ }
+ // 为一级菜单设置子菜单,getChild是递归调用的
+ for (RoleMenuTreeDTO roleMenuTreeDTO : firstList) {
+ roleMenuTreeDTO.setChildren(getChild(roleMenuTreeDTO.getValue(), roleMenuTreeDTOList));
+ treeList.add(roleMenuTreeDTO);
+ }
+ }
+ return treeList;
+ }catch (Exception e){
+ log.error("[RsRolefunService.getRolefunTree]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRolefunService.getRolefunTree", e);
+ }
+ }
+
+ /**
+ * 递归查找子菜单
+ * @param id 当前菜单id
+ * @param roleMenuTreeDTOList 要查找的列表
+ * @return List<TreeBO> 树形列表集合
+ */
+ private List<RoleMenuTreeDTO> getChild(String id, List<RoleMenuTreeDTO> roleMenuTreeDTOList) {
+ // 子菜单
+ List<RoleMenuTreeDTO> childList = new ArrayList<>();
+ for (RoleMenuTreeDTO roleMenuTreeDTO: roleMenuTreeDTOList) {
+ // 遍历所有节点,将父菜单id与传过来的id比较
+ if (StringUtils.isNotBlank(roleMenuTreeDTO.getParentId())) {
+ if (roleMenuTreeDTO.getParentId().equals(id)) {
+ roleMenuTreeDTO.setChildren(getChild(roleMenuTreeDTO.getValue(), roleMenuTreeDTOList));
+ childList.add(roleMenuTreeDTO);
+ }
+ }
+ }
+ return childList;
+ }
+
+ /**
+ * 人工临时处理-给所有角色赋菜单权限
+ */
+ public void webSetFun(){
+ try{
+ // 查询客户中心
+ QueryWrapper<RsMenu> rsMenuQueryWrapper = new QueryWrapper<>();
+ rsMenuQueryWrapper.eq("menu_tag", MenuBaseEnum.MENU_APP_2.getIndex());
+ RsMenu khzxMenu = rsMenuService.getOne(rsMenuQueryWrapper);
+ // 给角色赋菜单权限
+ List<RsRole> rsRoleList = rsRoleService.list();
+ List<RsMenu> rsMenuList = rsMenuService.list();
+ for (RsRole rsRole: rsRoleList){
+ QueryWrapper<RsRolefun> rsRoleFunQueryWrapper = new QueryWrapper<>();
+ rsRoleFunQueryWrapper.eq("role_id", rsRole.getId());
+ mapper.delete(rsRoleFunQueryWrapper);
+ for (RsMenu rsMenu: rsMenuList){
+ if (RoleBaseEnum.ROLE_4.getIndex().equals(rsRole.getId())){
+ if (khzxMenu.getId().equals(rsMenu.getId()) || khzxMenu.getId().equals(rsMenu.getParentId())){
+ continue;
+ }
+ }
+ RsRolefun rsRolefun = new RsRolefun();
+ rsRolefun.setId(utilsClient.getNewTimeId());
+ rsRolefun.setRoleId(rsRole.getId());
+ rsRolefun.setMenuId(rsMenu.getId());
+ mapper.insert(rsRolefun);
+ }
+ }
+ }catch (Exception e){
+ log.error("[RsRoleFunService.webSetFun]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRoleFunService.webSetFun", e);
+ }
+ }
+
+}
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsRoleService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsRoleService.java
new file mode 100644
index 0000000..56af695
--- /dev/null
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/rsoper/service/RsRoleService.java
@@ -0,0 +1,162 @@
+package cn.huge.module.rsoper.service;
+
+import cn.huge.base.common.exception.ServiceException;
+import cn.huge.base.common.utils.DateUtils;
+import cn.huge.base.common.utils.IdUtils;
+import cn.huge.module.client.api.impl.UtilsClientImpl;
+import cn.huge.module.ctrole.domain.bo.CtRoleBO;
+import cn.huge.module.rsoper.dao.mapper.RsRoleMapper;
+import cn.huge.module.rsoper.domain.dto.RoleMenuTreeDTO;
+import cn.huge.module.rsoper.domain.dto.RsRoleDTO;
+import cn.huge.module.rsoper.domain.po.RsRole;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.PostConstruct;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @title: 系统角色定义表业务逻辑处理
+ * @Description 系统角色定义表业务逻辑处理
+ * @company hugeinfo
+ * @author liyj
+ * @Time 2024-09-10 10:57:02
+ * @version 1.0.0
+ */
+@Slf4j
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class RsRoleService extends ServiceImpl<RsRoleMapper, RsRole>{
+
+ @Autowired
+ private RsRoleMapper mapper;
+
+ @Autowired
+ private UtilsClientImpl utilsClient;
+ @Autowired
+ private RsRolefunService rsRolefunService;
+
+ /**
+ * 更新对象
+ * @param entity 对象
+ */
+ public void updateRsRole(RsRole entity){
+ try{
+ mapper.updateRsRole(entity);
+ }catch (Exception e){
+ log.error("[RsRoleService.updateRsRole]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRoleService.updateRsRole", e);
+ }
+ }
+
+ /**
+ * 条件更新对象
+ * @param entity 对象
+ * @param terms 条件
+ */
+ public void updateRsRoleTerms(RsRole entity, Map<String, Object> terms){
+ try{
+ mapper.updateRsRoleTerms(entity, terms);
+ }catch (Exception e){
+ log.error("[RsRoleService.updateRsRoleTerms]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRoleService.updateRsRoleTerms", e);
+ }
+ }
+
+ /**
+ * 根据编号物理删除
+ * @param id 查询条件集合
+ */
+ public void deleteRsRole(String id){
+ try{
+ mapper.deleteRsRole(id);
+ }catch (Exception e){
+ log.error("[RsRoleService.deleteRsRole]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRoleService.deleteRsRole", e);
+ }
+ }
+
+ /**
+ * 按条件查询
+ * @param terms 条件
+ * @return List
+ */
+ public List<RsRole> listTerms(Map<String, Object> terms){
+ return mapper.listTerms(terms);
+ }
+
+ /**
+ * 按条件统计
+ * @param terms 条件
+ * @return long
+ */
+ public long countTerms(Map<String, Object> terms){
+ return mapper.countTerms(terms);
+ }
+
+ /**
+ * 按条件分页查询
+ * @param page 分页对象
+ * @param terms 条件
+ * @return Page
+ */
+ public Page<RsRole> pageQuery(PageRequest page, Map<String, Object> terms){
+ long total = mapper.countTerms(terms);
+ List<RsRole> content = mapper.pageTerms(page, terms);
+ return new PageImpl<RsRole>(content, page, total);
+ }
+
+ /**
+ * 新增或更新对象
+ * @param rsRole 实体对象
+ */
+ public void saveRsRole(RsRole rsRole){
+ try{
+ Date nowDate = DateUtils.getNowDate();
+ // 判断是否新增
+ if (IdUtils.checkNewId(rsRole.getId())){
+ rsRole.setId(utilsClient.getNewTimeId());
+ rsRole.setCreateTime(nowDate);
+ }
+ rsRole.setUpdateTime(nowDate);
+ this.saveOrUpdate(rsRole);
+ }catch (Exception e){
+ log.error("[RsRoleService.saveRsRole]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRoleService.saveRsRole", e);
+ }
+ }
+
+ /**
+ * 获取角色的菜单权限
+ * @param roleId
+ * @param userId
+ * @return
+ */
+ public RsRoleDTO webGetRoleMenu(String roleId, String userId){
+ try{
+ // 查询角色权限树形结构
+ List<RoleMenuTreeDTO> roleTrees = rsRolefunService.getRolefunTree(roleId);
+ // 封装角色权限信息
+ RsRole rsRole = this.getById(roleId);
+ RsRoleDTO rsRoleDTO = new RsRoleDTO();
+ BeanUtils.copyProperties(rsRole, rsRoleDTO);
+ rsRoleDTO.setRoleCode(rsRole.getId());
+ rsRoleDTO.setRoleTreeBOS(roleTrees);
+ return rsRoleDTO;
+ }catch (Exception e){
+ log.error("[RsRoleService.webGetRoleMenu]调用失败,异常信息:"+e, e);
+ throw new ServiceException("RsRoleService.webGetRoleMenu", e);
+ }
+ }
+
+}
--
Gitblit v1.8.0