🎉 2.4.1.RELEASE

This commit is contained in:
smallchill 2019-08-19 22:26:45 +08:00
parent 061cdac58e
commit f7f9875031
20 changed files with 129 additions and 61 deletions

View File

@ -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微服务开发平台

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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"};
/**

View File

@ -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") {

View File

@ -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
/**
* 自定义分页 $!{table.comment}
*/
* 详情
*/
@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}
*/
@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)));

View File

@ -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();
});
}
}

View File

@ -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>

View File

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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

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

View File

@ -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>

View File

@ -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>

View File

@ -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>