ソースを参照

:tada: 2.4.1.RELEASE

smallchill 5 年 前
コミット
f7f9875031

+ 1 - 1
README.md

@@ -1,7 +1,7 @@
  <p align="center">
   <img src="https://img.shields.io/badge/license-LGPL%20v3-blue.svg" alt="Build Status">
    <img src="https://img.shields.io/badge/Spring%20Cloud-Greenwich.SR2-blue.svg" alt="Coverage Status">
-   <img src="https://img.shields.io/badge/Spring%20Boot-2.1.6.RELEASE-blue.svg" alt="Downloads">
+   <img src="https://img.shields.io/badge/Spring%20Boot-2.1.7.RELEASE-blue.svg" alt="Downloads">
  </p>  
 
 ## SpringBlade微服务开发平台

+ 1 - 1
blade-core-boot/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.springblade</groupId>
         <artifactId>blade-tool</artifactId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-boot/src/main/resources/bootstrap.yml

@@ -75,7 +75,7 @@ mybatis-plus:
 swagger:
   title: SpringBlade 接口文档系统
   description: SpringBlade 接口文档系统
-  version: 2.4.0
+  version: 2.4.1
   license: Powered By SpringBlade
   licenseUrl: https://bladex.vip
   terms-of-service-url: https://bladex.vip

+ 1 - 1
blade-core-cloud/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
blade-core-develop/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
blade-core-develop/src/main/java/org/springblade/develop/CodeGenerator.java

@@ -64,7 +64,7 @@ public class CodeGenerator {
 	/**
 	 * 基础业务字段
 	 */
-	public static String[] SUPER_ENTITY_COLUMNS = {"id", "create_time", "create_user", "update_time", "update_user", "status", "is_deleted"};
+	public static String[] SUPER_ENTITY_COLUMNS = {"create_time", "create_user", "update_time", "update_user", "status", "is_deleted"};
 
 
 	/**

+ 46 - 13
blade-core-develop/src/main/java/org/springblade/develop/support/BladeCodeGenerator.java

@@ -16,12 +16,14 @@
 package org.springblade.develop.support;
 
 import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.generator.AutoGenerator;
 import com.baomidou.mybatisplus.generator.InjectionConfig;
 import com.baomidou.mybatisplus.generator.config.*;
 import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
+import com.baomidou.mybatisplus.generator.config.converts.OracleTypeConvert;
 import com.baomidou.mybatisplus.generator.config.converts.PostgreSqlTypeConvert;
 import com.baomidou.mybatisplus.generator.config.po.TableInfo;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
@@ -86,10 +88,14 @@ public class BladeCodeGenerator {
 	 * 是否包含基础业务字段
 	 */
 	private Boolean hasSuperEntity = Boolean.FALSE;
+	/**
+	 * 是否包含包装器
+	 */
+	private Boolean hasWrapper = Boolean.FALSE;
 	/**
 	 * 基础业务字段
 	 */
-	private String[] superEntityColumns = {"id", "create_time", "create_user", "update_time", "update_user", "status", "is_deleted"};
+	private String[] superEntityColumns = {"create_time", "create_user", "create_dept", "update_time", "update_user", "status", "is_deleted"};
 	/**
 	 * 租户字段
 	 */
@@ -98,6 +104,22 @@ public class BladeCodeGenerator {
 	 * 是否启用swagger
 	 */
 	private Boolean isSwagger2 = Boolean.TRUE;
+	/**
+	 * 数据库驱动名
+	 */
+	private String driverName;
+	/**
+	 * 数据库链接地址
+	 */
+	private String url;
+	/**
+	 * 数据库用户名
+	 */
+	private String username;
+	/**
+	 * 数据库密码
+	 */
+	private String password;
 
 	public void run() {
 		Properties props = getProperties();
@@ -121,18 +143,21 @@ public class BladeCodeGenerator {
 		gc.setSwagger2(isSwagger2);
 		mpg.setGlobalConfig(gc);
 		DataSourceConfig dsc = new DataSourceConfig();
-		String driverName = props.getProperty("spring.datasource.driver-class-name");
+		String driverName = Func.toStr(this.driverName, props.getProperty("spring.datasource.driver-class-name"));
 		if (StringUtil.containsAny(driverName, DbType.MYSQL.getDb())) {
 			dsc.setDbType(DbType.MYSQL);
 			dsc.setTypeConvert(new MySqlTypeConvert());
-		} else {
+		} else if (StringUtil.containsAny(driverName, DbType.POSTGRE_SQL.getDb())) {
 			dsc.setDbType(DbType.POSTGRE_SQL);
 			dsc.setTypeConvert(new PostgreSqlTypeConvert());
+		} else {
+			dsc.setDbType(DbType.ORACLE);
+			dsc.setTypeConvert(new OracleTypeConvert());
 		}
-		dsc.setUrl(props.getProperty("spring.datasource.url"));
 		dsc.setDriverName(driverName);
-		dsc.setUsername(props.getProperty("spring.datasource.username"));
-		dsc.setPassword(props.getProperty("spring.datasource.password"));
+		dsc.setUrl(Func.toStr(this.url, props.getProperty("spring.datasource.url")));
+		dsc.setUsername(Func.toStr(this.username, props.getProperty("spring.datasource.username")));
+		dsc.setPassword(Func.toStr(this.password, props.getProperty("spring.datasource.password")));
 		mpg.setDataSource(dsc);
 		// 策略配置
 		StrategyConfig strategy = new StrategyConfig();
@@ -186,6 +211,7 @@ public class BladeCodeGenerator {
 				map.put("serviceName", serviceName);
 				map.put("servicePackage", servicePackage);
 				map.put("tenantColumn", tenantColumn);
+				map.put("hasWrapper", hasWrapper);
 				this.setMap(map);
 			}
 		};
@@ -194,7 +220,12 @@ public class BladeCodeGenerator {
 			@Override
 			public String outputFile(TableInfo tableInfo) {
 				map.put("entityKey", (tableInfo.getEntityName().toLowerCase()));
-				return getOutputDir() + "/" + "/templates/sql/" + tableInfo.getEntityName().toLowerCase() + ".menu.mysql";
+				map.put("menuId", IdWorker.getId());
+				map.put("addMenuId", IdWorker.getId());
+				map.put("editMenuId", IdWorker.getId());
+				map.put("removeMenuId", IdWorker.getId());
+				map.put("viewMenuId", IdWorker.getId());
+				return getOutputDir() + "/" + "/sql/" + tableInfo.getEntityName().toLowerCase() + ".menu.mysql";
 			}
 		});
 		focList.add(new FileOutConfig("/templates/entityVO.java.vm") {
@@ -209,12 +240,14 @@ public class BladeCodeGenerator {
 				return getOutputDir() + "/" + packageName.replace(".", "/") + "/" + "dto" + "/" + tableInfo.getEntityName() + "DTO" + StringPool.DOT_JAVA;
 			}
 		});
-		focList.add(new FileOutConfig("/templates/wrapper.java.vm") {
-			@Override
-			public String outputFile(TableInfo tableInfo) {
-				return getOutputDir() + "/" + packageName.replace(".", "/") + "/" + "wrapper" + "/" + tableInfo.getEntityName() + "Wrapper" + StringPool.DOT_JAVA;
-			}
-		});
+		if (hasWrapper) {
+			focList.add(new FileOutConfig("/templates/wrapper.java.vm") {
+				@Override
+				public String outputFile(TableInfo tableInfo) {
+					return getOutputDir() + "/" + packageName.replace(".", "/") + "/" + "wrapper" + "/" + tableInfo.getEntityName() + "Wrapper" + StringPool.DOT_JAVA;
+				}
+			});
+		}
 		if (Func.isNotBlank(packageWebDir)) {
 			if (Func.equals(systemName, DevelopConstant.SWORD_NAME)) {
 				focList.add(new FileOutConfig("/templates/sword/action.js.vm") {

+ 54 - 28
blade-core-develop/src/main/resources/templates/controller.java.vm

@@ -1,11 +1,11 @@
 /**
  * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
  * <p>
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.gnu.org/licenses/lgpl.html
  * <p>
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -16,8 +16,8 @@
 package $!{package.Controller};
 
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperationSupport;
+import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import javax.validation.Valid;
@@ -35,14 +35,15 @@ import $!{package.Entity}.$!{entity};
 #set($voPackage=$package.Entity.replace("entity","vo"))
 import $!{voPackage}.$!{entity}VO;
 #set($wrapperPackage=$package.Entity.replace("entity","wrapper"))
+#if($!{cfg.hasWrapper})
 import $!{wrapperPackage}.$!{entity}Wrapper;
+#end
 import $!{package.Service}.$!{table.serviceName};
 #if($!{superControllerClassPackage})
 import $!{superControllerClassPackage};
 #end
 #if(!$!{superEntityClass})
 #end
-import java.util.List;
 
 /**
  * $!{table.comment} 控制器
@@ -62,11 +63,12 @@ public class $!{table.controllerName} {
 
 	private $!{table.serviceName} $!{table.entityPath}Service;
 
+#if($!{cfg.hasWrapper})
 	/**
-	* 详情
-	*/
+	 * 详情
+	 */
 	@GetMapping("/detail")
-    @ApiOperationSupport(order = 1)
+	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入$!{table.entityPath}")
 	public R<$!{entity}VO> detail($!{entity} $!{table.entityPath}) {
 		$!{entity} detail = $!{table.entityPath}Service.getOne(Condition.getQueryWrapper($!{table.entityPath}));
@@ -74,21 +76,45 @@ public class $!{table.controllerName} {
 	}
 
 	/**
-	* 分页 $!{table.comment}
-	*/
+	 * 分页 $!{table.comment}
+	 */
 	@GetMapping("/list")
-    @ApiOperationSupport(order = 2)
+	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入$!{table.entityPath}")
 	public R<IPage<$!{entity}VO>> list($!{entity} $!{table.entityPath}, Query query) {
 		IPage<$!{entity}> pages = $!{table.entityPath}Service.page(Condition.getPage(query), Condition.getQueryWrapper($!{table.entityPath}));
 		return R.data($!{entity}Wrapper.build().pageVO(pages));
 	}
 
+#else
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入$!{table.entityPath}")
+	public R<$!{entity}> detail($!{entity} $!{table.entityPath}) {
+		$!{entity} detail = $!{table.entityPath}Service.getOne(Condition.getQueryWrapper($!{table.entityPath}));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 $!{table.comment}
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入$!{table.entityPath}")
+	public R<IPage<$!{entity}>> list($!{entity} $!{table.entityPath}, Query query) {
+		IPage<$!{entity}> pages = $!{table.entityPath}Service.page(Condition.getPage(query), Condition.getQueryWrapper($!{table.entityPath}));
+		return R.data(pages);
+	}
+#end
+
 	/**
-	* 自定义分页 $!{table.comment}
-	*/
+	 * 自定义分页 $!{table.comment}
+	 */
 	@GetMapping("/page")
-    @ApiOperationSupport(order = 3)
+	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入$!{table.entityPath}")
 	public R<IPage<$!{entity}VO>> page($!{entity}VO $!{table.entityPath}, Query query) {
 		IPage<$!{entity}VO> pages = $!{table.entityPath}Service.select$!{entity}Page(Condition.getPage(query), $!{table.entityPath});
@@ -96,30 +122,30 @@ public class $!{table.controllerName} {
 	}
 
 	/**
-	* 新增 $!{table.comment}
-	*/
+	 * 新增 $!{table.comment}
+	 */
 	@PostMapping("/save")
-    @ApiOperationSupport(order = 4)
+	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入$!{table.entityPath}")
 	public R save(@Valid @RequestBody $!{entity} $!{table.entityPath}) {
 		return R.status($!{table.entityPath}Service.save($!{table.entityPath}));
 	}
 
 	/**
-	* 修改 $!{table.comment}
-	*/
+	 * 修改 $!{table.comment}
+	 */
 	@PostMapping("/update")
-    @ApiOperationSupport(order = 5)
+	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入$!{table.entityPath}")
 	public R update(@Valid @RequestBody $!{entity} $!{table.entityPath}) {
 		return R.status($!{table.entityPath}Service.updateById($!{table.entityPath}));
 	}
 
 	/**
-	* 新增或修改 $!{table.comment}
-	*/
+	 * 新增或修改 $!{table.comment}
+	 */
 	@PostMapping("/submit")
-    @ApiOperationSupport(order = 6)
+	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入$!{table.entityPath}")
 	public R submit(@Valid @RequestBody $!{entity} $!{table.entityPath}) {
 		return R.status($!{table.entityPath}Service.saveOrUpdate($!{table.entityPath}));
@@ -128,10 +154,10 @@ public class $!{table.controllerName} {
 	#if($!{superEntityClass})
 
 	/**
-	* 删除 $!{table.comment}
-	*/
+	 * 删除 $!{table.comment}
+	 */
 	@PostMapping("/remove")
-    @ApiOperationSupport(order = 7)
+	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		return R.status($!{table.entityPath}Service.deleteLogic(Func.toIntList(ids)));
@@ -140,10 +166,10 @@ public class $!{table.controllerName} {
 	#else
 
 	/**
-	* 删除 $!{table.comment}
-	*/
+	 * 删除 $!{table.comment}
+	 */
 	@PostMapping("/remove")
-    @ApiOperationSupport(order = 7)
+	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		return R.status($!{table.entityPath}Service.removeByIds(Func.toIntList(ids)));

+ 9 - 0
blade-core-develop/src/main/resources/templates/saber/crud.vue.vm

@@ -1,6 +1,7 @@
 <template>
   <basic-container>
     <avue-crud :option="option"
+               :table-loading="loading"
                :data="data"
                :page="page"
                :permission="permissionList"
@@ -38,6 +39,7 @@
       return {
         form: {},
         query: {},
+        loading: true,
         page: {
           pageSize: 10,
           currentPage: 1,
@@ -172,6 +174,10 @@
       selectionChange(list) {
         this.selectionList = list;
       },
+      selectionClear() {
+        this.selectionList = [];
+        this.$refs.crud.toggleSelection();
+      },
       currentChange(currentPage){
         this.page.currentPage = currentPage;
       },
@@ -179,10 +185,13 @@
         this.page.pageSize = pageSize;
       },
       onLoad(page, params = {}) {
+        this.loading = true;
         getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
           const data = res.data.data;
           this.page.total = data.total;
           this.data = data.records;
+          this.loading = false;
+          this.selectionClear();
         });
       }
     }

+ 1 - 1
blade-core-launch/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-launch/src/main/java/org/springblade/core/launch/constant/AppConstant.java

@@ -25,7 +25,7 @@ public interface AppConstant {
 	/**
 	 * 应用版本
 	 */
-	String APPLICATION_VERSION = "2.4.0";
+	String APPLICATION_VERSION = "2.4.1";
 
 	/**
 	 * 基础包

+ 1 - 1
blade-core-log/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-mybatis/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-oss/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
blade-core-secure/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-swagger/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <artifactId>blade-tool</artifactId>
         <groupId>org.springblade</groupId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 1 - 1
blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerProperties.java

@@ -55,7 +55,7 @@ public class SwaggerProperties {
 	/**
 	 * 版本
 	 **/
-	private String version = "2.4.0";
+	private String version = "2.4.1";
 	/**
 	 * 许可证
 	 **/

+ 1 - 1
blade-core-test/pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.springblade</groupId>
         <artifactId>blade-tool</artifactId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

+ 1 - 1
blade-core-tool/pom.xml

@@ -6,7 +6,7 @@
     <parent>
         <groupId>org.springblade</groupId>
         <artifactId>blade-tool</artifactId>
-        <version>2.4.0</version>
+        <version>2.4.1</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

+ 4 - 4
pom.xml

@@ -5,7 +5,7 @@
 
     <groupId>org.springblade</groupId>
     <artifactId>blade-tool</artifactId>
-    <version>2.4.0</version>
+    <version>2.4.1</version>
     <packaging>pom</packaging>
     <name>blade-tool</name>
     <description>
@@ -36,13 +36,13 @@
     </scm>
 
     <properties>
-        <blade.tool.version>2.4.0</blade.tool.version>
+        <blade.tool.version>2.4.1</blade.tool.version>
 
         <java.version>1.8</java.version>
         <maven.plugin.version>3.8.0</maven.plugin.version>
         <swagger.version>2.9.2</swagger.version>
         <swagger.models.version>1.5.21</swagger.models.version>
-        <swagger.bootstrapui.version>1.9.5</swagger.bootstrapui.version>
+        <swagger.bootstrapui.version>1.9.4</swagger.bootstrapui.version>
         <mybatis.plus.version>3.1.2</mybatis.plus.version>
         <curator.framework.version>4.0.1</curator.framework.version>
         <protostuff.version>1.6.0</protostuff.version>
@@ -51,7 +51,7 @@
         <mica.auto.version>1.1.0</mica.auto.version>
         <alibaba.cloud.version>2.1.0.RELEASE</alibaba.cloud.version>
 
-        <spring.boot.version>2.1.6.RELEASE</spring.boot.version>
+        <spring.boot.version>2.1.7.RELEASE</spring.boot.version>
         <spring.cloud.version>Greenwich.SR2</spring.cloud.version>
         <spring.platform.version>Cairo-SR8</spring.platform.version>