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