diff --git a/backend/src/main/java/com/yfd/platform/system/controller/SysConfigController.java b/backend/src/main/java/com/yfd/platform/system/controller/SysConfigController.java index 3cfa7cc9..d426628a 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/SysConfigController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/SysConfigController.java @@ -3,6 +3,7 @@ package com.yfd.platform.system.controller; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.yfd.platform.config.ResponseResult; import com.yfd.platform.system.domain.SysConfig; import com.yfd.platform.system.service.ISysConfigService; @@ -38,16 +39,22 @@ public class SysConfigController { @PostMapping("/getOneById") @Operation(summary = "根据id查询全局配置详情记录") @ResponseBody - public SysConfig getOneById(String id){ - return configService.getById(id); + public SysConfig getOneById(String id, + @RequestHeader(value = "Tenant_id", required = false) String tenantId){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysConfig::getId, id) + .eq(StrUtil.isNotBlank(tenantId), SysConfig::getTenantId, StrUtil.trim(tenantId)); + return configService.getOne(queryWrapper); } @PostMapping("/addConfig") @Operation(summary = "根据id查询全局配置详情记录") @ResponseBody - public ResponseResult addConfig(@RequestBody SysConfig config ) throws IOException, UnsupportedAudioFileException { + public ResponseResult addConfig(@RequestBody SysConfig config, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) throws IOException, UnsupportedAudioFileException { if (StrUtil.isEmpty(config.getId())){ config.setId(IdUtil.fastSimpleUUID()); } + config.setTenantId(StrUtil.trimToNull(tenantId)); config.setLastmodifier(userService.getUsername()); config.setLastmodifydate(new Timestamp(System.currentTimeMillis())); boolean ok=configService.save(config); @@ -57,7 +64,15 @@ public class SysConfigController { @PostMapping("/updateById") @Operation(summary = "根据id修改全局配置记录") @ResponseBody - public ResponseResult updateById(@RequestBody SysConfig config) throws IOException, UnsupportedAudioFileException { + public ResponseResult updateById(@RequestBody SysConfig config, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) throws IOException, UnsupportedAudioFileException { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysConfig::getId, config.getId()) + .eq(StrUtil.isNotBlank(tenantId), SysConfig::getTenantId, StrUtil.trim(tenantId)); + if (configService.getOne(queryWrapper) == null) { + return ResponseResult.error("未找到对应租户的配置记录"); + } + config.setTenantId(StrUtil.trimToNull(tenantId)); config.setLastmodifier(userService.getUsername()); config.setLastmodifydate(new Timestamp(System.currentTimeMillis())); boolean ok=configService.updateById(config); diff --git a/backend/src/main/java/com/yfd/platform/system/controller/SysLogController.java b/backend/src/main/java/com/yfd/platform/system/controller/SysLogController.java index 9f2081aa..2a949e23 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/SysLogController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/SysLogController.java @@ -1,5 +1,6 @@ package com.yfd.platform.system.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yfd.platform.annotation.Log; import com.yfd.platform.config.ResponseResult; @@ -42,10 +43,11 @@ public class SysLogController { @Operation(summary = "分页查询日志信息") public ResponseResult getLogList(String username, String optType, String startDate, - String endDate, Page page) { - + String endDate, Page page, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + tenantId=null; Page sysLogPage = sysLogService.getLogList(username, optType, - startDate, endDate, page); + startDate, endDate, page, StrUtil.trimToNull(tenantId)); Map map = new HashMap<>(); map.put("list", sysLogPage.getRecords()); map.put("total", sysLogPage.getTotal()); @@ -65,10 +67,11 @@ public class SysLogController { public void exportExcel(String username, String optType, String startDate, String endDate, Page page, - HttpServletResponse response) throws IOException { - + HttpServletResponse response, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) throws IOException { + tenantId=null; Page sysLogPage = sysLogService.getLogList(username, optType, - startDate, endDate, page); + startDate, endDate, page, StrUtil.trimToNull(tenantId)); sysLogService.exportExcel(sysLogPage.getRecords(), response); } } diff --git a/backend/src/main/java/com/yfd/platform/system/controller/SysMenuController.java b/backend/src/main/java/com/yfd/platform/system/controller/SysMenuController.java index 3ac00e2e..dea76c02 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/SysMenuController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/SysMenuController.java @@ -2,6 +2,7 @@ package com.yfd.platform.system.controller; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.yfd.platform.annotation.Log; import com.yfd.platform.config.ResponseResult; @@ -58,8 +59,9 @@ public class SysMenuController { @ResponseBody public List> getMenuButtonTree(String systemcode, String name, - String isdisplay) { - return sysMenuService.getMenuButtonTree(systemcode, name, isdisplay); + String isdisplay, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + return sysMenuService.getMenuButtonTree(systemcode, name, isdisplay, StrUtil.trimToNull(tenantId)); } /*********************************** @@ -75,8 +77,9 @@ public class SysMenuController { @ResponseBody public List> getMenuTree(String systemcode, String name, - String isdisplay) { - return sysMenuService.getMenuTree(systemcode, name, isdisplay); + String isdisplay, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + return sysMenuService.getMenuTree(systemcode, name, isdisplay, StrUtil.trimToNull(tenantId)); } /*********************************** @@ -90,11 +93,12 @@ public class SysMenuController { @PostMapping("/permissionAssignment") @Operation(summary = "获取分配权限(不含按钮)") @ResponseBody - public List> permissionAssignment(String code, String roleId) { + public List> permissionAssignment(String code, String roleId, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { if (StrUtil.isBlank(code)) { code = "1"; } - return sysMenuService.permissionAssignment(code,roleId); + return sysMenuService.permissionAssignment(code, roleId, StrUtil.trimToNull(tenantId)); } /********************************** @@ -105,13 +109,13 @@ public class SysMenuController { @GetMapping("/treeRoutes") @Operation(summary = "获取当前用户菜单结构树") @ResponseBody - public List> getMenuTreeByUser() { + public List> getMenuTreeByUser(@RequestHeader(value = "Tenant_id", required = false) String tenantId) { SysUser userInfo = userService.getUserInfo(); String id = ""; if (0 != userInfo.getUsertype()) { id = userInfo.getId(); } - return sysMenuService.getMenuTree(id); + return sysMenuService.getMenuTree(id, StrUtil.isNotBlank(tenantId) ? StrUtil.trimToNull(tenantId) : userInfo.getTenantId()); } /*********************************** @@ -123,8 +127,12 @@ public class SysMenuController { @PostMapping("/getOneById") @Operation(summary = "根据id查询菜单或按钮详情") @ResponseBody - public ResponseResult getOneById(String id) { - SysMenu sysMenu = sysMenuService.getById(id); + public ResponseResult getOneById(String id, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysMenu::getId, id) + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId)); + SysMenu sysMenu = sysMenuService.getOne(queryWrapper); return ResponseResult.successData(sysMenu); } @@ -138,7 +146,9 @@ public class SysMenuController { @PostMapping("/addMenu") @Operation(summary = "新增菜单及按钮") @ResponseBody - public ResponseResult addMenu(@RequestBody SysMenu sysMenu) { + public ResponseResult addMenu(@RequestBody SysMenu sysMenu, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + sysMenu.setTenantId(StrUtil.trimToNull(tenantId)); boolean isOk = sysMenuService.addMenu(sysMenu); if (isOk) { return ResponseResult.success(); @@ -157,7 +167,15 @@ public class SysMenuController { @PostMapping("/updateById") @Operation(summary = "修改菜单及按钮") @ResponseBody - public ResponseResult updateById(@RequestBody SysMenu sysMenu) { + public ResponseResult updateById(@RequestBody SysMenu sysMenu, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysMenu::getId, sysMenu.getId()) + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId)); + if (sysMenuService.getOne(queryWrapper) == null) { + return ResponseResult.error("未找到对应租户的菜单"); + } + sysMenu.setTenantId(StrUtil.trimToNull(tenantId)); sysMenu.setLastmodifier(userService.getUsername()); sysMenu.setLastmodifydate(new Timestamp(System.currentTimeMillis())); boolean isOk = sysMenuService.updateById(sysMenu); @@ -179,7 +197,14 @@ public class SysMenuController { @PostMapping("/deleteIcon") @Operation(summary = "根据id删除单个图标") @ResponseBody - public ResponseResult deleteIcon(@RequestParam String id) { + public ResponseResult deleteIcon(@RequestParam String id, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysMenu::getId, id) + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId)); + if (sysMenuService.getOne(queryWrapper) == null) { + return ResponseResult.error("未找到对应租户的菜单"); + } boolean ok = sysMenuService.deleteIcon(id); if (ok) { return ResponseResult.success(); @@ -199,10 +224,11 @@ public class SysMenuController { @PostMapping("/setIsDisplay") @Operation(summary = "更新菜单及按钮是否有效") @ResponseBody - public ResponseResult setIsDisplay(String id, String isdisplay) { + public ResponseResult setIsDisplay(String id, String isdisplay, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); //根据id 修改是否显示 ,最近修改人,最近修改时间 - updateWrapper.eq("id", id).set("isdisplay", isdisplay).set( + updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("isdisplay", isdisplay).set( "lastmodifier", userService.getUsername()).set( "lastmodifydate", new Timestamp(System.currentTimeMillis())); @@ -227,8 +253,15 @@ public class SysMenuController { @ResponseBody public ResponseResult moveOrderno(@RequestParam String parentid, @RequestParam String id, - @RequestParam int orderno) { - boolean ok = sysMenuService.moveOrderno(parentid, id, orderno); + @RequestParam int orderno, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysMenu::getId, id) + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId)); + if (sysMenuService.getOne(queryWrapper) == null) { + return ResponseResult.error("未找到对应租户的菜单"); + } + boolean ok = sysMenuService.moveOrderno(parentid, id, orderno, StrUtil.trimToNull(tenantId)); if (ok) { return ResponseResult.success(); } else { @@ -246,7 +279,14 @@ public class SysMenuController { @PostMapping("/deleteById") @Operation(summary = "根据id删除菜单或按钮") @ResponseBody - public ResponseResult deleteById(@RequestParam String id) { + public ResponseResult deleteById(@RequestParam String id, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysMenu::getId, id) + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId)); + if (sysMenuService.getOne(queryWrapper) == null) { + return ResponseResult.error("未找到对应租户的菜单"); + } boolean ok = sysMenuService.deleteById(id); if (ok) { return ResponseResult.success(); @@ -266,13 +306,23 @@ public class SysMenuController { @Operation(summary = "菜单或按钮切换") @ResponseBody public ResponseResult changeMenuOrder(@RequestParam String fromId, - @RequestParam String toId) { + @RequestParam String toId, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { if (StrUtil.isBlank(fromId) || StrUtil.isBlank(toId)) { return ResponseResult.error("参数为空!"); } if (fromId.equals(toId)) { return ResponseResult.error("切换失败!"); } + LambdaQueryWrapper fromWrapper = new LambdaQueryWrapper<>(); + fromWrapper.eq(SysMenu::getId, fromId) + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId)); + LambdaQueryWrapper toWrapper = new LambdaQueryWrapper<>(); + toWrapper.eq(SysMenu::getId, toId) + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId)); + if (sysMenuService.getOne(fromWrapper) == null || sysMenuService.getOne(toWrapper) == null) { + return ResponseResult.error("存在不属于当前租户的菜单"); + } boolean ok = sysMenuService.changeOderNoById(fromId, toId); if (ok) { return ResponseResult.success(); @@ -290,9 +340,16 @@ public class SysMenuController { @PostMapping("/uploadIcon") @Operation(summary = "上传单个图标") @ResponseBody - public ResponseResult uploadIcon(MultipartFile icon, String menuId) throws FileNotFoundException { + public ResponseResult uploadIcon(MultipartFile icon, String menuId, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) throws FileNotFoundException { if (StrUtil.isNotBlank(menuId)) { - SysMenu sysMenu = sysMenuService.getById(menuId); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysMenu::getId, menuId) + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId)); + SysMenu sysMenu = sysMenuService.getOne(queryWrapper); + if (sysMenu == null) { + return ResponseResult.error("未找到对应租户的菜单"); + } //图片路径 String iconname = System.getProperty("user.dir") + "\\src\\main" + diff --git a/backend/src/main/java/com/yfd/platform/system/controller/SysOrganizationController.java b/backend/src/main/java/com/yfd/platform/system/controller/SysOrganizationController.java index 45c0218d..907aaa1f 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/SysOrganizationController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/SysOrganizationController.java @@ -51,8 +51,9 @@ public class SysOrganizationController { @PostMapping("/getOrgScopeTree") @Operation(summary = "获取组织范围树结构") @ResponseBody - public List> getOrgScopeTree(String roleId) { - return organizationService.getOrgScopeTree(roleId); + public List> getOrgScopeTree(String roleId, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + return organizationService.getOrgScopeTree(roleId, StrUtil.trimToNull(tenantId)); } /*********************************** @@ -64,8 +65,9 @@ public class SysOrganizationController { @Operation(summary = "获取组织结构树") @ResponseBody public List> getOrgTree(String parentid, - String params) { - return organizationService.getOrgTree(parentid, params); + String params, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + return organizationService.getOrgTree(parentid, params, StrUtil.trimToNull(tenantId)); } /*********************************** @@ -77,12 +79,13 @@ public class SysOrganizationController { @PostMapping("/getOrganizationById") @Operation(summary = "根据企业ID查询组织信息") @ResponseBody - public ResponseResult getOrganizationById(String id, String orgName) { + public ResponseResult getOrganizationById(String id, String orgName, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { if (StrUtil.isBlank(id)) { return ResponseResult.error("查询失败!"); } List sysOrganizations = - organizationService.getOrganizationById(id, orgName); + organizationService.getOrganizationById(id, orgName, StrUtil.trimToNull(tenantId)); return ResponseResult.successData(sysOrganizations); } @@ -95,8 +98,13 @@ public class SysOrganizationController { @PostMapping("/getOneById") @Operation(summary = "根据ID查询组织详情") @ResponseBody - public ResponseResult getOneById(String id) { - SysOrganization sysOrganization = organizationService.getById(id); + public ResponseResult getOneById(String id, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper queryWrapper = + new LambdaQueryWrapper<>(); + queryWrapper.eq(SysOrganization::getId, id) + .eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId)); + SysOrganization sysOrganization = organizationService.getOne(queryWrapper); return ResponseResult.successData(sysOrganization); } @@ -110,7 +118,8 @@ public class SysOrganizationController { @PostMapping("/addOrg") @Operation(summary = "新增系统组织框架") @ResponseBody - public ResponseResult addOrg(@RequestBody SysOrganization sysOrganization) { + public ResponseResult addOrg(@RequestBody SysOrganization sysOrganization, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { //判断是否是否填写 有效 否则默认为 1 if (StrUtil.isEmpty(sysOrganization.getIsvaild())) { sysOrganization.setIsvaild("1"); @@ -118,6 +127,7 @@ public class SysOrganizationController { if("".equals(sysOrganization.getId())){ sysOrganization.setId(null); } + sysOrganization.setTenantId(StrUtil.trimToNull(tenantId)); //填写 当前用户名称 sysOrganization.setLastmodifier(userService.getUsername()); //填写 当前日期 @@ -141,7 +151,16 @@ public class SysOrganizationController { @PostMapping("/updateById") @Operation(summary = "修改系统组织框架") @ResponseBody - public ResponseResult updateById(@RequestBody SysOrganization sysOrganization) { + public ResponseResult updateById(@RequestBody SysOrganization sysOrganization, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper queryWrapper = + new LambdaQueryWrapper<>(); + queryWrapper.eq(SysOrganization::getId, sysOrganization.getId()) + .eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId)); + if (organizationService.getOne(queryWrapper) == null) { + return ResponseResult.error("未找到对应租户的组织"); + } + sysOrganization.setTenantId(StrUtil.trimToNull(tenantId)); //填写 当前用户名称 sysOrganization.setLastmodifier(userService.getUsername()); //填写 当前日期 @@ -166,10 +185,11 @@ public class SysOrganizationController { @Operation(summary = "设置组织是否有效") @ResponseBody public ResponseResult setIsValid(@RequestParam String id, - @RequestParam String isvaild) { + @RequestParam String isvaild, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); //根据id 修改是否有效,最近修改人,最近修改时间 - updateWrapper.eq("id", id).set("isvaild", isvaild).set("lastmodifier" + updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("isvaild", isvaild).set("lastmodifier" , userService.getUsername()).set("lastmodifydate", new Timestamp(System.currentTimeMillis())); boolean isOk = organizationService.update(updateWrapper); @@ -190,21 +210,34 @@ public class SysOrganizationController { @PostMapping("/deleteById") @Operation(summary = "根据id删除系统组织框架") @ResponseBody - public ResponseResult deleteById(@RequestParam String id) { + public ResponseResult deleteById(@RequestParam String id, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { String[] orgIds = id.split(","); for (String orgId : orgIds) { + LambdaQueryWrapper currentWrapper = + new LambdaQueryWrapper<>(); + currentWrapper.eq(SysOrganization::getId, orgId) + .eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId)); + if (organizationService.getOne(currentWrapper) == null) { + return ResponseResult.error("存在不属于当前租户的组织"); + } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); List list = - organizationService.list(queryWrapper.eq(SysOrganization::getParentid, orgId)); + organizationService.list(queryWrapper.eq(SysOrganization::getParentid, orgId) + .eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId))); List ids = list.stream().map(SysOrganization::getId).collect(Collectors.toList()); - boolean isOk = organizationService.removeById(orgId); + boolean isOk = organizationService.remove(new LambdaQueryWrapper() + .eq(SysOrganization::getId, orgId) + .eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId))); if (!isOk) { continue; } for (String oid : ids) { - organizationService.removeById(oid); + organizationService.remove(new LambdaQueryWrapper() + .eq(SysOrganization::getId, oid) + .eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId))); } } return ResponseResult.success(); 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 dae54721..fbb0bbc1 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 @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.yfd.platform.annotation.Log; import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.system.domain.SysMenu; import com.yfd.platform.system.domain.SysRole; +import com.yfd.platform.system.service.ISysMenuService; import com.yfd.platform.system.service.ISysRoleService; import com.yfd.platform.system.service.IUserService; import io.swagger.v3.oas.annotations.Operation; @@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import java.sql.Timestamp; import java.time.LocalDateTime; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -38,6 +41,9 @@ public class SysRoleController { @Resource private IUserService userService; + @Resource + private ISysMenuService sysMenuService; + /*********************************** * 用途说明:查询所有角色 * 参数说明 @@ -47,8 +53,9 @@ public class SysRoleController { @PostMapping("/list") @Operation(summary = "查询所有角色") @ResponseBody - public List list(@RequestParam(required = false) String rolename) { - return roleService.selectRoleList(rolename); + public List list(@RequestParam(required = false) String rolename, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + return roleService.selectRoleList(rolename, StrUtil.trimToNull(tenantId)); } /*********************************** @@ -60,8 +67,12 @@ public class SysRoleController { @PostMapping("/getOneById") @Operation(summary = "根据Id获取当个角色") @ResponseBody - public ResponseResult getOneById(String id) { - SysRole sysRole = roleService.getById(id); + public ResponseResult getOneById(String id, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysRole::getId, id) + .eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId)); + SysRole sysRole = roleService.getOne(queryWrapper); return ResponseResult.successData(sysRole); } @@ -75,7 +86,9 @@ public class SysRoleController { @PostMapping("/addRole") @Operation(summary = "新增角色") @ResponseBody - public ResponseResult addRole(@RequestBody SysRole sysRole) { + public ResponseResult addRole(@RequestBody SysRole sysRole, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + sysRole.setTenantId(StrUtil.trimToNull(tenantId)); boolean isOk = roleService.addRole(sysRole); if (isOk) { return ResponseResult.success(); @@ -96,10 +109,11 @@ public class SysRoleController { @Operation(summary = "分配操作权限") @ResponseBody public ResponseResult setOptScope(@RequestParam String id, - @RequestParam String optscope) { + @RequestParam String optscope, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); //根据id 更新权限,最近修改人,最近修改时间 - updateWrapper.eq("id", id).set("optscope", optscope).set( + updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("optscope", optscope).set( "lastmodifier", userService.getUsername()).set( "lastmodifydate", LocalDateTime.now()); boolean ok = roleService.update(updateWrapper); @@ -121,13 +135,34 @@ public class SysRoleController { @PostMapping("/setMenuById") @Operation(summary = "角色菜单权限") @ResponseBody - public ResponseResult setMenuById(String id, String menuIds) { + public ResponseResult setMenuById(String id, String menuIds, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { if (StrUtil.isBlank(id)) { return ResponseResult.error("参数为空"); } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysRole::getId, id) + .eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId)); + if (roleService.getOne(queryWrapper) == null) { + return ResponseResult.error("未找到对应租户的角色"); + } if (StrUtil.isBlank(menuIds)) { return ResponseResult.success(); } + List menuIdList = Arrays.stream(menuIds.split(",")) + .map(StrUtil::trim) + .filter(StrUtil::isNotBlank) + .distinct() + .toList(); + if (menuIdList.isEmpty()) { + return ResponseResult.success(); + } + long menuCount = sysMenuService.count(new LambdaQueryWrapper() + .in(SysMenu::getId, menuIdList) + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId))); + if (menuCount != menuIdList.size()) { + return ResponseResult.error("存在不属于当前租户的菜单"); + } boolean ok = roleService.setMenuById(id, menuIds); if (ok) { return ResponseResult.success(); @@ -149,10 +184,11 @@ public class SysRoleController { @Operation(summary = "设置组织范围") @ResponseBody public ResponseResult setOrgscope(@RequestParam String id, - @RequestParam String orgscope) { + @RequestParam String orgscope, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); //根据id 更新组织范围,最近修改人,最近修改时间 - updateWrapper.eq("id", id).set("orgscope", orgscope).set( + updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("orgscope", orgscope).set( "lastmodifier", userService.getUsername()).set( "lastmodifydate", LocalDateTime.now()); boolean ok = roleService.update(updateWrapper); @@ -175,10 +211,11 @@ public class SysRoleController { @Operation(summary = "设置业务范围") @ResponseBody public ResponseResult setBusscope(@RequestParam String id, - @RequestParam String busscope) { + @RequestParam String busscope, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); //根据id 更新业务范围,最近修改人,最近修改时间 - updateWrapper.eq("id", id).set("busscope", busscope).set( + updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("busscope", busscope).set( "lastmodifier", userService.getUsername()).set( "lastmodifydate", LocalDateTime.now()); boolean ok = roleService.update(updateWrapper); @@ -200,7 +237,14 @@ public class SysRoleController { @PostMapping("/setRoleUsers") @Operation(summary = "角色添加用户") @ResponseBody - public ResponseResult setRoleUsers(String roleid, String userids) { + public ResponseResult setRoleUsers(String roleid, String userids, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper roleWrapper = new LambdaQueryWrapper<>(); + roleWrapper.eq(SysRole::getId, roleid) + .eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId)); + if (roleService.getOne(roleWrapper) == null) { + return ResponseResult.error("未找到对应租户的角色"); + } boolean isOk = true; String[] temp = userids.split(","); for (String userid : temp) { @@ -223,7 +267,14 @@ public class SysRoleController { @Operation(summary = "删除角色用户") @ResponseBody public ResponseResult deleteRoleUsers(@RequestParam String roleid, - @RequestParam String userids) { + @RequestParam String userids, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper roleWrapper = new LambdaQueryWrapper<>(); + roleWrapper.eq(SysRole::getId, roleid) + .eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId)); + if (roleService.getOne(roleWrapper) == null) { + return ResponseResult.error("未找到对应租户的角色"); + } //根据角色id、用户id删除 boolean ok = roleService.deleteRoleUsers(roleid, userids); if (ok) { @@ -243,10 +294,11 @@ public class SysRoleController { @PostMapping("/setIsvaild") @Operation(summary = "设置角色是否有效") @ResponseBody - public ResponseResult setIsvaild(String id, String isvaild) { + public ResponseResult setIsvaild(String id, String isvaild, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); //根据id 更新业务范围,最近修改人,最近修改时间 - updateWrapper.eq("id", id).set("isvaild", isvaild).set("lastmodifier" + updateWrapper.eq("id", id).eq(StrUtil.isNotBlank(tenantId), "tenant_id", StrUtil.trim(tenantId)).set("isvaild", isvaild).set("lastmodifier" , userService.getUsername()).set("lastmodifydate", LocalDateTime.now()); boolean ok = roleService.update(updateWrapper); @@ -266,7 +318,15 @@ public class SysRoleController { @PostMapping("/updateById") @Operation(summary = "更新角色信息") @ResponseBody - public ResponseResult updateById(@RequestBody SysRole sysRole) { + public ResponseResult updateById(@RequestBody SysRole sysRole, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysRole::getId, sysRole.getId()) + .eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId)); + if (roleService.getOne(queryWrapper) == null) { + return ResponseResult.error("未找到对应租户的角色"); + } + sysRole.setTenantId(StrUtil.trimToNull(tenantId)); //更新最近修改人 sysRole.setLastmodifier(userService.getUsername()); //更新最近修改时间 @@ -289,7 +349,17 @@ public class SysRoleController { @PostMapping("/deleteById") @Operation(summary = "根据id删除角色") @ResponseBody - public ResponseResult deleteById(@RequestParam String id) { + public ResponseResult deleteById(@RequestParam String id, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + String[] roleIds = id.split(","); + for (String roleId : roleIds) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysRole::getId, roleId) + .eq(StrUtil.isNotBlank(tenantId), SysRole::getTenantId, StrUtil.trim(tenantId)); + if (roleService.getOne(queryWrapper) == null) { + return ResponseResult.error("存在不属于当前租户的角色"); + } + } roleService.deleteById(id); return ResponseResult.success(); } @@ -310,9 +380,10 @@ public class SysRoleController { @ResponseBody public List listRoleUsers(String orgid, String username, String status, String level, - String rolename, String isvaild) { + String rolename, String isvaild, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { return roleService.listRoleUsers(orgid, username, status, level, - rolename, isvaild); + rolename, isvaild, StrUtil.trimToNull(tenantId)); } } diff --git a/backend/src/main/java/com/yfd/platform/system/controller/UserController.java b/backend/src/main/java/com/yfd/platform/system/controller/UserController.java index 01217a42..ce4945b4 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/UserController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/UserController.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.extension.plugins.pagination.Page; import com.yfd.platform.annotation.Log; import com.yfd.platform.config.ResponseResult; @@ -41,7 +42,10 @@ public class UserController { @PostMapping("/addUser") @Operation(summary = "新增系统用户") @ResponseBody - public ResponseResult addUser(@RequestBody SysUser user, String roleids) { + public ResponseResult addUser(@RequestBody SysUser user, + String roleids, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + user.setTenantId(StrUtil.trimToNull(tenantId)); Map reslut = userService.addUser(user, roleids); return ResponseResult.successData(reslut); } @@ -51,10 +55,12 @@ public class UserController { @Operation(summary = "修改用户信息") @ResponseBody public ResponseResult updateUser(@RequestBody SysUser user, - String roleids) { + String roleids, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { if (StrUtil.isEmpty(user.getId())) { return ResponseResult.error("没有用户ID"); } + user.setTenantId(StrUtil.trimToNull(tenantId)); //填写 当前用户名称 user.setLastmodifier(userService.getUsername()); //填写 当前日期 @@ -68,10 +74,12 @@ public class UserController { @Operation(summary = "查询用户信息") @ResponseBody public ResponseResult queryUsers(String orgid, - String username, Page page) { + String username, + Page page, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { Page mapPage = userService.queryUsers(orgid, - username, page); + username, StrUtil.trimToNull(tenantId), page); return ResponseResult.successData(mapPage); } @@ -104,8 +112,12 @@ public class UserController { @GetMapping("/queryUserById") @Operation(summary = "根据id查询用户信息") @ResponseBody - public ResponseResult queryUserById(String id) { - SysUser user = userService.getById(id); + public ResponseResult queryUserById(String id, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUser::getId, id) + .eq(StrUtil.isNotBlank(tenantId), SysUser::getTenantId, StrUtil.trim(tenantId)); + SysUser user = userService.getOne(queryWrapper); return ResponseResult.successData(user); } @@ -232,8 +244,11 @@ public class UserController { @GetMapping("/queryPendingAuditUsers") @Operation(summary = "查询待审核用户列表") @ResponseBody - public ResponseResult queryPendingAuditUsers(Page page,String name,String regStatus) { - Page result = userService.queryPendingAuditUsers(page,name,regStatus); + public ResponseResult queryPendingAuditUsers(Page page, + String name, + String regStatus, + @RequestHeader(value = "Tenant_id", required = false) String tenantId) { + Page result = userService.queryPendingAuditUsers(page, name, regStatus, StrUtil.trimToNull(tenantId)); return ResponseResult.successData(result); } } diff --git a/backend/src/main/java/com/yfd/platform/system/domain/SysConfig.java b/backend/src/main/java/com/yfd/platform/system/domain/SysConfig.java index 3830d977..9bfa2913 100644 --- a/backend/src/main/java/com/yfd/platform/system/domain/SysConfig.java +++ b/backend/src/main/java/com/yfd/platform/system/domain/SysConfig.java @@ -48,6 +48,12 @@ public class SysConfig implements Serializable { */ private String remark; + /** + * 租户ID + */ + @TableField("TENANT_ID") + private String tenantId; + /** * 最近修改者 */ diff --git a/backend/src/main/java/com/yfd/platform/system/domain/SysLog.java b/backend/src/main/java/com/yfd/platform/system/domain/SysLog.java index a3597693..7ff890d1 100644 --- a/backend/src/main/java/com/yfd/platform/system/domain/SysLog.java +++ b/backend/src/main/java/com/yfd/platform/system/domain/SysLog.java @@ -83,6 +83,12 @@ public class SysLog implements Serializable { @TableField("REQUESTIP") private String requestip; + /** + * 租户ID + */ + @TableField("TENANT_ID") + private String tenantId; + /** * 浏览器类型 */ diff --git a/backend/src/main/java/com/yfd/platform/system/domain/SysMenu.java b/backend/src/main/java/com/yfd/platform/system/domain/SysMenu.java index 8392ce6f..b99d35b0 100644 --- a/backend/src/main/java/com/yfd/platform/system/domain/SysMenu.java +++ b/backend/src/main/java/com/yfd/platform/system/domain/SysMenu.java @@ -85,6 +85,12 @@ public class SysMenu implements Serializable { */ private String isdisplay; + /** + * 租户ID + */ + @TableField("TENANT_ID") + private String tenantId; + /** * 最近修改者 */ diff --git a/backend/src/main/java/com/yfd/platform/system/domain/SysOrganization.java b/backend/src/main/java/com/yfd/platform/system/domain/SysOrganization.java index 0f9a7192..dbbdfd6f 100644 --- a/backend/src/main/java/com/yfd/platform/system/domain/SysOrganization.java +++ b/backend/src/main/java/com/yfd/platform/system/domain/SysOrganization.java @@ -63,6 +63,12 @@ public class SysOrganization implements Serializable { */ private String description; + /** + * 租户ID + */ + @TableField("TENANT_ID") + private String tenantId; + /** * 最近修改者 */ diff --git a/backend/src/main/java/com/yfd/platform/system/domain/SysRole.java b/backend/src/main/java/com/yfd/platform/system/domain/SysRole.java index 68ab3ce9..bdd53f89 100644 --- a/backend/src/main/java/com/yfd/platform/system/domain/SysRole.java +++ b/backend/src/main/java/com/yfd/platform/system/domain/SysRole.java @@ -69,6 +69,12 @@ public class SysRole implements Serializable { */ private String isvaild; + /** + * 租户ID + */ + @TableField("TENANT_ID") + private String tenantId; + /** * 最近修改者 */ diff --git a/backend/src/main/java/com/yfd/platform/system/domain/SysUser.java b/backend/src/main/java/com/yfd/platform/system/domain/SysUser.java index b23df274..2e53094f 100644 --- a/backend/src/main/java/com/yfd/platform/system/domain/SysUser.java +++ b/backend/src/main/java/com/yfd/platform/system/domain/SysUser.java @@ -79,6 +79,12 @@ public class SysUser implements Serializable { */ private String orgid; + /** + * 租户ID + */ + @TableField("TENANT_ID") + private String tenantId; + /** * 密码重置时间 */ diff --git a/backend/src/main/java/com/yfd/platform/system/mapper/SysMenuMapper.java b/backend/src/main/java/com/yfd/platform/system/mapper/SysMenuMapper.java index 061feebb..9ea863fa 100644 --- a/backend/src/main/java/com/yfd/platform/system/mapper/SysMenuMapper.java +++ b/backend/src/main/java/com/yfd/platform/system/mapper/SysMenuMapper.java @@ -25,7 +25,10 @@ public interface SysMenuMapper extends BaseMapper { *upOrderno 大于等于序号(更改的序号加一) * 返回值说明: 是否更新成功 ***********************************/ - boolean upMoveOrderno(@Param("parentid") String parentid, @Param("Orderno") int Orderno, @Param("upOrderno") int upOrderno); + boolean upMoveOrderno(@Param("parentid") String parentid, + @Param("Orderno") int Orderno, + @Param("upOrderno") int upOrderno, + @Param("tenantId") String tenantId); /*********************************** * 用途说明:菜单及按钮序号向下移动 @@ -35,13 +38,16 @@ public interface SysMenuMapper extends BaseMapper { *downOrderno 小于等于序号(更改的序号减一) * 返回值说明: 是否更新成功 ***********************************/ - boolean downMoveOrderno(@Param("parentid") String parentid, @Param("Orderno") int Orderno, @Param("downOrderno") int downOrderno); + boolean downMoveOrderno(@Param("parentid") String parentid, + @Param("Orderno") int Orderno, + @Param("downOrderno") int downOrderno, + @Param("tenantId") String tenantId); List selectPermsByUserId(String userId); //List selectMenuByUserId(String userId); - List selectMenuByUserId(String userId); + List selectMenuByUserId(@Param("userId") String userId, @Param("tenantId") String tenantId); /*********************************** * 用途说明:根据权限id查找系统类型 @@ -55,5 +61,5 @@ public interface SysMenuMapper extends BaseMapper { * 参数说明 id 权限id * 返回值说明: 返回权限集合 ***********************************/ - List selectMenuByRoleId(String id); + List selectMenuByRoleId(@Param("id") String id, @Param("tenantId") String tenantId); } 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 ea374888..28727c4a 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 @@ -44,8 +44,13 @@ public interface SysRoleMapper extends BaseMapper { * isvaild 角色是否有效 * 返回值说明: 系统用户角色数据集合 ***********************************/ - List listRoleUsers(String orgid, String username, String status, - String level, String rolename, String isvaild); + List listRoleUsers(@Param("orgid") String orgid, + @Param("username") String username, + @Param("status") String status, + @Param("level") String level, + @Param("rolename") String rolename, + @Param("isvaild") String isvaild, + @Param("tenantId") String tenantId); /*********************************** * 用途说明:根据 角色id和用户id 删除 (admin除外) @@ -113,6 +118,6 @@ public interface SysRoleMapper extends BaseMapper { * 参数说明:rolename - 角色名称 * 返回值说明:角色列表 ***********************************/ - List selectRoleList(@Param("rolename") String rolename); + List selectRoleList(@Param("rolename") String rolename, @Param("tenantId") String tenantId); } diff --git a/backend/src/main/java/com/yfd/platform/system/mapper/SysUserMapper.java b/backend/src/main/java/com/yfd/platform/system/mapper/SysUserMapper.java index f031cf87..e9ac1f55 100644 --- a/backend/src/main/java/com/yfd/platform/system/mapper/SysUserMapper.java +++ b/backend/src/main/java/com/yfd/platform/system/mapper/SysUserMapper.java @@ -81,9 +81,10 @@ public interface SysUserMapper extends BaseMapper { ************************************/ boolean delInRoleUsersByUserid(@Param("userid") String userid,@Param("roleids")String[] roleids); - Page queryUsers(String orgid, - String username, - Page page); + Page queryUsers(@Param("orgid") String orgid, + @Param("username") String username, + @Param("tenantId") String tenantId, + Page page); Map getOrganizationByid(String id); diff --git a/backend/src/main/java/com/yfd/platform/system/service/ISysLogService.java b/backend/src/main/java/com/yfd/platform/system/service/ISysLogService.java index 85fdffa3..641ec23f 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/ISysLogService.java +++ b/backend/src/main/java/com/yfd/platform/system/service/ISysLogService.java @@ -28,7 +28,7 @@ public interface ISysLogService extends IService { ***********************************/ Page getLogList(String username, String optType, String startDate, - String endDate, Page page); + String endDate, Page page, String tenantId); /********************************** diff --git a/backend/src/main/java/com/yfd/platform/system/service/ISysMenuService.java b/backend/src/main/java/com/yfd/platform/system/service/ISysMenuService.java index b24b2835..3dad368d 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/ISysMenuService.java +++ b/backend/src/main/java/com/yfd/platform/system/service/ISysMenuService.java @@ -27,7 +27,7 @@ public interface ISysMenuService extends IService { * isdisplay 是否显示 * 返回值说明: 菜单结构树集合 ***********************************/ - List> getMenuButtonTree(String systemcode, String name, String isdisplay); + List> getMenuButtonTree(String systemcode, String name, String isdisplay, String tenantId); /*********************************** * 用途说明:获取菜单结构树(不含按钮) @@ -37,7 +37,7 @@ public interface ISysMenuService extends IService { * isdisplay 是否显示 * 返回值说明: 菜单结构树集合 ***********************************/ - List> getMenuTree(String systemcode, String name, String isdisplay); + List> getMenuTree(String systemcode, String name, String isdisplay, String tenantId); /*********************************** @@ -73,7 +73,7 @@ public interface ISysMenuService extends IService { * orderMap map<菜单及按钮表id,排列序号> * 返回值说明: 是否更新成功 ***********************************/ - boolean moveOrderno(String parentid, String id, int orderno); + boolean moveOrderno(String parentid, String id, int orderno, String tenantId); /*********************************** * 用途说明:根据id删除菜单或按钮 @@ -85,7 +85,7 @@ public interface ISysMenuService extends IService { boolean changeOderNoById(String fromId, String toId); - List> getMenuTree(String id); + List> getMenuTree(String id, String tenantId); /*********************************** * 用途说明:权限分配 @@ -95,7 +95,7 @@ public interface ISysMenuService extends IService { * isdisplay 是否显示 * 返回值说明: 菜单结构树集合 ***********************************/ - List> permissionAssignment(String code,String roleId); + List> permissionAssignment(String code, String roleId, String tenantId); String uploadIcon(MultipartFile icon) throws FileNotFoundException; } diff --git a/backend/src/main/java/com/yfd/platform/system/service/ISysOrganizationService.java b/backend/src/main/java/com/yfd/platform/system/service/ISysOrganizationService.java index 5b03119a..b95ea368 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/ISysOrganizationService.java +++ b/backend/src/main/java/com/yfd/platform/system/service/ISysOrganizationService.java @@ -24,7 +24,7 @@ public interface ISysOrganizationService extends IService { * params 名称(根据名称查询二级) * 返回值说明: 组织树集合 ***********************************/ - List> getOrgTree(String parentid, String params); + List> getOrgTree(String parentid, String params, String tenantId); /*********************************** * 用途说明:新增系统组织框架 @@ -40,7 +40,7 @@ public interface ISysOrganizationService extends IService { * id 企业id * 返回值说明: 系统组织框架对象 ***********************************/ - List getOrganizationById(String id,String orgName); + List getOrganizationById(String id, String orgName, String tenantId); /*********************************** * 用途说明:获取组织范围树结构 @@ -48,7 +48,7 @@ public interface ISysOrganizationService extends IService { *roleId 角色id * 返回值说明: 组织树集合 ***********************************/ - List> getOrgScopeTree(String roleId); + List> getOrgScopeTree(String roleId, String tenantId); /********************************** * 用途说明: 修改角色组织范围 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 2065a177..36f25dec 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 @@ -52,7 +52,7 @@ public interface ISysRoleService extends IService { * isvaild 角色是否有效 * 返回值说明: 系统用户角色数据集合 ***********************************/ - List listRoleUsers(String orgid, String username, String status, String level, String rolename, String isvaild); + List listRoleUsers(String orgid, String username, String status, String level, String rolename, String isvaild, String tenantId); /*********************************** @@ -64,5 +64,5 @@ public interface ISysRoleService extends IService { ***********************************/ boolean setMenuById(String id, String menuIds); - List selectRoleList(String rolename); + List selectRoleList(String rolename, String tenantId); } diff --git a/backend/src/main/java/com/yfd/platform/system/service/IUserService.java b/backend/src/main/java/com/yfd/platform/system/service/IUserService.java index 00a28682..e5d970ac 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/IUserService.java +++ b/backend/src/main/java/com/yfd/platform/system/service/IUserService.java @@ -132,7 +132,7 @@ public interface IUserService extends IService { boolean addUserRoles(String roleid, String userid); //Page queryUsers(String orgid, String username, Page page); - Page queryUsers(String orgid, String username, Page page); + Page queryUsers(String orgid, String username, String tenantId, Page page); /*********************************** * 用途说明:根据ID批量删除用户 @@ -174,6 +174,6 @@ public interface IUserService extends IService { *page 分页参数 * 返回值说明: 待审核用户分页列表 ************************************/ - Page queryPendingAuditUsers(Page page,String name, String regStatus); + Page queryPendingAuditUsers(Page page, String name, String regStatus, String tenantId); } diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/SysLogServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/SysLogServiceImpl.java index ee671bfe..1bf6fe5d 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/SysLogServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/SysLogServiceImpl.java @@ -17,10 +17,13 @@ import com.yfd.platform.utils.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.lang.reflect.AnnotatedType; @@ -55,7 +58,7 @@ public class SysLogServiceImpl extends ServiceImpl impleme @Override public Page getLogList(String username, String optType, String startDate, - String endDate, Page page) { + String endDate, Page page, String tenantId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); // 没有传username就不按此条件查询 @@ -72,6 +75,9 @@ public class SysLogServiceImpl extends ServiceImpl impleme if (parseStartDate != null && parseEndDate != null) { queryWrapper.ge(SysLog::getLogtime, parseStartDate).lt(SysLog::getLogtime, dateTime); } + if (StrUtil.isNotBlank(tenantId)) { + queryWrapper.eq(SysLog::getTenantId, tenantId); + } queryWrapper.orderByDesc(SysLog::getLogtime); return sysLogMapper.selectPage(page, queryWrapper); @@ -152,6 +158,11 @@ public class SysLogServiceImpl extends ServiceImpl impleme log.setUsername(nickname); log.setParams(getParameter(method, joinPoint.getArgs())); log.setBrowser(browser); + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (attributes != null) { + HttpServletRequest request = attributes.getRequest(); + log.setTenantId(StrUtil.trimToNull(request.getHeader("tenant_id"))); + } String operationtype = getOperationtype(signature.getName()); log.setOpttype(operationtype); log.setLogtime(new Timestamp(System.currentTimeMillis())); diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/SysMenuServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/SysMenuServiceImpl.java index af5dcad1..b3531c9e 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/SysMenuServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/SysMenuServiceImpl.java @@ -64,23 +64,28 @@ public class SysMenuServiceImpl extends ServiceImpl impl @Override public List> getMenuButtonTree(String systemcode, String name, - String isdisplay) { + String isdisplay, + String tenantId) { List> mapList=null; List> listMap =new ArrayList<>(); if(StrUtil.isEmpty(name)){//不带名称查询,返回树结构 QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("parentid", "0").eq("systemcode", systemcode).orderByAsc("orderno"); + queryWrapper.eq("parentid", "0").eq("systemcode", systemcode) + .eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId) + .orderByAsc("orderno"); mapList = this.listMaps(queryWrapper); listMap.addAll(ObjectConverterUtil.convertMapFieldsToEntityFormat(SysMenu.class, mapList)); for (int i = 0; i < listMap.size(); i++) { //查询下一子集 List> childList = child(listMap.get(i).get( - "id").toString(), systemcode, name, null, null); + "id").toString(), systemcode, name, null, null, tenantId); listMap.get(i).put("children", childList); //添加新列 子集 } }else{ //根据菜单名称查询,直接返回类别 QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like("name", name).eq("systemcode", systemcode).orderByAsc("name"); + queryWrapper.like("name", name).eq("systemcode", systemcode) + .eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId) + .orderByAsc("name"); mapList = this.listMaps(queryWrapper); listMap.addAll(ObjectConverterUtil.convertMapFieldsToEntityFormat(SysMenu.class, mapList)); } @@ -97,7 +102,8 @@ public class SysMenuServiceImpl extends ServiceImpl impl @Override public List> getMenuTree(String systemcode, String name, - String isdisplay) { + String isdisplay, + String tenantId) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (StrUtil.isNotEmpty(isdisplay)) { queryWrapper.eq("isdisplay", isdisplay); @@ -107,11 +113,11 @@ public class SysMenuServiceImpl extends ServiceImpl impl //根据系统 ,类型不为2 显示,序号 正序排序 queryWrapper.eq("parentid", "0").eq("systemcode", systemcode).ne( - "type", "2").orderByAsc("orderno"); + "type", "2").eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId).orderByAsc("orderno"); List> listMap = this.listMaps(queryWrapper); for (int i = 0; i < listMap.size(); i++) { List> childList = child(listMap.get(i).get( - "id").toString(), systemcode, name, isdisplay, "2");//查询下一子集 + "id").toString(), systemcode, name, isdisplay, "2", tenantId);//查询下一子集 listMap.get(i).put("children", childList); //添加新列 子集 } return listMap; @@ -128,10 +134,11 @@ public class SysMenuServiceImpl extends ServiceImpl impl ***********************************/ private List> child(String parentid, String systemcode, String name, - String isdisplay, String type) { + String isdisplay, String type, String tenantId) { List> mapList; QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("parentid", parentid).eq("systemcode", systemcode); + queryWrapper.eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId); //根据上级id 系统 查询 if (StrUtil.isNotEmpty(type)) { queryWrapper.ne("type", type); @@ -146,7 +153,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl for (int i = 0; i < listMap.size(); i++) { //遍历表数据 List> childList = child(listMap.get(i).get("id").toString(), systemcode - , name, isdisplay, type); //循环获取下一子集 + , name, isdisplay, type, tenantId); //循环获取下一子集 listMap.get(i).put("children", childList); //添加新列 子集 } } @@ -165,20 +172,24 @@ public class SysMenuServiceImpl extends ServiceImpl impl String parentId = sysMenu.getParentid(); QueryWrapper queryWrapper = new QueryWrapper<>(); //根据上级id 查询到总数 并累加 - long orderno = this.count(queryWrapper.eq("parentid", - parentId)) + 1L; + queryWrapper.eq("parentid", parentId) + .eq(StrUtil.isNotBlank(sysMenu.getTenantId()), "tenant_id", sysMenu.getTenantId()); + long orderno = this.count(queryWrapper) + 1L; // 生成排序号 sysMenu.setOrderno((int) orderno); // 生成编号 QueryWrapper queryMaxCode = new QueryWrapper<>(); - queryMaxCode.eq("parentid", parentId); + queryMaxCode.eq("parentid", parentId) + .eq(StrUtil.isNotBlank(sysMenu.getTenantId()), "tenant_id", sysMenu.getTenantId()); // 使用 Oracle 兼容的 NVL 函数处理空值 List maxList = this.listObjs( queryMaxCode.select("NVL(MAX(code), '0') as code") .eq("systemcode", sysMenu.getSystemcode()) ); - SysMenu parentMenu = sysMenuMapper.selectById(parentId); + SysMenu parentMenu = "0".equals(parentId) ? null : this.getOne(new LambdaQueryWrapper() + .eq(SysMenu::getId, parentId) + .eq(StrUtil.isNotBlank(sysMenu.getTenantId()), SysMenu::getTenantId, sysMenu.getTenantId())); // 最大编号转换成int类型 String maxCode = !maxList.isEmpty() ? maxList.getFirst().toString() : "0"; int max = ObjectUtil.isEmpty(maxList) ? 0 : @@ -302,18 +313,25 @@ public class SysMenuServiceImpl extends ServiceImpl impl * 返回值说明: 是否更新成功 ***********************************/ @Override - public boolean moveOrderno(String parentid, String id, int orderno) { + public boolean moveOrderno(String parentid, String id, int orderno, String tenantId) { boolean ok = true; - SysMenu sysMenu = this.getById(id); //根据id查询原顺序号 + SysMenu sysMenu = this.getOne(new LambdaQueryWrapper() + .eq(SysMenu::getId, id) + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, tenantId)); //根据id查询原顺序号 + if (sysMenu == null) { + return false; + } if (sysMenu.getOrderno() > orderno) { ok = sysMenuMapper.upMoveOrderno(parentid, sysMenu.getOrderno(), - orderno); //根据 父级id 小于原序号 大于等于更改序号 + orderno, tenantId); //根据 父级id 小于原序号 大于等于更改序号 } else { ok = sysMenuMapper.downMoveOrderno(parentid, sysMenu.getOrderno() - , orderno); //根据 父级id 大于原序号 小于等于更改序号 + , orderno, tenantId); //根据 父级id 大于原序号 小于等于更改序号 } UpdateWrapper updateWrapper = new UpdateWrapper<>(); - ok = ok && this.update(updateWrapper.eq("id", id).set("orderno", + ok = ok && this.update(updateWrapper.eq("id", id) + .eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId) + .set("orderno", orderno)); //根据 id修改序号 return ok; } @@ -345,8 +363,9 @@ public class SysMenuServiceImpl extends ServiceImpl impl } QueryWrapper queryWrapper = new QueryWrapper<>(); //根据上级id 查询 根据 orderno 正序排序 - queryWrapper.eq("parentid", sysMenu.getParentid()).orderByAsc( - "orderno"); + queryWrapper.eq("parentid", sysMenu.getParentid()) + .eq(StrUtil.isNotBlank(sysMenu.getTenantId()), "tenant_id", sysMenu.getTenantId()) + .orderByAsc("orderno"); List list = this.list(queryWrapper); for (int i = 0; i < list.size(); i++) { SysMenu menu = list.get(i); @@ -409,16 +428,20 @@ public class SysMenuServiceImpl extends ServiceImpl impl * 返回值说明: 返回菜单树 ***********************************/ @Override - public List> getMenuTree(String id) { + public List> getMenuTree(String id, String tenantId) { // 根据id获取菜单 //List sysMenus = sysMenuMapper.selectMenuByUserId(id); List sysMenuList; if (StrUtil.isBlank(id)) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - sysMenuList = this.list(queryWrapper.eq(SysMenu::getIsdisplay, "1").ne(SysMenu::getType, "2").eq(SysMenu::getSystemcode, "1").orderByAsc(SysMenu::getOrderno)); + sysMenuList = this.list(queryWrapper.eq(SysMenu::getIsdisplay, "1") + .ne(SysMenu::getType, "2") +// .eq(SysMenu::getSystemcode, "1") + .eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, tenantId) + .orderByAsc(SysMenu::getOrderno)); } else { - sysMenuList = sysMenuMapper.selectMenuByUserId(id); + sysMenuList = sysMenuMapper.selectMenuByUserId(id, tenantId); } // 将 SysMenu 转换为 Map 并构建树 List> list = sysMenuList.stream() @@ -451,7 +474,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl * 返回值说明: 菜单结构树集合 ***********************************/ @Override - public List> permissionAssignment(String code,String roleId) { + public List> permissionAssignment(String code, String roleId, String tenantId) { // String code = sysMenuMapper.getSystemCodeById(roleId); // if (code == null) { @@ -459,13 +482,13 @@ public class SysMenuServiceImpl extends ServiceImpl impl // } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SysMenu::getSystemcode, code).select(SysMenu::getId, - SysMenu::getParentid, SysMenu::getName).orderByAsc + SysMenu::getParentid, SysMenu::getName).eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, tenantId).orderByAsc (SysMenu::getOrderno); List> mapList = sysMenuMapper.selectMaps(queryWrapper); List> listAll = ObjectConverterUtil.convertMapFieldsToEntityFormat(SysMenu.class, mapList); List listRole = - sysMenuMapper.selectMenuByRoleId(roleId); + sysMenuMapper.selectMenuByRoleId(roleId, tenantId); for (Map map : listAll) { String id = (String) map.get("id"); if (listRole.contains(id)) { 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 bb956d39..6e20d9dc 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 @@ -56,7 +56,8 @@ public class SysOrganizationServiceImpl extends ServiceImpl> getOrgTree(String parentid, - String params) { + String params, + String tenantId) { SysUser userInfo = userService.getUserInfo(); // 构建权限过滤条件 @@ -75,7 +76,9 @@ public class SysOrganizationServiceImpl extends ServiceImpl list = sysOrganizationMapper.selectList( - new LambdaQueryWrapper().in(SysOrganization::getId, stringList)); + new LambdaQueryWrapper() + .in(SysOrganization::getId, stringList) + .eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, tenantId)); for (SysOrganization org : list) { if (org.getParentid() != null) { allowedOrgIds.add(org.getParentid()); @@ -90,6 +93,9 @@ public class SysOrganizationServiceImpl extends ServiceImpl() + .eq(SysOrganization::getId, sysOrganization.getParentid()) + .eq(StrUtil.isNotBlank(sysOrganization.getTenantId()), SysOrganization::getTenantId, sysOrganization.getTenantId())); queryWrapper.eq("parentid", sysOrganization.getParentid()); } else { //默认 填写父级id为0 sysOrganization.setParentid("0"); queryWrapper.eq("parentid", "0"); } + if (StrUtil.isNotBlank(sysOrganization.getTenantId())) { + queryWrapper.eq("tenant_id", sysOrganization.getTenantId()); + } List max = this.listObjs(queryWrapper); //判断查询是否存在 存在转换成 int 类型并给 codeMax 替换值 if (!max.isEmpty() && max.getFirst() != null) { @@ -233,7 +244,8 @@ public class SysOrganizationServiceImpl extends ServiceImpl getOrganizationById(String id, - String orgName) { + String orgName, + String tenantId) { SysUser userInfo = userService.getUserInfo(); // 收集所有允许的组织ID @@ -258,6 +270,7 @@ public class SysOrganizationServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SysOrganization::getParentid, id); + queryWrapper.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, tenantId); if (StrUtil.isNotBlank(orgName)) { queryWrapper.like(SysOrganization::getOrgname, orgName); @@ -281,7 +294,7 @@ public class SysOrganizationServiceImpl extends ServiceImpl> getOrgScopeTree(String roleId) { + public List> getOrgScopeTree(String roleId, String tenantId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if(!"admin".equals(SecurityUtils.getCurrentUsername())){ @@ -300,11 +313,17 @@ public class SysOrganizationServiceImpl extends ServiceImpl> mapList = this.listMaps(queryWrapper); List> listMaps = ObjectConverterUtil.convertMapFieldsToEntityFormat(SysOrganization.class, mapList); // 获取当前角色 - SysRole sysRole = sysRoleMapper.selectById(roleId); + SysRole sysRole = sysRoleMapper.selectOne(new QueryWrapper() + .eq("id", roleId) + .eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId)); + if (sysRole == null) { + return new ArrayList<>(); + } String orgscope = sysRole.getOrgscope(); List ids = new ArrayList<>(); if (StrUtil.isNotBlank(orgscope)) { 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 f06dbd84..6b14175b 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 @@ -47,6 +47,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl int codeMax = 0; DecimalFormat df = new DecimalFormat("000");//四位数字编号 QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StringUtils.isNotBlank(sysRole.getTenantId()), "tenant_id", sysRole.getTenantId()); List max = this.listObjs(queryWrapper.select("MAX(rolecode) " + "rolecode"));// 查询最大的编号 // 存在转换成 int 类型并给 codeMax 替换值 @@ -140,9 +141,9 @@ public class SysRoleServiceImpl extends ServiceImpl impl @Override public List listRoleUsers(String orgid, String username, String status, String level, - String rolename, String isvaild) { + String rolename, String isvaild, String tenantId) { return roleMapper.listRoleUsers(orgid, username, status, level, - rolename, isvaild); + rolename, isvaild, tenantId); } /*********************************** @@ -167,8 +168,8 @@ public class SysRoleServiceImpl extends ServiceImpl impl } @Override - public List selectRoleList(String rolename) { - return roleMapper.selectRoleList(rolename); + public List selectRoleList(String rolename, String tenantId) { + return roleMapper.selectRoleList(rolename, tenantId); } } diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java index 0b108700..0e157cd4 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java @@ -567,9 +567,10 @@ public class UserServiceImpl extends ServiceImpl impleme @Override public Page queryUsers(String orgid, String username, + String tenantId, Page page) { Page mapPage = sysUserMapper.queryUsers(orgid, - username, page); + username, tenantId, page); mapPage.getRecords().forEach(record -> { String id = record.getId(); List sysRoles = sysRoleMapper.getRoleByUserId(id); @@ -651,10 +652,11 @@ public class UserServiceImpl extends ServiceImpl impleme } @Override - public Page queryPendingAuditUsers(Page page, String name, String regStatus) { + public Page queryPendingAuditUsers(Page page, String name, String regStatus, String tenantId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(SysUser::getRegStatus, "PENDING", "APPROVED", "REJECTED"); queryWrapper.eq(ObjectUtil.isNotEmpty(regStatus), SysUser::getRegStatus, regStatus); + queryWrapper.eq(StrUtil.isNotBlank(tenantId), SysUser::getTenantId, tenantId); queryWrapper.and(StrUtil.isNotBlank(name), wrapper -> wrapper.like(SysUser::getNickname, name) .or() diff --git a/backend/src/main/resources/mapper/system/SysMenuMapper.xml b/backend/src/main/resources/mapper/system/SysMenuMapper.xml index 93934a45..a65f0c7f 100644 --- a/backend/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/backend/src/main/resources/mapper/system/SysMenuMapper.xml @@ -4,12 +4,26 @@ - update sys_menu set orderno=orderno+1 where parentid=#{parentid} and orderno < #{Orderno} and orderno >= #{upOrderno} + update sys_menu + set orderno=orderno+1 + where parentid=#{parentid} + and orderno < #{Orderno} + and orderno >= #{upOrderno} + + and tenant_id = #{tenantId} + - update sys_menu SET orderno=orderno-1 where parentid=#{parentid} and orderno > #{Orderno} and orderno <= #{downOrderno} + update sys_menu + SET orderno=orderno-1 + where parentid=#{parentid} + and orderno > #{Orderno} + and orderno <= #{downOrderno} + + and tenant_id = #{tenantId} + diff --git a/backend/src/main/resources/mapper/system/SysRoleMapper.xml b/backend/src/main/resources/mapper/system/SysRoleMapper.xml index 8ebae211..8e56ec4f 100644 --- a/backend/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/backend/src/main/resources/mapper/system/SysRoleMapper.xml @@ -86,6 +86,10 @@ and c.isvaild=#{isvaild} + + and b.tenant_id = #{tenantId} + and c.tenant_id = #{tenantId} + ORDER BY c.level,b.orgid,b.code @@ -129,6 +133,9 @@ AND r.rolename LIKE '%' || #{rolename} || '%' + + AND r.tenant_id = #{tenantId} + AND r."LEVEL" != '1' ORDER BY r."LEVEL" ASC, lastmodifydate ASC diff --git a/backend/src/main/resources/mapper/system/SysUserMapper.xml b/backend/src/main/resources/mapper/system/SysUserMapper.xml index 4d381b21..5600fd5d 100644 --- a/backend/src/main/resources/mapper/system/SysUserMapper.xml +++ b/backend/src/main/resources/mapper/system/SysUserMapper.xml @@ -67,6 +67,7 @@ u.phone, u.avatar, u.orgid, + u.tenant_id AS tenantId, u.status, u.lastmodifier, u.lastmodifydate @@ -82,6 +83,9 @@ and u.username LIKE '%' || #{username} || '%' + + and u.tenant_id = #{tenantId} + ORDER BY u.lastmodifydate DESC