diff --git a/blade-auth/src/main/java/org/springblade/auth/service/BladeClientDetailsServiceImpl.java b/blade-auth/src/main/java/org/springblade/auth/service/BladeClientDetailsServiceImpl.java index 6c7b2ae3..5a229d6d 100644 --- a/blade-auth/src/main/java/org/springblade/auth/service/BladeClientDetailsServiceImpl.java +++ b/blade-auth/src/main/java/org/springblade/auth/service/BladeClientDetailsServiceImpl.java @@ -19,6 +19,7 @@ package org.springblade.auth.service; import lombok.SneakyThrows; import org.springframework.security.oauth2.provider.ClientDetails; import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService; +import org.springframework.stereotype.Component; import javax.sql.DataSource; @@ -27,6 +28,7 @@ import javax.sql.DataSource; * * @author Chill */ +@Component public class BladeClientDetailsServiceImpl extends JdbcClientDetailsService { public BladeClientDetailsServiceImpl(DataSource dataSource) { diff --git a/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java b/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java index c9d4fed8..baece869 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/filter/AuthFilter.java @@ -58,8 +58,8 @@ public class AuthFilter implements GlobalFilter, Ordered { return chain.filter(exchange); } ServerHttpResponse resp = exchange.getResponse(); - String headerToken = exchange.getRequest().getHeaders().getFirst(AuthProvider.AUTH_HEADER); - String paramToken = exchange.getRequest().getQueryParams().getFirst(AuthProvider.AUTH_HEADER); + String headerToken = exchange.getRequest().getHeaders().getFirst(AuthProvider.AUTH_KEY); + String paramToken = exchange.getRequest().getQueryParams().getFirst(AuthProvider.AUTH_KEY); if (StringUtils.isAllBlank(headerToken, paramToken)) { return unAuth(resp, "缺失令牌,鉴权失败"); } diff --git a/blade-gateway/src/main/java/org/springblade/gateway/props/AuthProperties.java b/blade-gateway/src/main/java/org/springblade/gateway/props/AuthProperties.java index 6d8f43ed..efb8d54d 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/props/AuthProperties.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/props/AuthProperties.java @@ -33,6 +33,9 @@ import java.util.List; @ConfigurationProperties("blade.secure") public class AuthProperties { + /** + * 放行API集合 + */ private final List skipUrl = new ArrayList<>(); } diff --git a/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java b/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java index 5a7b53dc..3fa268e8 100644 --- a/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java +++ b/blade-gateway/src/main/java/org/springblade/gateway/provider/AuthProvider.java @@ -28,7 +28,7 @@ public class AuthProvider { public static String TARGET = "/**"; public static String REPLACEMENT = ""; - public static String AUTH_HEADER = "Blade-Auth"; + public static String AUTH_KEY = "Blade-Auth"; private static List defaultSkipUrl = new ArrayList<>(); static { diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java index 9ff35d0c..622ae2ba 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/CodeController.java @@ -98,11 +98,24 @@ public class CodeController extends BladeController { return R.status(codeService.removeByIds(Func.toLongList(ids))); } + /** + * 复制 + */ + @PostMapping("/copy") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "复制", notes = "传入id") + public R copy(@ApiParam(value = "主键", required = true) @RequestParam Long id) { + Code code = codeService.getById(id); + code.setId(null); + code.setCodeName(code.getCodeName() + "-copy"); + return R.status(codeService.save(code)); + } + /** * 代码生成 */ @PostMapping("/gen-code") - @ApiOperationSupport(order = 5) + @ApiOperationSupport(order = 6) @ApiOperation(value = "代码生成", notes = "传入ids") public R genCode(@ApiParam(value = "主键集合", required = true) @RequestParam String ids, @RequestParam(defaultValue = "sword") String system) { Collection codes = codeService.listByIds(Func.toLongList(ids)); @@ -110,14 +123,15 @@ public class CodeController extends BladeController { BladeCodeGenerator generator = new BladeCodeGenerator(); generator.setSystemName(system); generator.setServiceName(code.getServiceName()); - generator.setCodeName(code.getCodeName()); generator.setPackageName(code.getPackageName()); generator.setPackageDir(code.getApiPath()); generator.setPackageWebDir(code.getWebPath()); generator.setTablePrefix(Func.toStrArray(code.getTablePrefix())); generator.setIncludeTables(Func.toStrArray(code.getTableName())); // 设置是否继承基础业务字段 - generator.setHasSuperEntity(false); + generator.setHasSuperEntity(code.getBaseMode() == 2); + // 设置是否开启包装器模式 + generator.setHasWrapper(code.getWrapMode() == 2); generator.run(); }); return R.success("代码生成成功"); diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/DatasourceController.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/DatasourceController.java index 5d366afe..e5fd60fc 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/DatasourceController.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/controller/DatasourceController.java @@ -32,6 +32,7 @@ import org.springblade.develop.service.IDatasourceService; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.List; /** * 数据源配置表 控制器 @@ -109,5 +110,16 @@ public class DatasourceController extends BladeController { return R.status(datasourceService.deleteLogic(Func.toLongList(ids))); } + /** + * 数据源列表 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 8) + @ApiOperation(value = "下拉数据源", notes = "查询列表") + public R> select() { + List list = datasourceService.list(); + return R.data(list); + } + } diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Code.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Code.java index 236edbfb..23edbeaa 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Code.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Code.java @@ -48,6 +48,13 @@ public class Code implements Serializable { @TableId(value = "id", type = IdType.ID_WORKER) private Long id; + /** + * 数据源主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "数据源主键") + private Long datasourceId; + /** * 模块名称 */ @@ -78,6 +85,18 @@ public class Code implements Serializable { @ApiModelProperty(value = "主键名") private String pkName; + /** + * 基础业务模式 + */ + @ApiModelProperty(value = "基础业务模式") + private Integer baseMode; + + /** + * 包装器模式 + */ + @ApiModelProperty(value = "包装器模式") + private Integer wrapMode; + /** * 后端包名 */ diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Datasource.java b/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Datasource.java index a2e50266..4858895e 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Datasource.java +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/entity/Datasource.java @@ -36,6 +36,11 @@ public class Datasource extends BaseEntity { private static final long serialVersionUID = 1L; + /** + * 名称 + */ + @ApiModelProperty(value = "名称") + private String name; /** * 驱动类 */ @@ -45,7 +50,7 @@ public class Datasource extends BaseEntity { * 连接地址 */ @ApiModelProperty(value = "连接地址") - private String jdbcUrl; + private String url; /** * 用户名 */ diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/CodeMapper.xml b/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/CodeMapper.xml index d282aafe..46db5518 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/CodeMapper.xml +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/CodeMapper.xml @@ -5,10 +5,13 @@ + + + @@ -16,10 +19,4 @@ - - - select - id, service_name, code_name, table_name, pk_name, model_name, package_name, api_path, web_path, is_deleted - - diff --git a/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/DatasourceMapper.xml b/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/DatasourceMapper.xml index 44163f8a..c863cd42 100644 --- a/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/DatasourceMapper.xml +++ b/blade-ops/blade-develop/src/main/java/org/springblade/develop/mapper/DatasourceMapper.xml @@ -13,7 +13,7 @@ - + diff --git a/doc/sql/update/mysql-update-2.0.6~2.0.7.sql b/doc/sql/update/mysql-update-2.0.6~2.0.7.sql index c42d30f8..6ca580a5 100644 --- a/doc/sql/update/mysql-update-2.0.6~2.0.7.sql +++ b/doc/sql/update/mysql-update-2.0.6~2.0.7.sql @@ -1,10 +1,17 @@ +-- ---------------------------- +-- 用户表增加头像字段 +-- ---------------------------- ALTER TABLE `blade_user` ADD COLUMN `avatar` varchar(500) NULL COMMENT '头像' AFTER `real_name`; +-- ---------------------------- +-- 创建数据源配置表 +-- ---------------------------- CREATE TABLE `blade_datasource` ( `id` bigint(64) NOT NULL COMMENT '主键', + `name` varchar(100) NULL COMMENT '名称', `driver_class` varchar(100) NULL COMMENT '驱动类', - `jdbc_url` varchar(500) NULL COMMENT '连接地址', + `url` varchar(500) NULL COMMENT '连接地址', `username` varchar(50) NULL COMMENT '用户名', `password` varchar(50) NULL COMMENT '密码', `remark` varchar(255) NULL COMMENT '备注', @@ -18,6 +25,16 @@ CREATE TABLE `blade_datasource` ( PRIMARY KEY (`id`) ) COMMENT = '数据源配置表' ; +-- ---------------------------- +-- 插入数据源默认数据 +-- ---------------------------- +INSERT INTO `blade_datasource`(`id`, `name`, `driver_class`, `url`, `username`, `password`, `remark`, `create_user`, `create_dept`, `create_time`, `update_user`, `update_time`, `status`, `is_deleted`) VALUES (1161483357481541634, 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', 'mysql', 1123598821738675201, 1123598813738675201, '2019-08-14 11:43:06', 1123598821738675201, '2019-08-14 11:43:06', 1, 0); +INSERT INTO `blade_datasource`(`id`, `name`, `driver_class`, `url`, `username`, `password`, `remark`, `create_user`, `create_dept`, `create_time`, `update_user`, `update_time`, `status`, `is_deleted`) VALUES (1161483504353484802, 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres', '123456', 'postgresql', 1123598821738675201, 1123598813738675201, '2019-08-14 11:43:41', 1123598821738675201, '2019-08-14 11:43:41', 1, 0); +INSERT INTO `blade_datasource`(`id`, `name`, `driver_class`, `url`, `username`, `password`, `remark`, `create_user`, `create_dept`, `create_time`, `update_user`, `update_time`, `status`, `is_deleted`) VALUES (1161483594023510018, 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:49161:orcl', 'BLADEX', 'bladex', 'oracle', 1123598821738675201, 1123598813738675201, '2019-08-14 11:44:03', 1123598821738675201, '2019-08-14 11:44:03', 1, 0); + +-- ---------------------------- +-- 插入数据源菜单数据 +-- ---------------------------- INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) VALUES ('1161272593873321991', '1123598815738675217', 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', 2, 1, 0, 1, NULL, 0); INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) @@ -29,6 +46,9 @@ VALUES ('1161272593873321994', '1161272593873321991', 'datasource_delete', '删 INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) VALUES ('1161272593873321995', '1161272593873321991', 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 2, NULL, 0); +-- ---------------------------- +-- 插入数据源角色权限数据 +-- ---------------------------- INSERT INTO `blade_role_menu`(`id`,`menu_id`,`role_id`) VALUES ('1161272593873322991', '1161272593873321991', '1123598816738675201'); INSERT INTO `blade_role_menu`(`id`,`menu_id`,`role_id`) @@ -39,3 +59,17 @@ INSERT INTO `blade_role_menu`(`id`,`menu_id`,`role_id`) VALUES ('1161272593873322994', '1161272593873321994', '1123598816738675201'); INSERT INTO `blade_role_menu`(`id`,`menu_id`,`role_id`) VALUES ('1161272593873322995', '1161272593873321995', '1123598816738675201'); + +-- ---------------------------- +-- 代码生成表增加数据源字段 +-- ---------------------------- +ALTER TABLE `blade_code` + ADD COLUMN `datasource_id` bigint(64) NULL COMMENT '数据源主键' AFTER `id`, + ADD COLUMN `base_mode` int(2) NULL COMMENT '基础业务模式' AFTER `package_name`, + ADD COLUMN `wrap_mode` int(2) NULL COMMENT '包装器模式' AFTER `base_mode`; + + +-- ---------------------------- +-- 代码生成记录增加数据源字段 +-- ---------------------------- +UPDATE `blade_code` SET `datasource_id` = 1161483357481541634, `base_mode` = 1, `wrap_mode` = 1 WHERE `id` = 1123598812738675201;