mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 22:57:17 +08:00 
			
		
		
		
	refactor(tenant): 优化租户管理表字段设计
This commit is contained in:
		| @@ -46,12 +46,12 @@ public class TenantDTO implements Serializable { | |||||||
|     /** |     /** | ||||||
|      * 管理员用户名 |      * 管理员用户名 | ||||||
|      */ |      */ | ||||||
|     private String username; |     private String adminUsername; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 管理员密码 |      * 管理员密码 | ||||||
|      */ |      */ | ||||||
|     private String password; |     private String adminPassword; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 套餐 ID |      * 套餐 ID | ||||||
|   | |||||||
| @@ -49,7 +49,7 @@ public class TenantDO extends BaseDO { | |||||||
|     private String code; |     private String code; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 绑定域名 |      * 域名 | ||||||
|      */ |      */ | ||||||
|     private String domain; |     private String domain; | ||||||
|  |  | ||||||
| @@ -69,10 +69,15 @@ public class TenantDO extends BaseDO { | |||||||
|     private DisEnableStatusEnum status; |     private DisEnableStatusEnum status; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 租户管理员 |      * 管理员用户 | ||||||
|      */ |      */ | ||||||
|     private Long adminUser; |     private Long adminUser; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 管理员用户名 | ||||||
|  |      */ | ||||||
|  |     private String adminUsername; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 套餐 ID |      * 套餐 ID | ||||||
|      */ |      */ | ||||||
|   | |||||||
| @@ -54,11 +54,11 @@ public class TenantReq implements Serializable { | |||||||
|     private String name; |     private String name; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 绑定域名 |      * 域名 | ||||||
|      */ |      */ | ||||||
|     @Schema(description = "绑定域名", example = "https://T0sL6RWv0vFh.continew.top/") |     @Schema(description = "域名", example = "https://T0sL6RWv0vFh.continew.top/") | ||||||
|     @Length(max = 255, message = "绑定域名长度不能超过 {max} 个字符") |     @Length(max = 255, message = "域名长度不能超过 {max} 个字符") | ||||||
|     @Pattern(regexp = RegexConstants.HTTP_HOST, message = "绑定域名格式不正确") |     @Pattern(regexp = RegexConstants.HTTP_HOST, message = "域名格式不正确") | ||||||
|     private String domain; |     private String domain; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -89,19 +89,19 @@ public class TenantReq implements Serializable { | |||||||
|     private Long packageId; |     private Long packageId; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 用户名 |      * 管理员用户名 | ||||||
|      */ |      */ | ||||||
|     @Schema(description = "用户名", example = "zhangsan") |     @Schema(description = "管理员用户名", example = "zhangsan") | ||||||
|     @NotBlank(message = "用户名不能为空", groups = CrudValidationGroup.Create.class) |     @NotBlank(message = "管理员用户名不能为空", groups = CrudValidationGroup.Create.class) | ||||||
|     @Pattern(regexp = RegexConstants.USERNAME, message = "用户名长度为 4-64 个字符,支持大小写字母、数字、下划线,以字母开头") |     @Pattern(regexp = RegexConstants.USERNAME, message = "管理员用户名长度为 4-64 个字符,支持大小写字母、数字、下划线,以字母开头") | ||||||
|     private String username; |     private String adminUsername; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 密码(加密) |      * 管理员密码(加密) | ||||||
|      */ |      */ | ||||||
|     @Schema(description = "密码(加密)", example = "E7c72TH+LDxKTwavjM99W1MdI9Lljh79aPKiv3XB9MXcplhm7qJ1BJCj28yaflbdVbfc366klMtjLIWQGqb0qw==") |     @Schema(description = "管理员密码(加密)", example = "E7c72TH+LDxKTwavjM99W1MdI9Lljh79aPKiv3XB9MXcplhm7qJ1BJCj28yaflbdVbfc366klMtjLIWQGqb0qw==") | ||||||
|     @NotBlank(message = "密码不能为空", groups = CrudValidationGroup.Create.class) |     @NotBlank(message = "管理员密码不能为空", groups = CrudValidationGroup.Create.class) | ||||||
|     private String password; |     private String adminPassword; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 编码 |      * 编码 | ||||||
|   | |||||||
| @@ -61,10 +61,10 @@ public class TenantResp extends BaseDetailResp { | |||||||
|     private String code; |     private String code; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 绑定域名 |      * 域名 | ||||||
|      */ |      */ | ||||||
|     @Schema(description = "绑定域名", example = "https://T0sL6RWv0vFh.continew.top/") |     @Schema(description = "域名", example = "T0sL6RWv0vFh.continew.top") | ||||||
|     @ExcelProperty(value = "绑定域名", order = 4) |     @ExcelProperty(value = "域名", order = 4) | ||||||
|     private String domain; |     private String domain; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -88,11 +88,23 @@ public class TenantResp extends BaseDetailResp { | |||||||
|     @ExcelProperty(value = "状态", converter = ExcelBaseEnumConverter.class, order = 8) |     @ExcelProperty(value = "状态", converter = ExcelBaseEnumConverter.class, order = 8) | ||||||
|     private DisEnableStatusEnum status; |     private DisEnableStatusEnum status; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 管理员用户 | ||||||
|  |      */ | ||||||
|  |     @Schema(description = "管理员用户", example = "2") | ||||||
|  |     private Long adminUser; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 管理员用户名 | ||||||
|  |      */ | ||||||
|  |     @Schema(description = "管理员用户名", example = "admin") | ||||||
|  |     @ExcelProperty(value = "管理员用户名", order = 9) | ||||||
|  |     private String adminUsername; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 套餐 ID |      * 套餐 ID | ||||||
|      */ |      */ | ||||||
|     @Schema(description = "套餐 ID", example = "1") |     @Schema(description = "套餐 ID", example = "1") | ||||||
|     @ExcelProperty(value = "套餐 ID", order = 9) |  | ||||||
|     @AssembleMethod(props = @Mapping(src = "name", ref = "packageName"), targetType = PackageService.class, method = @ContainerMethod(bindMethod = "get", resultType = PackageResp.class)) |     @AssembleMethod(props = @Mapping(src = "name", ref = "packageName"), targetType = PackageService.class, method = @ContainerMethod(bindMethod = "get", resultType = PackageResp.class)) | ||||||
|     private Long packageId; |     private Long packageId; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -36,9 +36,9 @@ import java.util.List; | |||||||
| public interface TenantService extends BaseService<TenantResp, TenantDetailResp, TenantQuery, TenantReq>, IService<TenantDO> { | public interface TenantService extends BaseService<TenantResp, TenantDetailResp, TenantQuery, TenantReq>, IService<TenantDO> { | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 根据绑定域名查询 |      * 根据域名查询 | ||||||
|      * |      * | ||||||
|      * @param domain 绑定域名 |      * @param domain 域名 | ||||||
|      * @return ID |      * @return ID | ||||||
|      */ |      */ | ||||||
|     Long getIdByDomain(String domain); |     Long getIdByDomain(String domain); | ||||||
|   | |||||||
| @@ -197,16 +197,16 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, TenantDO, T | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 检查绑定域名是否重复 |      * 检查域名是否重复 | ||||||
|      * |      * | ||||||
|      * @param domain 绑定域名 |      * @param domain 域名 | ||||||
|      * @param id     ID |      * @param id     ID | ||||||
|      */ |      */ | ||||||
|     private void checkDomainRepeat(String domain, Long id) { |     private void checkDomainRepeat(String domain, Long id) { | ||||||
|         CheckUtils.throwIf(baseMapper.lambdaQuery() |         CheckUtils.throwIf(baseMapper.lambdaQuery() | ||||||
|             .eq(TenantDO::getDomain, domain) |             .eq(TenantDO::getDomain, domain) | ||||||
|             .ne(id != null, TenantDO::getId, id) |             .ne(id != null, TenantDO::getId, id) | ||||||
|             .exists(), "绑定域名为 [{}] 的租户已存在", domain); |             .exists(), "域名为 [{}] 的租户已存在", domain); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -4,19 +4,20 @@ | |||||||
| -- comment 初始化租户插件数据表 | -- comment 初始化租户插件数据表 | ||||||
| -- 初始化表结构 | -- 初始化表结构 | ||||||
| CREATE TABLE IF NOT EXISTS `tenant` ( | CREATE TABLE IF NOT EXISTS `tenant` ( | ||||||
|     `id`          bigint(20)   NOT NULL AUTO_INCREMENT     COMMENT 'ID', |     `id`             bigint(20)   NOT NULL AUTO_INCREMENT     COMMENT 'ID', | ||||||
|     `name`        varchar(30)  NOT NULL                    COMMENT '名称', |     `name`           varchar(30)  NOT NULL                    COMMENT '名称', | ||||||
|     `code`        varchar(30)  NOT NULL                    COMMENT '编码', |     `code`           varchar(30)  NOT NULL                    COMMENT '编码', | ||||||
|     `domain`      varchar(255) DEFAULT NULL                COMMENT '绑定域名', |     `domain`         varchar(255) DEFAULT NULL                COMMENT '域名', | ||||||
|     `expire_time` datetime     DEFAULT NULL                COMMENT '过期时间', |     `expire_time`    datetime     DEFAULT NULL                COMMENT '过期时间', | ||||||
|     `description` varchar(200) DEFAULT NULL                COMMENT '描述', |     `description`    varchar(200) DEFAULT NULL                COMMENT '描述', | ||||||
|     `status`      tinyint(1)   UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)', |     `status`         tinyint(1)   UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)', | ||||||
|     `admin_user`  bigint(20)   DEFAULT NULL                COMMENT '租户管理员', |     `admin_user`     bigint(20)   DEFAULT NULL                COMMENT '管理员用户', | ||||||
|     `package_id`  bigint(20)   NOT NULL                    COMMENT '套餐ID', |     `admin_username` varchar(64)  DEFAULT NULL                COMMENT '管理员用户名', | ||||||
|     `create_user` bigint(20)   NOT NULL                    COMMENT '创建人', |     `package_id`     bigint(20)   NOT NULL                    COMMENT '套餐ID', | ||||||
|     `create_time` datetime     NOT NULL                    COMMENT '创建时间', |     `create_user`    bigint(20)   NOT NULL                    COMMENT '创建人', | ||||||
|     `update_user` bigint(20)   DEFAULT NULL                COMMENT '修改人', |     `create_time`    datetime     NOT NULL                    COMMENT '创建时间', | ||||||
|     `update_time` datetime     DEFAULT NULL                COMMENT '修改时间', |     `update_user`    bigint(20)   DEFAULT NULL                COMMENT '修改人', | ||||||
|  |     `update_time`    datetime     DEFAULT NULL                COMMENT '修改时间', | ||||||
|     PRIMARY KEY (`id`), |     PRIMARY KEY (`id`), | ||||||
|     UNIQUE INDEX `uk_code`(`code`), |     UNIQUE INDEX `uk_code`(`code`), | ||||||
|     INDEX `idx_admin_user`(`admin_user`), |     INDEX `idx_admin_user`(`admin_user`), | ||||||
|   | |||||||
| @@ -4,19 +4,20 @@ | |||||||
| -- comment 初始化租户插件数据表 | -- comment 初始化租户插件数据表 | ||||||
| -- 初始化表结构 | -- 初始化表结构 | ||||||
| CREATE TABLE IF NOT EXISTS "tenant" ( | CREATE TABLE IF NOT EXISTS "tenant" ( | ||||||
|     "id"          int8         NOT NULL, |     "id"             int8         NOT NULL, | ||||||
|     "name"        varchar(30)  NOT NULL, |     "name"           varchar(30)  NOT NULL, | ||||||
|     "code"        varchar(30)  NOT NULL, |     "code"           varchar(30)  NOT NULL, | ||||||
|     "domain"      varchar(255) DEFAULT NULL, |     "domain"         varchar(255) DEFAULT NULL, | ||||||
|     "expire_time" timestamp    DEFAULT NULL, |     "expire_time"    timestamp    DEFAULT NULL, | ||||||
|     "description" varchar(200) DEFAULT NULL, |     "description"    varchar(200) DEFAULT NULL, | ||||||
|     "status"      int2         NOT NULL DEFAULT 1, |     "status"         int2         NOT NULL DEFAULT 1, | ||||||
|     "admin_user"  int8         DEFAULT NULL, |     "admin_user"     int8         DEFAULT NULL, | ||||||
|     "package_id"  int8         NOT NULL, |     "admin_username" varchar(64)  DEFAULT NULL, | ||||||
|     "create_user" int8         NOT NULL, |     "package_id"     int8         NOT NULL, | ||||||
|     "create_time" timestamp    NOT NULL, |     "create_user"    int8         NOT NULL, | ||||||
|     "update_user" int8         DEFAULT NULL, |     "create_time"    timestamp    NOT NULL, | ||||||
|     "update_time" timestamp    DEFAULT NULL, |     "update_user"    int8         DEFAULT NULL, | ||||||
|  |     "update_time"    timestamp    DEFAULT NULL, | ||||||
|     PRIMARY KEY ("id") |     PRIMARY KEY ("id") | ||||||
| ); | ); | ||||||
| CREATE UNIQUE INDEX "uk_tenant_code" ON "tenant" ("code"); | CREATE UNIQUE INDEX "uk_tenant_code" ON "tenant" ("code"); | ||||||
| @@ -27,12 +28,13 @@ CREATE INDEX "idx_tenant_update_user" ON "tenant" ("update_user"); | |||||||
| COMMENT ON COLUMN "tenant"."id" IS 'ID'; | COMMENT ON COLUMN "tenant"."id" IS 'ID'; | ||||||
| COMMENT ON COLUMN "tenant"."name" IS '名称'; | COMMENT ON COLUMN "tenant"."name" IS '名称'; | ||||||
| COMMENT ON COLUMN "tenant"."code" IS '编码'; | COMMENT ON COLUMN "tenant"."code" IS '编码'; | ||||||
| COMMENT ON COLUMN "tenant"."domain" IS '绑定域名'; | COMMENT ON COLUMN "tenant"."domain" IS '域名'; | ||||||
| COMMENT ON COLUMN "tenant"."expire_time" IS '过期时间'; | COMMENT ON COLUMN "tenant"."expire_time" IS '过期时间'; | ||||||
| COMMENT ON COLUMN "tenant"."description" IS '描述'; | COMMENT ON COLUMN "tenant"."description" IS '描述'; | ||||||
| COMMENT ON COLUMN "tenant"."status" IS '状态(1:启用;2:禁用)'; | COMMENT ON COLUMN "tenant"."status" IS '状态(1:启用;2:禁用)'; | ||||||
| COMMENT ON COLUMN "tenant"."package_id" IS '套餐ID'; | COMMENT ON COLUMN "tenant"."package_id" IS '套餐ID'; | ||||||
| COMMENT ON COLUMN "tenant"."admin_user" IS '租户管理员'; | COMMENT ON COLUMN "tenant"."admin_user" IS '管理员用户'; | ||||||
|  | COMMENT ON COLUMN "tenant"."admin_username" IS '管理员用户名'; | ||||||
| COMMENT ON COLUMN "tenant"."create_user" IS '创建人'; | COMMENT ON COLUMN "tenant"."create_user" IS '创建人'; | ||||||
| COMMENT ON COLUMN "tenant"."create_time" IS '创建时间'; | COMMENT ON COLUMN "tenant"."create_time" IS '创建时间'; | ||||||
| COMMENT ON COLUMN "tenant"."update_user" IS '修改人'; | COMMENT ON COLUMN "tenant"."update_user" IS '修改人'; | ||||||
|   | |||||||
| @@ -183,10 +183,10 @@ public class TenantDataApiForSystemImpl implements TenantDataApi { | |||||||
|      */ |      */ | ||||||
|     private Long initUserData(TenantDTO tenant, Long deptId) { |     private Long initUserData(TenantDTO tenant, Long deptId) { | ||||||
|         // 解密密码 |         // 解密密码 | ||||||
|         String password = SecureUtils.decryptPasswordByRsaPrivateKey(tenant.getPassword(), "密码解密失败", true); |         String password = SecureUtils.decryptPasswordByRsaPrivateKey(tenant.getAdminPassword(), "密码解密失败", true); | ||||||
|         // 初始化用户 |         // 初始化用户 | ||||||
|         UserDO user = new UserDO(); |         UserDO user = new UserDO(); | ||||||
|         user.setUsername(tenant.getUsername()); |         user.setUsername(tenant.getAdminUsername()); | ||||||
|         user.setNickname(RoleCodeEnum.TENANT_ADMIN.getDescription()); |         user.setNickname(RoleCodeEnum.TENANT_ADMIN.getDescription()); | ||||||
|         user.setPassword(password); |         user.setPassword(password); | ||||||
|         user.setGender(GenderEnum.UNKNOWN); |         user.setGender(GenderEnum.UNKNOWN); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user