feat: 系统管理相关逻辑增加租户id条件

This commit is contained in:
tangwei 2026-06-16 17:53:29 +08:00
parent b171d91e54
commit c0ee187eff
28 changed files with 469 additions and 139 deletions

View File

@ -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<SysConfig> 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<SysConfig> 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);

View File

@ -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<SysLog> page) {
String endDate, Page<SysLog> page,
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
tenantId=null;
Page<SysLog> sysLogPage = sysLogService.getLogList(username, optType,
startDate, endDate, page);
startDate, endDate, page, StrUtil.trimToNull(tenantId));
Map<String, Object> 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<SysLog> page,
HttpServletResponse response) throws IOException {
HttpServletResponse response,
@RequestHeader(value = "Tenant_id", required = false) String tenantId) throws IOException {
tenantId=null;
Page<SysLog> sysLogPage = sysLogService.getLogList(username, optType,
startDate, endDate, page);
startDate, endDate, page, StrUtil.trimToNull(tenantId));
sysLogService.exportExcel(sysLogPage.getRecords(), response);
}
}

View File

@ -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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> permissionAssignment(String code, String roleId) {
public List<Map<String, Object>> 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<Map<String, Object>> getMenuTreeByUser() {
public List<Map<String, Object>> 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<SysMenu> 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<SysMenu> 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<SysMenu> 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<SysMenu> 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<SysMenu> 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<SysMenu> 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<SysMenu> fromWrapper = new LambdaQueryWrapper<>();
fromWrapper.eq(SysMenu::getId, fromId)
.eq(StrUtil.isNotBlank(tenantId), SysMenu::getTenantId, StrUtil.trim(tenantId));
LambdaQueryWrapper<SysMenu> 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<SysMenu> 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" +

View File

@ -51,8 +51,9 @@ public class SysOrganizationController {
@PostMapping("/getOrgScopeTree")
@Operation(summary = "获取组织范围树结构")
@ResponseBody
public List<Map<String, Object>> getOrgScopeTree(String roleId) {
return organizationService.getOrgScopeTree(roleId);
public List<Map<String, Object>> 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<Map<String, Object>> 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<SysOrganization> 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<SysOrganization> 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<SysOrganization> 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<SysOrganization> 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<SysOrganization> 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<SysOrganization> queryWrapper =
new LambdaQueryWrapper<>();
List<SysOrganization> 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<String> ids =
list.stream().map(SysOrganization::getId).collect(Collectors.toList());
boolean isOk = organizationService.removeById(orgId);
boolean isOk = organizationService.remove(new LambdaQueryWrapper<SysOrganization>()
.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<SysOrganization>()
.eq(SysOrganization::getId, oid)
.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, StrUtil.trim(tenantId)));
}
}
return ResponseResult.success();

View File

@ -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<SysRole> list(@RequestParam(required = false) String rolename) {
return roleService.selectRoleList(rolename);
public List<SysRole> 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<SysRole> 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<SysRole> 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<SysRole> 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<String> 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<SysMenu>()
.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<SysRole> 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<SysRole> 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<SysRole> 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<SysRole> 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<SysRole> 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<SysRole> 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<SysRole> 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<Map> 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));
}
}

View File

@ -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<SysUser> page) {
String username,
Page<SysUser> page,
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
Page<SysUser> 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<SysUser> 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<SysUser> page,String name,String regStatus) {
Page<SysUser> result = userService.queryPendingAuditUsers(page,name,regStatus);
public ResponseResult queryPendingAuditUsers(Page<SysUser> page,
String name,
String regStatus,
@RequestHeader(value = "Tenant_id", required = false) String tenantId) {
Page<SysUser> result = userService.queryPendingAuditUsers(page, name, regStatus, StrUtil.trimToNull(tenantId));
return ResponseResult.successData(result);
}
}

View File

@ -48,6 +48,12 @@ public class SysConfig implements Serializable {
*/
private String remark;
/**
* 租户ID
*/
@TableField("TENANT_ID")
private String tenantId;
/**
* 最近修改者
*/

View File

@ -83,6 +83,12 @@ public class SysLog implements Serializable {
@TableField("REQUESTIP")
private String requestip;
/**
* 租户ID
*/
@TableField("TENANT_ID")
private String tenantId;
/**
* 浏览器类型
*/

View File

@ -85,6 +85,12 @@ public class SysMenu implements Serializable {
*/
private String isdisplay;
/**
* 租户ID
*/
@TableField("TENANT_ID")
private String tenantId;
/**
* 最近修改者
*/

View File

@ -63,6 +63,12 @@ public class SysOrganization implements Serializable {
*/
private String description;
/**
* 租户ID
*/
@TableField("TENANT_ID")
private String tenantId;
/**
* 最近修改者
*/

View File

@ -69,6 +69,12 @@ public class SysRole implements Serializable {
*/
private String isvaild;
/**
* 租户ID
*/
@TableField("TENANT_ID")
private String tenantId;
/**
* 最近修改者
*/

View File

@ -79,6 +79,12 @@ public class SysUser implements Serializable {
*/
private String orgid;
/**
* 租户ID
*/
@TableField("TENANT_ID")
private String tenantId;
/**
* 密码重置时间
*/

View File

@ -25,7 +25,10 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
*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<SysMenu> {
*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<String> selectPermsByUserId(String userId);
//List<SysMenu> selectMenuByUserId(String userId);
List<SysMenu> selectMenuByUserId(String userId);
List<SysMenu> selectMenuByUserId(@Param("userId") String userId, @Param("tenantId") String tenantId);
/***********************************
* 用途说明根据权限id查找系统类型
@ -55,5 +61,5 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
* 参数说明 id 权限id
* 返回值说明: 返回权限集合
***********************************/
List<String> selectMenuByRoleId(String id);
List<String> selectMenuByRoleId(@Param("id") String id, @Param("tenantId") String tenantId);
}

View File

@ -44,8 +44,13 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
* isvaild 角色是否有效
* 返回值说明: 系统用户角色数据集合
***********************************/
List<Map> listRoleUsers(String orgid, String username, String status,
String level, String rolename, String isvaild);
List<Map> 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<SysRole> {
* 参数说明rolename - 角色名称
* 返回值说明角色列表
***********************************/
List<SysRole> selectRoleList(@Param("rolename") String rolename);
List<SysRole> selectRoleList(@Param("rolename") String rolename, @Param("tenantId") String tenantId);
}

View File

@ -81,9 +81,10 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
************************************/
boolean delInRoleUsersByUserid(@Param("userid") String userid,@Param("roleids")String[] roleids);
Page<SysUser> queryUsers(String orgid,
String username,
Page<SysUser> page);
Page<SysUser> queryUsers(@Param("orgid") String orgid,
@Param("username") String username,
@Param("tenantId") String tenantId,
Page<SysUser> page);
Map<String, String> getOrganizationByid(String id);

View File

@ -28,7 +28,7 @@ public interface ISysLogService extends IService<SysLog> {
***********************************/
Page<SysLog> getLogList(String username, String optType,
String startDate,
String endDate, Page<SysLog> page);
String endDate, Page<SysLog> page, String tenantId);
/**********************************

View File

@ -27,7 +27,7 @@ public interface ISysMenuService extends IService<SysMenu> {
* isdisplay 是否显示
* 返回值说明: 菜单结构树集合
***********************************/
List<Map<String,Object>> getMenuButtonTree(String systemcode, String name, String isdisplay);
List<Map<String,Object>> getMenuButtonTree(String systemcode, String name, String isdisplay, String tenantId);
/***********************************
* 用途说明获取菜单结构树不含按钮
@ -37,7 +37,7 @@ public interface ISysMenuService extends IService<SysMenu> {
* isdisplay 是否显示
* 返回值说明: 菜单结构树集合
***********************************/
List<Map<String,Object>> getMenuTree(String systemcode, String name, String isdisplay);
List<Map<String,Object>> getMenuTree(String systemcode, String name, String isdisplay, String tenantId);
/***********************************
@ -73,7 +73,7 @@ public interface ISysMenuService extends IService<SysMenu> {
* 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<SysMenu> {
boolean changeOderNoById(String fromId, String toId);
List<Map<String, Object>> getMenuTree(String id);
List<Map<String, Object>> getMenuTree(String id, String tenantId);
/***********************************
* 用途说明权限分配
@ -95,7 +95,7 @@ public interface ISysMenuService extends IService<SysMenu> {
* isdisplay 是否显示
* 返回值说明: 菜单结构树集合
***********************************/
List<Map<String, Object>> permissionAssignment(String code,String roleId);
List<Map<String, Object>> permissionAssignment(String code, String roleId, String tenantId);
String uploadIcon(MultipartFile icon) throws FileNotFoundException;
}

View File

@ -24,7 +24,7 @@ public interface ISysOrganizationService extends IService<SysOrganization> {
* params 名称根据名称查询二级
* 返回值说明: 组织树集合
***********************************/
List<Map<String, Object>> getOrgTree(String parentid, String params);
List<Map<String, Object>> getOrgTree(String parentid, String params, String tenantId);
/***********************************
* 用途说明新增系统组织框架
@ -40,7 +40,7 @@ public interface ISysOrganizationService extends IService<SysOrganization> {
* id 企业id
* 返回值说明: 系统组织框架对象
***********************************/
List<SysOrganization> getOrganizationById(String id,String orgName);
List<SysOrganization> getOrganizationById(String id, String orgName, String tenantId);
/***********************************
* 用途说明获取组织范围树结构
@ -48,7 +48,7 @@ public interface ISysOrganizationService extends IService<SysOrganization> {
*roleId 角色id
* 返回值说明: 组织树集合
***********************************/
List<Map<String, Object>> getOrgScopeTree(String roleId);
List<Map<String, Object>> getOrgScopeTree(String roleId, String tenantId);
/**********************************
* 用途说明: 修改角色组织范围

View File

@ -52,7 +52,7 @@ public interface ISysRoleService extends IService<SysRole> {
* isvaild 角色是否有效
* 返回值说明: 系统用户角色数据集合
***********************************/
List<Map> listRoleUsers(String orgid, String username, String status, String level, String rolename, String isvaild);
List<Map> listRoleUsers(String orgid, String username, String status, String level, String rolename, String isvaild, String tenantId);
/***********************************
@ -64,5 +64,5 @@ public interface ISysRoleService extends IService<SysRole> {
***********************************/
boolean setMenuById(String id, String menuIds);
List<SysRole> selectRoleList(String rolename);
List<SysRole> selectRoleList(String rolename, String tenantId);
}

View File

@ -132,7 +132,7 @@ public interface IUserService extends IService<SysUser> {
boolean addUserRoles(String roleid, String userid);
//Page<SysUser> queryUsers(String orgid, String username, Page<SysUser> page);
Page<SysUser> queryUsers(String orgid, String username, Page<SysUser> page);
Page<SysUser> queryUsers(String orgid, String username, String tenantId, Page<SysUser> page);
/***********************************
* 用途说明根据ID批量删除用户
@ -174,6 +174,6 @@ public interface IUserService extends IService<SysUser> {
*page 分页参数
* 返回值说明: 待审核用户分页列表
************************************/
Page<SysUser> queryPendingAuditUsers(Page<SysUser> page,String name, String regStatus);
Page<SysUser> queryPendingAuditUsers(Page<SysUser> page, String name, String regStatus, String tenantId);
}

View File

@ -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<SysLogMapper, SysLog> impleme
@Override
public Page<SysLog> getLogList(String username, String optType,
String startDate,
String endDate, Page<SysLog> page) {
String endDate, Page<SysLog> page, String tenantId) {
LambdaQueryWrapper<SysLog> queryWrapper = new LambdaQueryWrapper<>();
// 没有传username就不按此条件查询
@ -72,6 +75,9 @@ public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> 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<SysLogMapper, SysLog> 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()));

View File

@ -64,23 +64,28 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
@Override
public List<Map<String, Object>> getMenuButtonTree(String systemcode,
String name,
String isdisplay) {
String isdisplay,
String tenantId) {
List<Map<String, Object>> mapList=null;
List<Map<String, Object>> listMap =new ArrayList<>();
if(StrUtil.isEmpty(name)){//不带名称查询返回树结构
QueryWrapper<SysMenu> 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<Map<String, Object>> 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<SysMenu> 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<SysMenuMapper, SysMenu> impl
@Override
public List<Map<String, Object>> getMenuTree(String systemcode,
String name,
String isdisplay) {
String isdisplay,
String tenantId) {
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
if (StrUtil.isNotEmpty(isdisplay)) {
queryWrapper.eq("isdisplay", isdisplay);
@ -107,11 +113,11 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> 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<Map<String, Object>> listMap = this.listMaps(queryWrapper);
for (int i = 0; i < listMap.size(); i++) {
List<Map<String, Object>> 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<SysMenuMapper, SysMenu> impl
***********************************/
private List<Map<String, Object>> child(String parentid,
String systemcode, String name,
String isdisplay, String type) {
String isdisplay, String type, String tenantId) {
List<Map<String, Object>> mapList;
QueryWrapper<SysMenu> 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<SysMenuMapper, SysMenu> impl
for (int i = 0; i < listMap.size(); i++) { //遍历表数据
List<Map<String, Object>> 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<SysMenuMapper, SysMenu> impl
String parentId = sysMenu.getParentid();
QueryWrapper<SysMenu> 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<SysMenu> queryMaxCode = new QueryWrapper<>();
queryMaxCode.eq("parentid", parentId);
queryMaxCode.eq("parentid", parentId)
.eq(StrUtil.isNotBlank(sysMenu.getTenantId()), "tenant_id", sysMenu.getTenantId());
// 使用 Oracle 兼容的 NVL 函数处理空值
List<Object> 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<SysMenu>()
.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<SysMenuMapper, SysMenu> 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<SysMenu>()
.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<SysMenu> 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<SysMenuMapper, SysMenu> impl
}
QueryWrapper<SysMenu> 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<SysMenu> 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<SysMenuMapper, SysMenu> impl
* 返回值说明: 返回菜单树
***********************************/
@Override
public List<Map<String, Object>> getMenuTree(String id) {
public List<Map<String, Object>> getMenuTree(String id, String tenantId) {
// 根据id获取菜单
//List<SysMenu> sysMenus = sysMenuMapper.selectMenuByUserId(id);
List<SysMenu> sysMenuList;
if (StrUtil.isBlank(id)) {
LambdaQueryWrapper<SysMenu> 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<Map<String, Object>> list = sysMenuList.stream()
@ -451,7 +474,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* 返回值说明: 菜单结构树集合
***********************************/
@Override
public List<Map<String, Object>> permissionAssignment(String code,String roleId) {
public List<Map<String, Object>> permissionAssignment(String code, String roleId, String tenantId) {
// String code = sysMenuMapper.getSystemCodeById(roleId);
// if (code == null) {
@ -459,13 +482,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
// }
LambdaQueryWrapper<SysMenu> 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<Map<String, Object>> mapList =
sysMenuMapper.selectMaps(queryWrapper);
List<Map<String, Object>> listAll = ObjectConverterUtil.convertMapFieldsToEntityFormat(SysMenu.class, mapList);
List<String> listRole =
sysMenuMapper.selectMenuByRoleId(roleId);
sysMenuMapper.selectMenuByRoleId(roleId, tenantId);
for (Map<String, Object> map : listAll) {
String id = (String) map.get("id");
if (listRole.contains(id)) {

View File

@ -56,7 +56,8 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
***********************************/
@Override
public List<Map<String, Object>> getOrgTree(String parentid,
String params) {
String params,
String tenantId) {
SysUser userInfo = userService.getUserInfo();
// 构建权限过滤条件
@ -75,7 +76,9 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
allowedOrgIds.addAll(stringList);
// 查询这些组织的父级ID
List<SysOrganization> list = sysOrganizationMapper.selectList(
new LambdaQueryWrapper<SysOrganization>().in(SysOrganization::getId, stringList));
new LambdaQueryWrapper<SysOrganization>()
.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<SysOrganizationMappe
if (!allowedOrgIds.isEmpty()) {
queryWrapper.in("id", allowedOrgIds);
}
if (StrUtil.isNotBlank(tenantId)) {
queryWrapper.eq("tenant_id", tenantId);
}
if (StrUtil.isNotEmpty(params)) {
queryWrapper.like("orgname", params);
}
@ -189,13 +195,18 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
queryWrapper.select("max(orgcode)");
if (StrUtil.isNotEmpty(sysOrganization.getParentid())) {
//根据父级id查询父级信息
parent = this.getById(sysOrganization.getParentid());
parent = this.getOne(new LambdaQueryWrapper<SysOrganization>()
.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<Object> max = this.listObjs(queryWrapper);
//判断查询是否存在 存在转换成 int 类型并给 codeMax 替换值
if (!max.isEmpty() && max.getFirst() != null) {
@ -233,7 +244,8 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
***********************************/
@Override
public List<SysOrganization> getOrganizationById(String id,
String orgName) {
String orgName,
String tenantId) {
SysUser userInfo = userService.getUserInfo();
// 收集所有允许的组织ID
@ -258,6 +270,7 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
// 构建查询条件
LambdaQueryWrapper<SysOrganization> 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<SysOrganizationMappe
* 返回值说明: 组织树集合
***********************************/
@Override
public List<Map<String, Object>> getOrgScopeTree(String roleId) {
public List<Map<String, Object>> getOrgScopeTree(String roleId, String tenantId) {
LambdaQueryWrapper<SysOrganization> queryWrapper = new LambdaQueryWrapper<>();
if(!"admin".equals(SecurityUtils.getCurrentUsername())){
@ -300,11 +313,17 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
queryWrapper.in(SysOrganization::getId, ids);
}
queryWrapper.eq(SysOrganization::getIsvaild, '1');
queryWrapper.eq(StrUtil.isNotBlank(tenantId), SysOrganization::getTenantId, tenantId);
queryWrapper.orderByAsc(SysOrganization::getOrgcode);
List<Map<String, Object>> mapList = this.listMaps(queryWrapper);
List<Map<String, Object>> listMaps = ObjectConverterUtil.convertMapFieldsToEntityFormat(SysOrganization.class, mapList);
// 获取当前角色
SysRole sysRole = sysRoleMapper.selectById(roleId);
SysRole sysRole = sysRoleMapper.selectOne(new QueryWrapper<SysRole>()
.eq("id", roleId)
.eq(StrUtil.isNotBlank(tenantId), "tenant_id", tenantId));
if (sysRole == null) {
return new ArrayList<>();
}
String orgscope = sysRole.getOrgscope();
List<String> ids = new ArrayList<>();
if (StrUtil.isNotBlank(orgscope)) {

View File

@ -47,6 +47,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
int codeMax = 0;
DecimalFormat df = new DecimalFormat("000");//四位数字编号
QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StringUtils.isNotBlank(sysRole.getTenantId()), "tenant_id", sysRole.getTenantId());
List<Object> max = this.listObjs(queryWrapper.select("MAX(rolecode) " +
"rolecode"));// 查询最大的编号
// 存在转换成 int 类型并给 codeMax 替换值
@ -140,9 +141,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
@Override
public List<Map> 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<SysRoleMapper, SysRole> impl
}
@Override
public List<SysRole> selectRoleList(String rolename) {
return roleMapper.selectRoleList(rolename);
public List<SysRole> selectRoleList(String rolename, String tenantId) {
return roleMapper.selectRoleList(rolename, tenantId);
}
}

View File

@ -567,9 +567,10 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
@Override
public Page<SysUser> queryUsers(String orgid,
String username,
String tenantId,
Page<SysUser> page) {
Page<SysUser> mapPage = sysUserMapper.queryUsers(orgid,
username, page);
username, tenantId, page);
mapPage.getRecords().forEach(record -> {
String id = record.getId();
List<SysRole> sysRoles = sysRoleMapper.getRoleByUserId(id);
@ -651,10 +652,11 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
}
@Override
public Page<SysUser> queryPendingAuditUsers(Page<SysUser> page, String name, String regStatus) {
public Page<SysUser> queryPendingAuditUsers(Page<SysUser> page, String name, String regStatus, String tenantId) {
LambdaQueryWrapper<SysUser> 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()

View File

@ -4,12 +4,26 @@
<mapper namespace="com.yfd.platform.system.mapper.SysMenuMapper">
<!-- 向上调整序号 根据父级id 序号小于原序号 并且 大于等于替换序号-->
<update id="upMoveOrderno">
update sys_menu set orderno=orderno+1 where parentid=#{parentid} and orderno &lt; #{Orderno} and orderno &gt;= #{upOrderno}
update sys_menu
set orderno=orderno+1
where parentid=#{parentid}
and orderno &lt; #{Orderno}
and orderno &gt;= #{upOrderno}
<if test="tenantId != null and tenantId != ''">
and tenant_id = #{tenantId}
</if>
</update>
<!-- 向下调整序号 根据父级id 序号大于原序号 并且 小于等于替换序号-->
<update id="downMoveOrderno">
update sys_menu SET orderno=orderno-1 where parentid=#{parentid} and orderno &gt; #{Orderno} and orderno &lt;= #{downOrderno}
update sys_menu
SET orderno=orderno-1
where parentid=#{parentid}
and orderno &gt; #{Orderno}
and orderno &lt;= #{downOrderno}
<if test="tenantId != null and tenantId != ''">
and tenant_id = #{tenantId}
</if>
</update>
<select id="selectPermsByUserId" resultType="java.lang.String">
@ -47,6 +61,10 @@
WHERE
r.isvaild = 1
AND ru.userid = #{userId}
<if test="tenantId != null and tenantId != ''">
AND m.tenant_id = #{tenantId}
AND r.tenant_id = #{tenantId}
</if>
AND m.isdisplay=1
AND m.type != 2
ORDER BY
@ -63,6 +81,9 @@
WHERE
m.isdisplay = 1
AND rm.roleid= #{id}
<if test="tenantId != null and tenantId != ''">
AND m.tenant_id = #{tenantId}
</if>
ORDER BY
m.orderno ASC
</select>

View File

@ -86,6 +86,10 @@
<if test="isvaild != null">
and c.isvaild=#{isvaild}
</if>
<if test="tenantId != null and tenantId != ''">
and b.tenant_id = #{tenantId}
and c.tenant_id = #{tenantId}
</if>
ORDER BY c.level,b.orgid,b.code
</select>
<!--根据用户id获取角色信息-->
@ -129,6 +133,9 @@
<if test="rolename != null and rolename != ''">
AND r.rolename LIKE '%' || #{rolename} || '%'
</if>
<if test="tenantId != null and tenantId != ''">
AND r.tenant_id = #{tenantId}
</if>
AND r."LEVEL" != '1'
</where>
ORDER BY r."LEVEL" ASC, lastmodifydate ASC

View File

@ -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 @@
<if test="username != null">
and u.username LIKE '%' || #{username} || '%'
</if>
<if test="tenantId != null and tenantId != ''">
and u.tenant_id = #{tenantId}
</if>
ORDER BY u.lastmodifydate DESC
</select>
<select id="getOrganizationByid" resultType="java.util.Map">