Commit da650497 by zhangxingmin

增加若干权限相关接口

parent f7524233
......@@ -88,7 +88,7 @@ public class ApiRelProjectMenuController implements ApiRelProjectMenuFeignClient
* @return
*/
@Override
public Result<List<String>> selectedList(String projectBizId) {
return apiRelProjectMenuService.selectedList(projectBizId);
public Result<List<String>> selectedList(String tenantBizId,String projectBizId) {
return apiRelProjectMenuService.selectedList(tenantBizId,projectBizId);
}
}
......@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 项目-用户关系信息(项目管理-用户配置)
* 项目-用户关系信息(租户管理->分配权限->项目->分配权限->用户配置)
*
* @author zxm
* @since 2025-07-31
......@@ -29,7 +29,7 @@ public class ApiRelProjectUserController implements ApiRelProjectUserFeignClient
private ApiRelProjectUserService apiRelProjectUserService;
/**
* 项目用户关系分页查询
* 项目用户关系分页查询
* @param request
* @return
*/
......
......@@ -134,8 +134,8 @@ public class ApiSysUserController implements ApiSysUserFeignClient {
* @return
*/
@Override
public Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(String projectBizId) {
return apiSysUserService.getProjectMenuRouters(projectBizId);
public Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(String tenantBizId,String projectBizId) {
return apiSysUserService.getProjectMenuRouters(tenantBizId,projectBizId);
}
/**
......@@ -143,8 +143,26 @@ public class ApiSysUserController implements ApiSysUserFeignClient {
* @return
*/
@Override
public Result<Boolean> isProjectVisit(String projectBizId) {
return apiSysUserService.isProjectVisit(projectBizId);
public Result<Boolean> isProjectVisit(String tenantBizId,String projectBizId) {
return apiSysUserService.isProjectVisit(tenantBizId,projectBizId);
}
/**
* 权限-管理端-根据登录token获取用户详细信息
* @return
*/
@Override
public Result<ApiSysUserDetailResponse> getUserInfoByToken(String token) {
return apiSysUserService.getUserInfoByToken(token);
}
/**
* 获取用户详情 body入参
* @return
*/
@Override
public Result<ApiSysUserDetailResponse> detail(ApiSysUserDetailBodyRequest request) {
return apiSysUserService.detail(request);
}
......
......@@ -24,7 +24,7 @@ public interface ApiRelProjectMenuService {
Result<List<ApiRelProjectMenuImportQueryMenuTreeResponse>> importQueryMenuTree(ApiRelProjectMenuImportQueryMenuTreeRequest request);
Result<List<String>> selectedList(String projectBizId);
Result<List<String>> selectedList(String tenantBizId,String projectBizId);
Result addSingleRel(String projectBizId, String menuBizId);
}
......@@ -34,7 +34,11 @@ public interface ApiSysUserService {
Result<GetLoginPermissionProjectResponse> getLoginPermissionProject(String tenantBizId, String projectBizId);
Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(String projectBizId);
Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(String tenantBizId,String projectBizId);
Result<Boolean> isProjectVisit(String projectBizId);
Result<Boolean> isProjectVisit(String tenantBizId,String projectBizId);
Result<ApiSysUserDetailResponse> getUserInfoByToken(String token);
Result<ApiSysUserDetailResponse> detail(ApiSysUserDetailBodyRequest request);
}
......@@ -83,6 +83,7 @@ public class ApiRelProjectMenuServiceImpl implements ApiRelProjectMenuService {
//菜单唯一标识(业务ID) 列表(选中列表)不为空
list = request.getMenuBizIdList().stream().map(bizId -> {
RelProjectMenu relProjectMenu = new RelProjectMenu();
relProjectMenu.setTenantBizId(request.getTenantBizId());
relProjectMenu.setProjectBizId(request.getProjectBizId());
relProjectMenu.setMenuBizId(bizId);
return relProjectMenu;
......@@ -119,7 +120,7 @@ public class ApiRelProjectMenuServiceImpl implements ApiRelProjectMenuService {
public Result<List<ApiRelProjectMenuImportQueryMenuTreeResponse>> importQueryMenuTree(ApiRelProjectMenuImportQueryMenuTreeRequest request) {
//TODO 条件搜索菜单树后续完善
List<ApiRelProjectMenuImportQueryMenuTreeResponse> treeMenu = new ArrayList<>();
//查询项目和菜单关系数据(排除已导入的)
//查询项目和菜单关系数据
List<ApiRelProjectMenuImportQueryMenuTreeResponse> queryList = iRelProjectMenuService.importQueryMenuTreeList(request);
if (!CollectionUtils.isEmpty(queryList)) {
......@@ -142,9 +143,10 @@ public class ApiRelProjectMenuServiceImpl implements ApiRelProjectMenuService {
* @return
*/
@Override
public Result<List<String>> selectedList(String projectBizId) {
public Result<List<String>> selectedList(String tenantBizId,String projectBizId) {
List<String> menuBizIdList = new ArrayList<>();
List<RelProjectMenu> relProjectMenuList = iRelProjectMenuService.queryList(RelProjectMenuDto.builder()
.tenantBizId(tenantBizId)
.projectBizId(projectBizId)
.build());
if (!CollectionUtils.isEmpty(relProjectMenuList)) {
......
......@@ -55,6 +55,7 @@ public class ApiRelProjectRoleServiceImpl implements ApiRelProjectRoleService {
//角色唯一标识(业务ID) 列表(选中列表)不为空
list = request.getRoleBizIdList().stream().map(bizId -> {
RelProjectRole relProjectRole = new RelProjectRole();
relProjectRole.setTenantBizId(request.getTenantBizId());
relProjectRole.setProjectBizId(request.getProjectBizId());
relProjectRole.setRoleBizId(bizId);
return relProjectRole;
......
......@@ -51,6 +51,7 @@ public class ApiRelProjectUserServiceImpl implements ApiRelProjectUserService {
//用户唯一标识(业务ID) 列表(选中列表)不为空
list = request.getUserBizIdList().stream().map(bizId -> {
RelProjectUser relTenantUser = new RelProjectUser();
relTenantUser.setTenantBizId(request.getTenantBizId());
relTenantUser.setProjectBizId(request.getProjectBizId());
relTenantUser.setUserBizId(bizId);
return relTenantUser;
......
......@@ -7,6 +7,7 @@ import com.yd.user.feign.request.relrolemenu.ApiSelectedProjectRoleMenuListReque
import com.yd.user.feign.request.relrolemenu.ApiSelectedTenantRoleMenuListRequest;
import com.yd.user.feign.request.relrolemenu.ApiTenantRoleMenuListAddRequest;
import com.yd.user.service.dto.RelRoleMenuDto;
import com.yd.user.service.enums.RelTypeEnum;
import com.yd.user.service.model.RelRoleMenu;
import com.yd.user.service.model.RelTenantMenu;
import com.yd.user.service.service.IRelRoleMenuService;
......@@ -40,6 +41,7 @@ public class ApiRelRoleMenuServiceImpl implements ApiRelRoleMenuService {
//菜单唯一标识(业务ID) 列表(选中列表)不为空
List<RelRoleMenu> list = request.getMenuBizIdList().stream().map(bizId -> {
RelRoleMenu relRoleMenu = new RelRoleMenu();
relRoleMenu.setType(RelTypeEnum.TENANT.getItemValue());
relRoleMenu.setTenantBizId(request.getTenantBizId());
relRoleMenu.setRoleBizId(request.getRoleBizId());
relRoleMenu.setMenuBizId(bizId);
......@@ -60,6 +62,7 @@ public class ApiRelRoleMenuServiceImpl implements ApiRelRoleMenuService {
List<RelRoleMenu> list = iRelRoleMenuService.queryList(RelRoleMenuDto.builder()
.tenantBizId(request.getTenantBizId())
.roleBizId(request.getRoleBizId())
.type(RelTypeEnum.TENANT.getItemValue())
.build());
List<String> menuList = new ArrayList<>();
if (!CollectionUtils.isEmpty(list)) {
......@@ -77,13 +80,15 @@ public class ApiRelRoleMenuServiceImpl implements ApiRelRoleMenuService {
public Result addProjectRoleMenuList(ApiProjectRoleMenuListAddRequest request) {
//先删后增加
//删除项目角色菜单关系
iRelRoleMenuService.removeByProject(request.getProjectBizId(),request.getRoleBizId());
iRelRoleMenuService.removeByProject(request.getTenantBizId(),request.getProjectBizId(),request.getRoleBizId());
//增加项目角色菜单关系
if (!CollectionUtils.isEmpty(request.getMenuBizIdList())) {
//菜单唯一标识(业务ID) 列表(选中列表)不为空
List<RelRoleMenu> list = request.getMenuBizIdList().stream().map(bizId -> {
RelRoleMenu relRoleMenu = new RelRoleMenu();
relRoleMenu.setType(RelTypeEnum.PROJECT.getItemValue());
relRoleMenu.setTenantBizId(request.getTenantBizId());
relRoleMenu.setProjectBizId(request.getProjectBizId());
relRoleMenu.setRoleBizId(request.getRoleBizId());
relRoleMenu.setMenuBizId(bizId);
......@@ -102,8 +107,10 @@ public class ApiRelRoleMenuServiceImpl implements ApiRelRoleMenuService {
@Override
public Result<List<String>> selectedProjectRoleMenuList(ApiSelectedProjectRoleMenuListRequest request) {
List<RelRoleMenu> list = iRelRoleMenuService.queryList(RelRoleMenuDto.builder()
.tenantBizId(request.getTenantBizId())
.projectBizId(request.getProjectBizId())
.roleBizId(request.getRoleBizId())
.type(RelTypeEnum.PROJECT.getItemValue())
.build());
List<String> menuList = new ArrayList<>();
if (!CollectionUtils.isEmpty(list)) {
......
......@@ -10,6 +10,7 @@ import com.yd.user.feign.response.reluserrole.ApiCandidateProjectUserRolePageRes
import com.yd.user.feign.response.reluserrole.ApiCandidateTenantUserRolePageResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedProjectUserRolePageResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedTenantUserRolePageResponse;
import com.yd.user.service.enums.RelTypeEnum;
import com.yd.user.service.model.RelUserRole;
import com.yd.user.service.service.IRelUserRoleService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -36,6 +37,8 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService {
if (!CollectionUtils.isEmpty(request.getRoleBizIdList())) {
List<RelUserRole> list = request.getRoleBizIdList().stream().map(bizId -> {
RelUserRole relUserRole = new RelUserRole();
//关系类型 0-租户关系
relUserRole.setType(RelTypeEnum.TENANT.getItemValue());
relUserRole.setTenantBizId(request.getTenantBizId());
relUserRole.setUserBizId(request.getUserBizId());
relUserRole.setRoleBizId(bizId);
......@@ -54,8 +57,12 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService {
*/
@Override
public Result delTenantUserRoleList(ApiTenantUserRoleListDelRequest request) {
iRelUserRoleService.delRelTenantUserRole(request.getTenantBizId(),
request.getUserBizId(),request.getRoleBizIdList());
iRelUserRoleService.delRelTenantUserRole(
request.getTenantBizId(),
request.getUserBizId(),
request.getRoleBizIdList(),
RelTypeEnum.TENANT.getItemValue()
);
return Result.success();
}
......@@ -97,6 +104,8 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService {
if (!CollectionUtils.isEmpty(request.getRoleBizIdList())) {
List<RelUserRole> list = request.getRoleBizIdList().stream().map(bizId -> {
RelUserRole relUserRole = new RelUserRole();
relUserRole.setType(RelTypeEnum.PROJECT.getItemValue());
relUserRole.setTenantBizId(request.getTenantBizId());
relUserRole.setProjectBizId(request.getProjectBizId());
relUserRole.setUserBizId(request.getUserBizId());
relUserRole.setRoleBizId(bizId);
......@@ -115,8 +124,13 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService {
*/
@Override
public Result delProjectUserRoleList(ApiProjectUserRoleListDelRequest request) {
iRelUserRoleService.delRelProjectUserRole(request.getProjectBizId(),
request.getUserBizId(),request.getRoleBizIdList());
iRelUserRoleService.delRelProjectUserRole(
request.getTenantBizId(),
request.getProjectBizId(),
request.getUserBizId(),
request.getRoleBizIdList(),
RelTypeEnum.PROJECT.getItemValue()
);
return Result.success();
}
......
......@@ -29,6 +29,7 @@ spring:
namespace: ${spring.cloud.nacos.config.namespace}
# nacos的ip地址和端口
server-addr: ${spring.cloud.nacos.config.server-addr}
---
spring:
profiles: test
......@@ -62,6 +63,19 @@ spring:
# nacos的ip地址和端口
server-addr: ${spring.cloud.nacos.config.server-addr}
group: YD_GROUP
#feign:
# client:
# config:
# default:
# connectTimeout: 5000
# readTimeout: 30000
# ribbon:
# ConnectTimeout: 5000
# ReadTimeout: 30000
# OkToRetryOnAllOperations: true
# MaxAutoRetriesNextServer: 2
# MaxAutoRetries: 1
---
spring:
profiles: prod
......
......@@ -68,5 +68,7 @@ public interface ApiRelProjectMenuFeignClient {
* @return
*/
@GetMapping("/import/query/selected/menu/list")
Result<List<String>> selectedList(@NotBlank(message = "项目id不能为空") @RequestParam(value = "projectBizId") String projectBizId);
Result<List<String>> selectedList(
@NotBlank(message = "租户唯一标识(业务ID)不能为空") @RequestParam(value = "tenantBizId") String tenantBizId,
@NotBlank(message = "项目id不能为空") @RequestParam(value = "projectBizId") String projectBizId);
}
......@@ -2,7 +2,6 @@ package com.yd.user.feign.client.sysuser;
import com.yd.common.result.Result;
import com.yd.user.feign.fallback.sysuser.ApiSysUserFeignFallbackFactory;
import com.yd.user.feign.request.systenant.ApiSysTenantPageRequest;
import com.yd.user.feign.request.sysuser.*;
import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse;
import com.yd.user.feign.response.login.GetLoginPermissionProjectResponse;
......@@ -11,7 +10,6 @@ import com.yd.user.feign.response.login.GetLoginInfoResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
......@@ -19,7 +17,7 @@ import java.util.List;
/**
* 用户服务-系统用户信息Feign客户端
*/
@FeignClient(name = "yd-user-api", fallbackFactory = ApiSysUserFeignFallbackFactory.class)
@FeignClient(name = "yd-user-api", path = "/user/api/sysUser",fallbackFactory = ApiSysUserFeignFallbackFactory.class)
public interface ApiSysUserFeignClient {
/**
......@@ -106,12 +104,29 @@ public interface ApiSysUserFeignClient {
* @return
*/
@GetMapping("/login/permission/project/getMenuRouters")
Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(@NotBlank(message = "项目业务id不能为空") @RequestParam(value = "projectBizId") String projectBizId);
Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(@NotBlank(message = "租户业务id不能为空") @RequestParam(value = "tenantBizId") String tenantBizId,
@NotBlank(message = "项目业务id不能为空") @RequestParam(value = "projectBizId") String projectBizId);
/**
* 权限-管理端-获取当前登录用户是否有权限访问该项目
* @return
*/
@GetMapping("/login/permission/project/visit")
Result<Boolean> isProjectVisit(@NotBlank(message = "项目业务id不能为空") @RequestParam(value = "projectBizId") String projectBizId);
Result<Boolean> isProjectVisit(
@NotBlank(message = "租户业务id不能为空") @RequestParam(value = "tenantBizId") String tenantBizId,
@NotBlank(message = "项目业务id不能为空") @RequestParam(value = "projectBizId") String projectBizId);
/**
* 权限-管理端-根据登录token获取用户详细信息
* @return
*/
@GetMapping("/getUserInfoByToken")
Result<ApiSysUserDetailResponse> getUserInfoByToken(@NotBlank(message = "token不能为空") @RequestParam(value = "token") String token);
/**
* 获取用户详情 body入参
* @return
*/
@PostMapping("/body/detail")
Result<ApiSysUserDetailResponse> detail(@Validated @RequestBody ApiSysUserDetailBodyRequest request);
}
......@@ -11,6 +11,8 @@ import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuTreeListRespon
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
......@@ -49,9 +51,10 @@ public class ApiRelProjectMenuFeignFallbackFactory implements FallbackFactory<Ap
}
@Override
public Result<List<String>> selectedList(String projectBizId) {
public Result<List<String>> selectedList(String tenantBizId,String projectBizId) {
return null;
}
};
}
}
......@@ -81,15 +81,29 @@ public class ApiSysUserFeignFallbackFactory implements FallbackFactory<ApiSysUse
}
@Override
public Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(String projectBizId) {
public Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(String tenantBizId,String projectBizId) {
return null;
}
@Override
public Result<Boolean> isProjectVisit(String projectBizId) {
public Result<Boolean> isProjectVisit(String tenantBizId,String projectBizId) {
return null;
}
@Override
public Result<ApiSysUserDetailResponse> getUserInfoByToken(@NotBlank(message = "token不能为空") String token) {
return null;
}
@Override
public Result<ApiSysUserDetailResponse> detail(ApiSysUserDetailBodyRequest request) {
// 记录错误日志
log.error("调用 yd-user-api 服务失败", cause);
// 返回降级结果
return Result.fail("用户服务暂不可用");
}
};
}
}
......@@ -11,6 +11,12 @@ import javax.validation.constraints.NotBlank;
public class ApiRelProjectMenuImportQueryMenuTreeRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目id
*/
@NotBlank(message = "项目id不能为空")
......
......@@ -13,6 +13,12 @@ import java.util.List;
public class ApiRelProjectMenuListAddRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
......
......@@ -12,6 +12,12 @@ import javax.validation.constraints.NotBlank;
public class ApiRelProjectMenuListPageRequest extends PageDto {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
......
......@@ -12,6 +12,12 @@ import javax.validation.constraints.NotBlank;
public class ApiRelProjectMenuTreeListRequest extends PageDto {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
......
......@@ -11,7 +11,13 @@ import java.util.List;
*/
@Data
public class ApiRelProjectRoleListAddRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目唯一标识(业务ID)
*/
......
......@@ -12,6 +12,12 @@ import javax.validation.constraints.NotBlank;
public class ApiRelProjectRoleListPageRequest extends PageDto {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
......
......@@ -12,6 +12,12 @@ import javax.validation.constraints.NotBlank;
public class ApiRelProjectRoleSelectPageRequest extends PageDto {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
......
......@@ -13,6 +13,12 @@ import java.util.List;
public class ApiRelProjectUserListAddRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目ID(业务id)
*/
@NotBlank(message = "项目ID(业务id)不能为空")
......
......@@ -12,6 +12,12 @@ import javax.validation.constraints.NotBlank;
public class ApiRelProjectUserListPageRequest extends PageDto {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
......
......@@ -11,6 +11,11 @@ import javax.validation.constraints.NotBlank;
@Data
public class ApiRelProjectUserSelectPageRequest extends PageDto {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目唯一标识(业务ID)
......
......@@ -10,6 +10,12 @@ import java.util.List;
public class ApiProjectRoleMenuListAddRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
......
......@@ -8,6 +8,12 @@ import javax.validation.constraints.NotBlank;
public class ApiSelectedProjectRoleMenuListRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
......
......@@ -9,6 +9,12 @@ import javax.validation.constraints.NotBlank;
public class ApiCandidateProjectUserRolePageRequest extends PageDto {
/**
* 租户ID(业务id)
*/
@NotBlank(message = "租户ID(业务id)不能为空")
private String tenantBizId;
/**
* 项目ID(业务id)
*/
@NotBlank(message = "项目ID(业务id)不能为空")
......
......@@ -13,6 +13,12 @@ import java.util.List;
public class ApiProjectUserRoleListAddRequest {
/**
* 租户ID(业务id)
*/
@NotBlank(message = "租户ID(业务id)不能为空")
private String tenantBizId;
/**
* 项目ID(业务id)
*/
@NotBlank(message = "项目ID(业务id)不能为空")
......
......@@ -9,6 +9,12 @@ import java.util.List;
public class ApiProjectUserRoleListDelRequest {
/**
* 租户ID(业务id)
*/
@NotBlank(message = "租户ID(业务id)不能为空")
private String tenantBizId;
/**
* 项目ID(业务id)
*/
@NotBlank(message = "项目ID(业务id)不能为空")
......
......@@ -9,6 +9,12 @@ import javax.validation.constraints.NotBlank;
public class ApiSelectedProjectUserRolePageRequest extends PageDto {
/**
* 租户ID(业务id)
*/
@NotBlank(message = "租户ID(业务id)不能为空")
private String tenantBizId;
/**
* 项目ID(业务id)
*/
@NotBlank(message = "项目ID(业务id)不能为空")
......
package com.yd.user.feign.request.sysuser;
import lombok.Data;
@Data
public class ApiSysUserDetailBodyRequest {
/**
* 登录账号
*/
private String userName;
/**
* 用户唯一业务id
*/
private String userBizId;
}
......@@ -3,13 +3,13 @@ package com.yd.user.feign.response.relprojectuser;
import lombok.Data;
/**
* 项目和用户关系分页查询出参
* 租户-项目和用户关系分页查询出参
*/
@Data
public class ApiRelProjectUserListPageResponse {
/**
* 项目和用户关系主键id
* 租户-项目和用户关系表主键id
*/
private Long id;
......
......@@ -16,6 +16,8 @@ public class RelProjectMenuDto {
*/
private Long id;
private String tenantBizId;
/**
* 项目ID(业务id)
*/
......
......@@ -12,6 +12,8 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
public class RelProjectUserDto {
private String tenantBizId;
/**
* 项目ID(业务id)
*/
......
package com.yd.user.service.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
......@@ -16,6 +17,11 @@ public class RelRoleMenuDto {
private Long id;
/**
* 关系类型(0-租户关系 1-项目关系)
*/
private Integer type;
/**
* 租户ID(业务id)(冗余字段,目的当前关系是发生在哪个作用域下:租户级)
*/
private String tenantBizId;
......
package com.yd.user.service.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
......@@ -14,6 +15,11 @@ public class RelUserRoleDto {
private Long id;
/**
* 关系类型(0-租户关系 1-项目关系)
*/
private Integer type;
/**
* 租户ID(业务id)(冗余字段,目的当前关系是发生在哪个作用域下:租户级)
*/
private String tenantBizId;
......
package com.yd.user.service.enums;
/**
* 关系类型枚举
*/
public enum RelTypeEnum {
//关系类型枚举
TENANT("租户关系",0),
PROJECT("项目关系",1),
;
//字典项标签(名称)
private String itemLabel;
//字典项值
private Integer itemValue;
//构造函数
RelTypeEnum(String itemLabel, Integer itemValue) {
this.itemLabel = itemLabel;
this.itemValue = itemValue;
}
public String getItemLabel() {
return itemLabel;
}
public Integer getItemValue() {
return itemValue;
}
}
......@@ -31,6 +31,12 @@ public class RelProjectMenu implements Serializable {
private Long id;
/**
* 租户唯一标识(业务ID)
*/
@TableField("tenant_biz_id")
private String tenantBizId;
/**
* 项目ID(业务id)
*/
@TableField("project_biz_id")
......
......@@ -31,6 +31,12 @@ public class RelProjectRole implements Serializable {
private Long id;
/**
* 租户唯一标识(业务ID)
*/
@TableField("tenant_biz_id")
private String tenantBizId;
/**
* 项目ID(业务id)
*/
@TableField("project_biz_id")
......
......@@ -31,6 +31,12 @@ public class RelProjectUser implements Serializable {
private Long id;
/**
* 租户唯一标识(业务ID)
*/
@TableField("tenant_biz_id")
private String tenantBizId;
/**
* 项目ID(业务id)
*/
@TableField("project_biz_id")
......
......@@ -31,6 +31,12 @@ public class RelRoleMenu implements Serializable {
private Long id;
/**
* 关系类型(0-租户关系 1-项目关系)
*/
@TableField("type")
private Integer type;
/**
* 租户ID(业务id)(冗余字段,目的当前关系是发生在哪个作用域下:租户级)
*/
@TableField("tenant_biz_id")
......
......@@ -31,6 +31,12 @@ public class RelUserRole implements Serializable {
private Long id;
/**
* 关系类型(0-租户关系 1-项目关系)
*/
@TableField("type")
private Integer type;
/**
* 租户ID(业务id)(冗余字段,目的当前关系是发生在哪个作用域下:租户级)
*/
@TableField("tenant_biz_id")
......
......@@ -20,5 +20,5 @@ public interface IRelRoleMenuService extends IService<RelRoleMenu> {
Boolean removeByTenant(String tenantBizId,String roleBizId);
Boolean removeByProject(String projectBizId,String roleBizId);
Boolean removeByProject(String tenantBizId,String projectBizId,String roleBizId);
}
......@@ -28,11 +28,11 @@ public interface IRelUserRoleService extends IService<RelUserRole> {
void delRelTenantUserRole(String tenantBizId,String userBizId);
void delRelTenantUserRole(String tenantBizId,String userBizId,List<String> roleBizIdList);
void delRelTenantUserRole(String tenantBizId,String userBizId,List<String> roleBizIdList,Integer type);
void delRelProjectUserRole(String projectBizId,String userBizId);
void delRelProjectUserRole(String projectBizId,String userBizId,List<String> roleBizIdList);
void delRelProjectUserRole(String tenantBizId,String projectBizId,String userBizId,List<String> roleBizIdList,Integer type);
IPage<ApiCandidateTenantUserRolePageResponse> candidateTenantUserRolePage(Page<ApiCandidateTenantUserRolePageResponse> page,
ApiCandidateTenantUserRolePageRequest request);
......
......@@ -12,7 +12,6 @@ import com.yd.user.service.dto.SysUserDto;
import com.yd.user.service.model.SysRole;
import com.yd.user.service.model.SysUser;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.security.core.userdetails.UserDetails;
import java.util.List;
......
......@@ -64,6 +64,7 @@ public class RelProjectMenuServiceImpl extends ServiceImpl<RelProjectMenuMapper,
public List<RelProjectMenu> queryList(RelProjectMenuDto dto) {
List<RelProjectMenu> list = baseMapper.selectList(new LambdaQueryWrapper<RelProjectMenu>()
.eq(!Objects.isNull(dto.getId()),RelProjectMenu::getId,dto.getId())
.eq(StringUtils.isNotBlank(dto.getTenantBizId()),RelProjectMenu::getTenantBizId,dto.getTenantBizId())
.eq(StringUtils.isNotBlank(dto.getProjectBizId()),RelProjectMenu::getProjectBizId,dto.getProjectBizId())
.eq(StringUtils.isNotBlank(dto.getMenuBizId()),RelProjectMenu::getMenuBizId,dto.getMenuBizId())
);
......
......@@ -72,6 +72,7 @@ public class RelProjectUserServiceImpl extends ServiceImpl<RelProjectUserMapper,
@Override
public List<RelProjectUser> queryList(RelProjectUserDto dto) {
List<RelProjectUser> list = baseMapper.selectList(new LambdaQueryWrapper<RelProjectUser>()
.eq(StringUtils.isNotBlank(dto.getTenantBizId()),RelProjectUser::getTenantBizId,dto.getTenantBizId())
.eq(StringUtils.isNotBlank(dto.getProjectBizId()),RelProjectUser::getProjectBizId,dto.getProjectBizId())
.eq(StringUtils.isNotBlank(dto.getUserBizId()),RelProjectUser::getUserBizId,dto.getUserBizId())
);
......
......@@ -40,6 +40,7 @@ public class RelRoleMenuServiceImpl extends ServiceImpl<RelRoleMenuMapper, RelRo
.eq(StringUtils.isNotBlank(dto.getProjectBizId()),RelRoleMenu::getProjectBizId,dto.getProjectBizId())
.eq(StringUtils.isNotBlank(dto.getRoleBizId()),RelRoleMenu::getRoleBizId,dto.getRoleBizId())
.eq(StringUtils.isNotBlank(dto.getMenuBizId()),RelRoleMenu::getMenuBizId,dto.getMenuBizId())
.eq(!Objects.isNull(dto.getType()),RelRoleMenu::getType,dto.getType())
.in(!CollectionUtils.isEmpty(dto.getRoleBizIdList()),RelRoleMenu::getRoleBizId,dto.getRoleBizIdList())
);
return list;
......@@ -54,8 +55,9 @@ public class RelRoleMenuServiceImpl extends ServiceImpl<RelRoleMenuMapper, RelRo
}
@Override
public Boolean removeByProject(String projectBizId, String roleBizId) {
public Boolean removeByProject(String tenantBizId,String projectBizId, String roleBizId) {
return this.remove(new LambdaQueryWrapper<RelRoleMenu>()
.eq(RelRoleMenu::getTenantBizId,tenantBizId)
.eq(RelRoleMenu::getProjectBizId,projectBizId)
.eq(RelRoleMenu::getRoleBizId,roleBizId)
);
......
......@@ -56,8 +56,10 @@ public class RelUserRoleServiceImpl extends ServiceImpl<RelUserRoleMapper, RelUs
@Override
public void delRelTenantUserRole(String tenantBizId,
String userBizId,
List<String> roleBizIdList) {
List<String> roleBizIdList,
Integer type) {
this.remove(new LambdaQueryWrapper<RelUserRole>()
.eq(RelUserRole::getType,type)
.eq(RelUserRole::getTenantBizId,tenantBizId)
.eq(RelUserRole::getUserBizId,userBizId)
.in(RelUserRole::getRoleBizId,roleBizIdList)
......@@ -83,10 +85,15 @@ public class RelUserRoleServiceImpl extends ServiceImpl<RelUserRoleMapper, RelUs
* @param userBizId
*/
@Override
public void delRelProjectUserRole(String projectBizId,
public void delRelProjectUserRole(
String tenantBizId,
String projectBizId,
String userBizId,
List<String> roleBizIdList) {
List<String> roleBizIdList,
Integer type) {
this.remove(new LambdaQueryWrapper<RelUserRole>()
.eq(RelUserRole::getType,type)
.eq(RelUserRole::getTenantBizId,tenantBizId)
.eq(RelUserRole::getProjectBizId,projectBizId)
.eq(RelUserRole::getUserBizId,userBizId)
.in(RelUserRole::getRoleBizId,roleBizIdList)
......@@ -130,6 +137,7 @@ public class RelUserRoleServiceImpl extends ServiceImpl<RelUserRoleMapper, RelUs
.eq(StringUtils.isNotBlank(dto.getProjectBizId()),RelUserRole::getProjectBizId,dto.getProjectBizId())
.eq(StringUtils.isNotBlank(dto.getUserBizId()),RelUserRole::getUserBizId,dto.getUserBizId())
.eq(StringUtils.isNotBlank(dto.getRoleBizId()),RelUserRole::getRoleBizId,dto.getRoleBizId())
.eq(!Objects.isNull(dto.getType()),RelUserRole::getType,dto.getType())
);
return list;
}
......
......@@ -3,7 +3,7 @@ package com.yd.user.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.auth.core.dto.AuthUserDto;
//import com.yd.auth.core.dto.AuthUserDto;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.user.feign.request.sysuser.ApiScopePageRequest;
......@@ -19,7 +19,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Primary;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Service;
import java.util.List;
......
......@@ -10,6 +10,7 @@
inner join sys_menu sm on sm.menu_biz_id = rpm.menu_biz_id and sm.is_deleted = 0
<where>
and rpm.tenant_biz_id = #{request.tenantBizId}
and rpm.project_biz_id = #{request.projectBizId}
<if test="request.menuName != null and request.menuName != ''">
and sm.menu_name like concat('%', #{request.menuName}, '%')
......@@ -42,6 +43,7 @@
inner join sys_menu sm on sm.menu_biz_id = rpm.menu_biz_id and sm.is_deleted = 0
<where>
and rpm.tenant_biz_id = #{request.tenantBizId}
and rpm.project_biz_id = #{request.projectBizId}
<if test="request.menuName != null and request.menuName != ''">
and sm.menu_name like concat('%', #{request.menuName}, '%')
......
......@@ -10,6 +10,7 @@
inner join sys_role sr on sr.role_biz_id = rpr.role_biz_id and sr.is_deleted = 0
<where>
and rpr.tenant_biz_id = #{request.tenantBizId}
and rpr.project_biz_id = #{request.projectBizId}
<if test="request.roleName != null and request.roleName != ''">
and sr.role_name like concat('%', #{request.roleName}, '%')
......@@ -32,7 +33,10 @@
and sr.is_deleted = 0
and sr.role_biz_id
not in( select rpr.role_biz_id from rel_project_role rpr
where rpr.project_biz_id = #{request.projectBizId} and rpr.is_deleted = 0)
where
rpr.tenant_biz_id = #{request.tenantBizId}
and rpr.project_biz_id = #{request.projectBizId}
and rpr.is_deleted = 0)
</where>
</select>
</mapper>
......@@ -10,6 +10,7 @@
inner join sys_user su on su.user_biz_id = rpu.user_biz_id and su.is_deleted = 0
<where>
and rpu.tenant_biz_id = #{request.tenantBizId}
and rpu.project_biz_id = #{request.projectBizId}
<if test="request.userName != null and request.userName != ''">
......@@ -52,7 +53,10 @@
and su.is_deleted = 0
and su.user_biz_id
not in( select rpu.user_biz_id from rel_project_user rpu
where rpu.project_biz_id = #{request.projectBizId} and rpu.is_deleted = 0)
where
rpu.tenant_biz_id = #{request.tenantBizId}
and rpu.project_biz_id = #{request.projectBizId}
and rpu.is_deleted = 0)
</where>
</select>
......
......@@ -22,6 +22,7 @@
where
rur.tenant_biz_id = #{request.tenantBizId}
and rur.user_biz_id = #{request.userBizId}
and rur.type = 0
and rur.is_deleted = 0
)
</where>
......@@ -41,6 +42,7 @@
and rur.tenant_biz_id = #{request.tenantBizId}
and rur.user_biz_id = #{request.userBizId}
and rur.type = 0
and rur.is_deleted = 0
</where>
......@@ -59,13 +61,16 @@
and sr.role_name like concat('%', #{request.roleName}, '%')
</if>
and rpr.tenant_biz_id = #{request.tenantBizId}
and rpr.project_biz_id = #{request.projectBizId}
and rpr.is_deleted = 0
and rpr.role_biz_id
not in(select rur.role_biz_id from rel_user_role rur
where
rur.project_biz_id = #{request.projectBizId}
rur.tenant_biz_id = #{request.tenantBizId}
and rur.project_biz_id = #{request.projectBizId}
and rur.user_biz_id = #{request.userBizId}
and rur.type = 1
and rur.is_deleted = 0
)
</where>
......@@ -83,8 +88,10 @@
and sr.role_name like concat('%', #{request.roleName}, '%')
</if>
and rur.tenant_biz_id = #{request.tenantBizId}
and rur.project_biz_id = #{request.projectBizId}
and rur.user_biz_id = #{request.userBizId}
and rur.type = 1
and rur.is_deleted = 0
</where>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment