Commit 6fac8380 authored by 赵啸非's avatar 赵啸非

修改部分生成代码逻辑

parent cde02a3d
...@@ -4,8 +4,10 @@ import com.mortals.framework.model.BaseEntityLong; ...@@ -4,8 +4,10 @@ import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.common.utils.StringUtils; import com.mortals.xhx.common.utils.StringUtils;
import lombok.Data; import lombok.Data;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* Description:Gentable * Description:Gentable
...@@ -23,6 +25,9 @@ public class GentableEntityExt extends BaseEntityLong { ...@@ -23,6 +25,9 @@ public class GentableEntityExt extends BaseEntityLong {
* 子表信息 * 子表信息
*/ */
private GentableEntity subTable; private GentableEntity subTable;
private String requestMapping;
/** /**
* 表列信息 * 表列信息
*/ */
......
...@@ -74,18 +74,15 @@ public class FreeMarkerUtils { ...@@ -74,18 +74,15 @@ public class FreeMarkerUtils {
*/ */
@SneakyThrows @SneakyThrows
public static void initFreeMarkerPath(String templatePath) { public static void initFreeMarkerPath(String templatePath) {
//初始化模板引擎 //初始化模板引擎
cfg = new Configuration(Configuration.VERSION_2_3_29); cfg = new Configuration(Configuration.VERSION_2_3_29);
cfg.setDirectoryForTemplateLoading(new File(templatePath)); cfg.setDirectoryForTemplateLoading(new File(templatePath));
//设置字符编码集 //设置字符编码集
cfg.setDefaultEncoding("UTF-8"); cfg.setDefaultEncoding("UTF-8");
//设置异常的处理方式 //设置异常的处理方式
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
//设置输出时间格式 //设置输出时间格式
cfg.setDateFormat("yyyy-MM-dd HH:mm:ss"); cfg.setDateFormat("yyyy-MM-dd HH:mm:ss");
} }
...@@ -102,16 +99,16 @@ public class FreeMarkerUtils { ...@@ -102,16 +99,16 @@ public class FreeMarkerUtils {
templates.add("entityQuery.java.ftl"); templates.add("entityQuery.java.ftl");
templates.add("dao.java.ftl"); templates.add("dao.java.ftl");
templates.add("daoImpl.java.ftl"); templates.add("daoImpl.java.ftl");
// templates.add("web.java.ftl"); templates.add("web.java.ftl");
templates.add("webBody.java.ftl"); templates.add("webBody.java.ftl");
templates.add("webForm.java.ftl"); templates.add("webForm.java.ftl");
templates.add("sqlMap.xml.ftl"); templates.add("sqlMap.xml.ftl");
templates.add("db.sql.ftl"); templates.add("db.sql.ftl");
templates.add("menu.sql.ftl"); templates.add("menu.sql.ftl");
templates.add("params.sql.ftl"); // templates.add("params.sql.ftl");
templates.add("api.md.ftl"); templates.add("api.md.ftl");
templates.add("api-two.md.ftl"); // templates.add("api-two.md.ftl");
templates.add("apidict.md.ftl"); // templates.add("apidict.md.ftl");
templates.add("httpclient.test.ftl"); templates.add("httpclient.test.ftl");
if (GenConstants.TPL_CRUD.equals(tplCategory)) { if (GenConstants.TPL_CRUD.equals(tplCategory)) {
templates.add("service.java.ftl"); templates.add("service.java.ftl");
...@@ -168,11 +165,9 @@ public class FreeMarkerUtils { ...@@ -168,11 +165,9 @@ public class FreeMarkerUtils {
* @return 模板列表 * @return 模板列表
*/ */
public static Map prepareSetFreeMarkerData(GentableEntity genTable) { public static Map prepareSetFreeMarkerData(GentableEntity genTable) {
Map data = new HashMap(); Map data = new HashMap();
String moduleName = genTable.getModuleName(); String moduleName = genTable.getModuleName();
String businessName = genTable.getBusinessName().replace("\\.", ""); String businessName = genTable.getBusinessName().replace("\\.", "");
String packageName = genTable.getPackageName() + "." + moduleName + "." + businessName; String packageName = genTable.getPackageName() + "." + moduleName + "." + businessName;
String tplCategory = genTable.getTplCategory(); String tplCategory = genTable.getTplCategory();
String functionName = genTable.getFunctionName(); String functionName = genTable.getFunctionName();
...@@ -435,9 +430,9 @@ public class FreeMarkerUtils { ...@@ -435,9 +430,9 @@ public class FreeMarkerUtils {
} else if (template.contains("serviceImpl-tree.java.ftl")) { } else if (template.contains("serviceImpl-tree.java.ftl")) {
fileName = StringUtils.format("{}/{}/service/impl/{}ServiceImpl.java", javaPath, businessName, className); fileName = StringUtils.format("{}/{}/service/impl/{}ServiceImpl.java", javaPath, businessName, className);
} }
// else if (template.contains("web.java.ftl")) { else if (template.contains("web.java.ftl")) {
// fileName = StringUtils.format("{}/{}/web/{}Controller.java", javaPath, businessName, className); fileName = StringUtils.format("{}/{}/web/{}Controller.java", javaPath, businessName, className);
// } }
else if (template.contains("webBody.java.ftl")) { else if (template.contains("webBody.java.ftl")) {
fileName = StringUtils.format("{}/{}/web/{}Controller.java", javaPath, businessName, className); fileName = StringUtils.format("{}/{}/web/{}Controller.java", javaPath, businessName, className);
} }
......
## ${functionName}
### 查询${functionName}列表
**请求URL:** ${RequestMapping}/list
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 查询${functionName}
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:---|:---
page|Integer|否|当前页
size|Integer|否|每页条数,值为-1,查询所有记录
<#list columns as column>
<#if column.isQuery == 1>
<#if column.javaType=="String" >
${column.javaField}|${column.javaType}|${column.columnComment}|否|字段前后添加%%模糊查询
<#else>
${column.javaField}|${column.javaType}|${column.columnComment}|否|-
</#if>
</#if>
</#list>
**请求样例:**
```
{
<#list columns as column>
<#if column.isQuery == 1>
<#if column.javaType=="String" ||column.javaType=="Date">
<#assign fakeValue>"${column.randomStr(column.javaType)}"</#assign>
<#else>
<#assign fakeValue>${column.randomStr(column.javaType)}</#assign>
</#if>
"${column.javaField}":${fakeValue}<#sep>,</#sep>
</#if>
</#list>
"page":1,
"size":10
}
```
**响应参数:**
参数名称|参数类型|描述
:---|:---|:------
code|Integer|结果码(-1.失败,1.成功)
msg|String|消息
data|object|数据对象
&emsp;per_page|Integer|每页条数
&emsp;total|Integer|总条数
&emsp;last_page|Integer|总页数
&emsp;current_page|Integer|当前页
&emsp;data|array|结果集列表|数组
<#list columns as column>
&emsp;&emsp;${column.javaField}|${column.javaType}|${column.columnComment}
</#list>
dict|object|字典对象
<#list columns as column>
<#if column.dict??&&(column.columnType?contains("tinyint") ||column.htmlType==3||column.htmlType==5)>
&emsp;${column.javaField}|object|字典属性对象,详见附录
</#if>
</#list>
**响应消息样例:**
```
{
"code":1,
"data":{
}
}
```
### 查看${functionName}
**请求URL:** ${RequestMapping}/info
**请求方式:** GET
**内容类型:** application/json;charset=utf-8
**简要描述:** 查看${functionName},返回实例详细信息
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:------
${pkColumn.javaField}|${pkColumn.javaType}|是|ID
**请求样例:**
```
http://localhost/${RequestMapping}/info?id=549
```
**响应参数:**
参数名称 |参数类型|描述
:---|:---|:-------
code|Integer|结果码(-1.失败,1.成功)
msg|String|消息
data|object|数据对象
<#list columns as column>
&emsp;${column.javaField}|${column.javaType}|${column.columnComment}
</#list>
dict|object|字典对象
<#list columns as column>
<#if column.dict??&&(column.columnType?contains("tinyint") ||column.htmlType==3||column.htmlType==5)>
&emsp;${column.javaField}|object|字典属性对象,详见附录
</#if>
</#list>
**响应消息样例:**
```
{
"code": 1,
"data": {
<#list columns as column>
<#if column.javaType=="String" ||column.javaType=="Date">
<#assign fakeValue>"${column.randomStr(column.javaType)}"</#assign>
<#else>
<#assign fakeValue>${column.randomStr(column.javaType)}</#assign>
</#if>
"${column.javaField}":${fakeValue}<#sep>,</#sep>
</#list>
}
}
```
### 保存更新${functionName}
**请求URL:** ${RequestMapping}/save
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 保存或更新${functionName}:id为空时为新增保存,否则为更新提交
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:-------
<#list columns as column>
<#if !column.isSuperColumn(column.javaField)>
${column.javaField}|${column.javaType}|是|${column.columnComment}
</#if>
</#list>
**请求样例:**
```
{
<#list columns as column>
<#if !column.isSuperColumn(column.javaField)>
<#if column.javaType=="String" ||column.javaType=="Date">
<#assign fakeValue>"${column.randomStr(column.javaType)}"</#assign>
<#else>
<#assign fakeValue>${column.randomStr(column.javaType)}</#assign>
</#if>
"${column.javaField}":${fakeValue}<#sep>,</#sep>
</#if>
</#list>
}
```
**响应参数:**
参数名称 |参数类型|描述
:---|:---|:------
code|Integer|结果码(-1.失败,1.成功)
msg|String|消息
data|object|数据对象
&emsp;id|Long|保存后主键id
&emsp;entity|object|保存更新实体
<#list columns as column>
&emsp;&emsp;${column.javaField}|${column.javaType}|${column.columnComment}
</#list>
**响应消息样例:**
```
{
"msg":"新增模块成功",
"code":1,
"data":{}
}
}
```
### 删除${functionName}
**请求URL:** ${RequestMapping}/delete
**请求方式:** GET
**内容类型:** application/json;charset=utf-8
**简要描述:** 删除${functionName}
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:------
${pkColumn.javaField}|String|是|数组
**请求样例:**
```
http://localhost:8080/${RequestMapping}/delete?id=1&id=2'
```
**响应参数:**
参数名称 |参数类型|备注|其它
---|---|---|---
code|Integer|结果码(-1.失败,1.成功)|-
msg|String|消息|-
**响应消息样例:**
```
{
"code":1,
"msg":"成功"
}
```
<#if table.isGenExport==1 >
### 导入${functionName}模板下载
**请求URL:** ${RequestMapping}/downloadTemplate
**请求方式:** POST
**内容类型:** application/octet-stream;charset=utf-8
**简要描述:** ${functionName}导入模板下载
**请求样例:**
```
http://localhost/${RequestMapping}/downloadTemplate
```
**Response-example:**
```
...
```
### 导入${functionName}
**请求URL:** ${RequestMapping}/importData
**请求方式:** POST
**内容类型:** multipart/form-data
**简要描述:** 导入${functionName}
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:------
file|file|是|文件流
**请求样例:**
```
http://localhost/${RequestMapping}/importData --data 'updateSupport=true'
```
**Response-example:**
```
...
```
### 导出${functionName}
**请求URL:** ${RequestMapping}/exportExcel
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 导出${functionName}
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:------
idList|Arrays|否|id数组
<#list columns as column>
<#if column.isQuery == 1>
${column.javaField}|${column.javaType}|${column.columnComment}|否|参数查询条件
</#if>
</#list>
**请求样例:**
```
{
idList:[1,2],
<#list columns as column>
<#if column.isQuery == 1>
<#if column.javaType=="String" ||column.javaType=="Date">
<#assign fakeValue>"${column.randomStr(column.javaType)}"</#assign>
<#else>
<#assign fakeValue>${column.randomStr(column.javaType)}</#assign>
</#if>
"${column.javaField}":${fakeValue}<#sep>,</#sep>
</#if>
</#list>
}
```
**Response-example:**
```
...
```
</#if>
<#list tableList as table>
-- ---------------------------- -- ----------------------------
-- ${functionName}表 -- ${table.functionName}表
-- ---------------------------- -- ----------------------------
DROP TABLE IF EXISTS `${tableName}`; DROP TABLE IF EXISTS `${table.tableName}`;
CREATE TABLE ${tableName}( CREATE TABLE ${table.tableName}(
<#list columns as column> <#list table.columns as column>
<#if column.isIncrement==1 > <#if column.isIncrement==1 >
<#assign autoInc>AUTO_INCREMENT</#assign> <#assign autoInc>AUTO_INCREMENT</#assign>
<#else> <#else>
...@@ -34,5 +35,7 @@ CREATE TABLE ${tableName}( ...@@ -34,5 +35,7 @@ CREATE TABLE ${tableName}(
</#if> </#if>
`${column.columnName}` ${column.columnType} ${Required} ${autoInc} COMMENT '${column.columnComment}', `${column.columnName}` ${column.columnType} ${Required} ${autoInc} COMMENT '${column.columnComment}',
</#list> </#list>
PRIMARY KEY (`${pkColumn.columnName}`) PRIMARY KEY (`${table.pkColumn.columnName}`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='${functionName}'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='${table.functionName}';
</#list>
\ No newline at end of file
<#list tableList as table>
-- ---------------------------- -- ----------------------------
-- ${functionName}菜单 SQL -- ${table.functionName}菜单 SQL
-- ---------------------------- -- ----------------------------
INSERT INTO `mortals_xhx_menu` VALUES (null, '${tableComment}', '/${RequestMapping}/list', 0, 1, 1, 0, 0,'',NULL, NULL, NULL, 0, 0, 1, NULL, NULL, NULL); INSERT INTO `mortals_xhx_menu` VALUES (null, '${table.tableComment}', '/${table.requestMapping}/list', 0, 1, 1, 0, 0,'',NULL, NULL, NULL, 0, 0, 1, NULL, NULL, NULL);
-- ---------------------------- -- ----------------------------
-- ${functionName}资源路径 SQL -- ${table.functionName}资源路径 SQL
-- ---------------------------- -- ----------------------------
INSERT INTO `mortals_xhx_resource` VALUES (null, '${functionName}-菜单管理-查看', '/${RequestMapping}/list,/${RequestMapping}/view,/${RequestMapping}/info,/${RequestMapping}/export,/${RequestMapping}/exportExcel,/${RequestMapping}/downloadTemplate,/${RequestMapping}/download', 3, 0, NULL, NULL, NULL, 0); INSERT INTO `mortals_xhx_resource` VALUES (null, '${table.functionName}-菜单管理-查看', '/${table.requestMapping}/list,/${table.requestMapping}/view,/${table.requestMapping}/info,/${table.requestMapping}/export,/${table.requestMapping}/exportExcel,/${table.requestMapping}/downloadTemplate,/${table.requestMapping}/download', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (null, '${functionName}-菜单管理-维护', '/${RequestMapping}/add,/${RequestMapping}/edit,/${RequestMapping}/delete,/${RequestMapping}/logicDelete,/${RequestMapping}/save,/${RequestMapping}/importData', 3, 0, NULL, NULL, NULL, 0); INSERT INTO `mortals_xhx_resource` VALUES (null, '${table.functionName}-菜单管理-维护', '/${table.requestMapping}/add,/${table.requestMapping}/edit,/${table.requestMapping}/delete,/${table.requestMapping}/logicDelete,/${table.requestMapping}/save,/${table.requestMapping}/importData', 3, 0, NULL, NULL, NULL, 0);
-- ----------------------------
-- ${table.functionName}参数 SQL
-- ----------------------------
<#list table.columns as column>
<#if column.dict??>
<#list column.dict as dict>
INSERT INTO `mortals_xhx_param` VALUES (null, '${column.subComment(column.columnComment)}', '${table.className}', '${column.javaField}', '${dict.num}', '${dict.value}', 1, 4, 0, '${column.javaField}', NULL, NULL, NULL);
</#list>
</#if>
</#list>
</#list>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment