master
wangbing 4 years ago
parent 7cba3f7335
commit 21f395e74b

@ -490,12 +490,6 @@ public class JavaFxApplication extends Application {
currentProject.setNeedMoreDB(newValue);
}
});
detailProjectController.getNeedCloud().selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
currentProject.setNeedCloud(newValue);
}
});
detailProjectController.getNeedAsync().selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
@ -551,6 +545,12 @@ public class JavaFxApplication extends Application {
currentTable.setApi(newValue);
}
});
detailTableController.getMsvr().selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
currentTable.setMsvr(newValue);
}
});
detailTableController.getCreate().selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
@ -933,7 +933,6 @@ public class JavaFxApplication extends Application {
}
}
detailProjectController.getNeedMordDB().setSelected(currentProject.isNeedMoreDB());
detailProjectController.getNeedCloud().setSelected(currentProject.isNeedCloud());
detailProjectController.getNeedAsync().setSelected(currentProject.isNeedAsync());
detailProjectController.getNeedMail().setSelected(currentProject.isNeedEMail());
@ -964,6 +963,7 @@ public class JavaFxApplication extends Application {
detailTableController.getAjax().setSelected(currentTable.getAjax());
detailTableController.getHtml().setSelected(currentTable.getHtml());
detailTableController.getApi().setSelected(currentTable.getApi());
detailTableController.getMsvr().setSelected(currentTable.getMsvr());
for (TableMethod method : currentTable.getMethods()) {
CheckBox checkBox = new CheckBox(method.getName());

@ -20,8 +20,6 @@ public class DetailProjectController {
@FXML
private CheckBox needMordDB;
@FXML
private CheckBox needCloud;
@FXML
private CheckBox needAsync;
@FXML
private CheckBox needMail;
@ -66,14 +64,6 @@ public class DetailProjectController {
this.needMordDB = needMordDB;
}
public CheckBox getNeedCloud() {
return needCloud;
}
public void setNeedCloud(CheckBox needCloud) {
this.needCloud = needCloud;
}
public CheckBox getNeedAsync() {
return needAsync;
}

@ -37,6 +37,8 @@ public class DetailTableController {
private CheckBox html;
@FXML
private CheckBox api;
@FXML
private CheckBox msvr;
public FlowPane getMethods() {
return methods;
@ -149,4 +151,12 @@ public class DetailTableController {
public void setSys(CheckBox sys) {
this.sys = sys;
}
public CheckBox getMsvr() {
return msvr;
}
public void setMsvr(CheckBox msvr) {
this.msvr = msvr;
}
}

@ -315,7 +315,7 @@ public class XmlManager {
private Frame getFrame(String str) {
if (str == null || "".equals(str)) {
return Frame.;
return Frame.;
}
return Frame.valueOf(str);
}

@ -19,15 +19,12 @@ import xyz.wbsite.dbtool.web.frame.utils.ResourceUtil;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.Callable;
public class SpringBootCallable implements Callable {
@ -130,13 +127,18 @@ public class SpringBootCallable implements Callable {
ctx.put("author", project.getAuthor());
ctx.put("modules", project.getModules());
File control = Tool.createPath(root, "control");
freeMarkerManager.outputTemp(Tool.createFile(control, "Header.java"), "SpringBoot/java/action/control/Header.java", ctx);
//region Page
if (project.isNeedHtml()) {
File control = Tool.createPath(root, "page", "control");
freeMarkerManager.outputTemp(Tool.createFile(control, "Header.java"), "SpringBoot/java/action/page/control/Header.java", ctx);
File screen = Tool.createPath(root, "screen");
freeMarkerManager.outputTemp(Tool.createFile(screen, "Index.java"), "SpringBoot/java/action/screen/Index.java", ctx);
File screen = Tool.createPath(root, "page", "screen");
freeMarkerManager.outputTemp(Tool.createFile(screen, "Index.java"), "SpringBoot/java/action/page/screen/Index.java", ctx);
}
//endregion
{// ajax 属于web内容
//region 异步接口
if (project.isNeedAjax()) {
File ajax = Tool.createPath(root, "ajax");
HashMap<String, Object> ctxss = new HashMap<String, Object>();
ctxss.put("domain", project.getDomain());
@ -156,14 +158,16 @@ public class SpringBootCallable implements Callable {
}
}
if (project.getFrame().value() == Frame..value()) {//管理架构
if (project.getFrame().value() == Frame..value()) {//管理架构
File wsys = Tool.createPath(ajax, "wsys");
for (String name : ResourceUtil.listFileName("/modules/SpringBoot/java/action/ajax/wsys/")) {
freeMarkerManager.outputTemp(Tool.createFile(wsys, name), "SpringBoot/java/action/ajax/wsys/" + name, ctx);
}
}
}
//endregion
//region 应用接口
if (project.isNeedApi()) {
File api = Tool.createPath(root, "api");
@ -172,8 +176,8 @@ public class SpringBootCallable implements Callable {
continue;
}
HashMap<String, Object> ctxss = new HashMap<String, Object>();
ctxss.put("project",project);
ctxss.put("domain",project.getDomain());
ctxss.put("project", project);
ctxss.put("domain", project.getDomain());
ctxss.put("author", project.getAuthor());
ctxss.put("module", module.getName());
File m = Tool.createPath(api, module.getName());
@ -185,7 +189,7 @@ public class SpringBootCallable implements Callable {
}
}
if (project.getFrame().value() >= Frame..value()) {//生成系统模块
if (project.getFrame().value() >= Frame..value()) {//生成系统模块
File wsys = Tool.createPath(api, "wsys");
for (String name : ResourceUtil.listFileName("/modules/SpringBoot/java/action/api/wsys/")) {
@ -193,6 +197,31 @@ public class SpringBootCallable implements Callable {
}
}
}
//endregion
//region 微服务接口
if (project.isNeedCloud()) {
File msvr = Tool.createPath(root, "msvr");
for (Module module : project.getModules()) {
if (!module.getNeedGenerate()) {
continue;
}
HashMap<String, Object> ctxss = new HashMap<String, Object>();
ctxss.put("project", project);
ctxss.put("domain", project.getDomain());
ctxss.put("author", project.getAuthor());
ctxss.put("module", module.getName());
File m = Tool.createPath(msvr, module.getName());
for (Table table : module.getTables()) {
if (!table.getMsvr()){
continue;
}
ctxss.put("table", table);
freeMarkerManager.outputTemp(Tool.createFile(m, table.getCName() + "Msvr.java"), "SpringBoot/java/action/msvr/Msvr.java", ctxss);
}
}
}
//endregion
freeMarkerManager.outputTemp(Tool.createFile(root, "GlobalController.java"), "SpringBoot/java/action/GlobalController.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(root, "GlobalErrorController.java"), "SpringBoot/java/action/GlobalErrorController.java", ctx);
@ -251,6 +280,7 @@ public class SpringBootCallable implements Callable {
File ent = Tool.createPath(Tool.createPath(root, module.getName()), "ent");
File mpr = Tool.createPath(Tool.createPath(root, module.getName()), "mpr");
File mgr = Tool.createPath(Tool.createPath(root, module.getName()), "mgr");
File svr = Tool.createPath(Tool.createPath(root, module.getName()), "svr");
File req = Tool.createPath(Tool.createPath(root, module.getName()), "req");
File rsp = Tool.createPath(Tool.createPath(root, module.getName()), "rsp");
@ -275,17 +305,16 @@ public class SpringBootCallable implements Callable {
}
if (table.getSys()) {
if (table.getCreate() || table.getDelete() || table.getUpdate() || table.getFind() || table.getGet() || table.getSearch()) {
freeMarkerManager.outputTemp(Tool.createFile(mgr, Tool.ABB2Abb(table.getTableName()) + "Manager" + ".java"), "SpringBoot/java/module/mgr/manager.ftl", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr, Tool.ABB2Abb(table.getTableName()) + "ManagerImpl" + ".java"), "SpringBoot/java/module/mgr/managerImpl.ftl", ctx);
}
freeMarkerManager.outputTemp(Tool.createFile(mgr, Tool.ABB2Abb(table.getTableName()) + "Manager" + ".java"), "SpringBoot/java/module/mgr/manager.ftl", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr, Tool.ABB2Abb(table.getTableName()) + "ManagerImpl" + ".java"), "SpringBoot/java/module/mgr/managerImpl.ftl", ctx);
} else {
if (table.getCreate() || table.getDelete() || table.getUpdate() || table.getFind() || table.getGet() || table.getSearch()) {
freeMarkerManager.outputTemp(Tool.createFile(mgr, Tool.ABB2Abb(table.getTableName()) + "Manager" + ".java"), "SpringBoot/java/module/mgr/manager_NSYS.ftl", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr, Tool.ABB2Abb(table.getTableName()) + "ManagerImpl" + ".java"), "SpringBoot/java/module/mgr/managerImpl_NSYS.ftl", ctx);
}
freeMarkerManager.outputTemp(Tool.createFile(mgr, Tool.ABB2Abb(table.getTableName()) + "Manager" + ".java"), "SpringBoot/java/module/mgr/manager_NSYS.ftl", ctx);
freeMarkerManager.outputTemp(Tool.createFile(mgr, Tool.ABB2Abb(table.getTableName()) + "ManagerImpl" + ".java"), "SpringBoot/java/module/mgr/managerImpl_NSYS.ftl", ctx);
}
freeMarkerManager.outputTemp(Tool.createFile(svr, Tool.ABB2Abb(table.getTableName()) + "Service" + ".java"), "SpringBoot/java/module/svr/Service.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(svr, Tool.ABB2Abb(table.getTableName()) + "ServiceImpl" + ".java"), "SpringBoot/java/module/svr/ServiceImpl.java", ctx);
if (table.getCreate()) {
freeMarkerManager.outputTemp(Tool.createFile(req, Tool.ABB2Abb(table.getTableName()) + "CreateRequest" + ".java"), "SpringBoot/java/module/req/createRequestClass.ftl", ctx);
freeMarkerManager.outputTemp(Tool.createFile(rsp, Tool.ABB2Abb(table.getTableName()) + "CreateResponse" + ".java"), "SpringBoot/java/module/rsp/createResponseClass.ftl", ctx);
@ -416,6 +445,14 @@ public class SpringBootCallable implements Callable {
}
}
//sse
{
File sse = Tool.createPath(root, "sse");
for (String name : ResourceUtil.listFileName("/modules/SpringBoot/java/frame/sse/")) {
freeMarkerManager.outputTemp(Tool.createFile(sse, name), "SpringBoot/java/frame/sse/" + name, ctx);
}
}
{//excel
File excel = Tool.createPath(root, "excel");
File excelannotation = Tool.createPath(excel, "annotation");
@ -515,6 +552,7 @@ public class SpringBootCallable implements Callable {
ctx.put("author", project.getAuthor());
ctx.put("project", project);
//region 日志配置,脚本配置
freeMarkerManager.outputTemp(Tool.createFile(root, "application.properties"), "SpringBoot/resources/application.ftl", ctx);
freeMarkerManager.outputTemp(Tool.createFile(root, "start-dev.bat"), "SpringBoot/resources/start-dev.bat", ctx);
@ -523,8 +561,9 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(root, "application-prod.properties"), "SpringBoot/resources/application-prod.ftl", ctx);
Tool.outputResource("SpringBoot/resources/logback-spring-dev.xml", Tool.createFile(root, "logback-spring-dev.xml"));
Tool.outputResource("SpringBoot/resources/logback-spring-prod.xml", Tool.createFile(root, "logback-spring-prod.xml"));
//endregion
//region 项目设计文件及SQL
File dbtool = Tool.createPath(root, "dbtool");
{
XmlManager xmlManager = ManagerFactory.getXmlManager();
@ -544,9 +583,7 @@ public class SpringBootCallable implements Callable {
}
}
File lib = Tool.createPath(root, "lib");
if (project.getFrame().value() == Frame..value()) {
if (project.getFrame().value() == Frame..value()) {
Module wsysModule = tryGetModule(project, "wsys");
if (wsysModule == null || !wsysModule.getNeedGenerate()) {// 覆盖
File wsys = Tool.createPath(dbtool, "wsys_table");
@ -558,12 +595,10 @@ public class SpringBootCallable implements Callable {
}
}
}
//endregion
// if (DataBase.Oracle.name().equals(project.getDatabase().name())) {
// File lib = Tool.createPath(root, "lib");
// Tool.outputResource("SpringBoot/resources/lib/ojdbc7-12.1.0.2.jar", Tool.createFile(lib, "ojdbc7-12.1.0.2.jar"));
// }
//region SQLite数据库模板生成
if (DataBase.SQLite.name().equals(project.getDatabase().name())) {
File dbFile = Tool.createFile(root, project.getName() + ".db3");
Connection connection = null;
@ -596,8 +631,10 @@ public class SpringBootCallable implements Callable {
}
}
}
//endregion
{
//region 只有默认选中网页服务的情况下才需要 生成static和template
if (project.isNeedHtml()) {
System.out.println("生成模块:Static");
File static_ = Tool.createPath(root, "static");
File css = Tool.createPath(static_, "css");
@ -655,7 +692,7 @@ public class SpringBootCallable implements Callable {
}
//生成网页
if (project.getFrame().value() == Frame..value()) {
if (project.getFrame().value() == Frame..value()) {
Module wsysModule = tryGetModule(project, "wsys");// 防止与系统冲突,一般不会重复,通常是架构重新设计时遇到
if (wsysModule == null || !wsysModule.getNeedGenerate()) {
File wsys = Tool.createPath(screen, "wsys");
@ -665,6 +702,7 @@ public class SpringBootCallable implements Callable {
}
}
}
//endregion
}
public void generateTestResources(File root, Project project) {
@ -699,7 +737,7 @@ public class SpringBootCallable implements Callable {
ctx.put("author", project.getAuthor());
File frame = Tool.createPath(root, "frame");
freeMarkerManager.outputTemp(Tool.createFile(frame, "ExcelTest.java"), "SpringBoot/test/frame/ExcelTest.java", ctx);
if (project.isNeedEMail()){
if (project.isNeedEMail()) {
freeMarkerManager.outputTemp(Tool.createFile(frame, "MailTest.java"), "SpringBoot/test/frame/MailTest.java", ctx);
}
freeMarkerManager.outputTemp(Tool.createFile(frame, "UtilTest.java"), "SpringBoot/test/frame/UtilTest.java", ctx);
@ -725,7 +763,7 @@ public class SpringBootCallable implements Callable {
}
if (project.getFrame().value() == Frame..value()) {
if (project.getFrame().value() == Frame..value()) {
HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("domain", project.getDomain());
ctx.put("moduleName", project.getName());

@ -4,7 +4,7 @@ package xyz.wbsite.dbtool.javafx.po;
public enum Frame {
(0),
(1);//内部任务
(1);
Frame(int value) {
this.value = value;

@ -12,10 +12,9 @@ public class Project {
setName("example-web");
this.domain = "com.example";
this.author = "author";
this.frame = Frame.;
this.frame = Frame.;
this.database = DataBase.MySQL;
this.needEMail = false;
this.needCloud = false;
}
public Project(String name) {
@ -36,8 +35,6 @@ public class Project {
private boolean needMoreDB;
@Property("needEMail")
private boolean needEMail;
@Property("needCloud")
private boolean needCloud;
@Property("needAsync")
private boolean needAsync;
@ -95,14 +92,6 @@ public class Project {
this.needMoreDB = needMoreDB;
}
public boolean isNeedCloud() {
return needCloud;
}
public void setNeedCloud(boolean needCloud) {
this.needCloud = needCloud;
}
public DataBase getDatabase() {
return database;
}
@ -149,4 +138,37 @@ public class Project {
}
return false;
}
public boolean isNeedAjax() {
for (Module module : modules) {
for (Table table : module.getTables()) {
if (table.getAjax()) {
return true;
}
}
}
return false;
}
public boolean isNeedHtml() {
for (Module module : modules) {
for (Table table : module.getTables()) {
if (table.getHtml()) {
return true;
}
}
}
return false;
}
public boolean isNeedCloud() {
for (Module module : modules) {
for (Table table : module.getTables()) {
if (table.getMsvr()) {
return true;
}
}
}
return false;
}
}

@ -53,6 +53,8 @@ public class Table {
private boolean html = false;
@Property("api")
private boolean api = false;
@Property("msvr")
private boolean msvr = false;
@Property("methods")
private List<TableMethod> methods = new ArrayList<>();
@ -223,6 +225,14 @@ public class Table {
this.api = api;
}
public boolean getMsvr() {
return msvr;
}
public void setMsvr(boolean msvr) {
this.msvr = msvr;
}
public boolean hasPrimaryKey() {
for (Field field : fields) {
if (field.getIsPrimaryKey()) {

@ -53,7 +53,7 @@
<!-- ROW -->
<Label GridPane.rowIndex="2" GridPane.columnIndex="0" text="*" alignment="CENTER" textAlignment="CENTER"
textFill="RED" GridPane.halignment="CENTER" GridPane.valignment="CENTER"/>
<Label GridPane.rowIndex="2" GridPane.columnIndex="1" text="基础框架" GridPane.halignment="CENTER"
<Label GridPane.rowIndex="2" GridPane.columnIndex="1" text="指定框架" GridPane.halignment="CENTER"
GridPane.valignment="CENTER"/>
<HBox GridPane.rowIndex="2" GridPane.columnIndex="2" GridPane.columnSpan="4" alignment="CENTER_LEFT"
@ -65,7 +65,7 @@
<ToggleGroup fx:id="frame"/>
</toggleGroup>
</RadioButton>
<RadioButton mnemonicParsing="false" text="管理框架" toggleGroup="$frame"/>
<RadioButton mnemonicParsing="false" text="基础框架" toggleGroup="$frame"/>
</children>
</HBox>
@ -98,7 +98,6 @@
GridPane.valignment="CENTER">
<children>
<CheckBox fx:id="needMordDB" selected="false" text="多数据库"/>
<CheckBox fx:id="needCloud" selected="false" text="启用微服"/>
<CheckBox fx:id="needAsync" selected="false" text="异步编程"/>
<CheckBox fx:id="needMail" selected="false" text="发送邮件"/>
</children>

@ -40,10 +40,11 @@
<HBox alignment="CENTER_LEFT" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="2"
GridPane.valignment="CENTER">
<children>
<CheckBox fx:id="sys" selected="true" text="系统字段" GridPane.columnIndex="2" GridPane.rowIndex="4"/>
<CheckBox fx:id="ajax" selected="false" text="AJAX接口" GridPane.columnIndex="2" GridPane.rowIndex="3"/>
<CheckBox fx:id="html" selected="false" text="HTML页面" GridPane.columnIndex="2" GridPane.rowIndex="3"/>
<CheckBox fx:id="api" selected="false" text="API接口" GridPane.columnIndex="2" GridPane.rowIndex="3"/>
<CheckBox fx:id="sys" selected="true" text="系统字段"/>
<CheckBox fx:id="ajax" selected="false" text="AJAX接口"/>
<CheckBox fx:id="html" selected="false" text="HTML页面"/>
<CheckBox fx:id="api" selected="false" text="API接口"/>
<CheckBox fx:id="msvr" selected="false" text="Cloud接口"/>
</children>
</HBox>

@ -1,182 +0,0 @@
package ${domain}.action;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.InputStreamReader;
<#list modules as m>
import ${domain}.module.${m.moduleName}.req.*;
import ${domain}.module.${m.moduleName}.mgr.*;
</#list>
import ${domain}.frame.auth.LocalData;
import ${domain}.frame.utils.MapperUtil;
import ${domain}.frame.utils.Message;
import ${domain}.frame.base.BaseResponse;
import ${domain}.frame.base.ErrorType;
import ${domain}.frame.auth.Token;
import ${domain}.frame.utils.LogUtil;
import ${domain}.frame.base.Error;
@Controller
public class AjaxController {
<#list modules as m>
<#list m.tables as table>
@Autowired
private ${table.getCName()}Manager ${table.getFName()}Manager;
</#list>
</#list>
@RequestMapping("/ajax")
@ResponseBody
public BaseResponse ajax(@RequestParam("method") String method,HttpServletRequest request,HttpServletResponse response) {
BaseResponse baseResponse = new BaseResponse();
String jsonString = null;
try {
if (method == null){
baseResponse.addError(new Error(ErrorType.BUSINESS_ERROR, "请求方法不能为空!"));
return baseResponse;
}
Token token = LocalData.getToken();
if (token == null) {
token = LocalData.getTempToken();
}
if (!token.hasRes(method)) {
baseResponse.addError(new Error(ErrorType.BUSINESS_ERROR, "无权调用该接口!"));
return baseResponse;
}
InputStreamReader isr = new InputStreamReader(request.getInputStream(),"UTF-8");
BufferedReader in = new BufferedReader(isr);
jsonString = in.readLine();
switch (method) {
// 示例
case "ajax.example.example":
break;
<#list modules as m>
<#list m.tables as table>
<#if table.getCreate()>
// 创建${table.tableComment}
case "ajax.${m.moduleName}.${table.getLName()}.create":
baseResponse = create${table.getCName()}(jsonString, token);
break;
</#if>
<#if table.getDelete()>
// 删除${table.tableComment}
case "ajax.${m.moduleName}.${table.getLName()}.delete":
baseResponse = delete${table.getCName()}(jsonString, token);
break;
</#if>
<#if table.getUpdate()>
// 修改${table.tableComment}
case "ajax.${m.moduleName}.${table.getLName()}.update":
baseResponse = update${table.getCName()}(jsonString, token);
break;
</#if>
<#if table.getFind()>
// 查询${table.tableComment}
case "ajax.${m.moduleName}.${table.getLName()}.find":
baseResponse = find${table.getCName()}(jsonString, token);
break;
</#if>
<#if table.getGet()>
// 获得${table.tableComment}
case "ajax.${m.moduleName}.${table.getLName()}.get":
baseResponse = get${table.getCName()}(jsonString, token);
break;
</#if>
<#if table.getSearch()>
// 搜索${table.tableComment}
case "ajax.${m.moduleName}.${table.getLName()}.search":
baseResponse = search${table.getCName()}(jsonString, token);
break;
</#if>
</#list>
</#list>
default:
baseResponse.addError(ErrorType.INVALID_PARAMETER, Message.NOT_EXIST_METHOD);
break;
}
} catch (Exception ex) {
baseResponse.addError(ErrorType.SYSTEM_ERROR, Message.ERROR_500);
LogUtil.dumpException(ex);
} finally {
if(baseResponse.hasError()) {
LogUtil.e("请求方法" + method + ", 请求参数:" + jsonString);
LogUtil.e("返回结果包含异常" + MapperUtil.toJson(baseResponse));
}
}
return baseResponse;
}
<#list modules as m>
<#list m.tables as table>
<#if table.getCreate()>
/**
* ${table.tableComment}
*/
private BaseResponse create${table.getCName()}(String jsonString, Token token) {
${table.getCName()}CreateRequest request = MapperUtil.toJava(jsonString, ${table.getCName()}CreateRequest.class);
return ${table.getFName()}Manager.create(request, token);
}
</#if>
<#if table.getDelete()>
/**
* ${table.tableComment}
*/
private BaseResponse delete${table.getCName()}(String jsonString, Token token) {
${table.getCName()}DeleteRequest request = MapperUtil.toJava(jsonString, ${table.getCName()}DeleteRequest.class);
return ${table.getFName()}Manager.delete(request, token);
}
</#if>
<#if table.getUpdate()>
/**
* ${table.tableComment}
*/
private BaseResponse update${table.getCName()}(String jsonString, Token token) {
${table.getCName()}UpdateRequest request = MapperUtil.toJava(jsonString, ${table.getCName()}UpdateRequest.class);
return ${table.getFName()}Manager.update(request, token);
}
</#if>
<#if table.getFind()>
/**
* ${table.tableComment}
*/
private BaseResponse find${table.getCName()}(String jsonString, Token token) {
${table.getCName()}FindRequest request = MapperUtil.toJava(jsonString, ${table.getCName()}FindRequest.class);
return ${table.getFName()}Manager.find(request, token);
}
</#if>
<#if table.getGet()>
/**
* ${table.tableComment}
*/
private BaseResponse get${table.getCName()}(String jsonString, Token token) {
${table.getCName()}GetRequest request = MapperUtil.toJava(jsonString, ${table.getCName()}GetRequest.class);
return ${table.getFName()}Manager.get(request, token);
}
</#if>
<#if table.getSearch()>
/**
* ${table.tableComment}
*/
private BaseResponse search${table.getCName()}(String jsonString, Token token) {
${table.getCName()}SearchRequest request = MapperUtil.toJava(jsonString, ${table.getCName()}SearchRequest.class);
return ${table.getFName()}Manager.search(request, token);
}
</#if>
</#list>
</#list>
}

@ -1,27 +0,0 @@
package com.example.action;
import com.example.frame.base.BaseResponse;
import com.example.module.wsys.rsp.UserFindResponse;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/feign")
public class FeignController {
@RequestMapping("/{module}/{target}/{method}")
public BaseResponse find(
@PathVariable String module,
@PathVariable String target,
@PathVariable String method,
@RequestHeader String token,
@RequestBody String data) {
System.out.println("===========");
return new UserFindResponse();
}
}

@ -26,6 +26,7 @@ import ${domain}.frame.base.BaseRequest;
import ${domain}.frame.base.BaseResponse;
import ${domain}.frame.base.ErrorType;
import ${domain}.frame.base.Screen;
import ${domain}.frame.sse.Sser;
import ${domain}.frame.utils.AESUtil;
import ${domain}.frame.utils.LogUtil;
import ${domain}.frame.utils.MD5Util;
@ -51,7 +52,6 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.util.Locale;
import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -398,35 +398,81 @@ public class GlobalController {
return AESUtil.encrypt2Base64(MapperUtil.toJson(response).getBytes(), visitor.getAppSecret());
}
private static ConcurrentHashMap<String, SseEmitter> sseMap = new ConcurrentHashMap();
@RequestMapping(path = "/msvr/{module}/{target}/{method}", method = RequestMethod.POST)
@ResponseBody
public BaseResponse msvr(
@PathVariable String module,
@PathVariable String target,
@PathVariable String method,
@RequestBody String data,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
BaseResponse response = new BaseResponse();
/**
* Ssejs
* Sse{@link GlobalController#sseMap}
* Sse{@link GlobalController#pushAll}
*/
@RequestMapping(value = "/sse/{userId}", produces = "text/event-stream;charset=UTF-8")
public SseEmitter sse(@PathVariable String userId) {
SseEmitter sseEmitter = new SseEmitter(10000000L);
if (sseMap.get(userId) != null) {
sseMap.remove(userId);
// 开始处理业务
try {
String beanClassName = (ActionConfig.MSVR_PREFIX + module + "/" + target).toLowerCase();
Object ajax = LocalData.getApplicationContext().getBean(beanClassName);
Class ajaxClass = ajax.getClass();
Method[] methods = ajaxClass.getDeclaredMethods();
Method methodC = null;
for (Method meth : methods) {
if (meth.getName().equals(method)) {
methodC = meth;
}
}
if (methodC == null) {
response.addError(ErrorType.BUSINESS_ERROR, "未找到对应的服务方法!");
return response;
}
Parameter[] parameters = methodC.getParameters();
Object[] arg = new Object[parameters.length];
for (int i = 0; i < parameters.length; i++) {
Parameter parameter = parameters[i];
if (parameter.getType() == HttpServletRequest.class) {
arg[i] = httpServletRequest;
} else if (parameter.getType() == HttpServletResponse.class) {
arg[i] = httpServletResponse;
} else if (BaseRequest.class.isAssignableFrom(parameter.getType())) {
arg[i] = MapperUtil.toJava(data, parameter.getType());
} else if (parameter.getType() == Token.class) {
arg[i] = LocalData.getToken();
} else {
arg[i] = null;
}
}
response = (BaseResponse) methodC.invoke(ajax, arg);
} catch (BeansException e) {
e.printStackTrace();
response.addError(ErrorType.BUSINESS_ERROR, "未找到对应的目标!");
} catch (IllegalAccessException e) {
e.printStackTrace();
response.addError(ErrorType.BUSINESS_ERROR, "方法执必须公开!");
} catch (InvocationTargetException e) {
try {
LogerrManager logerrManager = LocalData.getBean(LogerrManager.class);
logerrManager.addErr("系统错误", e.getTargetException().getMessage(), LogUtil.getTrace(e));
} catch (Exception ignored) {
}
LogUtil.dumpException(e.getTargetException());
e.getTargetException().printStackTrace();
response.addError(ErrorType.BUSINESS_ERROR, "服务方法执行错误[" + e.getTargetException().getMessage() + "]");
}
sseMap.put(userId, sseEmitter);
return sseEmitter;
return response;
}
/**
* Sse
*
* @param data
* Ssejs
* Sse{@link Sser#push(String, Object)}
* Sse{@link Sser#pushAll(Object)}
*/
public static void pushAll(Object data) {
for (String s : sseMap.keySet()) {
try {
sseMap.get(s).send(MapperUtil.toJson(data), MediaType.APPLICATION_JSON);
} catch (IOException e) {
sseMap.remove(s);
}
}
@RequestMapping(value = "/sse/{userId}", produces = "text/event-stream;charset=UTF-8")
public SseEmitter sse(@PathVariable String userId) {
return Sser.register(userId, new SseEmitter(10000000L));
}
}

@ -63,8 +63,8 @@ public class ${table.getCName()}Ajax{
@Autowired
private ${table.getCName()}Manager ${table.getFName()}Manager;
<#if table.getCreate()>
public ${table.getCName()}CreateResponse create(${table.getCName()}CreateRequest request) {
return ${table.getFName()}Manager.create(request, LocalData.getToken());
}
@ -107,7 +107,7 @@ public class ${table.getCName()}Ajax{
}
</#if>
</#list>
<#if table.getHtml()>
<#if table.getFind() && table.getCreate()>
public Object template(){
return ResponseUtil.apply(new WExcel<>(${table.getCName()}.class));

@ -0,0 +1,97 @@
package ${domain}.action.msvr.${module};
import ${domain}.frame.auth.LocalData;
import ${domain}.module.${module}.mgr.${table.getCName()}Manager;
<#if table.getCreate()>
import ${domain}.module.${module}.req.${table.getCName()}CreateRequest;
</#if>
<#if table.getDelete()>
import ${domain}.module.${module}.req.${table.getCName()}DeleteRequest;
</#if>
<#if table.getFind()>
import ${domain}.module.${module}.req.${table.getCName()}FindRequest;
</#if>
<#if table.getGet()>
import ${domain}.module.${module}.req.${table.getCName()}GetRequest;
</#if>
<#if table.getSearch()>
import ${domain}.module.${module}.req.${table.getCName()}SearchRequest;
</#if>
<#if table.getUpdate()>
import ${domain}.module.${module}.req.${table.getCName()}UpdateRequest;
</#if>
<#if table.getCreate()>
import ${domain}.module.${module}.rsp.${table.getCName()}CreateResponse;
</#if>
<#if table.getDelete()>
import ${domain}.module.${module}.rsp.${table.getCName()}DeleteResponse;
</#if>
<#if table.getFind()>
import ${domain}.module.${module}.rsp.${table.getCName()}FindResponse;
</#if>
<#if table.getGet()>
import ${domain}.module.${module}.rsp.${table.getCName()}GetResponse;
</#if>
<#if table.getSearch()>
import ${domain}.module.${module}.rsp.${table.getCName()}SearchResponse;
</#if>
<#if table.getUpdate()>
import ${domain}.module.${module}.rsp.${table.getCName()}UpdateResponse;
</#if>
<#list table.methods as item>
<#if item.selected>
import ${domain}.module.${module}.req.${table.getCName()}${item.getAbbName()?default("")}Request;
import ${domain}.module.${module}.rsp.${table.getCName()}${item.getAbbName()?default("")}Response;
</#if>
</#list>
import org.springframework.beans.factory.annotation.Autowired;
public class ${table.getCName()}Msvr{
@Autowired
private ${table.getCName()}Manager ${table.getFName()}Manager;
<#if table.getCreate()>
public ${table.getCName()}CreateResponse create(${table.getCName()}CreateRequest request) {
return ${table.getFName()}Manager.create(request, LocalData.getToken());
}
</#if>
<#if table.getDelete()>
public ${table.getCName()}DeleteResponse delete(${table.getCName()}DeleteRequest request) {
return ${table.getFName()}Manager.delete(request, LocalData.getToken());
}
</#if>
<#if table.getUpdate()>
public ${table.getCName()}UpdateResponse update(${table.getCName()}UpdateRequest request) {
return ${table.getFName()}Manager.update(request, LocalData.getToken());
}
</#if>
<#if table.getFind()>
public ${table.getCName()}FindResponse find(${table.getCName()}FindRequest request) {
return ${table.getFName()}Manager.find(request, LocalData.getToken());
}
</#if>
<#if table.getGet()>
public ${table.getCName()}GetResponse get(${table.getCName()}GetRequest request) {
return ${table.getFName()}Manager.get(request, LocalData.getToken());
}
</#if>
<#if table.getSearch()>
public ${table.getCName()}SearchResponse search(${table.getCName()}SearchRequest request) {
return ${table.getFName()}Manager.search(request, LocalData.getToken());
}
</#if>
<#list table.methods as item>
<#if item.selected>
public ${table.getCName()}${item.getAbbName()?default("")}Response ${item.name}(${table.getCName()}${item.getAbbName()?default("")}Request request) {
return ${table.getFName()}Manager.${item.name}(request, LocalData.getToken());
}
</#if>
</#list>
}

@ -37,6 +37,7 @@ public class ActionConfig implements BeanDefinitionRegistryPostProcessor {
public static String CONTROL_PREFIX = "/control/";
public static String AJAX_PREFIX = "/ajax/";
public static String API_PREFIX = "/api/";
public static String MSVR_PREFIX = "/wsvr/";
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException {
@ -49,6 +50,7 @@ public class ActionConfig implements BeanDefinitionRegistryPostProcessor {
registryControl(domain + ".action.page.control", beanDefinitionRegistry);
registryAjax(domain + ".action.ajax", beanDefinitionRegistry);
registryApi(domain + ".action.api", beanDefinitionRegistry);
registryWsvr(domain + ".action.msvr", beanDefinitionRegistry);
}
}
@ -103,7 +105,7 @@ public class ActionConfig implements BeanDefinitionRegistryPostProcessor {
public String generateBeanName(BeanDefinition beanDefinition, BeanDefinitionRegistry beanDefinitionRegistry) {
String beanClassName = beanDefinition.getBeanClassName();
if (beanClassName != null && beanClassName.endsWith("Ajax")) {
beanClassName = beanClassName.substring(0, beanClassName.length() - 4);
beanClassName = beanClassName.substring(0, beanClassName.lastIndexOf("Ajax"));
}
String beamName = beanClassName.replaceAll(domain + ".", AJAX_PREFIX).replaceAll("\\.","/").toLowerCase();
LogUtil.i("registry ajax " + beamName);
@ -126,7 +128,7 @@ public class ActionConfig implements BeanDefinitionRegistryPostProcessor {
public String generateBeanName(BeanDefinition beanDefinition, BeanDefinitionRegistry beanDefinitionRegistry) {
String beanClassName = beanDefinition.getBeanClassName();
if (beanClassName != null && beanClassName.endsWith("Api")) {
beanClassName = beanClassName.substring(0, beanClassName.length() - 3);
beanClassName = beanClassName.substring(0, beanClassName.lastIndexOf("Api"));
}
String beamName = beanClassName.replaceAll(domain + ".", API_PREFIX).replaceAll("\\.","/").toLowerCase();
LogUtil.i("registry api " + beamName);
@ -135,4 +137,27 @@ public class ActionConfig implements BeanDefinitionRegistryPostProcessor {
});
return classPathBeanDefinitionScanner.scan(domain);
}
private int registryWsvr(String domain, BeanDefinitionRegistry beanDefinitionRegistry) {
ClassPathBeanDefinitionScanner classPathBeanDefinitionScanner = new ClassPathBeanDefinitionScanner(beanDefinitionRegistry);
classPathBeanDefinitionScanner.addIncludeFilter(new TypeFilter() {
@Override
public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException {
return true;
}
});
classPathBeanDefinitionScanner.setBeanNameGenerator(new BeanNameGenerator() {
@Override
public String generateBeanName(BeanDefinition beanDefinition, BeanDefinitionRegistry beanDefinitionRegistry) {
String beanClassName = beanDefinition.getBeanClassName();
if (beanClassName != null && beanClassName.endsWith("Msvr")) {
beanClassName = beanClassName.substring(0, beanClassName.lastIndexOf("Msvr"));
}
String beamName = beanClassName.replaceAll(domain + ".", MSVR_PREFIX).replaceAll("\\.","/").toLowerCase();
LogUtil.i("registry wsvr " + beamName);
return beamName;
}
});
return classPathBeanDefinitionScanner.scan(domain);
}
}

@ -1,8 +1,8 @@
package xyz.wbsite.frame.sse;
package ${domain}.frame.sse;
import org.springframework.http.MediaType;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import xyz.wbsite.frame.utils.MapperUtil;
import ${domain}.frame.utils.MapperUtil;
import java.io.IOException;
import java.util.concurrent.ConcurrentHashMap;
@ -14,7 +14,7 @@ public class Sser {
/**
*
*/
public SseEmitter register(String key, SseEmitter sseEmitter) {
public static SseEmitter register(String key, SseEmitter sseEmitter) {
if (sseMap.get(key) != null) {
sseMap.remove(key);
}

@ -15,4 +15,5 @@ public class Message {
public static String FIND_FAILURE = "查询失败,请刷新后重新尝试!";
public static String GET_FAILURE = "对象不存在!";
public static String INSERT_DUPLICATE = "已经存在相同数据,返回列表页面确认!";
public static String SERVICE_FAILURE = "服务调用失败!";
}

@ -0,0 +1,134 @@
package ${domain}.module.${moduleName}.svr;
<#if table.getCreate()>
import ${domain}.module.${moduleName}.req.${table.getCName()}CreateRequest;
</#if>
<#if table.getDelete()>
import ${domain}.module.${moduleName}.req.${table.getCName()}DeleteRequest;
</#if>
<#if table.getFind()>
import ${domain}.module.${moduleName}.req.${table.getCName()}FindRequest;
</#if>
<#if table.getGet()>
import ${domain}.module.${moduleName}.req.${table.getCName()}GetRequest;
</#if>
<#if table.getSearch()>
import ${domain}.module.${moduleName}.req.${table.getCName()}SearchRequest;
</#if>
<#if table.getUpdate()>
import ${domain}.module.${moduleName}.req.${table.getCName()}UpdateRequest;
</#if>
<#if table.getCreate()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}CreateResponse;
</#if>
<#if table.getDelete()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}DeleteResponse;
</#if>
<#if table.getFind()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}FindResponse;
</#if>
<#if table.getGet()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}GetResponse;
</#if>
<#if table.getSearch()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}SearchResponse;
</#if>
<#if table.getUpdate()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}UpdateResponse;
</#if>
<#list table.methods as item>
<#if item.selected>
import ${domain}.module.${moduleName}.req.${table.getCName()}${item.getAbbName()?default("")}Request;
import ${domain}.module.${moduleName}.rsp.${table.getCName()}${item.getAbbName()?default("")}Response;
</#if>
</#list>
import ${domain}.frame.auth.Token;
/**
* ${table.tableComment}
*
* @author ${author?default("")}
* @version 0.0.1
* @since ${.now?string["yyyy-MM-dd"]}
*/
public interface ${table.getCName()}Service {
<#if table.getCreate()>
/**
*
*
* @param request
* @param token
* @return
*/
${table.getCName()}CreateResponse create(${table.getCName()}CreateRequest request, Token token);
</#if>
<#if table.getDelete()>
/**
*
*
* @param request
* @param token
* @return
*/
${table.getCName()}DeleteResponse delete(${table.getCName()}DeleteRequest request, Token token);
</#if>
<#if table.getUpdate()>
/**
*
*
* @param request
* @param token
* @return
*/
${table.getCName()}UpdateResponse update(${table.getCName()}UpdateRequest request, Token token);
</#if>
<#if table.getFind()>
/**
*
*
* @param request
* @param token
* @return
*/
${table.getCName()}FindResponse find(${table.getCName()}FindRequest request, Token token);
</#if>
<#if table.getSearch()>
/**
*
*
* @param request
* @param token
* @return
*/
${table.getCName()}SearchResponse search(${table.getCName()}SearchRequest request, Token token);
</#if>
<#if table.getGet()>
/**
*
*
* @param request
* @param token
* @return
*/
${table.getCName()}GetResponse get(${table.getCName()}GetRequest request, Token token);
</#if>
<#list table.methods as item>
<#if item.selected>
/**
* ${item.note?default("")}
*
* @param request
* @param token
* @return
*/
${table.getCName()}${item.getAbbName()?default("")}Response ${item.name}(${table.getCName()}${item.getAbbName()?default("")}Request request, Token token);
</#if>
</#list>
}

@ -0,0 +1,212 @@
package ${domain}.module.${moduleName}.svr;
import ${domain}.frame.auth.Token;
import ${domain}.frame.base.ErrorType;
import ${domain}.frame.utils.Message;
import ${domain}.frame.utils.ValidationUtil;
<#if table.getCreate()>
import ${domain}.module.${moduleName}.req.${table.getCName()}CreateRequest;
</#if>
<#if table.getDelete()>
import ${domain}.module.${moduleName}.req.${table.getCName()}DeleteRequest;
</#if>
<#if table.getFind()>
import ${domain}.module.${moduleName}.req.${table.getCName()}FindRequest;
</#if>
<#if table.getGet()>
import ${domain}.module.${moduleName}.req.${table.getCName()}GetRequest;
</#if>
<#if table.getSearch()>
import ${domain}.module.${moduleName}.req.${table.getCName()}SearchRequest;
</#if>
<#if table.getUpdate()>
import ${domain}.module.${moduleName}.req.${table.getCName()}UpdateRequest;
</#if>
<#if table.getCreate()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}CreateResponse;
</#if>
<#if table.getDelete()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}DeleteResponse;
</#if>
<#if table.getFind()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}FindResponse;
</#if>
<#if table.getGet()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}GetResponse;
</#if>
<#if table.getSearch()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}SearchResponse;
</#if>
<#if table.getUpdate()>
import ${domain}.module.${moduleName}.rsp.${table.getCName()}UpdateResponse;
</#if>
<#list table.methods as item>
<#if item.selected>
import ${domain}.module.${moduleName}.req.${table.getCName()}${item.getAbbName()?default("")}Request;
import ${domain}.module.${moduleName}.rsp.${table.getCName()}${item.getAbbName()?default("")}Response;
</#if>
</#list>
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
/**
* ${table.tableComment}
*
* @author ${author?default("")}
* @version 0.0.1
* @since ${.now?string["yyyy-MM-dd"]}
*/
@Service
public class ${table.getCName()}ServiceImpl implements ${table.getCName()}Service {
private final static String SERVICE = "EXAMPLE-WEB";
private final static String SERVICE_URL = String.format("http://%s/msvr/${moduleName}/${table.getCName()}/", SERVICE);
@Autowired
RestTemplate restTemplate;
<#if table.getCreate()>
/**
*
*
* @param request
* @param token
* @return
*/
public ${table.getCName()}CreateResponse create(${table.getCName()}CreateRequest request, Token token) {
${table.getCName()}CreateResponse response = new ${table.getCName()}CreateResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
try {
response = post.postForObject(SERVICE_URL + "create", request, NewTableCreateResponse.class);
} catch (RestClientException e) {
response.addError(ErrorType.BUSINESS_ERROR, Message.SERVICE_FAILURE);
}
return response;
}
</#if>
<#if table.getDelete()>
/**
*
*
* @param request
* @param token
* @return
*/
public ${table.getCName()}DeleteResponse delete(${table.getCName()}DeleteRequest request, Token token) {
${table.getCName()}DeleteResponse response = new ${table.getCName()}DeleteResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
return response;
}
</#if>
<#if table.getUpdate()>
/**
*
*
* @param request
* @param token
* @return
*/
public ${table.getCName()}UpdateResponse update(${table.getCName()}UpdateRequest request, Token token) {
${table.getCName()}UpdateResponse response = new ${table.getCName()}UpdateResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
return response;
}
</#if>
<#if table.getFind()>
/**
*
*
* @param request
* @param token
* @return
*/
public ${table.getCName()}FindResponse find(${table.getCName()}FindRequest request, Token token) {
${table.getCName()}FindResponse response = new ${table.getCName()}FindResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
return response;
}
</#if>
<#if table.getGet()>
/**
*
*
* @param request
* @param token
* @return
*/
public ${table.getCName()}GetResponse get(${table.getCName()}GetRequest request, Token token) {
${table.getCName()}GetResponse response = new ${table.getCName()}GetResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
return response;
}
</#if>
<#if table.getSearch()>
/**
*
*
* @param request
* @param token
* @return
*/
public ${table.getCName()}SearchResponse search(${table.getCName()}SearchRequest request, Token token) {
${table.getCName()}SearchResponse response = new ${table.getCName()}SearchResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
return response;
}
</#if>
<#list table.methods as item>
<#if item.selected>
/**
* ${item.note?default("")}
*
* @param request
* @param token
* @return
*/
public ${table.getCName()}${item.getAbbName()?default("")}Response ${item.name}(${table.getCName()}${item.getAbbName()?default("")}Request request, Token token) {
${table.getCName()}${item.getAbbName()?default("")}Response response = new ${table.getCName()}${item.getAbbName()?default("")}Response();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
return response;
}
</#if>
</#list>
}

@ -1,31 +0,0 @@
package com.example.module.wsys.svr;
import com.example.frame.auth.Token;
import com.example.module.wsys.req.UserFindRequest;
import com.example.module.wsys.rsp.UserFindResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.client.RestTemplate;
@Service
public class UserService {
@Autowired
RestTemplate restTemplate;
@RequestMapping("/user/find")
public UserFindResponse find(UserFindRequest request, @RequestParam(name = "token") Token token) {
UserFindRequest userFindRequest = new UserFindRequest();
userFindRequest.setUserName("AAAAAAAAAAAA");
userFindRequest.setPageNumber(2);
//请求地址
String url = "http://EXAMPLE-WEB/feign/wsys/user/find";
//入参
UserFindResponse userFindResponse = restTemplate.postForObject(url, userFindRequest, UserFindResponse.class);
return userFindResponse;
}
}

@ -7,6 +7,7 @@ spring.application.name=${project.name?default("SpringBoot")}
spring.main.banner-mode=CONSOLE
spring.devtools.restart.enabled=true
<#if project.needCloud>
# eureka中心
eureka.client.fetch-registry=true
eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/
</#if>

@ -7,6 +7,7 @@ spring.application.name=${project.name}
spring.main.banner-mode=off
spring.devtools.restart.enabled=false
<#if project.needCloud>
# eureka中心
eureka.client.fetch-registry=true
eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/
</#if>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project author="wangbing" database="MySQL" domain="xyz.wbsite" frame="管理框架" name="myblog" needAsync="false" needCloud="false" needEMail="true" needMoreDB="false">
<project author="wangbing" database="MySQL" domain="xyz.wbsite" frame="基础框架" name="myblog" needAsync="false" needCloud="false" needEMail="true" needMoreDB="false">
<modules>
<module name="myblog" needGenerate="true" note="myblog" prefix="TB_">
<table ajax="false" api="false" create="true" delete="true" find="true" get="false" html="true" methods="[]" search="false" sys="true" tableComment="博客" tableName="BLOG" update="true">

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project author="wangbing" database="SQLite" domain="xyz.wbsite" frame="管理框架" name="wadmin" needAsync="false" needCloud="false" needEMail="false" needMoreDB="false">
<project author="wangbing" database="SQLite" domain="xyz.wbsite" frame="基础框架" name="wadmin" needAsync="false" needCloud="false" needEMail="false" needMoreDB="false">
<modules>
<module name="wsys" needGenerate="false" note="系统服务" prefix="SYS_">
<table ajax="true" api="false" create="true" delete="true" find="true" get="false" html="true" search="false" sys="true" tableComment="字典" tableName="DICT" update="true">

Loading…
Cancel
Save

Powered by TurnKey Linux.