feat:(REQ-3282) 增加tyr-client
This commit is contained in:
parent
87f375f2dc
commit
1a0768c084
1
pom.xml
1
pom.xml
@ -17,6 +17,7 @@
|
||||
<modules>
|
||||
<module>tyr-api</module>
|
||||
<module>tyr-server</module>
|
||||
<module>tyr-client</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
|
||||
28
tyr-client/pom.xml
Normal file
28
tyr-client/pom.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<artifactId>tyr</artifactId>
|
||||
<groupId>cn.axzo.tyr</groupId>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>tyr-client</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<name>tyr-client</name>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.framework</groupId>
|
||||
<artifactId>axzo-consumer-spring-cloud-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.axzo.foundation</groupId>
|
||||
<artifactId>common-lib</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
17
tyr-client/src/main/java/cn/axzo/tyr/feign/api/RoleApi.java
Normal file
17
tyr-client/src/main/java/cn/axzo/tyr/feign/api/RoleApi.java
Normal file
@ -0,0 +1,17 @@
|
||||
package cn.axzo.tyr.feign.api;
|
||||
|
||||
import cn.axzo.foundation.result.ApiResult;
|
||||
import cn.axzo.tyr.feign.req.ListRoleReq;
|
||||
import cn.axzo.tyr.feign.resp.RoleResp;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}")
|
||||
public interface RoleApi {
|
||||
|
||||
@PostMapping("/api/role/list")
|
||||
ApiResult<List<RoleResp>> list(@RequestBody ListRoleReq req);
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package cn.axzo.tyr.feign.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 功能资源类型
|
||||
*
|
||||
* @version V1.0
|
||||
* @author: ZhanSiHu
|
||||
* @date: 2024/4/3 11:35
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum FeatureResourceTypeEnum {
|
||||
|
||||
MENU(1, "菜单"),
|
||||
PAGE(2, "页面"),
|
||||
APP_ENTRY(3, "应用入口"),
|
||||
COMPONENT(4, "组件"),
|
||||
ROOT(5, "ROOT"),
|
||||
GROUP(6, "分组"),
|
||||
// 用户pc端菜单直接的分割分组线
|
||||
MENU_PARTITION_GROUP(7, "菜单分割分组"),
|
||||
;
|
||||
|
||||
private final Integer code;
|
||||
|
||||
private final String desc;
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package cn.axzo.tyr.feign.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum RolePermissionTagEnum {
|
||||
|
||||
JOINED("在职"),
|
||||
LEAVE("离场"),
|
||||
;
|
||||
|
||||
private final String desc;
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package cn.axzo.tyr.feign.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author tanjie@axzo.cn
|
||||
* @date 2023/9/13 16:35
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum RoleTypeEnum {
|
||||
|
||||
//角色类型:common 自定义角色 super_admin超级管理员(禁止删除) admin子管理员(禁止删除) init初始化内置角色 auto_own自定义角色(禁止删除)<承载向用户单独分配的自定义权限>
|
||||
COMMON("common", "自定义角色",false),
|
||||
SUPER_ADMIN("super_admin", "超级管理员",true),
|
||||
ADMIN("admin", "子管理员",true),
|
||||
INIT("init", "初始化内置角色-标准角色",false),
|
||||
AUTO_OWN("auto_own", "虚拟角色(自定义权限使用)",false);
|
||||
|
||||
private final String value;
|
||||
private final String desc;
|
||||
private final boolean isAdmin;
|
||||
}
|
||||
146
tyr-client/src/main/java/cn/axzo/tyr/feign/req/ListRoleReq.java
Normal file
146
tyr-client/src/main/java/cn/axzo/tyr/feign/req/ListRoleReq.java
Normal file
@ -0,0 +1,146 @@
|
||||
package cn.axzo.tyr.feign.req;
|
||||
|
||||
import cn.axzo.tyr.feign.enums.RolePermissionTagEnum;
|
||||
import cn.axzo.tyr.feign.enums.RoleTypeEnum;
|
||||
import cn.axzo.tyr.feign.enums.FeatureResourceTypeEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ListRoleReq {
|
||||
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
private Set<Long> roleIds;
|
||||
|
||||
/**
|
||||
* 租户类型
|
||||
*/
|
||||
private Integer workspaceType;
|
||||
|
||||
/**
|
||||
* 是否显示
|
||||
*/
|
||||
private Boolean isDisplay;
|
||||
|
||||
/**
|
||||
* 角色权限码
|
||||
*/
|
||||
private String roleCode;
|
||||
|
||||
/**
|
||||
* 租户id
|
||||
*/
|
||||
private Set<Long> workspaceIds;
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
private Set<Long> ouIds;
|
||||
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
private Boolean enabled;
|
||||
|
||||
/**
|
||||
* 角色类型:RoleTypeEnum
|
||||
* super_admin:超级管理员
|
||||
* admin:管理员
|
||||
* init:初始化内置角色-标准角色
|
||||
* auto_own:虚拟角色(自定义权限使用)
|
||||
* common:自定义角色
|
||||
*/
|
||||
private Set<RoleTypeEnum> roleTypes;
|
||||
|
||||
/**
|
||||
* 是否需要角色下的权限信息
|
||||
*/
|
||||
private Boolean needPermission;
|
||||
|
||||
/**
|
||||
* 根据权限标签去过滤角色对应的权限,
|
||||
* 只有在needPermission = true时才生效
|
||||
*/
|
||||
private Set<RolePermissionTagEnum> permissionTags;
|
||||
|
||||
/**
|
||||
* 是否需要角色对应的角色分组信息
|
||||
*/
|
||||
private Boolean needRoleGroup;
|
||||
|
||||
/**
|
||||
* 是否需要角色对应的用户信息
|
||||
*/
|
||||
private Boolean needRoleUser;
|
||||
|
||||
|
||||
private Boolean needPermissionRelation;
|
||||
|
||||
/**
|
||||
* 是否需要预设角色,因为预设角色的workspaceId和ouId为-1
|
||||
*/
|
||||
private Boolean needPresetRole;
|
||||
|
||||
/**
|
||||
* 查询菜单树节点类型
|
||||
*/
|
||||
private List<FeatureResourceTypeEnum> featureResourceTypes;
|
||||
|
||||
/**
|
||||
* 新旧权限点,needPermissionRelation = true时最好带上,因为新旧权限点会有冲突的情况发生
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 端,查询权限点时,会根据端过滤,增加效率,目前只有CMS端的新版本才冗余了端
|
||||
*/
|
||||
private String terminal;
|
||||
|
||||
/**
|
||||
* workspaceId和ouId配对查询
|
||||
* 例如:((workspaceId = ## and ouId = ##) or (workspaceId = ## and ouId = ##))
|
||||
*/
|
||||
private List<WorkspaceOuPair> workspaceOuPairs;
|
||||
|
||||
/**
|
||||
* 角色权限码
|
||||
*/
|
||||
private Set<String> roleCodes;
|
||||
|
||||
/**
|
||||
* 角色分组code
|
||||
*/
|
||||
private Set<String> roleGroupCodes;
|
||||
|
||||
/**
|
||||
* 协同关系类型
|
||||
* 1:总包 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6:OMS通用 7:企业通用 8:企业内班组 9:项目内班组
|
||||
*/
|
||||
private Set<Integer> cooperateShipTypes;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class WorkspaceOuPair {
|
||||
/**
|
||||
* 租户id
|
||||
*/
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
private Long ouId;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package cn.axzo.tyr.feign.resp;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class RoleGroupResp {
|
||||
|
||||
private Long id;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package cn.axzo.tyr.feign.resp;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class RolePermissionResp {
|
||||
|
||||
private Long id;
|
||||
}
|
||||
107
tyr-client/src/main/java/cn/axzo/tyr/feign/resp/RoleResp.java
Normal file
107
tyr-client/src/main/java/cn/axzo/tyr/feign/resp/RoleResp.java
Normal file
@ -0,0 +1,107 @@
|
||||
package cn.axzo.tyr.feign.resp;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class RoleResp {
|
||||
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 角色编码
|
||||
*/
|
||||
private String roleCode;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 角色描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 角色类型:common 普通角色 super_admin超级管理员(禁止删除) admin子管理员(禁止删除) init初始化内置角色
|
||||
* @See cn.axzo.tyr.model.enums.RoleTypeEnum
|
||||
*/
|
||||
private String roleType;
|
||||
|
||||
/**
|
||||
* 角色所属租户id,预设角色的workspaceId <= 0
|
||||
*/
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 角色所属单位id,预设角色的ouId <= 0
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 协同关系类型
|
||||
* 1:总包 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6:OMS通用 7:企业通用 8:企业内班组 9:项目内班组
|
||||
*/
|
||||
private Integer cooperateShipType;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新者
|
||||
*/
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
* 是否显示
|
||||
*/
|
||||
private Boolean isDisplay;
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
private Boolean enabled;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 添加时间
|
||||
*/
|
||||
private Date createAt;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private Date updateAt;
|
||||
|
||||
/**
|
||||
* 角色所属分组
|
||||
*/
|
||||
private RoleGroupResp roleGroup;
|
||||
|
||||
/**
|
||||
* 角色权限
|
||||
*/
|
||||
private List<RolePermissionResp> rolePermissions;
|
||||
|
||||
/**
|
||||
* 角色对应的人员信息
|
||||
*/
|
||||
private List<RoleUserResp> roleUsers;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package cn.axzo.tyr.feign.resp;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class RoleUserResp {
|
||||
|
||||
private Long id;
|
||||
}
|
||||
2
tyr-client/src/main/resources/META-INF/spring.factories
Normal file
2
tyr-client/src/main/resources/META-INF/spring.factories
Normal file
@ -0,0 +1,2 @@
|
||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
cn.axzo.tyr.client.config.TyrClientAutoConfiguration
|
||||
@ -156,6 +156,11 @@
|
||||
<artifactId>braum-api</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.tyr</groupId>
|
||||
<artifactId>tyr-client</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
package cn.axzo.tyr.server.controller.v2;
|
||||
|
||||
import cn.axzo.foundation.result.ApiResult;
|
||||
import cn.axzo.tyr.client.model.res.SaasRoleRes;
|
||||
import cn.axzo.tyr.feign.api.RoleApi;
|
||||
import cn.axzo.tyr.feign.req.ListRoleReq;
|
||||
import cn.axzo.tyr.feign.resp.RoleResp;
|
||||
import cn.axzo.tyr.server.service.RoleService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
public class RoleController implements RoleApi {
|
||||
|
||||
@Autowired
|
||||
private RoleService roleService;
|
||||
|
||||
@Override
|
||||
public ApiResult<List<RoleResp>> list(ListRoleReq req) {
|
||||
List<SaasRoleRes> list = roleService.list(cn.axzo.tyr.client.model.req.ListRoleReq.builder().build());
|
||||
return ApiResult.success(list.stream()
|
||||
.map(e -> {
|
||||
RoleResp result = RoleResp.builder().build();
|
||||
BeanUtils.copyProperties(e, result);
|
||||
return result;
|
||||
})
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user