Commit 52bceccb by zhangxingmin

接口优化

parent a7cdc247
...@@ -34,11 +34,6 @@ ...@@ -34,11 +34,6 @@
<artifactId>spring-boot-starter</artifactId> <artifactId>spring-boot-starter</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- swagger2--> <!-- swagger2-->
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>io.springfox</groupId>
...@@ -51,6 +46,24 @@ ...@@ -51,6 +46,24 @@
<artifactId>spring-cloud-starter-bootstrap</artifactId> <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency> </dependency>
<!-- Jackson 数据绑定库 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- Jackson 注解支持 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<!-- Java 8 时间类型支持 -->
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<!-- 实体类模块 --> <!-- 实体类模块 -->
<dependency> <dependency>
<groupId>com.yd</groupId> <groupId>com.yd</groupId>
......
...@@ -7,7 +7,7 @@ import org.springframework.boot.builder.SpringApplicationBuilder; ...@@ -7,7 +7,7 @@ import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication(scanBasePackages = "com.yd") @SpringBootApplication(scanBasePackages = "com.yd")
@MapperScan("com.yd.user.service.dao") @MapperScan("com.yd.**.dao")
@EnableFeignClients(basePackages = "com.yd") @EnableFeignClients(basePackages = "com.yd")
public class UserApiApplication { public class UserApiApplication {
......
package com.yd.user.api.controller;
import com.yd.common.result.Result;
import com.yd.user.api.service.ApiRelRoleMenuService;
import com.yd.user.feign.client.relrolemenu.ApiRelRoleMenuFeignClient;
import com.yd.user.feign.request.relrolemenu.ApiProjectRoleMenuListAddRequest;
import com.yd.user.feign.request.relrolemenu.ApiSelectedProjectRoleMenuListRequest;
import com.yd.user.feign.request.relrolemenu.ApiSelectedTenantRoleMenuListRequest;
import com.yd.user.feign.request.relrolemenu.ApiTenantRoleMenuListAddRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 角色-菜单关系信息
*
* @author zxm
* @since 2025-07-31
*/
@RestController
@RequestMapping("/relRoleMenu")
@Validated
public class ApiRelRoleMenuController implements ApiRelRoleMenuFeignClient {
@Autowired
private ApiRelRoleMenuService apiRelRoleMenuService;
/**
* 租户管理-角色配置-分配菜单-添加菜单角色列表关系
* @param request
* @return
*/
@Override
public Result addTenantRoleMenuList(ApiTenantRoleMenuListAddRequest request) {
return apiRelRoleMenuService.addTenantRoleMenuList(request);
}
/**
* 租户管理-角色配置-分配菜单-查询选中的菜单列表
* @return
*/
@Override
public Result<List<String>> selectedTenantRoleMenuList(ApiSelectedTenantRoleMenuListRequest request) {
return apiRelRoleMenuService.selectedTenantRoleMenuList(request);
}
/**
* 项目管理-角色配置-分配菜单-添加菜单角色列表关系
* @param request
* @return
*/
@Override
public Result addProjectRoleMenuList(ApiProjectRoleMenuListAddRequest request) {
return apiRelRoleMenuService.addProjectRoleMenuList(request);
}
/**
* 项目管理-角色配置-分配菜单-查询选中的菜单列表
* @return
*/
@Override
public Result<List<String>> selectedProjectRoleMenuList(ApiSelectedProjectRoleMenuListRequest request) {
return apiRelRoleMenuService.selectedProjectRoleMenuList(request);
}
}
...@@ -6,15 +6,18 @@ import com.yd.user.api.service.ApiRelTenantMenuService; ...@@ -6,15 +6,18 @@ import com.yd.user.api.service.ApiRelTenantMenuService;
import com.yd.user.feign.client.reltenantmenu.ApiRelTenantMenuFeignClient; import com.yd.user.feign.client.reltenantmenu.ApiRelTenantMenuFeignClient;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListAddRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListAddRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuSelectPageRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuTreeListRequest;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuListPageResponse; import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuListPageResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuSelectPageResponse; import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuTreeListResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotBlank;
import java.util.List;
/** /**
* 租户-菜单关系信息(租户管理-菜单配置) * 租户-菜单关系信息(租户管理-菜单配置)
...@@ -41,6 +44,16 @@ public class ApiRelTenantMenuController implements ApiRelTenantMenuFeignClient { ...@@ -41,6 +44,16 @@ public class ApiRelTenantMenuController implements ApiRelTenantMenuFeignClient {
} }
/** /**
* 租户和菜单关系树形列表查询
* @param request
* @return
*/
@Override
public Result<List<ApiRelTenantMenuTreeListResponse>> tree(ApiRelTenantMenuTreeListRequest request) {
return apiRelTenantMenuService.tree(request);
}
/**
* 添加租户和菜单列表关系 * 添加租户和菜单列表关系
* @param request * @param request
* @return * @return
...@@ -61,12 +74,24 @@ public class ApiRelTenantMenuController implements ApiRelTenantMenuFeignClient { ...@@ -61,12 +74,24 @@ public class ApiRelTenantMenuController implements ApiRelTenantMenuFeignClient {
} }
/** /**
* 导入-选择菜单分页查询(查询当前租户级(当前所属租户绑定的菜单)或者系统级(全局菜单在任何地方都适用导入绑定)的菜单表数据) * 导入-树形菜单查询
* @param request * @param request
* @return * @return
*/ */
@Override @Override
public Result<IPage<ApiRelTenantMenuSelectPageResponse>> selectMenuPage(ApiRelTenantMenuSelectPageRequest request) { public Result<List<ApiRelTenantMenuImportQueryMenuTreeResponse>> importQueryMenuTree(ApiRelTenantMenuImportQueryMenuTreeRequest request) {
return apiRelTenantMenuService.selectMenuPage(request);
return apiRelTenantMenuService.importQueryMenuTree(request);
} }
/**
* 导入-树形菜单-查询选中的菜单id集合
* @param tenantBizId
* @return
*/
@Override
public Result<List<String>> selectedList(String tenantBizId) {
return apiRelTenantMenuService.selectedList(tenantBizId);
}
} }
package com.yd.user.api.controller; package com.yd.user.api.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.api.service.ApiRelUserRoleService; import com.yd.user.api.service.ApiRelUserRoleService;
import com.yd.user.feign.client.reluserrole.ApiRelUserRoleFeignClient; import com.yd.user.feign.client.reluserrole.ApiRelUserRoleFeignClient;
import com.yd.user.feign.request.reluserrole.ApiProjectUserRoleListAddRequest; import com.yd.user.feign.request.reluserrole.*;
import com.yd.user.feign.request.reluserrole.ApiTenantUserRoleListAddRequest; import com.yd.user.feign.response.reluserrole.ApiCandidateProjectUserRolePageResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedProjectUserRoleListResponse; import com.yd.user.feign.response.reluserrole.ApiCandidateTenantUserRolePageResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedTenantUserRoleListResponse; import com.yd.user.feign.response.reluserrole.ApiSelectedProjectUserRolePageResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedTenantUserRolePageResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import java.util.List;
/** /**
* 用户-角色关系信息 * 用户-角色关系信息
...@@ -30,40 +28,78 @@ public class ApiRelUserRoleController implements ApiRelUserRoleFeignClient { ...@@ -30,40 +28,78 @@ public class ApiRelUserRoleController implements ApiRelUserRoleFeignClient {
private ApiRelUserRoleService apiRelUserRoleService; private ApiRelUserRoleService apiRelUserRoleService;
/** /**
* 租户管理-用户配置-权限配置-添加用户角色列表关系 * 租户管理-用户配置-分配角色-添加用户角色列表关系
* @param request * @param request
* @return * @return
*/ */
@Override @Override
public Result addTenantUserRoleList(ApiTenantUserRoleListAddRequest request) { public Result addTenantUserRoleList(ApiTenantUserRoleListAddRequest request){
return apiRelUserRoleService.addTenantUserRoleList(request); return apiRelUserRoleService.addTenantUserRoleList(request);
} }
/** /**
* 租户管理-用户配置-权限配置-查询选中的角色列表 * 租户管理-用户配置-分配角色-移除用户角色列表关系
* @param request
* @return
*/
@Override
public Result delTenantUserRoleList(ApiTenantUserRoleListDelRequest request) {
return apiRelUserRoleService.delTenantUserRoleList(request);
}
/**
* 租户管理-用户配置-分配角色-查询待选的角色分页列表
* @return
*/
@Override
public Result<IPage<ApiCandidateTenantUserRolePageResponse>> candidateTenantUserRolePage(ApiCandidateTenantUserRolePageRequest request){
return apiRelUserRoleService.candidateTenantUserRolePage(request);
}
/**
* 租户管理-用户配置-分配角色-查询选中的角色分页列表
* @return * @return
*/ */
@Override @Override
public Result<List<ApiSelectedTenantUserRoleListResponse>> selectedTenantUserRoleList(String tenantBizId, String userBizId) { public Result<IPage<ApiSelectedTenantUserRolePageResponse>> selectedTenantUserRolePage(ApiSelectedTenantUserRolePageRequest request){
return apiRelUserRoleService.selectedTenantUserRoleList(tenantBizId,userBizId); return apiRelUserRoleService.selectedTenantUserRolePage(request);
} }
/** /**
* 项目管理-用户配置-权限配置-添加用户角色列表关系 * 项目管理-用户配置-分配角色-添加用户角色列表关系
* @param request * @param request
* @return * @return
*/ */
@Override @Override
public Result addProjectUserRoleList(ApiProjectUserRoleListAddRequest request) { public Result addProjectUserRoleList(ApiProjectUserRoleListAddRequest request){
return apiRelUserRoleService.addProjectUserRoleList(request); return apiRelUserRoleService.addProjectUserRoleList(request);
} }
/** /**
* 项目管理-用户配置-权限配置-查询选中的角色列表 * 项目管理-用户配置-分配角色-移除用户角色列表关系
* @param request
* @return
*/
@Override
public Result delProjectUserRoleList(ApiProjectUserRoleListDelRequest request) {
return apiRelUserRoleService.delProjectUserRoleList(request);
}
/**
* 项目管理-用户配置-分配角色-查询待选的角色分页列表
* @return
*/
@Override
public Result<IPage<ApiCandidateProjectUserRolePageResponse>> candidateProjectUserRolePage(ApiCandidateProjectUserRolePageRequest request){
return apiRelUserRoleService.candidateProjectUserRolePage(request);
}
/**
* 项目管理-用户配置-分配角色-查询选中的角色列表
* @return * @return
*/ */
@Override @Override
public Result<List<ApiSelectedProjectUserRoleListResponse>> selectedProjectUserRoleList(String projectBizId, String userBizId) { public Result<IPage<ApiSelectedProjectUserRolePageResponse>> selectedProjectUserRolePage(ApiSelectedProjectUserRolePageRequest request){
return apiRelUserRoleService.selectedProjectUserRoleList(projectBizId,userBizId); return apiRelUserRoleService.selectedProjectUserRolePage(request);
} }
} }
package com.yd.user.api.controller;
import com.yd.common.result.Result;
import com.yd.user.api.service.ApiSysDictService;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 字典类型信息
*
* @author zxm
* @since 2025-07-31
*/
@RestController
@RequestMapping("/sysDict")
@Validated
public class ApiSysDictController implements ApiSysDictFeignClient {
@Autowired
private ApiSysDictService apiSysDictService;
/**
* 根据字典类型获取字典数据项列表
* @param dictType
* @return
*/
@Override
public Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType) {
return apiSysDictService.getDictItemListByDictType(dictType);
}
}
...@@ -4,19 +4,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,19 +4,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.api.service.ApiSysUserService; import com.yd.user.api.service.ApiSysUserService;
import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient; import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient;
import com.yd.user.feign.request.sysuser.ApiSysUserAddRequest; import com.yd.user.feign.request.sysuser.*;
import com.yd.user.feign.request.sysuser.ApiSysUserEditPwdRequest; import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse;
import com.yd.user.feign.request.sysuser.ApiSysUserEditRequest; import com.yd.user.feign.response.login.GetLoginInfoResponse;
import com.yd.user.feign.request.sysuser.ApiSysUserPageRequest; import com.yd.user.feign.response.sysuser.ApiScopePageResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse; import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserPageResponse; import com.yd.user.feign.response.sysuser.ApiSysUserPageResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/** /**
* 用户信息 * 用户信息
...@@ -83,11 +81,41 @@ public class ApiSysUserController implements ApiSysUserFeignClient { ...@@ -83,11 +81,41 @@ public class ApiSysUserController implements ApiSysUserFeignClient {
} }
/** /**
* 编辑用户密码 TODO * 编辑用户密码
* @return * @return
*/ */
@Override @Override
public Result editPwd(ApiSysUserEditPwdRequest request) { public Result editPwd(ApiSysUserEditPwdRequest request) {
return null; return apiSysUserService.editPwd(request);
}
/**
* 管理端-获取用户登录后权限信息
* @return
*/
@Override
public Result<GetLoginInfoResponse> getLoginInfo() {
return apiSysUserService.getLoginInfo();
}
/**
* 管理端-获取当前登录用户绑定的当前租户用户角色菜单列表
* @return
*/
@Override
public Result<List<ApiLoginMenuInfoResponse>> getMenuRouters(String tenantBizId) {
return apiSysUserService.getMenuRouters(tenantBizId);
} }
/**
* 权限-管理端-根据作用域分页查询租户或项目列表
* @param request
* @return
*/
@Override
public Result<IPage<ApiScopePageResponse>> scopePage(ApiScopePageRequest request) {
return apiSysUserService.scopePage(request);
}
} }
package com.yd.user.api.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 角色-菜单关系表(多对多关系) 前端控制器
* </p>
*
* @author zxm
* @since 2025-07-31
*/
@RestController
@RequestMapping("/relRoleMenu")
public class RelRoleMenuController {
}
package com.yd.user.api.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 字典类型表 前端控制器
* </p>
*
* @author zxm
* @since 2025-07-31
*/
@RestController
@RequestMapping("/sysDict")
public class SysDictController {
}
package com.yd.user.api.dto;
import lombok.Data;
/**
* 项目添加和编辑校验入参的DTO
*/
@Data
public class ApiSysProjectAddAndEditReqCheckDto {
/**
* 作用域(1:系统级(全局) 2:租户级 )
*/
private Integer scope;
/**
* 所属租户ID(业务id)
*/
private String tenantBizId;
/**
* 是否内置项目(0-否 1-是 默认0-否 是内置项目,那么整个项目的所绑定的菜单权限都在中台系统展示内嵌外链iframe, 如果不是直接是访问项目卡片直接跳转到独立的前端项目链接获取权限菜单访问)
*/
private Integer isIn;
/**
* 项目访问地址
*/
private String projectUrl;
/**
* 是否超级管理员
*/
private Boolean isAdmin;
}
package com.yd.user.api.service; package com.yd.user.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuImportQueryMenuTreeRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuListAddRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuListPageRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuTreeListRequest;
import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuImportQueryMenuTreeResponse;
import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuListPageResponse;
import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuTreeListResponse;
import java.util.List;
public interface ApiRelProjectMenuService { public interface ApiRelProjectMenuService {
Result<IPage<ApiRelProjectMenuListPageResponse>> page(ApiRelProjectMenuListPageRequest request);
Result<List<ApiRelProjectMenuTreeListResponse>> tree(ApiRelProjectMenuTreeListRequest request);
Result addMenuList(ApiRelProjectMenuListAddRequest request);
Result del(Long id);
Result<List<ApiRelProjectMenuImportQueryMenuTreeResponse>> importQueryMenuTree(ApiRelProjectMenuImportQueryMenuTreeRequest request);
Result<List<String>> selectedList(String projectBizId);
Result addSingleRel(String projectBizId, String menuBizId); Result addSingleRel(String projectBizId, String menuBizId);
} }
package com.yd.user.api.service;
import com.yd.common.result.Result;
import com.yd.user.feign.request.relrolemenu.ApiProjectRoleMenuListAddRequest;
import com.yd.user.feign.request.relrolemenu.ApiSelectedProjectRoleMenuListRequest;
import com.yd.user.feign.request.relrolemenu.ApiSelectedTenantRoleMenuListRequest;
import com.yd.user.feign.request.relrolemenu.ApiTenantRoleMenuListAddRequest;
import java.util.List;
public interface ApiRelRoleMenuService {
Result addTenantRoleMenuList(ApiTenantRoleMenuListAddRequest request);
Result<List<String>> selectedTenantRoleMenuList(ApiSelectedTenantRoleMenuListRequest request);
Result addProjectRoleMenuList(ApiProjectRoleMenuListAddRequest request);
Result<List<String>> selectedProjectRoleMenuList(ApiSelectedProjectRoleMenuListRequest request);
}
...@@ -4,19 +4,27 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,19 +4,27 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListAddRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListAddRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuSelectPageRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuTreeListRequest;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuListPageResponse; import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuListPageResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuSelectPageResponse; import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuTreeListResponse;
import java.util.List;
public interface ApiRelTenantMenuService { public interface ApiRelTenantMenuService {
Result<IPage<ApiRelTenantMenuListPageResponse>> page(ApiRelTenantMenuListPageRequest request); Result<IPage<ApiRelTenantMenuListPageResponse>> page(ApiRelTenantMenuListPageRequest request);
Result<List<ApiRelTenantMenuTreeListResponse>> tree(ApiRelTenantMenuTreeListRequest request);
Result addMenuList(ApiRelTenantMenuListAddRequest request); Result addMenuList(ApiRelTenantMenuListAddRequest request);
Result del(Long id); Result del(Long id);
Result<IPage<ApiRelTenantMenuSelectPageResponse>> selectMenuPage(ApiRelTenantMenuSelectPageRequest request); Result<List<ApiRelTenantMenuImportQueryMenuTreeResponse>> importQueryMenuTree(ApiRelTenantMenuImportQueryMenuTreeRequest request);
Result<List<String>> selectedList(String tenantBizId);
Result addSingleRel(String tenantBizId, String menuBizId); Result addSingleRel(String tenantBizId, String menuBizId);
} }
package com.yd.user.api.service; package com.yd.user.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.request.reluserrole.ApiProjectUserRoleListAddRequest; import com.yd.user.feign.request.reluserrole.*;
import com.yd.user.feign.request.reluserrole.ApiTenantUserRoleListAddRequest; import com.yd.user.feign.response.reluserrole.ApiCandidateProjectUserRolePageResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedProjectUserRoleListResponse; import com.yd.user.feign.response.reluserrole.ApiCandidateTenantUserRolePageResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedTenantUserRoleListResponse; import com.yd.user.feign.response.reluserrole.ApiSelectedProjectUserRolePageResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedTenantUserRolePageResponse;
import java.util.List; import java.util.List;
...@@ -12,9 +14,17 @@ public interface ApiRelUserRoleService { ...@@ -12,9 +14,17 @@ public interface ApiRelUserRoleService {
Result addTenantUserRoleList(ApiTenantUserRoleListAddRequest request); Result addTenantUserRoleList(ApiTenantUserRoleListAddRequest request);
Result<List<ApiSelectedTenantUserRoleListResponse>> selectedTenantUserRoleList(String tenantBizId, String userBizId); Result delTenantUserRoleList(ApiTenantUserRoleListDelRequest request);
Result<IPage<ApiCandidateTenantUserRolePageResponse>> candidateTenantUserRolePage(ApiCandidateTenantUserRolePageRequest request);
Result<IPage<ApiSelectedTenantUserRolePageResponse>> selectedTenantUserRolePage(ApiSelectedTenantUserRolePageRequest request);
Result addProjectUserRoleList(ApiProjectUserRoleListAddRequest request); Result addProjectUserRoleList(ApiProjectUserRoleListAddRequest request);
Result<List<ApiSelectedProjectUserRoleListResponse>> selectedProjectUserRoleList(String projectBizId, String userBizId); Result delProjectUserRoleList(ApiProjectUserRoleListDelRequest request);
Result<IPage<ApiCandidateProjectUserRolePageResponse>> candidateProjectUserRolePage(ApiCandidateProjectUserRolePageRequest request);
Result<IPage<ApiSelectedProjectUserRolePageResponse>> selectedProjectUserRolePage(ApiSelectedProjectUserRolePageRequest request);
} }
package com.yd.user.api.service;
import com.yd.common.result.Result;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import java.util.List;
public interface ApiSysDictService {
Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType);
}
...@@ -2,12 +2,15 @@ package com.yd.user.api.service; ...@@ -2,12 +2,15 @@ package com.yd.user.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.request.sysuser.ApiSysUserAddRequest; import com.yd.user.feign.request.sysuser.*;
import com.yd.user.feign.request.sysuser.ApiSysUserEditRequest; import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse;
import com.yd.user.feign.request.sysuser.ApiSysUserPageRequest; import com.yd.user.feign.response.login.GetLoginInfoResponse;
import com.yd.user.feign.response.sysuser.ApiScopePageResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse; import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserPageResponse; import com.yd.user.feign.response.sysuser.ApiSysUserPageResponse;
import java.util.List;
public interface ApiSysUserService { public interface ApiSysUserService {
Result<IPage<ApiSysUserPageResponse>> page(ApiSysUserPageRequest request); Result<IPage<ApiSysUserPageResponse>> page(ApiSysUserPageRequest request);
...@@ -19,4 +22,12 @@ public interface ApiSysUserService { ...@@ -19,4 +22,12 @@ public interface ApiSysUserService {
Result<ApiSysUserDetailResponse> detail(String userBizId); Result<ApiSysUserDetailResponse> detail(String userBizId);
Result editStatus(String userBizId,Integer status); Result editStatus(String userBizId,Integer status);
Result editPwd(ApiSysUserEditPwdRequest request);
Result<GetLoginInfoResponse> getLoginInfo();
Result<List<ApiLoginMenuInfoResponse>> getMenuRouters(String tenantBizId);
Result<IPage<ApiScopePageResponse>> scopePage(ApiScopePageRequest request);
} }
package com.yd.user.api.service.impl; package com.yd.user.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.common.utils.TreeUtils;
import com.yd.user.api.service.ApiRelProjectMenuService; import com.yd.user.api.service.ApiRelProjectMenuService;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuImportQueryMenuTreeRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuListAddRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuListPageRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuTreeListRequest;
import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuImportQueryMenuTreeResponse;
import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuListPageResponse;
import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuTreeListResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuTreeListResponse;
import com.yd.user.service.dto.RelProjectMenuDto;
import com.yd.user.service.model.RelProjectMenu; import com.yd.user.service.model.RelProjectMenu;
import com.yd.user.service.service.IRelProjectMenuService; import com.yd.user.service.service.IRelProjectMenuService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service @Service
public class ApiRelProjectMenuServiceImpl implements ApiRelProjectMenuService { public class ApiRelProjectMenuServiceImpl implements ApiRelProjectMenuService {
...@@ -14,6 +33,127 @@ public class ApiRelProjectMenuServiceImpl implements ApiRelProjectMenuService { ...@@ -14,6 +33,127 @@ public class ApiRelProjectMenuServiceImpl implements ApiRelProjectMenuService {
private IRelProjectMenuService iRelProjectMenuService; private IRelProjectMenuService iRelProjectMenuService;
/** /**
* 项目和菜单关系分页查询r
* @param request
* @return
*/
@Override
public Result<IPage<ApiRelProjectMenuListPageResponse>> page(ApiRelProjectMenuListPageRequest request) {
Page<ApiRelProjectMenuListPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiRelProjectMenuListPageResponse> iPage = iRelProjectMenuService.page(page, request);
return Result.success(iPage);
}
/**
* 项目和菜单关系树形列表查询
* @param request
* @return
*/
@Override
public Result<List<ApiRelProjectMenuTreeListResponse>> tree(ApiRelProjectMenuTreeListRequest request) {
List<ApiRelProjectMenuTreeListResponse> treeMenu = new ArrayList<>();
//项目和菜单关系列表
List<ApiRelProjectMenuTreeListResponse> queryList = iRelProjectMenuService.treeList(request);
if (!CollectionUtils.isEmpty(queryList)) {
//构建菜单树形结构
treeMenu = TreeUtils.buildTree(
queryList,
ApiRelProjectMenuTreeListResponse::getMenuBizId, // 获取节点ID
ApiRelProjectMenuTreeListResponse::getParentBizId, // 获取父节点ID
(parent, children) -> parent.setChildren(children), // 设置子节点
"0" // 根节点的父ID值
);
}
return Result.success(treeMenu);
}
/**
* 添加项目和菜单列表关系
* @param request
* @return
*/
@Override
public Result addMenuList(ApiRelProjectMenuListAddRequest request) {
List<RelProjectMenu> list = new ArrayList<>();
//先删后增加
iRelProjectMenuService.removeByProjectBizId(request.getProjectBizId());
if (!CollectionUtils.isEmpty(request.getMenuBizIdList())) {
//菜单唯一标识(业务ID) 列表(选中列表)不为空
list = request.getMenuBizIdList().stream().map(bizId -> {
RelProjectMenu relProjectMenu = new RelProjectMenu();
relProjectMenu.setProjectBizId(request.getProjectBizId());
relProjectMenu.setMenuBizId(bizId);
return relProjectMenu;
}).collect(Collectors.toList());
iRelProjectMenuService.saveOrUpdateBatch(list);
}
return Result.success();
}
/**
* 删除项目和菜单关系
* @param id 项目和菜单关系表主键id
* @return
*/
@Override
public Result del(Long id) {
RelProjectMenu relProjectMenu = iRelProjectMenuService.queryOne(id);
if (Objects.isNull(relProjectMenu)) {
//数据不存在
throw new BusinessException(ResultCode.NULL_ERROR.getCode(),ResultCode.NULL_ERROR.getMessage());
}
iRelProjectMenuService.removeById(relProjectMenu.getId());
return Result.success();
}
/**
* 导入-树形菜单查询
* @param request
* @return
*/
@Override
public Result<List<ApiRelProjectMenuImportQueryMenuTreeResponse>> importQueryMenuTree(ApiRelProjectMenuImportQueryMenuTreeRequest request) {
//TODO 条件搜索菜单树后续完善
List<ApiRelProjectMenuImportQueryMenuTreeResponse> treeMenu = new ArrayList<>();
//查询项目和菜单关系数据(排除已导入的)
List<ApiRelProjectMenuImportQueryMenuTreeResponse> queryList = iRelProjectMenuService.importQueryMenuTreeList(request);
if (!CollectionUtils.isEmpty(queryList)) {
//构建菜单树形结构
treeMenu = TreeUtils.buildTree(
queryList,
ApiRelProjectMenuImportQueryMenuTreeResponse::getMenuBizId, // 获取节点ID
ApiRelProjectMenuImportQueryMenuTreeResponse::getParentBizId, // 获取父节点ID
(parent, children) -> parent.setChildren(children), // 设置子节点
"0" // 根节点的父ID值
);
}
return Result.success(treeMenu);
}
/**
* 导入-树形菜单-查询选中的菜单id集合
* @param projectBizId
* @return
*/
@Override
public Result<List<String>> selectedList(String projectBizId) {
List<String> menuBizIdList = new ArrayList<>();
List<RelProjectMenu> relProjectMenuList = iRelProjectMenuService.queryList(RelProjectMenuDto.builder()
.projectBizId(projectBizId)
.build());
if (!CollectionUtils.isEmpty(relProjectMenuList)) {
menuBizIdList = relProjectMenuList.stream().map(RelProjectMenu::getMenuBizId).collect(Collectors.toList());
}
return Result.success(menuBizIdList);
}
/**
* 添加单个项目和菜单关系 * 添加单个项目和菜单关系
* @param projectBizId * @param projectBizId
* @param menuBizId * @param menuBizId
......
...@@ -51,7 +51,7 @@ public class ApiRelProjectRoleServiceImpl implements ApiRelProjectRoleService { ...@@ -51,7 +51,7 @@ public class ApiRelProjectRoleServiceImpl implements ApiRelProjectRoleService {
@Override @Override
public Result addRoleList(ApiRelProjectRoleListAddRequest request) { public Result addRoleList(ApiRelProjectRoleListAddRequest request) {
List<RelProjectRole> list = new ArrayList<>(); List<RelProjectRole> list = new ArrayList<>();
if (CollectionUtils.isEmpty(request.getRoleBizIdList())) { if (!CollectionUtils.isEmpty(request.getRoleBizIdList())) {
//角色唯一标识(业务ID) 列表(选中列表)不为空 //角色唯一标识(业务ID) 列表(选中列表)不为空
list = request.getRoleBizIdList().stream().map(bizId -> { list = request.getRoleBizIdList().stream().map(bizId -> {
RelProjectRole relProjectRole = new RelProjectRole(); RelProjectRole relProjectRole = new RelProjectRole();
......
...@@ -47,7 +47,7 @@ public class ApiRelProjectUserServiceImpl implements ApiRelProjectUserService { ...@@ -47,7 +47,7 @@ public class ApiRelProjectUserServiceImpl implements ApiRelProjectUserService {
@Override @Override
public Result addUserList(ApiRelProjectUserListAddRequest request) { public Result addUserList(ApiRelProjectUserListAddRequest request) {
List<RelProjectUser> list = new ArrayList<>(); List<RelProjectUser> list = new ArrayList<>();
if (CollectionUtils.isEmpty(request.getUserBizIdList())) { if (!CollectionUtils.isEmpty(request.getUserBizIdList())) {
//用户唯一标识(业务ID) 列表(选中列表)不为空 //用户唯一标识(业务ID) 列表(选中列表)不为空
list = request.getUserBizIdList().stream().map(bizId -> { list = request.getUserBizIdList().stream().map(bizId -> {
RelProjectUser relTenantUser = new RelProjectUser(); RelProjectUser relTenantUser = new RelProjectUser();
......
package com.yd.user.api.service.impl;
import com.yd.common.result.Result;
import com.yd.user.api.service.ApiRelRoleMenuService;
import com.yd.user.feign.request.relrolemenu.ApiProjectRoleMenuListAddRequest;
import com.yd.user.feign.request.relrolemenu.ApiSelectedProjectRoleMenuListRequest;
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.model.RelRoleMenu;
import com.yd.user.service.model.RelTenantMenu;
import com.yd.user.service.service.IRelRoleMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class ApiRelRoleMenuServiceImpl implements ApiRelRoleMenuService {
@Autowired
private IRelRoleMenuService iRelRoleMenuService;
/**
* 租户管理-角色配置-分配菜单-添加菜单角色列表关系
* @param request
* @return
*/
@Override
public Result addTenantRoleMenuList(ApiTenantRoleMenuListAddRequest request) {
//先删后增加
//删除租户角色菜单关系
iRelRoleMenuService.removeByTenant(request.getTenantBizId(),request.getRoleBizId());
//增加租户角色菜单关系
if (!CollectionUtils.isEmpty(request.getMenuBizIdList())) {
//菜单唯一标识(业务ID) 列表(选中列表)不为空
List<RelRoleMenu> list = request.getMenuBizIdList().stream().map(bizId -> {
RelRoleMenu relRoleMenu = new RelRoleMenu();
relRoleMenu.setTenantBizId(request.getTenantBizId());
relRoleMenu.setRoleBizId(request.getRoleBizId());
relRoleMenu.setMenuBizId(bizId);
return relRoleMenu;
}).collect(Collectors.toList());
iRelRoleMenuService.saveOrUpdateBatch(list);
}
return Result.success();
}
/**
* 租户管理-角色配置-分配菜单-查询选中的菜单列表
* @return
*/
@Override
public Result<List<String>> selectedTenantRoleMenuList(ApiSelectedTenantRoleMenuListRequest request) {
List<RelRoleMenu> list = iRelRoleMenuService.queryList(RelRoleMenuDto.builder()
.tenantBizId(request.getTenantBizId())
.roleBizId(request.getRoleBizId())
.build());
List<String> menuList = new ArrayList<>();
if (!CollectionUtils.isEmpty(list)) {
menuList = list.stream().map(RelRoleMenu::getMenuBizId).collect(Collectors.toList());
}
return Result.success(menuList);
}
/**
* 项目管理-角色配置-分配菜单-添加菜单角色列表关系
* @param request
* @return
*/
@Override
public Result addProjectRoleMenuList(ApiProjectRoleMenuListAddRequest request) {
//先删后增加
//删除项目角色菜单关系
iRelRoleMenuService.removeByProject(request.getProjectBizId(),request.getRoleBizId());
//增加项目角色菜单关系
if (!CollectionUtils.isEmpty(request.getMenuBizIdList())) {
//菜单唯一标识(业务ID) 列表(选中列表)不为空
List<RelRoleMenu> list = request.getMenuBizIdList().stream().map(bizId -> {
RelRoleMenu relRoleMenu = new RelRoleMenu();
relRoleMenu.setProjectBizId(request.getProjectBizId());
relRoleMenu.setRoleBizId(request.getRoleBizId());
relRoleMenu.setMenuBizId(bizId);
return relRoleMenu;
}).collect(Collectors.toList());
iRelRoleMenuService.saveOrUpdateBatch(list);
}
return Result.success();
}
/**
* 项目管理-角色配置-分配菜单-查询选中的菜单列表
* @return
*/
@Override
public Result<List<String>> selectedProjectRoleMenuList(ApiSelectedProjectRoleMenuListRequest request) {
List<RelRoleMenu> list = iRelRoleMenuService.queryList(RelRoleMenuDto.builder()
.projectBizId(request.getProjectBizId())
.roleBizId(request.getRoleBizId())
.build());
List<String> menuList = new ArrayList<>();
if (!CollectionUtils.isEmpty(list)) {
menuList = list.stream().map(RelRoleMenu::getMenuBizId).collect(Collectors.toList());
}
return Result.success(menuList);
}
}
...@@ -5,14 +5,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -5,14 +5,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.common.utils.TreeUtils;
import com.yd.user.api.service.ApiRelTenantMenuService; import com.yd.user.api.service.ApiRelTenantMenuService;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListAddRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListAddRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuSelectPageRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuTreeListRequest;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuListPageResponse; import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuListPageResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuSelectPageResponse; import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuTreeListResponse;
import com.yd.user.feign.response.sysmenu.ApiSysMenuTreeListResponse;
import com.yd.user.service.dto.RelTenantMenuDto;
import com.yd.user.service.model.RelTenantMenu; import com.yd.user.service.model.RelTenantMenu;
import com.yd.user.service.model.SysMenu;
import com.yd.user.service.service.IRelTenantMenuService; import com.yd.user.service.service.IRelTenantMenuService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -40,6 +47,30 @@ public class ApiRelTenantMenuServiceImpl implements ApiRelTenantMenuService { ...@@ -40,6 +47,30 @@ public class ApiRelTenantMenuServiceImpl implements ApiRelTenantMenuService {
} }
/** /**
* 租户和菜单关系树形列表查询
* @param request
* @return
*/
@Override
public Result<List<ApiRelTenantMenuTreeListResponse>> tree(ApiRelTenantMenuTreeListRequest request) {
List<ApiRelTenantMenuTreeListResponse> treeMenu = new ArrayList<>();
//租户和菜单关系列表
List<ApiRelTenantMenuTreeListResponse> queryList = iRelTenantMenuService.treeList(request);
if (!CollectionUtils.isEmpty(queryList)) {
//构建菜单树形结构
treeMenu = TreeUtils.buildTree(
queryList,
ApiRelTenantMenuTreeListResponse::getMenuBizId, // 获取节点ID
ApiRelTenantMenuTreeListResponse::getParentBizId, // 获取父节点ID
(parent, children) -> parent.setChildren(children), // 设置子节点
"0" // 根节点的父ID值
);
}
return Result.success(treeMenu);
}
/**
* 添加租户和菜单列表关系 * 添加租户和菜单列表关系
* @param request * @param request
* @return * @return
...@@ -47,7 +78,10 @@ public class ApiRelTenantMenuServiceImpl implements ApiRelTenantMenuService { ...@@ -47,7 +78,10 @@ public class ApiRelTenantMenuServiceImpl implements ApiRelTenantMenuService {
@Override @Override
public Result addMenuList(ApiRelTenantMenuListAddRequest request) { public Result addMenuList(ApiRelTenantMenuListAddRequest request) {
List<RelTenantMenu> list = new ArrayList<>(); List<RelTenantMenu> list = new ArrayList<>();
if (CollectionUtils.isEmpty(request.getMenuBizIdList())) { //先删后增加
iRelTenantMenuService.removeByTenantBizId(request.getTenantBizId());
if (!CollectionUtils.isEmpty(request.getMenuBizIdList())) {
//菜单唯一标识(业务ID) 列表(选中列表)不为空 //菜单唯一标识(业务ID) 列表(选中列表)不为空
list = request.getMenuBizIdList().stream().map(bizId -> { list = request.getMenuBizIdList().stream().map(bizId -> {
RelTenantMenu relTenantMenu = new RelTenantMenu(); RelTenantMenu relTenantMenu = new RelTenantMenu();
...@@ -79,15 +113,46 @@ public class ApiRelTenantMenuServiceImpl implements ApiRelTenantMenuService { ...@@ -79,15 +113,46 @@ public class ApiRelTenantMenuServiceImpl implements ApiRelTenantMenuService {
} }
/** /**
* 导入-选择菜单分页查询(查询当前租户级(当前所属租户绑定的菜单)或者系统级(全局菜单在任何地方都适用导入绑定)的菜单表数据) * 导入-树形菜单查询
* @param request * @param request
* @return * @return
*/ */
@Override @Override
public Result<IPage<ApiRelTenantMenuSelectPageResponse>> selectMenuPage(ApiRelTenantMenuSelectPageRequest request) { public Result<List<ApiRelTenantMenuImportQueryMenuTreeResponse>> importQueryMenuTree(ApiRelTenantMenuImportQueryMenuTreeRequest request) {
Page<ApiRelTenantMenuSelectPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize()); //TODO 条件搜索菜单树后续完善
IPage<ApiRelTenantMenuSelectPageResponse> iPage = iRelTenantMenuService.selectProjectPage(page, request); List<ApiRelTenantMenuImportQueryMenuTreeResponse> treeMenu = new ArrayList<>();
return Result.success(iPage); //查询租户和菜单关系数据
List<ApiRelTenantMenuImportQueryMenuTreeResponse> queryList = iRelTenantMenuService.importQueryMenuTreeList(request);
if (!CollectionUtils.isEmpty(queryList)) {
//构建菜单树形结构
treeMenu = TreeUtils.buildTree(
queryList,
ApiRelTenantMenuImportQueryMenuTreeResponse::getMenuBizId, // 获取节点ID
ApiRelTenantMenuImportQueryMenuTreeResponse::getParentBizId, // 获取父节点ID
(parent, children) -> parent.setChildren(children), // 设置子节点
"0" // 根节点的父ID值
);
}
return Result.success(treeMenu);
}
/**
* 导入-树形菜单-查询选中的菜单id集合
* @param tenantBizId
* @return
*/
@Override
public Result<List<String>> selectedList(String tenantBizId) {
List<String> menuBizIdList = new ArrayList<>();
List<RelTenantMenu> relTenantMenuList = iRelTenantMenuService.queryList(RelTenantMenuDto.builder()
.tenantBizId(tenantBizId)
.build());
if (!CollectionUtils.isEmpty(relTenantMenuList)) {
menuBizIdList = relTenantMenuList.stream().map(RelTenantMenu::getMenuBizId).collect(Collectors.toList());
}
return Result.success(menuBizIdList);
} }
/** /**
......
...@@ -47,7 +47,7 @@ public class ApiRelTenantProjectServiceImpl implements ApiRelTenantProjectServic ...@@ -47,7 +47,7 @@ public class ApiRelTenantProjectServiceImpl implements ApiRelTenantProjectServic
@Override @Override
public Result addProjectList(ApiRelTenantProjectListAddRequest request) { public Result addProjectList(ApiRelTenantProjectListAddRequest request) {
List<RelTenantProject> list = new ArrayList<>(); List<RelTenantProject> list = new ArrayList<>();
if (CollectionUtils.isEmpty(request.getProjectBizIdList())) { if (!CollectionUtils.isEmpty(request.getProjectBizIdList())) {
//项目唯一标识(业务ID) 列表(选中列表)不为空 //项目唯一标识(业务ID) 列表(选中列表)不为空
list = request.getProjectBizIdList().stream().map(bizId -> { list = request.getProjectBizIdList().stream().map(bizId -> {
RelTenantProject relTenantProject = new RelTenantProject(); RelTenantProject relTenantProject = new RelTenantProject();
......
...@@ -51,7 +51,7 @@ public class ApiRelTenantRoleServiceImpl implements ApiRelTenantRoleService { ...@@ -51,7 +51,7 @@ public class ApiRelTenantRoleServiceImpl implements ApiRelTenantRoleService {
@Override @Override
public Result addRoleList(ApiRelTenantRoleListAddRequest request) { public Result addRoleList(ApiRelTenantRoleListAddRequest request) {
List<RelTenantRole> list = new ArrayList<>(); List<RelTenantRole> list = new ArrayList<>();
if (CollectionUtils.isEmpty(request.getRoleBizIdList())) { if (!CollectionUtils.isEmpty(request.getRoleBizIdList())) {
//角色唯一标识(业务ID) 列表(选中列表)不为空 //角色唯一标识(业务ID) 列表(选中列表)不为空
list = request.getRoleBizIdList().stream().map(bizId -> { list = request.getRoleBizIdList().stream().map(bizId -> {
RelTenantRole relTenantRole = new RelTenantRole(); RelTenantRole relTenantRole = new RelTenantRole();
......
...@@ -47,7 +47,7 @@ public class ApiRelTenantUserServiceImpl implements ApiRelTenantUserService { ...@@ -47,7 +47,7 @@ public class ApiRelTenantUserServiceImpl implements ApiRelTenantUserService {
@Override @Override
public Result addUserList(ApiRelTenantUserListAddRequest request) { public Result addUserList(ApiRelTenantUserListAddRequest request) {
List<RelTenantUser> list = new ArrayList<>(); List<RelTenantUser> list = new ArrayList<>();
if (CollectionUtils.isEmpty(request.getUserBizIdList())) { if (!CollectionUtils.isEmpty(request.getUserBizIdList())) {
//用户唯一标识(业务ID) 列表(选中列表)不为空 //用户唯一标识(业务ID) 列表(选中列表)不为空
list = request.getUserBizIdList().stream().map(bizId -> { list = request.getUserBizIdList().stream().map(bizId -> {
RelTenantUser relTenantUser = new RelTenantUser(); RelTenantUser relTenantUser = new RelTenantUser();
......
package com.yd.user.api.service.impl; package com.yd.user.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.api.service.ApiRelUserRoleService; import com.yd.user.api.service.ApiRelUserRoleService;
import com.yd.user.feign.request.reluserrole.ApiProjectUserRoleListAddRequest; import com.yd.user.feign.request.reluserrole.*;
import com.yd.user.feign.request.reluserrole.ApiTenantUserRoleListAddRequest; import com.yd.user.feign.response.reltenantuser.ApiRelTenantUserListPageResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedProjectUserRoleListResponse; import com.yd.user.feign.response.reluserrole.ApiCandidateProjectUserRolePageResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedTenantUserRoleListResponse; 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.model.RelUserRole; import com.yd.user.service.model.RelUserRole;
import com.yd.user.service.service.IRelUserRoleService; import com.yd.user.service.service.IRelUserRoleService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -27,9 +31,6 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService { ...@@ -27,9 +31,6 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService {
*/ */
@Override @Override
public Result addTenantUserRoleList(ApiTenantUserRoleListAddRequest request) { public Result addTenantUserRoleList(ApiTenantUserRoleListAddRequest request) {
//先删后新增关系
//删除租户用户角色列表关系
iRelUserRoleService.delRelTenantUserRole(request.getTenantBizId(),request.getUserBizId());
//新增租户用户角色列表关系 //新增租户用户角色列表关系
if (!CollectionUtils.isEmpty(request.getRoleBizIdList())) { if (!CollectionUtils.isEmpty(request.getRoleBizIdList())) {
...@@ -47,17 +48,42 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService { ...@@ -47,17 +48,42 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService {
} }
/** /**
* 租户管理-用户配置-权限配置-查询选中的角色列表 * 租户管理-用户配置-分配角色-移除用户角色列表关系
* @param request
* @return
*/
@Override
public Result delTenantUserRoleList(ApiTenantUserRoleListDelRequest request) {
iRelUserRoleService.delRelTenantUserRole(request.getTenantBizId(),
request.getUserBizId(),request.getRoleBizIdList());
return Result.success();
}
/**
* 租户管理-用户配置-分配角色-查询待选的角色分页列表
* @param request
* @return
*/
@Override
public Result<IPage<ApiCandidateTenantUserRolePageResponse>> candidateTenantUserRolePage(ApiCandidateTenantUserRolePageRequest request) {
Page<ApiCandidateTenantUserRolePageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiCandidateTenantUserRolePageResponse> iPage = iRelUserRoleService.candidateTenantUserRolePage(page, request);
return Result.success(iPage);
}
/**
* 租户管理-用户配置-分配角色-查询选中的角色列表
* @return * @return
*/ */
@Override @Override
public Result<List<ApiSelectedTenantUserRoleListResponse>> selectedTenantUserRoleList(String tenantBizId, String userBizId) { public Result<IPage<ApiSelectedTenantUserRolePageResponse>> selectedTenantUserRolePage(ApiSelectedTenantUserRolePageRequest request) {
List<ApiSelectedTenantUserRoleListResponse> list = iRelUserRoleService.selectedTenantUserRoleList(tenantBizId,userBizId); Page<ApiSelectedTenantUserRolePageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
return Result.success(list); IPage<ApiSelectedTenantUserRolePageResponse> iPage = iRelUserRoleService.selectedTenantUserRolePage(page, request);
return Result.success(iPage);
} }
/** /**
* 项目管理-用户配置-权限配置-添加用户角色列表关系 * 项目管理-用户配置-分配角色-添加项目用户角色列表关系
* @param request * @param request
* @return * @return
*/ */
...@@ -65,9 +91,9 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService { ...@@ -65,9 +91,9 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService {
public Result addProjectUserRoleList(ApiProjectUserRoleListAddRequest request) { public Result addProjectUserRoleList(ApiProjectUserRoleListAddRequest request) {
//先删后新增关系 //先删后新增关系
//删除项目用户角色列表关系 //删除项目用户角色列表关系
iRelUserRoleService.delRelProjectUserRole(request.getProjectBizId(),request.getUserBizId()); // iRelUserRoleService.delRelProjectUserRole(request.getProjectBizId(),request.getUserBizId());
//新增租户用户角色列表关系 //新增项目用户角色列表关系
if (!CollectionUtils.isEmpty(request.getRoleBizIdList())) { if (!CollectionUtils.isEmpty(request.getRoleBizIdList())) {
List<RelUserRole> list = request.getRoleBizIdList().stream().map(bizId -> { List<RelUserRole> list = request.getRoleBizIdList().stream().map(bizId -> {
RelUserRole relUserRole = new RelUserRole(); RelUserRole relUserRole = new RelUserRole();
...@@ -83,13 +109,37 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService { ...@@ -83,13 +109,37 @@ public class ApiRelUserRoleServiceImpl implements ApiRelUserRoleService {
} }
/** /**
* 项目管理-用户配置-权限配置-查询选中的角色列表 * 项目管理-用户配置-分配角色-移除用户角色列表关系
* @param request
* @return
*/
@Override
public Result delProjectUserRoleList(ApiProjectUserRoleListDelRequest request) {
iRelUserRoleService.delRelProjectUserRole(request.getProjectBizId(),
request.getUserBizId(),request.getRoleBizIdList());
return Result.success();
}
/**
* 项目管理-用户配置-分配角色-查询待选的角色分页列表
* @return
*/
@Override
public Result<IPage<ApiCandidateProjectUserRolePageResponse>> candidateProjectUserRolePage(ApiCandidateProjectUserRolePageRequest request) {
Page<ApiCandidateProjectUserRolePageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiCandidateProjectUserRolePageResponse> iPage = iRelUserRoleService.candidateProjectUserRolePage(page, request);
return Result.success(iPage);
}
/**
* 项目管理-用户配置-分配角色-查询选中的角色列表
* @return * @return
*/ */
@Override @Override
public Result<List<ApiSelectedProjectUserRoleListResponse>> selectedProjectUserRoleList(String projectBizId, String userBizId) { public Result<IPage<ApiSelectedProjectUserRolePageResponse>> selectedProjectUserRolePage(ApiSelectedProjectUserRolePageRequest request) {
List<ApiSelectedProjectUserRoleListResponse> list = iRelUserRoleService.selectedProjectUserRoleList(projectBizId,userBizId); Page<ApiSelectedProjectUserRolePageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
return Result.success(list); IPage<ApiSelectedProjectUserRolePageResponse> iPage = iRelUserRoleService.selectedProjectUserRolePage(page, request);
return Result.success(iPage);
} }
} }
package com.yd.user.api.service.impl;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.user.api.service.ApiSysDictService;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.service.dto.SysDictItemDto;
import com.yd.user.service.model.SysDict;
import com.yd.user.service.model.SysDictItem;
import com.yd.user.service.service.ISysDictItemService;
import com.yd.user.service.service.ISysDictService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
public class ApiSysDictServiceImpl implements ApiSysDictService {
@Autowired
private ISysDictService iSysDictService;
@Autowired
private ISysDictItemService iSysDictItemService;
/**
* 根据字典类型获取字典数据项列表
* @param dictType
* @return
*/
@Override
public Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType) {
SysDict sysDict = iSysDictService.queryOneByType(dictType);
if (Objects.isNull(sysDict)) {
throw new BusinessException("字典类型数据不存在");
}
List<GetDictItemListByDictTypeResponse> responses = new ArrayList<>();
//查询字典数据项列表
List<SysDictItem> sysDictItemList = iSysDictItemService.queryList(SysDictItemDto.builder()
.dictBizId(sysDict.getDictBizId())
.build());
if (!CollectionUtils.isEmpty(sysDictItemList)) {
responses = sysDictItemList.stream().map(dto -> {
GetDictItemListByDictTypeResponse response = new GetDictItemListByDictTypeResponse();
BeanUtils.copyProperties(dto,response);
return response;
}).collect(Collectors.toList());
}
return Result.success(responses);
}
}
...@@ -2,11 +2,14 @@ package com.yd.user.api.service.impl; ...@@ -2,11 +2,14 @@ package com.yd.user.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.CommonEnum; import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.user.api.dto.ApiSysProjectAddAndEditReqCheckDto;
import com.yd.user.api.service.ApiRelTenantProjectService; import com.yd.user.api.service.ApiRelTenantProjectService;
import com.yd.user.api.service.ApiSysProjectService; import com.yd.user.api.service.ApiSysProjectService;
import com.yd.user.feign.request.sysproject.ApiSysProjectAddRequest; import com.yd.user.feign.request.sysproject.ApiSysProjectAddRequest;
...@@ -53,10 +56,17 @@ public class ApiSysProjectServiceImpl implements ApiSysProjectService { ...@@ -53,10 +56,17 @@ public class ApiSysProjectServiceImpl implements ApiSysProjectService {
@Override @Override
public Result<IPage<ApiSysProjectPageResponse>> page(ApiSysProjectPageRequest request) { public Result<IPage<ApiSysProjectPageResponse>> page(ApiSysProjectPageRequest request) {
Page<ApiSysProjectPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize()); Page<ApiSysProjectPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
//TODO 当前登录用户的角色类型 true是超级管理员 false是超级管理员 //获取Security上下文当前用户的登录信息
Boolean isAdmin = false; AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
//TODO 当前登录人所属租户id //当前登录用户的角色类型 true是超级管理员 false是超级管理员
String loginTenantBizId = ""; Boolean isAdmin = authUserDto.getIsSuperAdmin() == 1;
//当前所属的租户id(当前页面右上角显示的租户) 超级管理员不传值,非超级管理员根据传值来
if (!isAdmin && StringUtils.isBlank(request.getLoginTenantBizId())) {
//非超级管理员并且LoginTenantBizId为空,提示必须传值LoginTenantBizId
throw new BusinessException("非超级管理员,当前登录用户所属的租户id(当前页面右上角显示的租户)必须传值");
}
String loginTenantBizId = isAdmin ? "" : request.getLoginTenantBizId();
IPage<ApiSysProjectPageResponse> iPage = iSysProjectService.page(page, request,isAdmin,loginTenantBizId); IPage<ApiSysProjectPageResponse> iPage = iSysProjectService.page(page, request,isAdmin,loginTenantBizId);
return Result.success(iPage); return Result.success(iPage);
} }
...@@ -92,10 +102,16 @@ public class ApiSysProjectServiceImpl implements ApiSysProjectService { ...@@ -92,10 +102,16 @@ public class ApiSysProjectServiceImpl implements ApiSysProjectService {
*/ */
@Override @Override
public Result add(ApiSysProjectAddRequest request) { public Result add(ApiSysProjectAddRequest request) {
//TODO 当前登录用户的角色类型 true是超级管理员 false是超级管理员 //获取Security上下文当前用户的登录信息
Boolean isAdmin = false; AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
//添加和编辑校验入参的作用域字段 //当前登录用户的角色类型 true是超级管理员 false是超级管理员
addAndEditReqScopeCheck(isAdmin,request.getScope(),request.getTenantBizId()); Boolean isAdmin = authUserDto.getIsSuperAdmin() == 1;
ApiSysProjectAddAndEditReqCheckDto checkDto = new ApiSysProjectAddAndEditReqCheckDto();
BeanUtils.copyProperties(request,checkDto);
checkDto.setIsAdmin(isAdmin);
//添加和编辑校验入参
addAndEditReqCheck(checkDto);
//校验项目名称的唯一性 //校验项目名称的唯一性
List<SysProject> list = iSysProjectService.queryList(SysProjectDto.builder() List<SysProject> list = iSysProjectService.queryList(SysProjectDto.builder()
...@@ -129,11 +145,16 @@ public class ApiSysProjectServiceImpl implements ApiSysProjectService { ...@@ -129,11 +145,16 @@ public class ApiSysProjectServiceImpl implements ApiSysProjectService {
*/ */
@Override @Override
public Result edit(ApiSysProjectEditRequest request) { public Result edit(ApiSysProjectEditRequest request) {
//TODO 当前登录用户的角色类型 true是超级管理员 false是超级管理员 //获取Security上下文当前用户的登录信息
Boolean isAdmin = false; AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
//当前登录用户的角色类型 true是超级管理员 false是超级管理员
Boolean isAdmin = authUserDto.getIsSuperAdmin() == 1;
//添加和编辑校验入参的作用域字段 ApiSysProjectAddAndEditReqCheckDto checkDto = new ApiSysProjectAddAndEditReqCheckDto();
addAndEditReqScopeCheck(isAdmin,request.getScope(),request.getTenantBizId()); BeanUtils.copyProperties(request,checkDto);
checkDto.setIsAdmin(isAdmin);
//添加和编辑校验入参
addAndEditReqCheck(checkDto);
//校验项目是否存在· //校验项目是否存在·
Result<SysProject> result = checkSysProjectIsExist(request.getProjectBizId()); Result<SysProject> result = checkSysProjectIsExist(request.getProjectBizId());
...@@ -174,21 +195,24 @@ public class ApiSysProjectServiceImpl implements ApiSysProjectService { ...@@ -174,21 +195,24 @@ public class ApiSysProjectServiceImpl implements ApiSysProjectService {
} }
/** /**
* 添加和编辑校验入参的作用域字段 * 添加和编辑校验入参
* @param isAdmin * @param checkDto
* @param scope
* @param tenantBizId
*/ */
public void addAndEditReqScopeCheck(Boolean isAdmin,Integer scope,String tenantBizId) { public void addAndEditReqCheck(ApiSysProjectAddAndEditReqCheckDto checkDto) {
if (!isAdmin && CommonEnum.SCOPE_SYS.getCode().equals(scope.toString())) { if (!checkDto.getIsAdmin() && CommonEnum.SCOPE_SYS.getCode().equals(checkDto.getScope().toString())) {
//非超级管理员不能选择系统级作用域 //非超级管理员不能选择系统级作用域
throw new BusinessException("非超级管理员不能选择系统级作用域!"); throw new BusinessException("非超级管理员不能选择系统级作用域!");
} }
//校验作用域scope字段,如果为作用域租户级所属租户id必须传值 //校验作用域scope字段,如果为作用域租户级所属租户id必须传值
if(CommonEnum.SCOPE_TENANT.getCode().equals(scope.toString()) if(CommonEnum.SCOPE_TENANT.getCode().equals(checkDto.getScope().toString())
&& StringUtils.isBlank(tenantBizId)) { && StringUtils.isBlank(checkDto.getTenantBizId())) {
throw new BusinessException("租户级作用域,所属租户id不能为空"); throw new BusinessException("租户级作用域,所属租户id不能为空");
} }
//校验内置项目字段,如果不是内置项目,项目访问地址必须传值
if (checkDto.getIsIn() == 0 && StringUtils.isBlank(checkDto.getProjectUrl())) {
throw new BusinessException("不是内置项目,项目访问地址不能为空");
}
} }
/** /**
......
...@@ -2,6 +2,8 @@ package com.yd.user.api.service.impl; ...@@ -2,6 +2,8 @@ package com.yd.user.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.CommonEnum; import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
...@@ -63,18 +65,26 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService { ...@@ -63,18 +65,26 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService {
*/ */
@Override @Override
public Result<IPage<ApiSysRolePageResponse>> page(ApiSysRolePageRequest request) { public Result<IPage<ApiSysRolePageResponse>> page(ApiSysRolePageRequest request) {
Page<ApiSysRolePageResponse> page = new Page<>(request.getPageNo(), request.getPageSize()); //获取Security上下文当前用户的登录信息
//TODO 当前登录用户的角色类型 true是超级管理员 false是超级管理员 AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
Boolean isAdmin = false; //当前登录用户的角色类型 true是超级管理员 false是超级管理员
//TODO 当前登录人所属租户id Boolean isAdmin = authUserDto.getIsSuperAdmin() == 1;
String loginTenantBizId = ""; //当前所属的租户id(当前页面右上角显示的租户) 超级管理员不传值,非超级管理员根据传值来
if (!isAdmin && StringUtils.isBlank(request.getLoginTenantBizId())) {
//查询当前租户下绑定的项目列表id //非超级管理员并且LoginTenantBizId为空,提示必须传值LoginTenantBizId
List<RelTenantProject> relTenantProjectList = iRelTenantProjectService.queryList(RelTenantProjectDto.builder().tenantBizId(loginTenantBizId).build()); throw new BusinessException("非超级管理员,当前登录用户所属的租户id(当前页面右上角显示的租户)必须传值");
}
String loginTenantBizId = isAdmin ? "" : request.getLoginTenantBizId();
Page<ApiSysRolePageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
List<String> projectBizIdList = new ArrayList<>(); List<String> projectBizIdList = new ArrayList<>();
if (CollectionUtils.isEmpty(relTenantProjectList)) {
projectBizIdList = relTenantProjectList.stream().map(RelTenantProject::getProjectBizId).collect(Collectors.toList()); if (!isAdmin) {
//查询当前租户下绑定的项目列表id
List<RelTenantProject> relTenantProjectList = iRelTenantProjectService.queryList(RelTenantProjectDto.builder().tenantBizId(loginTenantBizId).build());
if (CollectionUtils.isEmpty(relTenantProjectList)) {
projectBizIdList = relTenantProjectList.stream().map(RelTenantProject::getProjectBizId).collect(Collectors.toList());
}
} }
IPage<ApiSysRolePageResponse> iPage = iSysRoleService.page(page, request,isAdmin,projectBizIdList,loginTenantBizId); IPage<ApiSysRolePageResponse> iPage = iSysRoleService.page(page, request,isAdmin,projectBizIdList,loginTenantBizId);
...@@ -94,20 +104,28 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService { ...@@ -94,20 +104,28 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService {
ApiSysRoleDetailResponse response = new ApiSysRoleDetailResponse(); ApiSysRoleDetailResponse response = new ApiSysRoleDetailResponse();
BeanUtils.copyProperties(sysRole,response); BeanUtils.copyProperties(sysRole,response);
if (StringUtils.isNotBlank(response.getTenantBizId())) { if (CommonEnum.SCOPE_SYS.getCode().equals(response.getScope().toString())) {
//租户id非空获取名称 //系统级
response.setTenantBizId("");
response.setTenantName("");
response.setProjectBizId("");
response.setProjectName("");
}else if (CommonEnum.SCOPE_TENANT.getCode().equals(response.getScope().toString())) {
//租户级
SysTenant sysTenant = iSysTenantService.queryOne(response.getTenantBizId()); SysTenant sysTenant = iSysTenantService.queryOne(response.getTenantBizId());
if (!Objects.isNull(sysTenant)) { if (!Objects.isNull(sysTenant)) {
response.setTenantName(sysTenant.getTenantName()); response.setTenantName(sysTenant.getTenantName());
} }
} response.setProjectBizId("");
response.setProjectName("");
if (StringUtils.isNotBlank(response.getProjectBizId())) { }else if (CommonEnum.SCOPE_PROJECT.getCode().equals(response.getScope().toString())) {
//项目id非空获取名称 //项目
SysProject sysProject = iSysProjectService.queryOne(response.getProjectBizId()); SysProject sysProject = iSysProjectService.queryOne(response.getProjectBizId());
if (!Objects.isNull(sysProject)) { if (!Objects.isNull(sysProject)) {
response.setProjectName(sysProject.getProjectName()); response.setProjectName(sysProject.getProjectName());
} }
response.setTenantBizId("");
response.setTenantName("");
} }
return Result.success(response); return Result.success(response);
} }
...@@ -119,10 +137,17 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService { ...@@ -119,10 +137,17 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService {
*/ */
@Override @Override
public Result add(ApiSysRoleAddRequest request) { public Result add(ApiSysRoleAddRequest request) {
//TODO 当前登录用户的角色类型 true是超级管理员 false是超级管理员 //获取Security上下文当前用户的登录信息
Boolean isAdmin = false; AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
//添加和编辑校验入参的作用域字段 //当前登录用户的角色类型 true是超级管理员 false是超级管理员
addAndEditReqScopeCheck(isAdmin,request.getScope(),request.getTenantBizId(),request.getProjectBizId()); Boolean isAdmin = authUserDto.getIsSuperAdmin() == 1;
//添加和编辑校验入参
addAndEditReqCheck(isAdmin,
request.getScope(),
request.getTenantBizId(),
request.getProjectBizId());
//校验角色名称的唯一性 //校验角色名称的唯一性
List<SysRole> list = iSysRoleService.queryList(SysRoleDto.builder().roleName(request.getRoleName()).build()); List<SysRole> list = iSysRoleService.queryList(SysRoleDto.builder().roleName(request.getRoleName()).build());
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {
...@@ -152,10 +177,17 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService { ...@@ -152,10 +177,17 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService {
*/ */
@Override @Override
public Result edit(ApiSysRoleEditRequest request) { public Result edit(ApiSysRoleEditRequest request) {
//TODO 当前登录用户的角色类型 true是超级管理员 false是超级管理员 //获取Security上下文当前用户的登录信息
Boolean isAdmin = false; AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
//添加和编辑校验入参的作用域字段 //当前登录用户的角色类型 true是超级管理员 false是超级管理员
addAndEditReqScopeCheck(isAdmin,request.getScope(),request.getTenantBizId(),request.getProjectBizId()); Boolean isAdmin = authUserDto.getIsSuperAdmin() == 1;
//添加和编辑校验入参
addAndEditReqCheck(isAdmin,
request.getScope(),
request.getTenantBizId(),
request.getProjectBizId());
//校验角色是否存在 //校验角色是否存在
Result<SysRole> result = checkSysRoleIsExist(request.getRoleBizId()); Result<SysRole> result = checkSysRoleIsExist(request.getRoleBizId());
SysRole sysRole = result.getData(); SysRole sysRole = result.getData();
...@@ -169,7 +201,8 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService { ...@@ -169,7 +201,8 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService {
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {
throw new BusinessException(ResultCode.ROLE_NAME_EXISTS.getCode(),ResultCode.ROLE_NAME_EXISTS.getMessage()); throw new BusinessException(ResultCode.ROLE_NAME_EXISTS.getCode(),ResultCode.ROLE_NAME_EXISTS.getMessage());
} }
//TODO 编辑作用域和所属租户、所属项目的校验待定-换绑的意思
//TODO 换绑逻辑(作用域换绑:提示校验需要先把什么解绑再来换绑)
//编辑角色 //编辑角色
BeanUtils.copyProperties(request,sysRole); BeanUtils.copyProperties(request,sysRole);
...@@ -247,18 +280,21 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService { ...@@ -247,18 +280,21 @@ public class ApiSysRoleServiceImpl implements ApiSysRoleService {
apiRelProjectRoleService.addSingleRel(projectBizId,roleBizId); apiRelProjectRoleService.addSingleRel(projectBizId,roleBizId);
} }
}else if (CommonEnum.OPR_SOURCE_EDIT.getCode().equals(oprSource)) { }else if (CommonEnum.OPR_SOURCE_EDIT.getCode().equals(oprSource)) {
//编辑来源 TODO //编辑来源 TODO 编辑
} }
} }
/** /**
* 添加和编辑校验入参的作用域字段 * 添加和编辑校验入参
* @param isAdmin * @param isAdmin
* @param scope * @param scope
* @param tenantBizId * @param tenantBizId
* @param projectBizId * @param projectBizId
*/ */
public void addAndEditReqScopeCheck(Boolean isAdmin,Integer scope,String tenantBizId,String projectBizId) { public void addAndEditReqCheck(Boolean isAdmin,
Integer scope,
String tenantBizId,
String projectBizId) {
if (!isAdmin && CommonEnum.SCOPE_SYS.getCode().equals(scope.toString())) { if (!isAdmin && CommonEnum.SCOPE_SYS.getCode().equals(scope.toString())) {
//非超级管理员不能选择系统级作用域 //非超级管理员不能选择系统级作用域
throw new BusinessException("非超级管理员不能选择系统级作用域!"); throw new BusinessException("非超级管理员不能选择系统级作用域!");
......
...@@ -2,6 +2,8 @@ package com.yd.user.api.service.impl; ...@@ -2,6 +2,8 @@ package com.yd.user.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.CommonEnum; import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
...@@ -38,12 +40,18 @@ public class ApiSysTenantServiceImpl implements ApiSysTenantService { ...@@ -38,12 +40,18 @@ public class ApiSysTenantServiceImpl implements ApiSysTenantService {
*/ */
@Override @Override
public Result<IPage<ApiSysTenantPageResponse>> page(ApiSysTenantPageRequest request) { public Result<IPage<ApiSysTenantPageResponse>> page(ApiSysTenantPageRequest request) {
//TODO 当前登录用户的角色类型 true是超级管理员 false是超级管理员 //获取Security上下文当前用户的登录信息
Boolean isAdmin = false; AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
//TODO 获取当前登录用户id //当前登录用户的角色类型 true是超级管理员 false是超级管理员
String userBizId = ""; Boolean isAdmin = authUserDto.getIsSuperAdmin() == 1;
//TODO 当前登录人所属租户id //获取当前登录用户id
String loginTenantBizId = ""; String userBizId = authUserDto.getUserBizId();
//当前所属的租户id(当前页面右上角显示的租户) 超级管理员不传值,非超级管理员根据传值来
if (!isAdmin && StringUtils.isBlank(request.getLoginTenantBizId())) {
//非超级管理员并且LoginTenantBizId为空,提示必须传值LoginTenantBizId
throw new BusinessException("非超级管理员,当前登录用户所属的租户id(当前页面右上角显示的租户)必须传值");
}
String loginTenantBizId = isAdmin ? "" : request.getLoginTenantBizId();
Page<ApiSysTenantPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize()); Page<ApiSysTenantPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiSysTenantPageResponse> iPage = iSysTenantService.page(page, request,isAdmin,userBizId,loginTenantBizId); IPage<ApiSysTenantPageResponse> iPage = iSysTenantService.page(page, request,isAdmin,userBizId,loginTenantBizId);
return Result.success(iPage); return Result.success(iPage);
...@@ -72,8 +80,10 @@ public class ApiSysTenantServiceImpl implements ApiSysTenantService { ...@@ -72,8 +80,10 @@ public class ApiSysTenantServiceImpl implements ApiSysTenantService {
*/ */
@Override @Override
public Result add(ApiSysTenantAddRequest request) { public Result add(ApiSysTenantAddRequest request) {
//TODO 当前登录用户的角色类型 true是超级管理员 false是超级管理员 //获取Security上下文当前用户的登录信息
Boolean isAdmin = false; AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
//当前登录用户的角色类型 true是超级管理员 false是超级管理员
Boolean isAdmin = authUserDto.getIsSuperAdmin() == 1;
if (!isAdmin) { if (!isAdmin) {
//非超级管理员不能添加租户 //非超级管理员不能添加租户
throw new BusinessException("非超级管理员不能添加租户!"); throw new BusinessException("非超级管理员不能添加租户!");
...@@ -100,11 +110,10 @@ public class ApiSysTenantServiceImpl implements ApiSysTenantService { ...@@ -100,11 +110,10 @@ public class ApiSysTenantServiceImpl implements ApiSysTenantService {
*/ */
@Override @Override
public Result edit(ApiSysTenantEditRequest request) { public Result edit(ApiSysTenantEditRequest request) {
//TODO 当前登录用户的角色类型 true是超级管理员 false是超级管理员
Boolean isAdmin = false;
//校验租户是否存在 //校验租户是否存在
checkSysTenantIsExist(request.getTenantBizId()); Result<SysTenant> result = checkSysTenantIsExist(request.getTenantBizId());
SysTenant sysTenant = result.getData();
//校验租户名称的唯一性 //校验租户名称的唯一性
List<SysTenant> list = iSysTenantService.queryList(SysTenantDto.builder() List<SysTenant> list = iSysTenantService.queryList(SysTenantDto.builder()
...@@ -117,9 +126,7 @@ public class ApiSysTenantServiceImpl implements ApiSysTenantService { ...@@ -117,9 +126,7 @@ public class ApiSysTenantServiceImpl implements ApiSysTenantService {
throw new BusinessException(ResultCode.TENANT_NAME_EXISTS.getCode(),ResultCode.TENANT_NAME_EXISTS.getMessage()); throw new BusinessException(ResultCode.TENANT_NAME_EXISTS.getCode(),ResultCode.TENANT_NAME_EXISTS.getMessage());
} }
//编辑 //编辑
SysTenant sysTenant = new SysTenant();
BeanUtils.copyProperties(request,sysTenant); BeanUtils.copyProperties(request,sysTenant);
sysTenant.setTenantBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_TENANT.getCode()));
iSysTenantService.saveOrUpdate(sysTenant); iSysTenantService.saveOrUpdate(sysTenant);
return Result.success(); return Result.success();
} }
......
...@@ -61,6 +61,7 @@ spring: ...@@ -61,6 +61,7 @@ spring:
namespace: ${spring.cloud.nacos.config.namespace} namespace: ${spring.cloud.nacos.config.namespace}
# nacos的ip地址和端口 # nacos的ip地址和端口
server-addr: ${spring.cloud.nacos.config.server-addr} server-addr: ${spring.cloud.nacos.config.server-addr}
group: YD_GROUP
--- ---
spring: spring:
profiles: prod profiles: prod
......
...@@ -23,5 +23,9 @@ ...@@ -23,5 +23,9 @@
<artifactId>yd-common</artifactId> <artifactId>yd-common</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>
package com.yd.user.feign.client.relprojectmenu;
import com.yd.common.result.Result;
import com.yd.user.feign.fallback.projectmenu.ApiRelProjectMenuFeignFallbackFactory;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuImportQueryMenuTreeRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuListAddRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuListPageRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuTreeListRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuTreeListRequest;
import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuImportQueryMenuTreeResponse;
import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuTreeListResponse;
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;
/**
* 用户服务:项目-菜单关系信息Feign客户端
*/
@FeignClient(name = "yd-user-api", fallbackFactory = ApiRelProjectMenuFeignFallbackFactory.class)
public interface ApiRelProjectMenuFeignClient {
/**
* 项目和菜单关系分页查询
* @param request
* @return
*/
@PostMapping("/page")
Result page(@Validated @RequestBody ApiRelProjectMenuListPageRequest request);
/**
* 项目和菜单关系树形列表查询
* @param request
* @return
*/
@PostMapping("/tree")
Result<List<ApiRelProjectMenuTreeListResponse>> tree(@Validated @RequestBody ApiRelProjectMenuTreeListRequest request);
/**
* 添加项目和菜单列表关系
* @param request
* @return
*/
@PostMapping("/add/menu/list")
Result addMenuList(@Validated @RequestBody ApiRelProjectMenuListAddRequest request);
/**
* 删除项目和菜单关系
* @param id 项目和菜单关系表主键id
* @return
*/
@DeleteMapping("/del")
Result del(@NotNull(message = "项目和菜单关系表主键id不能为空") @RequestParam(value = "id") Long id);
/**
* 导入-树形菜单查询
* @param request
* @return
*/
@PostMapping("/import/query/menu/tree")
Result<List<ApiRelProjectMenuImportQueryMenuTreeResponse>> importQueryMenuTree(@Validated @RequestBody ApiRelProjectMenuImportQueryMenuTreeRequest request);
/**
* 导入-树形菜单-查询选中的菜单id集合
* @param projectBizId
* @return
*/
@GetMapping("/import/query/selected/menu/list")
Result<List<String>> selectedList(@NotBlank(message = "项目id不能为空") @RequestParam(value = "projectBizId") String projectBizId);
}
package com.yd.user.feign.client.relrolemenu;
import com.yd.common.result.Result;
import com.yd.user.feign.fallback.relrolemenu.ApiRelRoleMenuFeignFallbackFactory;
import com.yd.user.feign.request.relrolemenu.ApiProjectRoleMenuListAddRequest;
import com.yd.user.feign.request.relrolemenu.ApiSelectedProjectRoleMenuListRequest;
import com.yd.user.feign.request.relrolemenu.ApiSelectedTenantRoleMenuListRequest;
import com.yd.user.feign.request.relrolemenu.ApiTenantRoleMenuListAddRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 用户服务:角色-菜单关系信息Feign客户端
*/
@FeignClient(name = "yd-user-api", fallbackFactory = ApiRelRoleMenuFeignFallbackFactory.class)
public interface ApiRelRoleMenuFeignClient {
/**
* 租户管理-角色配置-分配菜单-添加菜单角色列表关系
* @param request
* @return
*/
@PostMapping("/add/tenant/roleMenuList")
Result addTenantRoleMenuList(@Validated @RequestBody ApiTenantRoleMenuListAddRequest request);
/**
* 租户管理-角色配置-分配菜单-查询选中的菜单列表
* @return
*/
@PostMapping("/selected/tenant/roleMenuList")
Result<List<String>> selectedTenantRoleMenuList(@Validated @RequestBody ApiSelectedTenantRoleMenuListRequest request);
/**
* 项目管理-角色配置-分配菜单-添加菜单角色列表关系
* @param request
* @return
*/
@PostMapping("/add/project/roleMenuList")
Result addProjectRoleMenuList(@Validated @RequestBody ApiProjectRoleMenuListAddRequest request);
/**
* 项目管理-角色配置-分配菜单-查询选中的菜单列表
* @return
*/
@PostMapping("/selected/project/roleMenuList")
Result<List<String>> selectedProjectRoleMenuList(@Validated @RequestBody ApiSelectedProjectRoleMenuListRequest request);
}
...@@ -4,14 +4,17 @@ import com.yd.common.result.Result; ...@@ -4,14 +4,17 @@ import com.yd.common.result.Result;
import com.yd.user.feign.fallback.reltenantmenu.ApiRelTenantMenuFeignFallbackFactory; import com.yd.user.feign.fallback.reltenantmenu.ApiRelTenantMenuFeignFallbackFactory;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListAddRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListAddRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuSelectPageRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuTreeListRequest;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuTreeListResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import javax.validation.constraints.NotBlank;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
/** /**
* 用户服务:租户-菜单关系信息Feign客户端 * 用户服务:租户-菜单关系信息Feign客户端
...@@ -28,6 +31,14 @@ public interface ApiRelTenantMenuFeignClient { ...@@ -28,6 +31,14 @@ public interface ApiRelTenantMenuFeignClient {
Result page(@Validated @RequestBody ApiRelTenantMenuListPageRequest request); Result page(@Validated @RequestBody ApiRelTenantMenuListPageRequest request);
/** /**
* 租户和菜单关系树形列表查询
* @param request
* @return
*/
@PostMapping("/tree")
Result<List<ApiRelTenantMenuTreeListResponse>> tree(@Validated @RequestBody ApiRelTenantMenuTreeListRequest request);
/**
* 添加租户和菜单列表关系 * 添加租户和菜单列表关系
* @param request * @param request
* @return * @return
...@@ -44,10 +55,18 @@ public interface ApiRelTenantMenuFeignClient { ...@@ -44,10 +55,18 @@ public interface ApiRelTenantMenuFeignClient {
Result del(@NotNull(message = "租户和菜单关系表主键id不能为空") @RequestParam(value = "id") Long id); Result del(@NotNull(message = "租户和菜单关系表主键id不能为空") @RequestParam(value = "id") Long id);
/** /**
* 导入-选择菜单分页查询(查询当前租户级(当前所属租户绑定的菜单)或者系统级(全局菜单在任何地方都适用导入绑定)的菜单表数据) * 导入-树形菜单查询
* @param request * @param request
* @return * @return
*/ */
@PostMapping("/select/menu/page") @PostMapping("/import/query/menu/tree")
Result selectMenuPage(@Validated @RequestBody ApiRelTenantMenuSelectPageRequest request); Result<List<ApiRelTenantMenuImportQueryMenuTreeResponse>> importQueryMenuTree(@Validated @RequestBody ApiRelTenantMenuImportQueryMenuTreeRequest request);
/**
* 导入-树形菜单-查询选中的菜单id集合
* @param tenantBizId
* @return
*/
@GetMapping("/import/query/selected/menu/list")
Result<List<String>> selectedList(@NotBlank(message = "租户id不能为空") @RequestParam(value = "tenantBizId") String tenantBizId);
} }
...@@ -2,18 +2,12 @@ package com.yd.user.feign.client.reluserrole; ...@@ -2,18 +2,12 @@ package com.yd.user.feign.client.reluserrole;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.fallback.reluserrole.ApiRelUserRoleFeignFallbackFactory; import com.yd.user.feign.fallback.reluserrole.ApiRelUserRoleFeignFallbackFactory;
import com.yd.user.feign.request.reluserrole.ApiProjectUserRoleListAddRequest; import com.yd.user.feign.request.reluserrole.*;
import com.yd.user.feign.request.reluserrole.ApiTenantUserRoleListAddRequest;
import com.yd.user.feign.response.reluserrole.ApiSelectedProjectUserRoleListResponse;
import com.yd.user.feign.response.reluserrole.ApiSelectedTenantUserRoleListResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank;
import java.util.List;
/** /**
* 用户服务:用户-角色关系信息Feign客户端 * 用户服务:用户-角色关系信息Feign客户端
...@@ -22,7 +16,7 @@ import java.util.List; ...@@ -22,7 +16,7 @@ import java.util.List;
public interface ApiRelUserRoleFeignClient { public interface ApiRelUserRoleFeignClient {
/** /**
* 租户管理-用户配置-权限配置-添加用户角色列表关系 * 租户管理-用户配置-分配角色-添加用户角色列表关系
* @param request * @param request
* @return * @return
*/ */
...@@ -30,15 +24,29 @@ public interface ApiRelUserRoleFeignClient { ...@@ -30,15 +24,29 @@ public interface ApiRelUserRoleFeignClient {
Result addTenantUserRoleList(@Validated @RequestBody ApiTenantUserRoleListAddRequest request); Result addTenantUserRoleList(@Validated @RequestBody ApiTenantUserRoleListAddRequest request);
/** /**
* 租户管理-用户配置-权限配置-查询选中的角色列表 * 租户管理-用户配置-分配角色-移除用户角色列表关系
* @param request
* @return
*/
@PostMapping("/del/tenant/userRoleList")
Result delTenantUserRoleList(@Validated @RequestBody ApiTenantUserRoleListDelRequest request);
/**
* 租户管理-用户配置-分配角色-查询待选的角色分页列表
* @return
*/
@PostMapping("/candidate/tenant/userRolePage")
Result candidateTenantUserRolePage(@Validated @RequestBody ApiCandidateTenantUserRolePageRequest request);
/**
* 租户管理-用户配置-分配角色-查询选中的角色分页列表
* @return * @return
*/ */
@GetMapping("/selected/tenant/userRoleList") @PostMapping("/selected/tenant/userRolePage")
Result<List<ApiSelectedTenantUserRoleListResponse>> selectedTenantUserRoleList(@NotBlank(message = "租户唯一标识(业务ID)不能为空") @RequestParam(value = "tenantBizId") String tenantBizId, Result selectedTenantUserRolePage(@Validated @RequestBody ApiSelectedTenantUserRolePageRequest request);
@NotBlank(message = "用户ID(业务id)不能为空") @RequestParam(value = "userBizId") String userBizId);
/** /**
* 项目管理-用户配置-权限配置-添加用户角色列表关系 * 项目管理-用户配置-分配角色-添加用户角色列表关系
* @param request * @param request
* @return * @return
*/ */
...@@ -46,10 +54,24 @@ public interface ApiRelUserRoleFeignClient { ...@@ -46,10 +54,24 @@ public interface ApiRelUserRoleFeignClient {
Result addProjectUserRoleList(@Validated @RequestBody ApiProjectUserRoleListAddRequest request); Result addProjectUserRoleList(@Validated @RequestBody ApiProjectUserRoleListAddRequest request);
/** /**
* 项目管理-用户配置-权限配置-查询选中的角色列表 * 项目管理-用户配置-分配角色-移除用户角色列表关系
* @param request
* @return
*/
@PostMapping("/del/project/userRoleList")
Result delProjectUserRoleList(@Validated @RequestBody ApiProjectUserRoleListDelRequest request);
/**
* 项目管理-用户配置-分配角色-查询待选的角色分页列表
* @return
*/
@PostMapping("/candidate/project/userRolePage")
Result candidateProjectUserRolePage(@Validated @RequestBody ApiCandidateProjectUserRolePageRequest request);
/**
* 项目管理-用户配置-分配角色-查询选中的角色列表
* @return * @return
*/ */
@GetMapping("/selected/project/userRoleList") @PostMapping("/selected/project/userRolePage")
Result<List<ApiSelectedProjectUserRoleListResponse>> selectedProjectUserRoleList(@NotBlank(message = "项目唯一标识(业务ID)不能为空") @RequestParam(value = "projectBizId") String projectBizId, Result selectedProjectUserRolePage(@Validated @RequestBody ApiSelectedProjectUserRolePageRequest request);
@NotBlank(message = "用户ID(业务id)不能为空") @RequestParam(value = "userBizId") String userBizId);
} }
package com.yd.user.feign.client.sysdict;
import com.yd.common.result.Result;
import com.yd.user.feign.fallback.sysdict.ApiSysDictFeignFallbackFactory;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* 用户服务-字典类型信息信息Feign客户端
*/
@FeignClient(name = "yd-user-api", fallbackFactory = ApiSysDictFeignFallbackFactory.class)
public interface ApiSysDictFeignClient {
/**
* 根据字典类型获取字典数据项列表
* @param dictType
* @return
*/
@GetMapping("/type/item/list/{dictType}")
Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(@NotBlank(message = "字典类型不能为空") @PathVariable("dictType") String dictType);
}
...@@ -68,4 +68,5 @@ public interface ApiSysTenantFeignClient { ...@@ -68,4 +68,5 @@ public interface ApiSysTenantFeignClient {
@PatchMapping("/edit/status") @PatchMapping("/edit/status")
Result editStatus(@NotBlank(message = "租户唯一标识(业务ID)不能为空") @RequestParam(value = "tenantBizId") String tenantBizId, Result editStatus(@NotBlank(message = "租户唯一标识(业务ID)不能为空") @RequestParam(value = "tenantBizId") String tenantBizId,
@NotNull(message = "状态不能为空") @RequestParam(value = "status") Integer status); @NotNull(message = "状态不能为空") @RequestParam(value = "status") Integer status);
} }
...@@ -2,17 +2,18 @@ package com.yd.user.feign.client.sysuser; ...@@ -2,17 +2,18 @@ package com.yd.user.feign.client.sysuser;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.fallback.sysuser.ApiSysUserFeignFallbackFactory; import com.yd.user.feign.fallback.sysuser.ApiSysUserFeignFallbackFactory;
import com.yd.user.feign.request.sysuser.ApiSysUserAddRequest; import com.yd.user.feign.request.systenant.ApiSysTenantPageRequest;
import com.yd.user.feign.request.sysuser.ApiSysUserEditPwdRequest; import com.yd.user.feign.request.sysuser.*;
import com.yd.user.feign.request.sysuser.ApiSysUserEditRequest; import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse;
import com.yd.user.feign.request.sysuser.ApiSysUserPageRequest;
import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse; import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse;
import com.yd.user.feign.response.login.GetLoginInfoResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
/** /**
* 用户服务-系统用户信息Feign客户端 * 用户服务-系统用户信息Feign客户端
...@@ -66,6 +67,28 @@ public interface ApiSysUserFeignClient { ...@@ -66,6 +67,28 @@ public interface ApiSysUserFeignClient {
* 编辑用户密码 * 编辑用户密码
* @return * @return
*/ */
@PostMapping("/edit/pwd") @PutMapping("/edit/pwd")
Result editPwd(@Validated @RequestBody ApiSysUserEditPwdRequest request); Result editPwd(@Validated @RequestBody ApiSysUserEditPwdRequest request);
/**
* 权限-管理端-获取用户登录后权限信息
* @return
*/
@GetMapping("/login/permission/getInfo")
Result<GetLoginInfoResponse> getLoginInfo();
/**
* 权限-管理端-获取当前登录用户绑定的当前租户用户角色菜单列表
* @return
*/
@GetMapping("/login/permission/getMenuRouters")
Result<List<ApiLoginMenuInfoResponse>> getMenuRouters(@NotBlank(message = "租户业务id不能为空") @RequestParam(value = "tenantBizId") String tenantBizId);
/**
* 权限-管理端-根据作用域分页查询租户或项目列表
* @param request
* @return
*/
@PostMapping("/scope/page")
Result scopePage(@Validated @RequestBody ApiScopePageRequest request);
} }
package com.yd.user.feign.fallback.projectmenu;
import com.yd.common.result.Result;
import com.yd.user.feign.client.relprojectmenu.ApiRelProjectMenuFeignClient;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuImportQueryMenuTreeRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuListAddRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuListPageRequest;
import com.yd.user.feign.request.relprojectmenu.ApiRelProjectMenuTreeListRequest;
import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuImportQueryMenuTreeResponse;
import com.yd.user.feign.response.relprojectmenu.ApiRelProjectMenuTreeListResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 用户服务:项目-菜单关系信息Feign降级处理
*/
@Slf4j
@Component
public class ApiRelProjectMenuFeignFallbackFactory implements FallbackFactory<ApiRelProjectMenuFeignClient> {
@Override
public ApiRelProjectMenuFeignClient create(Throwable cause) {
return new ApiRelProjectMenuFeignClient() {
@Override
public Result page(ApiRelProjectMenuListPageRequest request) {
return null;
}
@Override
public Result<List<ApiRelProjectMenuTreeListResponse>> tree(ApiRelProjectMenuTreeListRequest request) {
return null;
}
@Override
public Result addMenuList(ApiRelProjectMenuListAddRequest request) {
return null;
}
@Override
public Result del(Long id) {
return null;
}
@Override
public Result<List<ApiRelProjectMenuImportQueryMenuTreeResponse>> importQueryMenuTree(ApiRelProjectMenuImportQueryMenuTreeRequest request) {
return null;
}
@Override
public Result<List<String>> selectedList(String projectBizId) {
return null;
}
};
}
}
package com.yd.user.feign.fallback.relrolemenu;
import com.yd.common.result.Result;
import com.yd.user.feign.client.relrolemenu.ApiRelRoleMenuFeignClient;
import com.yd.user.feign.request.relrolemenu.ApiProjectRoleMenuListAddRequest;
import com.yd.user.feign.request.relrolemenu.ApiSelectedProjectRoleMenuListRequest;
import com.yd.user.feign.request.relrolemenu.ApiSelectedTenantRoleMenuListRequest;
import com.yd.user.feign.request.relrolemenu.ApiTenantRoleMenuListAddRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 用户服务:角色-菜单关系信息Feign降级处理
*/
@Slf4j
@Component
public class ApiRelRoleMenuFeignFallbackFactory implements FallbackFactory<ApiRelRoleMenuFeignClient> {
@Override
public ApiRelRoleMenuFeignClient create(Throwable cause) {
return new ApiRelRoleMenuFeignClient() {
@Override
public Result addTenantRoleMenuList(ApiTenantRoleMenuListAddRequest request) {
return null;
}
@Override
public Result<List<String>> selectedTenantRoleMenuList(ApiSelectedTenantRoleMenuListRequest request) {
return null;
}
@Override
public Result addProjectRoleMenuList(ApiProjectRoleMenuListAddRequest request) {
return null;
}
@Override
public Result<List<String>> selectedProjectRoleMenuList(ApiSelectedProjectRoleMenuListRequest request) {
return null;
}
};
}
}
...@@ -4,11 +4,17 @@ import com.yd.common.result.Result; ...@@ -4,11 +4,17 @@ import com.yd.common.result.Result;
import com.yd.user.feign.client.reltenantmenu.ApiRelTenantMenuFeignClient; import com.yd.user.feign.client.reltenantmenu.ApiRelTenantMenuFeignClient;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListAddRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListAddRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuSelectPageRequest; import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuTreeListRequest;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuTreeListResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.validation.constraints.NotBlank;
import java.util.List;
/** /**
* 用户服务:租户-菜单关系信息Feign降级处理 * 用户服务:租户-菜单关系信息Feign降级处理
*/ */
...@@ -24,6 +30,11 @@ public class ApiRelTenantMenuFeignFallbackFactory implements FallbackFactory<Api ...@@ -24,6 +30,11 @@ public class ApiRelTenantMenuFeignFallbackFactory implements FallbackFactory<Api
} }
@Override @Override
public Result<List<ApiRelTenantMenuTreeListResponse>> tree(ApiRelTenantMenuTreeListRequest request) {
return null;
}
@Override
public Result addMenuList(ApiRelTenantMenuListAddRequest request) { public Result addMenuList(ApiRelTenantMenuListAddRequest request) {
return null; return null;
} }
...@@ -34,9 +45,15 @@ public class ApiRelTenantMenuFeignFallbackFactory implements FallbackFactory<Api ...@@ -34,9 +45,15 @@ public class ApiRelTenantMenuFeignFallbackFactory implements FallbackFactory<Api
} }
@Override @Override
public Result selectMenuPage(ApiRelTenantMenuSelectPageRequest request) { public Result<List<ApiRelTenantMenuImportQueryMenuTreeResponse>> importQueryMenuTree(ApiRelTenantMenuImportQueryMenuTreeRequest request) {
return null; return null;
} }
@Override
public Result<List<String>> selectedList(String tenantBizId) {
return null;
}
}; };
} }
} }
...@@ -2,16 +2,11 @@ package com.yd.user.feign.fallback.reluserrole; ...@@ -2,16 +2,11 @@ package com.yd.user.feign.fallback.reluserrole;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.client.reluserrole.ApiRelUserRoleFeignClient; import com.yd.user.feign.client.reluserrole.ApiRelUserRoleFeignClient;
import com.yd.user.feign.request.reluserrole.ApiProjectUserRoleListAddRequest; import com.yd.user.feign.request.reluserrole.*;
import com.yd.user.feign.request.reluserrole.ApiTenantUserRoleListAddRequest;
import com.yd.user.feign.response.reluserrole.ApiSelectedTenantUserRoleListResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.validation.constraints.NotBlank;
import java.util.List;
/** /**
* 用户服务:用户-角色关系信息Feign降级处理 * 用户服务:用户-角色关系信息Feign降级处理
*/ */
...@@ -21,13 +16,24 @@ public class ApiRelUserRoleFeignFallbackFactory implements FallbackFactory<ApiRe ...@@ -21,13 +16,24 @@ public class ApiRelUserRoleFeignFallbackFactory implements FallbackFactory<ApiRe
@Override @Override
public ApiRelUserRoleFeignClient create(Throwable cause) { public ApiRelUserRoleFeignClient create(Throwable cause) {
return new ApiRelUserRoleFeignClient() { return new ApiRelUserRoleFeignClient() {
@Override @Override
public Result addTenantUserRoleList(ApiTenantUserRoleListAddRequest request) { public Result addTenantUserRoleList(ApiTenantUserRoleListAddRequest request) {
return null; return null;
} }
@Override @Override
public Result<List<ApiSelectedTenantUserRoleListResponse>> selectedTenantUserRoleList(String tenantBizId, String userBizId) { public Result delTenantUserRoleList(ApiTenantUserRoleListDelRequest request) {
return null;
}
@Override
public Result candidateTenantUserRolePage(ApiCandidateTenantUserRolePageRequest request) {
return null;
}
@Override
public Result selectedTenantUserRolePage(ApiSelectedTenantUserRolePageRequest request) {
return null; return null;
} }
...@@ -37,7 +43,17 @@ public class ApiRelUserRoleFeignFallbackFactory implements FallbackFactory<ApiRe ...@@ -37,7 +43,17 @@ public class ApiRelUserRoleFeignFallbackFactory implements FallbackFactory<ApiRe
} }
@Override @Override
public Result selectedProjectUserRoleList(String projectBizId,String userBizId) { public Result delProjectUserRoleList(ApiProjectUserRoleListDelRequest request) {
return null;
}
@Override
public Result candidateProjectUserRolePage(ApiCandidateProjectUserRolePageRequest request) {
return null;
}
@Override
public Result selectedProjectUserRolePage(ApiSelectedProjectUserRolePageRequest request) {
return null; return null;
} }
}; };
......
package com.yd.user.feign.fallback.sysdict;
import com.yd.common.result.Result;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 用户服务-字典类型信息Feign降级处理
*/
@Slf4j
@Component
public class ApiSysDictFeignFallbackFactory implements FallbackFactory<ApiSysDictFeignClient> {
@Override
public ApiSysDictFeignClient create(Throwable cause) {
return new ApiSysDictFeignClient() {
@Override
public Result<List<GetDictItemListByDictTypeResponse>> getDictItemListByDictType(String dictType) {
return null;
}
};
}
}
...@@ -3,14 +3,18 @@ package com.yd.user.feign.fallback.sysuser; ...@@ -3,14 +3,18 @@ package com.yd.user.feign.fallback.sysuser;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient; import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient;
import com.yd.user.feign.request.sysuser.ApiSysUserAddRequest; import com.yd.user.feign.request.sysuser.*;
import com.yd.user.feign.request.sysuser.ApiSysUserEditRequest; import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse;
import com.yd.user.feign.request.sysuser.ApiSysUserPageRequest; import com.yd.user.feign.response.login.GetLoginInfoResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse; import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/** /**
* 用户服务-系统用户信息Feign降级处理 * 用户服务-系统用户信息Feign降级处理
*/ */
...@@ -44,6 +48,32 @@ public class ApiSysUserFeignFallbackFactory implements FallbackFactory<ApiSysUse ...@@ -44,6 +48,32 @@ public class ApiSysUserFeignFallbackFactory implements FallbackFactory<ApiSysUse
log.error("获取用户信息失败: {}", cause.getMessage()); log.error("获取用户信息失败: {}", cause.getMessage());
throw new BusinessException("获取用户信息失败,请稍后重试"); throw new BusinessException("获取用户信息失败,请稍后重试");
} }
@Override
public Result editStatus(String userBizId, Integer status) {
return null;
}
@Override
public Result editPwd(ApiSysUserEditPwdRequest request) {
return null;
}
@Override
public Result<GetLoginInfoResponse> getLoginInfo() {
return null;
}
@Override
public Result<List<ApiLoginMenuInfoResponse>> getMenuRouters(String tenantBizId) {
return null;
}
@Override
public Result scopePage(ApiScopePageRequest request) {
return null;
}
}; };
} }
} }
package com.yd.user.feign.request.relprojectmenu;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 导入-树形菜单查询
*/
@Data
public class ApiRelProjectMenuImportQueryMenuTreeRequest {
/**
* 项目id
*/
@NotBlank(message = "项目id不能为空")
private String projectBizId;
/**
* 菜单名称
*/
private String menuName;
}
package com.yd.user.feign.request.relprojectmenu;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 添加项目和菜单列表关系入参
*/
@Data
public class ApiRelProjectMenuListAddRequest {
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
private String projectBizId;
/**
* 菜单唯一标识(业务ID) 列表(选中列表)
*/
@NotEmpty(message = "菜单唯一标识(业务ID) 列表(选中列表)不能为空")
private List<String> menuBizIdList;
}
package com.yd.user.feign.request.relprojectmenu;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 项目和菜单关系分页查询入参
*/
@Data
public class ApiRelProjectMenuListPageRequest extends PageDto {
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
private String projectBizId;
/**
* 菜单名称
*/
private String menuName;
}
package com.yd.user.feign.request.relprojectmenu;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 项目和菜单关系分页查询入参
*/
@Data
public class ApiRelProjectMenuTreeListRequest extends PageDto {
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
private String projectBizId;
/**
* 菜单名称
*/
private String menuName;
}
package com.yd.user.feign.request.relrolemenu;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
public class ApiProjectRoleMenuListAddRequest {
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
private String projectBizId;
/**
* 角色唯一标识(业务ID)
*/
@NotBlank(message = "角色唯一标识(业务ID)不能为空")
private String roleBizId;
/**
* 菜单唯一标识(业务ID) 列表(选中列表)
*/
@NotEmpty(message = "菜单唯一标识(业务ID) 列表(选中列表)不能为空")
private List<String> menuBizIdList;
}
package com.yd.user.feign.request.relrolemenu;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiSelectedProjectRoleMenuListRequest {
/**
* 项目唯一标识(业务ID)
*/
@NotBlank(message = "项目唯一标识(业务ID)不能为空")
private String projectBizId;
/**
* 角色唯一标识(业务ID)
*/
@NotBlank(message = "角色唯一标识(业务ID)不能为空")
private String roleBizId;
}
package com.yd.user.feign.request.relrolemenu;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiSelectedTenantRoleMenuListRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 角色唯一标识(业务ID)
*/
@NotBlank(message = "角色唯一标识(业务ID)不能为空")
private String roleBizId;
}
package com.yd.user.feign.request.relrolemenu;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
public class ApiTenantRoleMenuListAddRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 角色唯一标识(业务ID)
*/
@NotBlank(message = "角色唯一标识(业务ID)不能为空")
private String roleBizId;
/**
* 菜单唯一标识(业务ID) 列表(选中列表)
*/
@NotEmpty(message = "菜单唯一标识(业务ID) 列表(选中列表)不能为空")
private List<String> menuBizIdList;
}
package com.yd.user.feign.request.reltenantmenu;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 导入-树形菜单查询
*/
@Data
public class ApiRelTenantMenuImportQueryMenuTreeRequest {
/**
* 租户id
*/
@NotBlank(message = "租户id不能为空")
private String tenantBizId;
/**
* 菜单名称
*/
private String menuName;
}
package com.yd.user.feign.request.reltenantmenu;
import com.yd.common.dto.PageDto;
import lombok.Data;
/**
* 导入-选择菜单分页查询(查询当前租户级(当前所属租户绑定的菜单)或者系统级(全局菜单在任何地方都适用导入绑定)的菜单表数据)入参
*/
@Data
public class ApiRelTenantMenuSelectPageRequest extends PageDto {
}
package com.yd.user.feign.request.reltenantmenu;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 租户和菜单关系分页查询入参
*/
@Data
public class ApiRelTenantMenuTreeListRequest extends PageDto {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 菜单名称
*/
private String menuName;
}
package com.yd.user.feign.request.reluserrole;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiCandidateProjectUserRolePageRequest extends PageDto {
/**
* 项目ID(业务id)
*/
@NotBlank(message = "项目ID(业务id)不能为空")
private String projectBizId;
/**
* 用户ID(业务id)
*/
@NotBlank(message = "用户ID(业务id)不能为空")
private String userBizId;
/**
* 角色名称
*/
private String roleName;
}
package com.yd.user.feign.request.reluserrole;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiCandidateTenantUserRolePageRequest extends PageDto {
/**
* 租户ID(业务id)
*/
@NotBlank(message = "租户ID(业务id)不能为空")
private String tenantBizId;
/**
* 用户ID(业务id)
*/
@NotBlank(message = "用户ID(业务id)不能为空")
private String userBizId;
/**
* 角色名称
*/
private String roleName;
}
...@@ -7,7 +7,7 @@ import javax.validation.constraints.NotEmpty; ...@@ -7,7 +7,7 @@ import javax.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
/** /**
* 项目管理-用户配置-权限配置-添加用户角色列表关系入参 * 项目管理-用户配置-分配角色-添加用户角色列表关系入参
*/ */
@Data @Data
public class ApiProjectUserRoleListAddRequest { public class ApiProjectUserRoleListAddRequest {
......
package com.yd.user.feign.request.reluserrole;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
public class ApiProjectUserRoleListDelRequest {
/**
* 项目ID(业务id)
*/
@NotBlank(message = "项目ID(业务id)不能为空")
private String projectBizId;
/**
* 用户ID(业务id)
*/
@NotBlank(message = "用户ID(业务id)不能为空")
private String userBizId;
/**
* 选择的角色ID(业务id)列表
*/
@NotEmpty(message = "选择的角色ID(业务id)列表不能为空")
private List<String> roleBizIdList;
}
package com.yd.user.feign.request.reluserrole;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiSelectedProjectUserRolePageRequest extends PageDto {
/**
* 项目ID(业务id)
*/
@NotBlank(message = "项目ID(业务id)不能为空")
private String projectBizId;
/**
* 用户ID(业务id)
*/
@NotBlank(message = "用户ID(业务id)不能为空")
private String userBizId;
/**
* 角色名称
*/
private String roleName;
}
package com.yd.user.feign.request.reluserrole;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiSelectedTenantUserRolePageRequest extends PageDto {
/**
* 租户ID(业务id)
*/
@NotBlank(message = "租户ID(业务id)不能为空")
private String tenantBizId;
/**
* 用户ID(业务id)
*/
@NotBlank(message = "用户ID(业务id)不能为空")
private String userBizId;
/**
* 角色名称
*/
private String roleName;
}
package com.yd.user.feign.request.reluserrole;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 租户管理-用户配置-分配角色-移除用户角色列表关系入参
*/
@Data
public class ApiTenantUserRoleListDelRequest {
/**
* 租户ID(业务id)
*/
@NotBlank(message = "租户ID(业务id)不能为空")
private String tenantBizId;
/**
* 用户ID(业务id)
*/
@NotBlank(message = "用户ID(业务id)不能为空")
private String userBizId;
/**
* 选择的角色ID(业务id)列表
*/
@NotEmpty(message = "选择的角色ID(业务id)列表不能为空")
private List<String> roleBizIdList;
}
...@@ -29,11 +29,21 @@ public class ApiSysMenuAddRequest { ...@@ -29,11 +29,21 @@ public class ApiSysMenuAddRequest {
private Integer menuType; private Integer menuType;
/** /**
* 路由名称
*/
private String routeName;
/**
* 路由地址 * 路由地址
*/ */
private String path; private String path;
/** /**
* 路由参数
*/
private String query;
/**
* 组件路径 * 组件路径
*/ */
private String component; private String component;
......
...@@ -42,11 +42,21 @@ public class ApiSysMenuEditRequest { ...@@ -42,11 +42,21 @@ public class ApiSysMenuEditRequest {
private Integer menuType; private Integer menuType;
/** /**
* 路由名称
*/
private String routeName;
/**
* 路由地址 * 路由地址
*/ */
private String path; private String path;
/** /**
* 路由参数
*/
private String query;
/**
* 组件路径 * 组件路径
*/ */
private String component; private String component;
......
...@@ -9,4 +9,13 @@ import lombok.Data; ...@@ -9,4 +9,13 @@ import lombok.Data;
@Data @Data
public class ApiSysMenuPageRequest extends PageDto { public class ApiSysMenuPageRequest extends PageDto {
/**
* 当前登录用户所属的租户id(当前页面右上角显示的租户)
*/
private String loginTenantBizId;
/**
* 菜单名称
*/
private String menuName;
} }
...@@ -8,4 +8,14 @@ import lombok.Data; ...@@ -8,4 +8,14 @@ import lombok.Data;
@Data @Data
public class ApiSysMenuTreeListRequest { public class ApiSysMenuTreeListRequest {
/**
* 当前登录用户所属的租户id(当前页面右上角显示的租户)
*/
private String loginTenantBizId;
/**
* 菜单名称
*/
private String menuName;
} }
package com.yd.user.feign.request.sysproject; package com.yd.user.feign.request.sysproject;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
...@@ -31,11 +32,15 @@ public class ApiSysProjectAddRequest { ...@@ -31,11 +32,15 @@ public class ApiSysProjectAddRequest {
/** /**
* 项目开始时间 * 项目开始时间
*/ */
@NotNull(message = "项目开始时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime; private LocalDateTime startTime;
/** /**
* 项目结束时间 * 项目结束时间
*/ */
@NotNull(message = "项目结束时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime; private LocalDateTime endTime;
/** /**
...@@ -48,4 +53,21 @@ public class ApiSysProjectAddRequest { ...@@ -48,4 +53,21 @@ public class ApiSysProjectAddRequest {
* 所属租户ID(业务id) * 所属租户ID(业务id)
*/ */
private String tenantBizId; private String tenantBizId;
/**
* 项目图标地址
*/
@NotBlank(message = "项目图标不能为空")
private String logoUrl;
/**
* 是否内置项目(0-否 1-是 默认0-否 是内置项目,那么整个项目的所绑定的菜单权限都在中台系统展示内嵌外链iframe, 如果不是直接是访问项目卡片直接跳转到独立的前端项目链接获取权限菜单访问)
*/
@NotNull(message = "是否内置项目不能为空")
private Integer isIn;
/**
* 项目访问地址
*/
private String projectUrl;
} }
package com.yd.user.feign.request.sysproject; package com.yd.user.feign.request.sysproject;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
...@@ -44,11 +45,15 @@ public class ApiSysProjectEditRequest { ...@@ -44,11 +45,15 @@ public class ApiSysProjectEditRequest {
/** /**
* 项目开始时间 * 项目开始时间
*/ */
@NotNull(message = "项目开始时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime; private LocalDateTime startTime;
/** /**
* 项目结束时间 * 项目结束时间
*/ */
@NotNull(message = "项目结束时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime; private LocalDateTime endTime;
/** /**
...@@ -61,4 +66,21 @@ public class ApiSysProjectEditRequest { ...@@ -61,4 +66,21 @@ public class ApiSysProjectEditRequest {
* 所属租户ID(业务id) * 所属租户ID(业务id)
*/ */
private String tenantBizId; private String tenantBizId;
/**
* 项目图标地址
*/
@NotBlank(message = "项目图标不能为空")
private String logoUrl;
/**
* 是否内置项目(0-否 1-是 默认0-否 是内置项目,那么整个项目的所绑定的菜单权限都在中台系统展示内嵌外链iframe, 如果不是直接是访问项目卡片直接跳转到独立的前端项目链接获取权限菜单访问)
*/
@NotNull(message = "是否内置项目不能为空")
private Integer isIn;
/**
* 项目访问地址
*/
private String projectUrl;
} }
...@@ -9,6 +9,10 @@ import lombok.Data; ...@@ -9,6 +9,10 @@ import lombok.Data;
@Data @Data
public class ApiSysProjectPageRequest extends PageDto { public class ApiSysProjectPageRequest extends PageDto {
/**
* 当前登录用户所属的租户id(当前页面右上角显示的租户)
*/
private String loginTenantBizId;
/** /**
* 项目名称 * 项目名称
......
...@@ -18,11 +18,6 @@ public class ApiSysRoleAddRequest { ...@@ -18,11 +18,6 @@ public class ApiSysRoleAddRequest {
private String roleName; private String roleName;
/** /**
* 角色权限字符串(用于安全认证访问控制)
*/
private String roleKey;
/**
* 角色类型(1:超级管理员 2:管理员 3:普通用户) * 角色类型(1:超级管理员 2:管理员 3:普通用户)
*/ */
private Integer roleType; private Integer roleType;
......
...@@ -27,11 +27,6 @@ public class ApiSysRoleEditRequest { ...@@ -27,11 +27,6 @@ public class ApiSysRoleEditRequest {
private String roleName; private String roleName;
/** /**
* 角色权限字符串(用于安全认证访问控制)
*/
private String roleKey;
/**
* 角色类型(1:超级管理员 2:管理员 3:普通用户) * 角色类型(1:超级管理员 2:管理员 3:普通用户)
*/ */
private Integer roleType; private Integer roleType;
......
...@@ -10,6 +10,11 @@ import lombok.Data; ...@@ -10,6 +10,11 @@ import lombok.Data;
public class ApiSysRolePageRequest extends PageDto { public class ApiSysRolePageRequest extends PageDto {
/** /**
* 当前登录用户所属的租户id(当前页面右上角显示的租户)
*/
private String loginTenantBizId;
/**
* 角色名称 * 角色名称
*/ */
private String roleName; private String roleName;
......
package com.yd.user.feign.request.systenant; package com.yd.user.feign.request.systenant;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
...@@ -56,6 +57,7 @@ public class ApiSysTenantAddRequest { ...@@ -56,6 +57,7 @@ public class ApiSysTenantAddRequest {
/** /**
* 服务到期时间 * 服务到期时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime expireTime; private LocalDateTime expireTime;
/** /**
......
...@@ -13,12 +13,6 @@ import java.time.LocalDateTime; ...@@ -13,12 +13,6 @@ import java.time.LocalDateTime;
public class ApiSysTenantEditRequest { public class ApiSysTenantEditRequest {
/** /**
* 当前登录账号绑定所属租户ID(业务id)
* 超级管理员不传值,非超级管理传值
*/
private String loginTenantBizId;
/**
* 租户主键id * 租户主键id
*/ */
@NotNull(message = "租户主键id不能为空") @NotNull(message = "租户主键id不能为空")
......
...@@ -12,6 +12,11 @@ import java.time.LocalDateTime; ...@@ -12,6 +12,11 @@ import java.time.LocalDateTime;
public class ApiSysTenantPageRequest extends PageDto { public class ApiSysTenantPageRequest extends PageDto {
/** /**
* 当前登录用户所属的租户id(当前页面右上角显示的租户)
*/
private String loginTenantBizId;
/**
* 租户名称 * 租户名称
*/ */
private String tenantName; private String tenantName;
......
package com.yd.user.feign.request.sysuser;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class ApiScopePageRequest extends PageDto {
/**
* 当前登录用户所属的租户id(当前页面右上角显示的租户)
*/
@NotBlank(message = "当前登录用户所属的租户id(当前页面右上角显示的租户)不能为空")
private String loginTenantBizId;
/**
* 作用域 1-系统级(全局) 2-租户级 3-项目级
*/
@NotNull(message = "作用域不能为空")
private Integer scope;
/**
* 搜索的名称(作用域对应的名称)
*/
private String name;
}
...@@ -14,6 +14,11 @@ import javax.validation.constraints.Pattern; ...@@ -14,6 +14,11 @@ import javax.validation.constraints.Pattern;
public class ApiSysUserAddRequest { public class ApiSysUserAddRequest {
/** /**
* 当前登录用户所属的租户id(当前页面右上角显示的租户)
*/
private String loginTenantBizId;
/**
* 登录用户账号 * 登录用户账号
*/ */
@NotBlank(message = "登录用户账号不能为空") @NotBlank(message = "登录用户账号不能为空")
...@@ -68,11 +73,11 @@ public class ApiSysUserAddRequest { ...@@ -68,11 +73,11 @@ public class ApiSysUserAddRequest {
*/ */
@NotNull(message = "状态不能为空") @NotNull(message = "状态不能为空")
private Integer status; private Integer status;
//
/** // /**
* 用户来源(1:系统创建...) // * 用户来源(1:系统创建...)
*/ // */
@NotNull(message = "用户来源不能为空") // @NotNull(message = "用户来源不能为空")
private Integer sourceType; // private Integer sourceType = 1;
} }
...@@ -2,10 +2,23 @@ package com.yd.user.feign.request.sysuser; ...@@ -2,10 +2,23 @@ package com.yd.user.feign.request.sysuser;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank;
/** /**
* 编辑用户密码入参 * 编辑用户密码入参
*/ */
@Data @Data
public class ApiSysUserEditPwdRequest { public class ApiSysUserEditPwdRequest {
/**
* 用户唯一业务id
*/
@NotBlank(message = "用户id不能为空")
private String userBizId;
/**
* 重置的密码
*/
@NotBlank(message = "重置的密码不能为空")
private String password;
} }
...@@ -31,11 +31,11 @@ public class ApiSysUserEditRequest { ...@@ -31,11 +31,11 @@ public class ApiSysUserEditRequest {
@NotBlank(message = "登录用户账号不能为空") @NotBlank(message = "登录用户账号不能为空")
private String userName; private String userName;
/** // /**
* 明文密码 TODO // * 明文密码 TODO
*/ // */
@NotBlank(message = "密码不能为空") // @NotBlank(message = "密码不能为空")
private String password; // private String password;
/** /**
* 真实姓名 * 真实姓名
...@@ -81,10 +81,10 @@ public class ApiSysUserEditRequest { ...@@ -81,10 +81,10 @@ public class ApiSysUserEditRequest {
@NotNull(message = "状态不能为空") @NotNull(message = "状态不能为空")
private Integer status; private Integer status;
/** // /**
* 用户来源(1:系统创建...) // * 用户来源(1:系统创建...)
*/ // */
@NotNull(message = "用户来源不能为空") // @NotNull(message = "用户来源不能为空")
private Integer sourceType; // private Integer sourceType;
} }
...@@ -12,6 +12,11 @@ import java.time.LocalDateTime; ...@@ -12,6 +12,11 @@ import java.time.LocalDateTime;
public class ApiSysUserPageRequest extends PageDto { public class ApiSysUserPageRequest extends PageDto {
/** /**
* 当前登录用户所属的租户id(当前页面右上角显示的租户)
*/
private String loginTenantBizId;
/**
* 登录账号 * 登录账号
*/ */
private String userName; private String userName;
......
package com.yd.user.feign.response.login;
import lombok.Data;
import java.util.List;
/**
* 当前登录用户绑定的租户被分配的菜单集合(当前租户用户菜单集合)
*/
@Data
public class ApiLoginMenuInfoResponse {
/**
* 菜单主键id
*/
private Long id;
/**
* 菜单唯一标识(业务ID)
*/
private String menuBizId;
/**
* 父菜单ID
*/
private String parentBizId;
/**
* 菜单名称
*/
private String menuName;
/**
* 类型(1:目录 2:菜单 3:按钮)
*/
private Integer menuType;
/**
* 路由地址
*/
private String path;
/**
* 组件路径
*/
private String component;
/**
* 图标
*/
private String icon;
/**
* 是否外链(0:否 1:是)
*/
private Integer isExternal;
/**
* 是否缓存(0:否 1:是)
*/
private Integer isCache;
/**
* 是否显示(0:隐藏 1:显示)
*/
private Integer isVisible;
/**
* 权限标识(如:user:add)
*/
private String permission;
/**
* 显示顺序
*/
private Integer orderNum;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
/**
* 所属租户ID(业务id)
*/
private String tenantBizId;
/**
* 所属项目ID(业务id)
*/
private String projectBizId;
/**
* 子级菜单
*/
private List<ApiLoginMenuInfoResponse> children;
}
package com.yd.user.feign.response.login;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 租户绑定的项目列表信息出参
*/
@Data
public class ApiLoginProjectInfoResponse {
/**
* 项目主键ID
*/
private Long id;
/**
* 项目唯一标识(业务ID)
*/
private String projectBizId;
/**
* 作用域(1:系统级(全局) 2:租户级 )
*/
private Integer scope;
/**
* 项目名称
*/
private String projectName;
/**
* 项目编码(租户内唯一)
*/
private String projectCode;
/**
* 项目描述
*/
private String description;
/**
* 状态(0:禁用 1:启用)
*/
private Integer status;
/**
* 项目开始时间
*/
private LocalDateTime startTime;
/**
* 项目结束时间
*/
private LocalDateTime endTime;
/**
* 所属租户ID(业务id)
*/
private String tenantBizId;
/**
* 是否内置项目(0-否 1-是 默认0-否 是内置项目,那么整个项目的所绑定的菜单权限都在中台系统展示内嵌外链iframe, 如果不是直接是访问项目卡片直接跳转到独立的前端项目链接获取权限菜单访问)
*/
private Integer isIn;
/**
* 项目图标地址
*/
private String logoUrl;
/**
* 项目访问地址
*/
private String projectUrl;
}
package com.yd.user.feign.response.login;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 租户基础信息出参
*/
@Data
public class ApiLoginTenantInfoResponse {
/**
* 租户主键ID
*/
private Long id;
/**
* 租户唯一标识(业务ID)
*/
private String tenantBizId;
/**
* 租户名称
*/
private String tenantName;
/**
* 租户编码(用于API标识)
*/
private String tenantCode;
/**
* 租户LOGO
*/
private String logoUrl;
/**
* 联系人姓名
*/
private String contactName;
/**
* 联系电话
*/
private String contactPhone;
/**
* 联系邮箱
*/
private String contactEmail;
/**
* 所属行业
*/
private String industry;
/**
* 联系地址
*/
private String address;
/**
* 状态(0:禁用 1:启用)
*/
private Integer status;
/**
* 是否系统内置租户(0:否 1:是)
*/
private Integer isSystem;
/**
* 服务到期时间
*/
private LocalDateTime expireTime;
/**
* 最大项目数
*/
private Integer maxProject;
/**
* 最大用户数
*/
private Integer maxUser;
/**
* 最大存储空间(字节)
*/
private Long maxStorage;
/**
* 租户级配置(JSON格式)
*/
private String configJson;
}
package com.yd.user.feign.response.login;
import lombok.Data;
import java.util.List;
/**
* 登录用户绑定的租户信息列表出参
*/
@Data
public class ApiLoginTenantResponse {
/**
* 租户基础信息
*/
private ApiLoginTenantInfoResponse apiLoginTenantInfoResponse;
/**
* 租户绑定的项目列表信息
*/
private List<ApiLoginProjectInfoResponse> apiLoginProjectInfoResponseList;
/**
* 当前登录用户绑定的租户被分配的菜单集合(当前租户用户菜单集合)
*/
private List<ApiLoginMenuInfoResponse> apiLoginMenuInfoResponseList;
/**
* 当前登录用户绑定的租户被分配的角色编码集合(当前租户用户角色编码集合)
*/
private List<String> roles;
/**
* 当前登录用户绑定的租户被分配的控制页面内的具体操作(按钮级权限)集合(当前租户用户所拥有的所有按钮及权限集合)
*/
private List<String> permissions;
}
package com.yd.user.feign.response.login;
import lombok.Data;
/**
* 登录的用户信息出参
*/
@Data
public class ApiLoginUserInfoResponse {
/**
* 用户主键ID
*/
private Long id;
/**
* 用户唯一标识(业务ID)
*/
private String userBizId;
/**
* 登录账号
*/
private String userName;
/**
* 加密密码
*/
private String password;
/**
* 密码盐值
*/
private String passwordSalt;
/**
* 真实姓名
*/
private String realName;
/**
* 昵称
*/
private String nickName;
/**
* 头像URL
*/
private String avatar;
/**
* 邮箱
*/
private String email;
/**
* 手机号
*/
private String mobile;
/**
* 性别(0:未知 1:男 2:女)
*/
private Integer gender;
/**
* 状态(0:禁用 1:正常 2:锁定)
*/
private Integer status;
/**
* 是否超级管理员(0:否 1:是)
*/
private Integer isSuperAdmin;
/**
* 用户来源(1:系统创建...)
*/
private Integer sourceType;
}
package com.yd.user.feign.response.login;
import lombok.Data;
import java.util.List;
/**
* 管理端-获取登录后信息出参
*/
@Data
public class GetLoginInfoResponse {
/**
* 是否是初始密码
*/
private Boolean isDefaultModifyPwd = false;
/**
* 是否是过期密码
*/
private Boolean isPasswordExpired = false;
/**
* 登录的用户基础信息
*/
private ApiLoginUserInfoResponse apiLoginUserInfoResponse;
/**
* 登录用户绑定的租户信息列表
*/
private List<ApiLoginTenantResponse> apiLoginTenantResponseList;
}
package com.yd.user.feign.response.relprojectmenu;
import lombok.Data;
import java.util.List;
/**
* 导入-树形菜单查询
*/
@Data
public class ApiRelProjectMenuImportQueryMenuTreeResponse {
/**
* 菜单表主键id
*/
private Long id;
/**
* 菜单唯一标识(业务ID)
*/
private String menuBizId;
/**
* 父菜单ID
*/
private String parentBizId;
/**
* 菜单名称
*/
private String menuName;
/**
* 类型(1:目录 2:菜单 3:按钮)
*/
private Integer menuType;
/**
* 图标
*/
private String icon;
/**
* 子级菜单
*/
private List<ApiRelProjectMenuImportQueryMenuTreeResponse> children;
}
package com.yd.user.feign.response.relprojectmenu;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 项目和菜单关系分页查询出参
*/
@Data
public class ApiRelProjectMenuListPageResponse {
/**
* 项目和菜单关系主键id
*/
private Long id;
/**
* 项目ID(业务id)
*/
private String projectBizId;
/**
* 菜单表主键id
*/
private Long menuId;
/**
* 菜单ID(业务id)(用于前端显示绑定参数)
*/
private String menuBizId;
/**
* 父菜单ID
*/
private String parentBizId;
/**
* 父菜单ID(用于前端显示绑定参数)
*/
private String parentId;
/**
* 菜单名称
*/
private String menuName;
/**
* 类型(1:目录 2:菜单 3:按钮)
*/
private Integer menuType;
/**
* 图标
*/
private String icon;
/**
* 作用域(1:系统级(全局) 2:项目级 3:项目级)
*/
private Integer scope;
/**
* 子级菜单
*/
private List<ApiRelProjectMenuListPageResponse> children = new ArrayList<>();
}
package com.yd.user.feign.response.relprojectmenu;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 项目和菜单关系树形列表出参
*/
@Data
public class ApiRelProjectMenuTreeListResponse {
/**
* 项目和菜单关系主键id
*/
private Long id;
/**
* 项目ID(业务id)
*/
private String projectBizId;
/**
* 菜单表主键id
*/
private Long menuId;
/**
* 菜单ID(业务id)(用于前端显示绑定参数)
*/
private String menuBizId;
/**
* 父菜单ID
*/
private String parentBizId;
/**
* 菜单名称
*/
private String menuName;
/**
* 类型(1:目录 2:菜单 3:按钮)
*/
private Integer menuType;
/**
* 图标
*/
private String icon;
/**
* 作用域(1:系统级(全局) 2:项目级 3:项目级)
*/
private Integer scope;
/**
* 子级菜单
*/
private List<ApiRelProjectMenuTreeListResponse> children = new ArrayList<>();
}
package com.yd.user.feign.response.reltenantmenu;
import lombok.Data;
import java.util.List;
/**
* 导入-树形菜单查询
*/
@Data
public class ApiRelTenantMenuImportQueryMenuTreeResponse {
/**
* 菜单表主键id
*/
private Long id;
/**
* 菜单唯一标识(业务ID)
*/
private String menuBizId;
/**
* 父菜单ID
*/
private String parentBizId;
/**
* 菜单名称
*/
private String menuName;
/**
* 类型(1:目录 2:菜单 3:按钮)
*/
private Integer menuType;
/**
* 图标
*/
private String icon;
/**
* 子级菜单
*/
private List<ApiRelTenantMenuImportQueryMenuTreeResponse> children;
}
...@@ -2,6 +2,9 @@ package com.yd.user.feign.response.reltenantmenu; ...@@ -2,6 +2,9 @@ package com.yd.user.feign.response.reltenantmenu;
import lombok.Data; import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/** /**
* 租户和菜单关系分页查询出参 * 租户和菜单关系分页查询出参
*/ */
...@@ -19,18 +22,47 @@ public class ApiRelTenantMenuListPageResponse { ...@@ -19,18 +22,47 @@ public class ApiRelTenantMenuListPageResponse {
private String tenantBizId; private String tenantBizId;
/** /**
* 菜单ID(业务id) * 菜单表主键id
*/
private Long menuId;
/**
* 菜单ID(业务id)(用于前端显示绑定参数)
*/ */
private String menuBizId; private String menuBizId;
/** /**
* 父菜单ID
*/
private String parentBizId;
/**
* 父菜单ID(用于前端显示绑定参数)
*/
private String parentId;
/**
* 菜单名称 * 菜单名称
*/ */
private String menuName; private String menuName;
/** /**
* 类型(1:目录 2:菜单 3:按钮)
*/
private Integer menuType;
/**
* 图标
*/
private String icon;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级) * 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/ */
private Integer scope; private Integer scope;
/**
* 子级菜单
*/
private List<ApiRelTenantMenuListPageResponse> children = new ArrayList<>();
} }
package com.yd.user.feign.response.reltenantmenu;
import lombok.Data;
/**
* 导入-选择菜单分页查询(查询当前租户级(当前所属租户绑定的菜单)或者系统级(全局菜单在任何地方都适用导入绑定)的菜单表数据)
*/
@Data
public class ApiRelTenantMenuSelectPageResponse {
}
package com.yd.user.feign.response.reltenantmenu;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 租户和菜单关系树形列表出参
*/
@Data
public class ApiRelTenantMenuTreeListResponse {
/**
* 租户和菜单关系主键id
*/
private Long id;
/**
* 租户ID(业务id)
*/
private String tenantBizId;
/**
* 菜单表主键id
*/
private Long menuId;
/**
* 菜单ID(业务id)(用于前端显示绑定参数)
*/
private String menuBizId;
/**
* 父菜单ID
*/
private String parentBizId;
/**
* 菜单名称
*/
private String menuName;
/**
* 类型(1:目录 2:菜单 3:按钮)
*/
private Integer menuType;
/**
* 图标
*/
private String icon;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
/**
* 子级菜单
*/
private List<ApiRelTenantMenuTreeListResponse> children = new ArrayList<>();
}
package com.yd.user.feign.response.reluserrole;
import lombok.Data;
@Data
public class ApiCandidateProjectUserRolePageResponse {
/**
* 项目角色关系表主键id
*/
private Long id;
/**
* 项目ID(业务id)
*/
private String projectBizId;
/**
* 角色ID(业务id)
*/
private String roleBizId;
/**
* 角色名称
*/
private String roleName;
/**
* 角色类型(1:超级管理员 2:管理员 3:普通用户)
*/
private Integer roleType;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
}
package com.yd.user.feign.response.reluserrole;
import lombok.Data;
@Data
public class ApiCandidateTenantUserRolePageResponse {
/**
* 租户角色关系表主键id
*/
private Long id;
/**
* 租户ID(业务id)
*/
private String tenantBizId;
/**
* 角色ID(业务id)
*/
private String roleBizId;
/**
* 角色名称
*/
private String roleName;
/**
* 角色类型(1:超级管理员 2:管理员 3:普通用户)
*/
private Integer roleType;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
}
...@@ -2,8 +2,11 @@ package com.yd.user.feign.response.reluserrole; ...@@ -2,8 +2,11 @@ package com.yd.user.feign.response.reluserrole;
import lombok.Data; import lombok.Data;
/**
* 项目管理-用户配置-分配角色-查询选中的角色列表出参
*/
@Data @Data
public class ApiSelectedTenantUserRoleListResponse { public class ApiSelectedProjectUserRolePageResponse {
/** /**
* 用户角色关系表主键id * 用户角色关系表主键id
...@@ -34,4 +37,14 @@ public class ApiSelectedTenantUserRoleListResponse { ...@@ -34,4 +37,14 @@ public class ApiSelectedTenantUserRoleListResponse {
* 角色名称 * 角色名称
*/ */
private String roleName; private String roleName;
/**
* 角色类型(1:超级管理员 2:管理员 3:普通用户)
*/
private Integer roleType;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
} }
...@@ -2,11 +2,8 @@ package com.yd.user.feign.response.reluserrole; ...@@ -2,11 +2,8 @@ package com.yd.user.feign.response.reluserrole;
import lombok.Data; import lombok.Data;
/**
* 项目管理-用户配置-权限配置-查询选中的角色列表出参
*/
@Data @Data
public class ApiSelectedProjectUserRoleListResponse { public class ApiSelectedTenantUserRolePageResponse {
/** /**
* 用户角色关系表主键id * 用户角色关系表主键id
...@@ -37,4 +34,14 @@ public class ApiSelectedProjectUserRoleListResponse { ...@@ -37,4 +34,14 @@ public class ApiSelectedProjectUserRoleListResponse {
* 角色名称 * 角色名称
*/ */
private String roleName; private String roleName;
/**
* 角色类型(1:超级管理员 2:管理员 3:普通用户)
*/
private Integer roleType;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
} }
package com.yd.user.feign.response.sysdict;
import lombok.Data;
/**
* 根据字典类型获取字典数据项列表出参
*/
@Data
public class GetDictItemListByDictTypeResponse {
/**
* 字典项表主键id
*/
private Long id;
/**
* 字典数据id(业务id)
*/
private String dictItemBizId;
/**
* 字典ID(字典类型表id)(业务id)
*/
private String dictBizId;
/**
* 字典项标签(名称)
*/
private String itemLabel;
/**
* 字典项值(值)
*/
private String itemValue;
/**
* 是否默认(0:否 1:是)
*/
private Integer isDefault;
/**
* 排序
*/
private Integer orderNum;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
}
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