From e69306e5308db346a84784a62112a1e36da85f47 Mon Sep 17 00:00:00 2001 From: liheng Date: Fri, 27 Mar 2026 14:37:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0Oracle=20=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=8F=92=E4=BB=B6&=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yfd/platform/config/MybitsPlusConfig.java | 17 ++++++++++++++--- .../system/controller/SysRoleController.java | 12 +++--------- .../platform/system/mapper/SysRoleMapper.java | 8 ++++++++ .../system/service/ISysRoleService.java | 2 ++ .../impl/SysOrganizationServiceImpl.java | 12 ++++++++---- .../system/service/impl/SysRoleServiceImpl.java | 5 +++++ .../resources/mapper/system/SysRoleMapper.xml | 14 ++++++++++++++ 7 files changed, 54 insertions(+), 16 deletions(-) diff --git a/backend/src/main/java/com/yfd/platform/config/MybitsPlusConfig.java b/backend/src/main/java/com/yfd/platform/config/MybitsPlusConfig.java index de009d7..99d4330 100644 --- a/backend/src/main/java/com/yfd/platform/config/MybitsPlusConfig.java +++ b/backend/src/main/java/com/yfd/platform/config/MybitsPlusConfig.java @@ -14,11 +14,22 @@ import org.springframework.context.annotation.Configuration; @Configuration public class MybitsPlusConfig { +// @Bean +// public MybatisPlusInterceptor mybatisPlusInterceptor() { +// MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); +// mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); +// return mybatisPlusInterceptor; +// } + + /** + * 分页插件配置(Oracle 兼容) + */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { - MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); - mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); - return mybatisPlusInterceptor; + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + // 添加分页拦截器,指定数据库类型为 Oracle + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.ORACLE)); + return interceptor; } } diff --git a/backend/src/main/java/com/yfd/platform/system/controller/SysRoleController.java b/backend/src/main/java/com/yfd/platform/system/controller/SysRoleController.java index ea2fa0f..dae5472 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/SysRoleController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/SysRoleController.java @@ -1,6 +1,7 @@ package com.yfd.platform.system.controller; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.yfd.platform.annotation.Log; @@ -46,15 +47,8 @@ public class SysRoleController { @PostMapping("/list") @Operation(summary = "查询所有角色") @ResponseBody - public List list(String rolename) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - if (StrUtil.isNotEmpty(rolename)) { - //根据角色名称模糊查询 - queryWrapper.like("rolename", rolename); - } - //根据角色级别,角色编号 正序排序 - queryWrapper.ne("level", "1").orderByAsc("level", "lastmodifydate"); - return roleService.list(queryWrapper); + public List list(@RequestParam(required = false) String rolename) { + return roleService.selectRoleList(rolename); } /*********************************** diff --git a/backend/src/main/java/com/yfd/platform/system/mapper/SysRoleMapper.java b/backend/src/main/java/com/yfd/platform/system/mapper/SysRoleMapper.java index 654d347..09201a1 100644 --- a/backend/src/main/java/com/yfd/platform/system/mapper/SysRoleMapper.java +++ b/backend/src/main/java/com/yfd/platform/system/mapper/SysRoleMapper.java @@ -101,4 +101,12 @@ public interface SysRoleMapper extends BaseMapper { * 返回值说明:角色 ID 列表 ***********************************/ List getRoleIdsByUserId(String id); + + /********************************** + * 用途说明:查询角色列表(Oracle 兼容) + * 参数说明:rolename - 角色名称 + * 返回值说明:角色列表 + ***********************************/ + List selectRoleList(@Param("rolename") String rolename); + } diff --git a/backend/src/main/java/com/yfd/platform/system/service/ISysRoleService.java b/backend/src/main/java/com/yfd/platform/system/service/ISysRoleService.java index 7dcdb5c..2065a17 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/ISysRoleService.java +++ b/backend/src/main/java/com/yfd/platform/system/service/ISysRoleService.java @@ -63,4 +63,6 @@ public interface ISysRoleService extends IService { * 返回值说明: 是否分配成功 ***********************************/ boolean setMenuById(String id, String menuIds); + + List selectRoleList(String rolename); } diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/SysOrganizationServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/SysOrganizationServiceImpl.java index 762612b..7e79194 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/SysOrganizationServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/SysOrganizationServiceImpl.java @@ -13,6 +13,7 @@ import com.yfd.platform.system.mapper.SysOrganizationMapper; import com.yfd.platform.system.mapper.SysRoleMapper; import com.yfd.platform.system.service.ISysOrganizationService; import com.yfd.platform.system.service.IUserService; +import com.yfd.platform.utils.ObjectConverterUtil; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; @@ -128,12 +129,15 @@ public class SysOrganizationServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("parentid", parentid); //根据上级id 查询 listMap = this.listMaps(queryWrapper.orderByAsc("orgcode")); - if (!listMap.isEmpty()) { //判断是否存在子集 - for (int i = 0; i < listMap.size(); i++) { //遍历表数据 + + if (!listMap.isEmpty()) { + List> mapList = ObjectConverterUtil.convertMapFieldsToEntityFormat(SysOrganization.class, listMap);//判断是否存在子集 + for (int i = 0; i < mapList.size(); i++) { //遍历表数据 List> childList = - child(listMap.get(i).get("id").toString()); //循环获取下一子集 - listMap.get(i).put("childList", childList); //添加新列 子集 + child(mapList.get(i).get("id").toString()); //循环获取下一子集 + mapList.get(i).put("childList", childList); //添加新列 子集 } + return mapList; } return listMap; } diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/SysRoleServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/SysRoleServiceImpl.java index 63d5c36..b14e1e6 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/SysRoleServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/SysRoleServiceImpl.java @@ -160,4 +160,9 @@ public class SysRoleServiceImpl extends ServiceImpl impl return true; } + @Override + public List selectRoleList(String rolename) { + return roleMapper.selectRoleList(rolename); + } + } diff --git a/backend/src/main/resources/mapper/system/SysRoleMapper.xml b/backend/src/main/resources/mapper/system/SysRoleMapper.xml index 6f90d76..0fcf2af 100644 --- a/backend/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/backend/src/main/resources/mapper/system/SysRoleMapper.xml @@ -111,6 +111,20 @@ FROM sys_role_users WHERE userid = #{id} + + delete from sys_role_users where userid !=(select u.id from sys_user u where u.account="admin") and roleid=#{roleid} and userid=#{urserid}