优化模板信息并添加配置版本号

This commit is contained in:
makejava 2018-07-27 17:58:53 +08:00
parent 550494a1e0
commit 4223249a1e
11 changed files with 170 additions and 83 deletions

View File

@ -29,6 +29,9 @@ public class ConfigInfo implements PersistentStateComponent<ConfigInfo> {
@Transient
public static final String DEFAULT_NAME = "Default";
/**
* 版本号
*/
private String version;
/**
* 当前类型映射组名
@ -92,6 +95,8 @@ public class ConfigInfo implements PersistentStateComponent<ConfigInfo> {
* 初始化默认设置
*/
private void initDefault() {
// 版本号
this.version = "1.1.0";
// 默认编码
this.encode = "UTF-8";
// 作者名称
@ -105,7 +110,7 @@ public class ConfigInfo implements PersistentStateComponent<ConfigInfo> {
if (this.templateGroupMap == null) {
this.templateGroupMap = new LinkedHashMap<>();
}
for (String groupName : new String[]{DEFAULT_NAME, "Mybatis"}) {
for (String groupName : new String[]{DEFAULT_NAME, "MybatisPlus"}) {
this.templateGroupMap.put(groupName, loadTemplateGroup(groupName));
}
@ -145,7 +150,7 @@ public class ConfigInfo implements PersistentStateComponent<ConfigInfo> {
if (this.globalConfigGroupMap == null) {
this.globalConfigGroupMap = new LinkedHashMap<>();
}
for (String groupName : new String[]{DEFAULT_NAME, "Mybatis"}) {
for (String groupName : new String[]{DEFAULT_NAME}) {
this.globalConfigGroupMap.put(groupName, loadGlobalConfigGroup(groupName));
}
}
@ -240,6 +245,16 @@ public class ConfigInfo implements PersistentStateComponent<ConfigInfo> {
@Override
public void loadState(@NotNull ConfigInfo configInfo) {
// 备份初始配置
Map<String, TemplateGroup> templateGroupMap = this.getTemplateGroupMap();
// 覆盖初始配置
XmlSerializerUtil.copyBean(configInfo, this);
// 合并配置
templateGroupMap.forEach((name, templateGroup) -> {
if (this.getTemplateGroupMap().containsKey(name)) {
return;
}
this.getTemplateGroupMap().put(name, templateGroup);
});
}
}

View File

@ -5,23 +5,23 @@
*#
##定义区域Velocity宏定义
##定义设置表名后缀的宏定义,调用方式:$setTableSuffix("Test")
##定义设置表名后缀的宏定义,调用方式:#setTableSuffix("Test")
#macro(setTableSuffix $suffix)
#set($tableName = $!tool.append($tableInfo.name, $suffix))
#end
##定义设置包名后缀的宏定义,调用方式:$setPackageSuffix("Test")
##定义设置包名后缀的宏定义,调用方式:#setPackageSuffix("Test")
#macro(setPackageSuffix $suffix)
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}$suffix;
#end
##定义直接保存路径与文件名简化的宏定义,调用方式:$save("D:/", "Test.java")
##定义直接保存路径与文件名简化的宏定义,调用方式:#save("/entity", ".java")
#macro(save $path $fileName)
$!callback.setSavePath($path)
$!callback.setFileName($fileName)
$!callback.setSavePath($tool.append($tableInfo.savePath, $path))
$!callback.setFileName($tool.append($tableInfo.name, $fileName))
#end
##定义表注释的宏定义,调用方式:$tableComment("注释信息")
##定义表注释的宏定义,调用方式:#tableComment("注释信息")
#macro(tableComment $desc)
/**
* $!{tableInfo.comment}($!{tableInfo.name})$desc
@ -31,7 +31,7 @@
*/
#end
##定义GETSET方法的宏定义
##定义GETSET方法的宏定义,调用方式:#getSetMethod($column)
#macro(getSetMethod $column)
public $!{tool.getClsNameByFullName($column.type)} get$!{tool.firstUpperCase($column.name)}() {

View File

@ -1,18 +0,0 @@
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Controller"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/controller"))
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller;
/**
* $!{tableInfo.comment}($!{tableInfo.name})表控制层
*
* @author $!author
* @since $!time.currTime()
*/
public class $!{tableName} {
}

View File

@ -1,15 +0,0 @@
##导入宏定义
$!define
##设置表后缀(宏定义)
$!setTableSuffix("Dao")
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/dao"))
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}dao;
$!tableComment("表数据库访问层")
public interface $!{tableName} {
}

View File

@ -1,18 +0,0 @@
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "Service"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/service"))
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;
/**
* $!{tableInfo.comment}($!{tableInfo.name})表服务接口
*
* @author $!author
* @since $!time.currTime()
*/
public interface $!{tableName} {
}

View File

@ -1,19 +0,0 @@
##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "ServiceImpl"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/service/impl"))
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
/**
* $!{tableInfo.comment}($!{tableInfo.name})表服务实现类
*
* @author $!author
* @since $!time.currTime()
*/
public class $!{tableName} implements $!{tableInfo.name}Service {
}

View File

@ -0,0 +1,90 @@
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("Controller")
##保存文件(宏定义)
#save("/controller", "Controller.java")
##包路径(宏定义)
#setPackageSuffix("controller")
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import com.alibaba.fastjson.JSON;
import $!{tableInfo.savePackageName}.entity.$!tableInfo.name;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
##表注释(宏定义)
#tableComment("表控制层")
@RestController
@RequestMapping("$!tool.firstLowerCase($!{tableName})")
public class $!{tableName} {
@Resource
private $!{tableInfo.name}Service $!tool.firstLowerCase($!tableInfo.name)Service;
/**
* 分页查询所有数据
*
* @return 所有数据
*/
@GetMapping
public String selectAll() {
return success(this.$!tool.firstLowerCase($!tableInfo.name)Service.selectAll());
}
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("{id}")
public String selectOne(@PathVariable Long id) {
return success(this.$!tool.firstLowerCase($!tableInfo.name)Service.queryById(id));
}
/**
* 新增数据
*
* @param entity 实体对象
* @return 新增结果
*/
@PostMapping
public String insert(@RequestBody $!tableInfo.name entity) {
return success(this.$!tool.firstLowerCase($!tableInfo.name)Service.insert(entity));
}
/**
* 修改数据
*
* @param entity 实体对象
* @return 修改结果
*/
@PutMapping
public String update(@RequestBody $!tableInfo.name entity) {
return success(this.$!tool.firstLowerCase($!tableInfo.name)Service.update(entity));
}
/**
* 删除数据
*
* @param idList 主键结合
* @return 删除结果
*/
@DeleteMapping
public String delete(@RequestParam("idList") List<Long> idList) {
return success(this.$!tool.firstLowerCase($!tableInfo.name)Service.deleteByIdList(idList));
}
/**
* 成功返回方法
*
* @param obj 对象
* @return JSON字符串
*/
public String success(Object obj) {
return JSON.toJSONString(obj);
}
}

View File

@ -0,0 +1,17 @@
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("Dao")
##保存文件(宏定义)
#save("/dao", "Dao.java")
##包路径(宏定义)
#setPackageSuffix("dao")
##表注释(宏定义)
#tableComment("表数据库访问层")
public interface $!{tableName} {
}

View File

@ -2,15 +2,16 @@
$!define
##保存文件(宏定义)
$!save($tool.append($tableInfo.savePath, "/entity"), $tool.append($tableInfo.name, ".java"))
#save("/entity", ".java")
##包路径(宏定义)
$!setPackageSuffix("entity")
#setPackageSuffix("entity")
##导入包(全局变量)
$!import
$!tableComment("表实体类")
##表注释(宏定义)
#tableComment("表实体类")
public class $!{tableInfo.name} {
#foreach($column in $tableInfo.fullColumn)
#if(${column.comment})//${column.comment}#end
@ -19,7 +20,7 @@ public class $!{tableInfo.name} {
#end
#foreach($column in $tableInfo.fullColumn)
$!getSetMethod($column)
#getSetMethod($column)
#end
}

View File

@ -0,0 +1,17 @@
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("Service")
##保存文件(宏定义)
#save("/service", "Service.java")
##包路径(宏定义)
#setPackageSuffix("service")
##表注释(宏定义)
#tableComment("表服务接口")
public interface $!{tableName} {
}

View File

@ -0,0 +1,17 @@
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("ServiceImpl")
##保存文件(宏定义)
#save("/service/impl", "ServiceImpl.java")
##包路径(宏定义)
#setPackageSuffix("service.impl")
##表注释(宏定义)
#tableComment("表服务实现类")
public class $!{tableName} implements $!{tableInfo.name}Service {
}