master
wangbing 4 years ago
parent 485ccaf218
commit 64cb0f55a2

@ -97,7 +97,6 @@ public class SpringBootCallable implements Callable {
return true;
}
/**
* POM.xml
*
@ -213,7 +212,7 @@ public class SpringBootCallable implements Callable {
ctxss.put("module", module.getName());
File m = Tool.createPath(msvr, module.getName());
for (Table table : module.getTables()) {
if (!table.getMsvr()){
if (!table.getMsvr()) {
continue;
}
ctxss.put("table", table);
@ -283,7 +282,10 @@ 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 svr = null;
if (project.isNeedCloud()) {
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");
@ -315,8 +317,10 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(mgr, Tool.ABB2Abb(table.getTableName()) + "ManagerImpl" + ".java"), "SpringBoot/java/module/mgr/managerImpl_NSYS.ftl", ctx);
}
if (project.isNeedCloud()) {
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);

@ -1,10 +1,31 @@
package ${domain}.action;
import ${domain}.config.ActionConfig;
import ${domain}.frame.auth.LocalData;
import ${domain}.frame.auth.Token;
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;
import ${domain}.frame.utils.MapperUtil;
import ${domain}.frame.utils.RequestUtil;
import ${domain}.frame.utils.StringUtil;
import ${domain}.module.wsys.ent.Visitor;
import ${domain}.module.wsys.mgr.LogerrManager;
import ${domain}.module.wsys.mgr.TokensManager;
import ${domain}.module.wsys.mgr.VisitorManager;
import ${domain}.module.wsys.req.TokensBuildRequest;
import ${domain}.module.wsys.req.VisitorFindRequest;
import ${domain}.module.wsys.rsp.TokensBuildResponse;
import ${domain}.module.wsys.rsp.VisitorFindResponse;
import com.fasterxml.jackson.core.TreeNode;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
@ -20,45 +41,17 @@ import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;
import ${domain}.config.ActionConfig;
import ${domain}.frame.auth.LocalData;
import ${domain}.frame.auth.Token;
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;
import ${domain}.frame.utils.MapperUtil;
import ${domain}.frame.utils.StringUtil;
import ${domain}.module.wsys.mgr.LogerrManager;
<#if project.frameValue() = 1>
import ${domain}.module.wsys.ent.Visitor;
import ${domain}.module.wsys.mgr.VisitorManager;
import ${domain}.module.wsys.req.VisitorFindRequest;
import ${domain}.module.wsys.req.TokensBuildRequest;
import ${domain}.module.wsys.rsp.VisitorFindResponse;
import ${domain}.module.wsys.mgr.TokensManager;
import ${domain}.module.wsys.req.TokensBuildRequest;
import ${domain}.module.wsys.rsp.TokensBuildResponse;
</#if>
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* ControllerController
* htm{@link GlobalController#action(Model, HttpServletRequest, HttpServletResponse)}
* htm{@link GlobalController#page(Model, HttpServletRequest, HttpServletResponse)}
* ajax{@link GlobalController#ajax(String, String, String, HttpServletRequest, HttpServletResponse, String, MultipartFile)}
* {@link GlobalController#sse(String)}
* <p>
@ -101,34 +94,26 @@ public class GlobalController {
* @param request
*/
@RequestMapping({"/**/*.htm"})
public String action(Model model, HttpServletRequest request, HttpServletResponse response) {
public String page(Model model, HttpServletRequest request, HttpServletResponse response) {
String servletPath = request.getServletPath();// /**/*.htm
String layout = "/layout/default";
String action = LocalData.getAction();// **/*
Pattern compile = Pattern.compile("^/(.+)\\.htm");
Matcher matcher = compile.matcher(servletPath);
if (matcher.find()) {
action = matcher.group(1);
LocalData.setAction(action);
}
String page = RequestUtil.getPage();
try {
LocaleResolver localeResolver = (LocaleResolver) request.getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE);
Locale locale = localeResolver.resolveLocale(request);
{//查询screen
String[] split = action.split("/");
layout = "screen" + File.separator + String.join(File.separator, split);
layout = "screen/" + page;
View view = viewResolver.resolveViewName(layout, locale);
if (view == null) {
response.sendError(HttpServletResponse.SC_NOT_FOUND,"");
response.sendError(HttpServletResponse.SC_NOT_FOUND, "");
return null;
}
// 尝试执行Screen执行器(服务器渲染),并返回视图模板
try {
String beanClassName = (ActionConfig.SCREEN_PREFIX + action).toLowerCase();
String beanClassName = (ActionConfig.SCREEN_PREFIX + page).toLowerCase();
Screen screenExec = LocalData.getApplicationContext().getBean(beanClassName, Screen.class);
screenExec.exec(model, request, response);
@ -142,7 +127,7 @@ public class GlobalController {
}
{//查找layout
String[] split = action.split("/");
String[] split = page.split("/");
int lt = split.length;
while (lt > 0) {

@ -1,5 +1,9 @@
package ${domain}.config;
import ${domain}.frame.auth.LocalData;
import ${domain}.frame.base.Control;
import ${domain}.frame.utils.RequestUtil;
import ${domain}.frame.utils.UrlUtil;
import freemarker.template.SimpleScalar;
import freemarker.template.TemplateMethodModelEx;
import freemarker.template.TemplateModelException;
@ -14,9 +18,6 @@ import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;
import ${domain}.frame.auth.LocalData;
import ${domain}.frame.base.Control;
import ${domain}.frame.utils.UrlUtil;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
@ -25,8 +26,8 @@ import java.io.File;
import java.util.List;
import java.util.Locale;
import static ${domain}.config.ActionConfig.CONTROL_PREFIX;
import static ${domain}.config.ActionConfig.SCREEN_PREFIX;
import static com.example.config.ActionConfig.CONTROL_PREFIX;
import static com.example.config.ActionConfig.SCREEN_PREFIX;
@Configuration
public class FreeMarkerConfig {
@ -55,28 +56,15 @@ public class FreeMarkerConfig {
try {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
LocaleResolver localeResolver = (LocaleResolver) request.getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE);
String servletPath = LocalData.getAction();
servletPath = servletPath.replaceAll("^/", "");
String[] split = servletPath.split("/");
StringBuilder sb = new StringBuilder("");
// 分割组装路径
for (int i = 0; i < split.length; i++) {
sb.append(split[i]);
if (i != split.length - 1) {
sb.append(File.separator);
}
}
String page = RequestUtil.getPage();
Locale locale = localeResolver.resolveLocale(request);
String viewName = "screen" + File.separator + sb.toString();
String viewName = "screen/" + page;
View view = viewResolver.resolveViewName(viewName, locale);
//无法找到对应screen
if (view == null) {
return "";
} else {
return SCREEN_PREFIX + servletPath + suffix;
return SCREEN_PREFIX + page + suffix;
}
} catch (Exception e) {
e.printStackTrace();

@ -15,6 +15,7 @@ import org.springframework.security.web.access.intercept.FilterSecurityIntercept
import ${domain}.frame.auth.LocalData;
import ${domain}.frame.auth.Token;
import ${domain}.frame.utils.CookieUtil;
import ${domain}.frame.utils.RequestUtil;
import ${domain}.module.wsys.mgr.TokensManager;
import ${domain}.module.wsys.req.TokensBuildRequest;
import ${domain}.module.wsys.rsp.TokensBuildResponse;
@ -73,10 +74,16 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
// 1优先获取参数中的token
String token = request.getParameter("token");
// 2其次获取Cookie中的token
if (token == null || token.isEmpty()) {
token = CookieUtil.getCookieValue(request.getCookies(), "token");
}
// 3其次获取Header中的token
if (token == null || token.isEmpty()) {
token = RequestUtil.getHeader("token");
}
// 组装Token ~ 这边根据实际的业务组装Token
if (token != null) {
@ -89,14 +96,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
LocalData.setToken(null);
}
// Action
String servletPath = request.getServletPath().toLowerCase();
Pattern compile = Pattern.compile("^/(.+)\\.htm");
Matcher matcher = compile.matcher(servletPath);
if (matcher.find()) {
LocalData.setAction(matcher.group(1));
}
try {
filterChain.doFilter(servletRequest, servletResponse);
} catch (AccessDeniedException e) {

@ -35,19 +35,6 @@ public class LocalData {
return system;
}
/**
* target = '/aa/bb'
*/
private static final ThreadLocal<String> actionHolder = new ThreadLocal();
public static String getAction() {
return actionHolder.get();
}
public static void setAction(String action) {
actionHolder.set(action);
}
/**
*
*/

@ -137,4 +137,20 @@ public class RequestUtil {
e.printStackTrace();
}
}
public static String getHeader(String head) {
HttpServletRequest request = LocalData.getRequest();
return request.getHeader(head);
}
public static Pattern actionPattern = Pattern.compile("^/(.+)\\.htm");
public static String getPage() {
HttpServletRequest request = LocalData.getRequest();
Matcher matcher = actionPattern.matcher(request.getServletPath());
if (!matcher.find()) {
return "";
}
return matcher.group(1);
}
}

@ -632,15 +632,42 @@ code {
box-shadow: 0 1px 6px rgba(0, 0, 0, .2);
}
.el-drawer{/* 修复抽屉无法滚动 */
.el-drawer { /* 修复抽屉无法滚动 */
overflow: auto;
height: 100%;
}
.el-drawer .el-drawer__body{/* 修复抽屉内容子类继承height失效维内托 */
.el-drawer .el-drawer__body { /* 修复抽屉内容子类继承height失效维内托 */
height: calc(100% - 76px);
}
.el-transfer__button { /* 修复穿梭框2.12.0 在2.13.0后按钮异常问题*/
display: block;
margin: 0 !important;
padding: 10px;
border-radius: 50%;
color: #fff;
background-color: #409eff;
font-size: 0;
}
.el-transfer__button:first-child {
margin-bottom: 10px !important;
}
.el-transfer__button.is-disabled, .el-transfer__button.is-disabled:hover {
border: 1px solid #dcdfe6;
background-color: #f5f7fa;
color: #c0c4cc;
}
.el-transfer-panel__item {
height: 30px !important;
line-height: 30px !important;
padding-left: 15px !important;
display: block !important;
}
/* 带有固定title布局,title保持固定*/
.wb-layout-title-fix {
width: 100%;
@ -686,9 +713,11 @@ code {
margin: 10px;
min-width: 1060px;
}
.el-dialog.dialog {
width: 700px;
}
.el-dialog.dialog .el-form-item__content,
.el-dialog.dialog .el-form-item__content > div,
.el-form.form .el-form-item__content,
@ -697,13 +726,6 @@ code {
.el-form.search .el-form-item__content > div {
width: 200px;
}
.el-transfer-panel__item {
height: 30px!important;
line-height: 30px!important;
padding-left: 15px!important;
display: block!important;
}
.el-table.data {
margin-top: 10px;

Loading…
Cancel
Save

Powered by TurnKey Linux.