Skip to content

Commit 45484d8

Browse files
committed
20200306提交一套layuimini+mybatisplus的模板.修复mybatisplus一些相关问题
1 parent e78f38e commit 45484d8

File tree

9 files changed

+344
-35
lines changed

9 files changed

+344
-35
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
|更新日期|更新内容|
2929
|-|-|
30+
|20200306|1.提交一套layuimini+mybatisplus的模板. 2.修复mybatisplus一些相关问题. |
3031
|20200206|1.新增历史记录功能,自动保存最近生成的对象 2.新增swagger开关选项和修复@Column带name参数(感谢@liuyu-struggle的建议) 3.去除mybatis模板中的方括号[]和修改模板里的类注释样式(感谢@gaohanghang的PR)|
3132
|20191229|1.修复bejson安全防护策略拦截问题(感谢@liangbintao@1808083642的反馈) 2.优化字段名含date字符串的处理(感谢@smilexzh的反馈) 3.控制台动态输出项目访问地址(感谢@gaohanghang的提交)|
3233
|20191128|1.修复支持string-copy导致的以n结尾的字母不显示问题 2.jpa-entity新增swagger@ApiModel@ApiModelProperty注解和SQL字段@Column注解(感谢@yjq907的建议) |

generator-web/src/main/java/com/softdev/system/generator/config/ServerConfig.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,14 @@
1515
public class ServerConfig implements ApplicationListener<WebServerInitializedEvent> {
1616

1717
private int serverPort;
18-
19-
public int getPort() {
20-
return this.serverPort;
21-
}
18+
private String serverPath;
2219

2320
@Override
2421
public void onApplicationEvent(WebServerInitializedEvent event) {
2522
this.serverPort = event.getWebServer().getPort();
26-
//log.info("Get WebServer port {}", serverPort);
27-
log.info("项目启动启动成功!访问地址: http://localhost:{}/generator", serverPort);
23+
//新增动态path by zhengkai
24+
this.serverPath = event.getApplicationContext().getApplicationName();
25+
log.info("项目启动启动成功!访问地址: http://localhost:{}{}", serverPort,serverPath);
2826
}
2927

3028
}

generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ public Map<String, String> getResultByParams(Map<String, Object> params) throws
3030
result.put("swagger-ui", freemarkerTool.processString("code-generator/ui/swagger-ui.ftl", params));
3131
result.put("element-ui", freemarkerTool.processString("code-generator/ui/element-ui.ftl", params));
3232
result.put("bootstrap-ui", freemarkerTool.processString("code-generator/ui/bootstrap-ui.ftl", params));
33+
result.put("layui-edit", freemarkerTool.processString("code-generator/ui/layui-edit.ftl", params));
34+
result.put("layui-list", freemarkerTool.processString("code-generator/ui/layui-list.ftl", params));
3335
//mybatis old
3436
result.put("controller", freemarkerTool.processString("code-generator/mybatis/controller.ftl", params));
3537
result.put("service", freemarkerTool.processString("code-generator/mybatis/service.ftl", params));
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version": "20200206"}
1+
{"version": "20200306"}
Lines changed: 54 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,28 @@
11
package ${packageName}.controller;
22

3+
import com.alibaba.fastjson.JSON;
34
import ${packageName}.entity.${classInfo.className};
45
import ${packageName}.mapper.${classInfo.className}Mapper;
6+
import ${packageName}.util.ReturnT;
7+
import lombok.extern.slf4j.Slf4j;
8+
import org.apache.commons.lang3.StringUtils;
59
import org.springframework.beans.factory.annotation.Autowired;
610
import org.springframework.web.bind.annotation.*;
711
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
812
import com.baomidou.mybatisplus.core.metadata.IPage;
913
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
14+
import org.springframework.web.servlet.ModelAndView;
15+
16+
import java.util.Date;
1017
import java.util.List;
1118
import java.util.Map;
1219

1320
/**
14-
* @description ${classInfo.classComment}
15-
* @author ${authorName}
16-
* @date ${.now?string('yyyy-MM-dd HH:mm:ss')}
17-
*/
21+
* @description ${classInfo.classComment}
22+
* @author ${authorName}
23+
* @date ${.now?string('yyyy-MM-dd HH:mm:ss')}
24+
*/
25+
@Slf4j
1826
@RestController
1927
@RequestMapping("/${classInfo.className?uncap_first}")
2028
public class ${classInfo.className}Controller {
@@ -26,26 +34,33 @@ public class ${classInfo.className}Controller {
2634
* 新增或编辑
2735
*/
2836
@PostMapping("/save")
29-
public Object save(${classInfo.className} ${classInfo.className?uncap_first}){
30-
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("id",id))
31-
if(${classInfo.className?uncap_first}!=null){
37+
public Object save(@RequestBody ${classInfo.className} ${classInfo.className?uncap_first}){
38+
log.info("${classInfo.className?uncap_first}:"+JSON.toJSONString(${classInfo.className?uncap_first}));
39+
${classInfo.className} old${classInfo.className} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",${classInfo.className?uncap_first}.get${classInfo.className}Id()));
40+
${classInfo.className?uncap_first}.setModifyDate(new Date());
41+
if(old${classInfo.className}!=null){
3242
${classInfo.className?uncap_first}Mapper.updateById(${classInfo.className?uncap_first});
3343
}else{
34-
${classInfo.className?uncap_first}Mapper.insert(${classInfo.className?uncap_first});
44+
if(${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_name",${classInfo.className?uncap_first}.get${classInfo.className}Name()))!=null){
45+
return new ReturnT<>(ReturnT.FAIL_CODE,"保存失败,名字重复");
46+
}
47+
${classInfo.className?uncap_first}.setCreateDate(new Date());
48+
${classInfo.className?uncap_first}Mapper.insert(${classInfo.className?uncap_first});
3549
}
36-
return ${returnUtil}.success(${classInfo.className?uncap_first});
50+
return new ReturnT<>(ReturnT.SUCCESS_CODE,"保存成功");
3751
}
3852

3953
/**
4054
* 删除
4155
*/
4256
@PostMapping("/delete")
4357
public Object delete(int id){
44-
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("id",id))
58+
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",id));
4559
if(${classInfo.className?uncap_first}!=null){
46-
return ${returnUtil}.success(${classInfo.className?uncap_first});
60+
${classInfo.className?uncap_first}Mapper.deleteById(id);
61+
return new ReturnT<>(ReturnT.SUCCESS_CODE,"删除成功");
4762
}else{
48-
return ${returnUtil}.error("没有找到该对象");
63+
return new ReturnT<>(ReturnT.FAIL_CODE,"没有找到该对象");
4964
}
5065
}
5166

@@ -54,29 +69,45 @@ public class ${classInfo.className}Controller {
5469
*/
5570
@PostMapping("/find")
5671
public Object find(int id){
57-
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("id",id))
72+
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",id));
5873
if(${classInfo.className?uncap_first}!=null){
59-
return ${returnUtil}.success(${classInfo.className?uncap_first});
74+
return new ReturnT<>(${classInfo.className?uncap_first});
6075
}else{
61-
return ${returnUtil}.error("没有找到该对象");
76+
return new ReturnT<>(ReturnT.FAIL_CODE,"没有找到该对象");
6277
}
6378
}
6479

6580
/**
6681
* 分页查询
6782
*/
6883
@PostMapping("/list")
69-
public Object list(${classInfo.className} ${classInfo.className?uncap_first},
70-
@RequestParam(required = false, defaultValue = "0") int pageNumber,
71-
@RequestParam(required = false, defaultValue = "10") int pageSize) {
84+
public Object list(String searchParams,
85+
@RequestParam(required = false, defaultValue = "0") int page,
86+
@RequestParam(required = false, defaultValue = "10") int limit) {
87+
log.info("page:"+page+"-limit:"+limit+"-json:"+ JSON.toJSONString(searchParams));
7288
//分页构造器
73-
Page<${classInfo.className}> page = new Page<${classInfo.className}>(pageNumber,pageSize);
89+
Page<${classInfo.className}> buildPage = new Page<${classInfo.className}>(page,limit);
7490
//条件构造器
75-
QueryWrapper<${classInfo.className}> queryWrapperw = new QueryWrapper<${classInfo.className}>(${classInfo.className?uncap_first});
91+
QueryWrapper<${classInfo.className}> queryWrapper = new QueryWrapper<${classInfo.className}>();
92+
if(StringUtils.isNotEmpty(searchParams)&&JSON.isValid(searchParams)) {
93+
${classInfo.className} ${classInfo.className?uncap_first} = JSON.parseObject(searchParams, ${classInfo.className}.class);
94+
queryWrapper.eq(StringUtils.isNoneEmpty(${classInfo.className?uncap_first}.get${classInfo.className}Name()), "${classInfo.className?uncap_first}_name", ${classInfo.className?uncap_first}.get${classInfo.className}Name());
95+
}
7696
//执行分页
77-
IPage<${classInfo.className}> pageList = certPersonMapper.selectPage(page, queryWrapperw);
97+
IPage<${classInfo.className}> pageList = ${classInfo.className?uncap_first}Mapper.selectPage(buildPage, queryWrapper);
7898
//返回结果
79-
return ${returnUtil}.success(pageList);
99+
return new ReturnT<>(pageList.getRecords(),Integer.parseInt(pageList.getTotal()+""));
100+
}
101+
@GetMapping("/list")
102+
public ModelAndView listPage(){
103+
return new ModelAndView("cms/${classInfo.className?uncap_first}-list");
104+
}
105+
@GetMapping("/edit")
106+
public ModelAndView editPage(int id){
107+
${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",id));
108+
return new ModelAndView("cms/${classInfo.className?uncap_first}-edit","${classInfo.className?uncap_first}",${classInfo.className?uncap_first});
80109
}
81-
82110
}
111+
112+
113+

generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package ${packageName}.mapper;
2+
23
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
3-
import org.springframework.stereotype.Repository;
4+
import org.apache.ibatis.annotations.Mapper;
5+
import ${packageName}.entity.${classInfo.className};
46

57
/**
68
* @description ${classInfo.classComment}
79
* @author ${authorName}
810
* @date ${.now?string('yyyy-MM-dd HH:mm:ss')}
911
*/
10-
@Repository
12+
@Mapper
1113
public interface ${classInfo.className}Mapper extends BaseMapper<${classInfo.className}> {
1214

1315

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<title>layuimini</title>
6+
<meta name="renderer" content="webkit">
7+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
8+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
9+
<link rel="stylesheet" href="request.contextPath/static/lib/layui-v2.5.5/css/layui.css" media="all">
10+
<link rel="stylesheet" href="request.contextPath/static/css/public.css" media="all">
11+
<style>
12+
body {
13+
background-color: #ffffff;
14+
}
15+
</style>
16+
</head>
17+
<body>
18+
<div class="layui-form layuimini-form">
19+
<input type="hidden" name="${classInfo.className?uncap_first}Id" value="" class="layui-input">
20+
21+
22+
<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
23+
<#list classInfo.fieldList as fieldItem >
24+
<div class="layui-form-item">
25+
<label class="layui-form-label required">${fieldItem.fieldComment}</label>
26+
<div class="layui-input-block">
27+
<input type="text" name="${fieldItem.fieldName}" lay-verify="required" lay-reqtext="${fieldItem.fieldComment}不能为空" placeholder="请输入${fieldItem.fieldComment}" value="" class="layui-input">
28+
<#--<tip>${fieldItem.fieldComment}</tip>-->
29+
</div>
30+
</div>
31+
</#list>
32+
</#if>
33+
34+
<div class="layui-form-item">
35+
<div class="layui-input-block">
36+
<button class="layui-btn" lay-submit lay-filter="saveBtn">确认保存</button>
37+
</div>
38+
</div>
39+
</div>
40+
</div>
41+
<script src="request.contextPath/static/lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
42+
<script>
43+
layui.use(['form'], function () {
44+
var form = layui.form,
45+
layer = layui.layer,
46+
$ = layui.$;
47+
48+
//监听提交
49+
form.on('submit(saveBtn)', function (data) {
50+
$.ajax({
51+
type: 'POST',
52+
url: "request.contextPath/${classInfo.className?uncap_first}/save",
53+
data:JSON.stringify(data.field),
54+
dataType: "json",
55+
contentType: "application/json",
56+
success: function (responseData) {
57+
if (responseData.code === 200) {
58+
layer.msg(responseData.msg, function () {
59+
// 关闭弹出层
60+
//layer.close(index);
61+
var iframeIndex = parent.layer.getFrameIndex(window.name);
62+
parent.layer.close(iframeIndex);
63+
parent.searchBtn.click();
64+
});
65+
} else {
66+
layer.msg(responseData.msg, function () {
67+
//window.location = '/index.html';
68+
});
69+
}
70+
}
71+
});
72+
return false;
73+
});
74+
75+
});
76+
</script>
77+
</body>
78+
</html>

0 commit comments

Comments
 (0)