🎉 2.7.3.RELEASE 增强多租户功能

This commit is contained in:
smallchill 2020-09-14 14:51:31 +08:00
parent e2eb792c26
commit 503c853062
35 changed files with 124 additions and 48 deletions

View File

@ -1,8 +1,8 @@
<p align="center">
<img src="https://img.shields.io/badge/Release-V2.7.2-green.svg" alt="Downloads">
<img src="https://img.shields.io/badge/Release-V2.7.3-green.svg" alt="Downloads">
<img src="https://img.shields.io/badge/JDK-1.8+-green.svg" alt="Build Status">
<img src="https://img.shields.io/badge/license-Apache%202-blue.svg" alt="Build Status">
<img src="https://img.shields.io/badge/Spring%20Cloud-Hoxton.SR7-blue.svg" alt="Coverage Status">
<img src="https://img.shields.io/badge/Spring%20Cloud-Hoxton.SR8-blue.svg" alt="Coverage Status">
<img src="https://img.shields.io/badge/Spring%20Boot-2.2.9.RELEASE-blue.svg" alt="Downloads">
<a target="_blank" href="https://bladex.vip">
<img src="https://img.shields.io/badge/Author-Small%20Chill-ff69b4.svg" alt="Downloads">

View File

@ -8,7 +8,7 @@
<parent>
<artifactId>SpringBlade</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<artifactId>blade-auth</artifactId>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>SpringBlade</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>SpringBlade</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -44,6 +44,7 @@ public class AuthProvider {
defaultSkipUrl.add("/log/**");
defaultSkipUrl.add("/menu/routes");
defaultSkipUrl.add("/menu/auth-routes");
defaultSkipUrl.add("/tenant/info");
defaultSkipUrl.add("/order/create/**");
defaultSkipUrl.add("/storage/deduct/**");
defaultSkipUrl.add("/error/**");

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-ops</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.springblade</groupId>
<artifactId>blade-ops</artifactId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-ops</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-ops</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-ops</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>SpringBlade</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-service-api</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-service-api</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-service-api</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-service-api</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -57,6 +57,11 @@ public class Tenant extends BaseEntity {
*/
@ApiModelProperty(value = "租户名称")
private String tenantName;
/**
* 域名地址
*/
@ApiModelProperty(value = "域名地址")
private String domain;
/**
* 联系人
*/

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-service-api</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -18,6 +18,7 @@ package org.springblade.system.user.feign;
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.tool.api.R;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.entity.UserInfo;
import org.springblade.system.user.entity.UserOauth;
import org.springframework.cloud.openfeign.FeignClient;
@ -68,4 +69,13 @@ public interface IUserClient {
@PostMapping(API_PREFIX + "/user-auth-info")
R<UserInfo> userAuthInfo(@RequestBody UserOauth userOauth);
/**
* 新建用户
*
* @param user 用户实体
* @return
*/
@PostMapping(API_PREFIX + "/save-user")
R<Boolean> saveUser(@RequestBody User user);
}

View File

@ -16,6 +16,7 @@
package org.springblade.system.user.feign;
import org.springblade.core.tool.api.R;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.entity.UserInfo;
import org.springblade.system.user.entity.UserOauth;
import org.springframework.stereotype.Component;
@ -42,4 +43,9 @@ public class IUserClientFallback implements IUserClient {
public R<UserInfo> userAuthInfo(UserOauth userOauth) {
return R.fail("未获取到账号信息");
}
@Override
public R<Boolean> saveUser(User user) {
return R.fail("创建用户失败");
}
}

View File

@ -5,13 +5,13 @@
<parent>
<artifactId>SpringBlade</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>blade-service-api</artifactId>
<name>${project.artifactId}</name>
<version>2.7.2</version>
<version>2.7.3</version>
<packaging>pom</packaging>
<description>SpringBlade 微服务API集合</description>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-service</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>org.springblade</groupId>
<artifactId>blade-service</artifactId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-service</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-service</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -30,6 +30,11 @@
<artifactId>blade-system-api</artifactId>
<version>${blade.project.version}</version>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-user-api</artifactId>
<version>${blade.project.version}</version>
</dependency>
<!--Zipkin-->
<!--<dependency>
<groupId>org.springframework.cloud</groupId>

View File

@ -17,6 +17,7 @@ package org.springblade.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
@ -25,6 +26,7 @@ import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.entity.Tenant;
import org.springblade.system.service.ITenantService;
@ -115,5 +117,21 @@ public class TenantController extends BladeController {
return R.status(tenantService.deleteLogic(Func.toLongList(ids)));
}
/**
* 根据域名查询信息
*
* @param domain 域名
*/
@GetMapping("/info")
@ApiOperation(value = "配置信息", notes = "传入domain")
public R<Kv> info(String domain) {
Tenant tenant = tenantService.getOne(Wrappers.<Tenant>query().lambda().eq(Tenant::getDomain, domain));
Kv kv = Kv.init();
if (tenant != null) {
kv.set("tenantId", tenant.getTenantId()).set("domain", tenant.getDomain());
}
return R.data(kv);
}
}

View File

@ -19,19 +19,27 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.tenant.TenantId;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.DigestUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.entity.Dept;
import org.springblade.system.entity.Post;
import org.springblade.system.entity.Role;
import org.springblade.system.entity.Tenant;
import org.springblade.system.mapper.DeptMapper;
import org.springblade.system.mapper.PostMapper;
import org.springblade.system.mapper.RoleMapper;
import org.springblade.system.mapper.TenantMapper;
import org.springblade.system.service.ITenantService;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@ -47,6 +55,8 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> imp
private final TenantId tenantId;
private final RoleMapper roleMapper;
private final DeptMapper deptMapper;
private final PostMapper postMapper;
private final IUserClient userClient;
@Override
public IPage<Tenant> selectTenantPage(IPage<Tenant> page, Tenant tenant) {
@ -84,6 +94,33 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> imp
dept.setSort(2);
dept.setIsDeleted(0);
deptMapper.insert(dept);
// 新建租户对应的默认岗位
Post post = new Post();
post.setTenantId(tenantId);
post.setCategory(1);
post.setPostCode("ceo");
post.setPostName("首席执行官");
post.setSort(1);
postMapper.insert(post);
// 新建租户对应的默认管理用户
User user = new User();
user.setTenantId(tenantId);
user.setName("admin");
user.setRealName("admin");
user.setAccount("admin");
user.setPassword(DigestUtil.encrypt("admin"));
user.setRoleId(String.valueOf(role.getId()));
user.setDeptId(String.valueOf(dept.getId()));
user.setPostId(String.valueOf(post.getId()));
user.setBirthday(new Date());
user.setSex(1);
user.setIsDeleted(BladeConstant.DB_NOT_DELETED);
boolean temp = super.saveOrUpdate(tenant);
R<Boolean> result = userClient.saveUser(user);
if (!result.isSuccess()) {
throw new ServiceException(result.getMsg());
}
return temp;
}
return super.saveOrUpdate(tenant);
}

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>blade-service</artifactId>
<groupId>org.springblade</groupId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -17,6 +17,7 @@ package org.springblade.system.user.feign;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.api.R;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.entity.UserInfo;
import org.springblade.system.user.entity.UserOauth;
import org.springblade.system.user.service.IUserService;
@ -52,4 +53,10 @@ public class UserClient implements IUserClient {
return R.data(service.userInfo(userOauth));
}
@Override
@PostMapping(API_PREFIX + "/save-user")
public R<Boolean> saveUser(User user) {
return R.data(service.save(user));
}
}

View File

@ -7,12 +7,12 @@
<parent>
<groupId>org.springblade</groupId>
<artifactId>SpringBlade</artifactId>
<version>2.7.2</version>
<version>2.7.3</version>
</parent>
<artifactId>blade-service</artifactId>
<name>${project.artifactId}</name>
<version>2.7.2</version>
<version>2.7.3</version>
<packaging>pom</packaging>
<description>SpringBlade 微服务集合</description>

View File

@ -430,6 +430,7 @@ CREATE TABLE `blade_tenant` (
`id` bigint(64) NOT NULL COMMENT '主键',
`tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID',
`tenant_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户名称',
`domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '域名地址',
`linkman` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人',
`contact_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话',
`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系地址',
@ -446,7 +447,7 @@ CREATE TABLE `blade_tenant` (
-- Records of blade_tenant
-- ----------------------------
BEGIN;
INSERT INTO `blade_tenant` VALUES (1123598820738675201, '000000', '管理组', 'admin', '666666', '管理组', 1123598821738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0);
INSERT INTO `blade_tenant` VALUES (1123598820738675201, '000000', '管理组', '', 'admin', '666666', '管理组', 1123598821738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0);
COMMIT;
-- ----------------------------

View File

@ -430,6 +430,7 @@ CREATE TABLE `blade_tenant` (
`id` bigint(64) NOT NULL COMMENT '主键',
`tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID',
`tenant_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户名称',
`domain` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '域名地址',
`linkman` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人',
`contact_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话',
`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系地址',
@ -446,7 +447,7 @@ CREATE TABLE `blade_tenant` (
-- Records of blade_tenant
-- ----------------------------
BEGIN;
INSERT INTO `blade_tenant` VALUES (1123598820738675201, '000000', '管理组', 'admin', '666666', '管理组', 1123598821738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0);
INSERT INTO `blade_tenant` VALUES (1123598820738675201, '000000', '管理组', '', 'admin', '666666', '管理组', 1123598821738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0);
COMMIT;
-- ----------------------------

View File

@ -1,17 +0,0 @@
CREATE TABLE `blade_user_oauth` (
`id` bigint(64) NOT NULL COMMENT '主键',
`tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID',
`uuid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方系统用户ID',
`user_id` bigint(64) NULL DEFAULT NULL COMMENT '用户ID',
`username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号',
`nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
`avatar` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
`blog` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用主页',
`company` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公司名',
`location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址',
`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮件',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`gender` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
`source` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来源',
PRIMARY KEY (`id`)
) COMMENT = '用户第三方认证表';

View File

@ -0,0 +1,2 @@
ALTER TABLE `blade_tenant`
ADD COLUMN `domain` varchar(255) NULL COMMENT '域名地址' AFTER `tenant_name`;

View File

@ -5,12 +5,12 @@
<groupId>org.springblade</groupId>
<artifactId>SpringBlade</artifactId>
<version>2.7.2</version>
<version>2.7.3</version>
<packaging>pom</packaging>
<properties>
<blade.tool.version>2.7.2</blade.tool.version>
<blade.project.version>2.7.2</blade.project.version>
<blade.tool.version>2.7.3</blade.tool.version>
<blade.project.version>2.7.3</blade.project.version>
<java.version>1.8</java.version>
<maven.plugin.version>3.8.1</maven.plugin.version>

View File

@ -1,2 +1,2 @@
REGISTER=192.168.0.157/blade
TAG=2.7.2
TAG=2.7.3