From 45484d8949480cac94c1494b266e01adb2a830e3 Mon Sep 17 00:00:00 2001 From: "MOSHOW.K.ZHENG" Date: Fri, 6 Mar 2020 23:16:09 +0800 Subject: [PATCH 1/3] =?UTF-8?q?20200306=E6=8F=90=E4=BA=A4=E4=B8=80?= =?UTF-8?q?=E5=A5=97layuimini+mybatisplus=E7=9A=84=E6=A8=A1=E6=9D=BF.?= =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmybatisplus=E4=B8=80=E4=BA=9B=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + .../system/generator/config/ServerConfig.java | 10 +- .../service/GeneratorServiceImpl.java | 2 + .../src/main/resources/static/version.json | 2 +- .../mybatis-plus/pluscontroller.ftl | 77 ++++--- .../mybatis-plus/plusmapper.ftl | 6 +- .../code-generator/ui/layui-edit.ftl | 78 +++++++ .../code-generator/ui/layui-list.ftl | 195 ++++++++++++++++++ .../src/main/resources/templates/index.ftl | 8 +- 9 files changed, 344 insertions(+), 35 deletions(-) create mode 100644 generator-web/src/main/resources/templates/code-generator/ui/layui-edit.ftl create mode 100644 generator-web/src/main/resources/templates/code-generator/ui/layui-list.ftl diff --git a/README.md b/README.md index 18162f6e..97131d3b 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ |更新日期|更新内容| |-|-| +|20200306|1.提交一套layuimini+mybatisplus的模板. 2.修复mybatisplus一些相关问题. | |20200206|1.新增历史记录功能,自动保存最近生成的对象 2.新增swagger开关选项和修复@Column带name参数(感谢@liuyu-struggle的建议) 3.去除mybatis模板中的方括号[]和修改模板里的类注释样式(感谢@gaohanghang的PR)| |20191229|1.修复bejson安全防护策略拦截问题(感谢@liangbintao和@1808083642的反馈) 2.优化字段名含date字符串的处理(感谢@smilexzh的反馈) 3.控制台动态输出项目访问地址(感谢@gaohanghang的提交)| |20191128|1.修复支持string-copy导致的以n结尾的字母不显示问题 2.jpa-entity新增swagger@ApiModel@ApiModelProperty注解和SQL字段@Column注解(感谢@yjq907的建议) | diff --git a/generator-web/src/main/java/com/softdev/system/generator/config/ServerConfig.java b/generator-web/src/main/java/com/softdev/system/generator/config/ServerConfig.java index ada0a1bf..b54673c4 100644 --- a/generator-web/src/main/java/com/softdev/system/generator/config/ServerConfig.java +++ b/generator-web/src/main/java/com/softdev/system/generator/config/ServerConfig.java @@ -15,16 +15,14 @@ public class ServerConfig implements ApplicationListener { private int serverPort; - - public int getPort() { - return this.serverPort; - } + private String serverPath; @Override public void onApplicationEvent(WebServerInitializedEvent event) { this.serverPort = event.getWebServer().getPort(); - //log.info("Get WebServer port {}", serverPort); - log.info("项目启动启动成功!访问地址: http://localhost:{}/generator", serverPort); + //新增动态path by zhengkai + this.serverPath = event.getApplicationContext().getApplicationName(); + log.info("项目启动启动成功!访问地址: http://localhost:{}{}", serverPort,serverPath); } } diff --git a/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java b/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java index 6e601958..b6e5b60d 100644 --- a/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java +++ b/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java @@ -30,6 +30,8 @@ public Map getResultByParams(Map params) throws result.put("swagger-ui", freemarkerTool.processString("code-generator/ui/swagger-ui.ftl", params)); result.put("element-ui", freemarkerTool.processString("code-generator/ui/element-ui.ftl", params)); result.put("bootstrap-ui", freemarkerTool.processString("code-generator/ui/bootstrap-ui.ftl", params)); + result.put("layui-edit", freemarkerTool.processString("code-generator/ui/layui-edit.ftl", params)); + result.put("layui-list", freemarkerTool.processString("code-generator/ui/layui-list.ftl", params)); //mybatis old result.put("controller", freemarkerTool.processString("code-generator/mybatis/controller.ftl", params)); result.put("service", freemarkerTool.processString("code-generator/mybatis/service.ftl", params)); diff --git a/generator-web/src/main/resources/static/version.json b/generator-web/src/main/resources/static/version.json index 4d7211c0..4316322f 100644 --- a/generator-web/src/main/resources/static/version.json +++ b/generator-web/src/main/resources/static/version.json @@ -1 +1 @@ -{"version": "20200206"} \ No newline at end of file +{"version": "20200306"} \ No newline at end of file diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/pluscontroller.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/pluscontroller.ftl index 3686847c..ce1d9508 100644 --- a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/pluscontroller.ftl +++ b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/pluscontroller.ftl @@ -1,20 +1,28 @@ package ${packageName}.controller; +import com.alibaba.fastjson.JSON; import ${packageName}.entity.${classInfo.className}; import ${packageName}.mapper.${classInfo.className}Mapper; +import ${packageName}.util.ReturnT; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.web.servlet.ModelAndView; + +import java.util.Date; import java.util.List; import java.util.Map; /** - * @description ${classInfo.classComment} - * @author ${authorName} - * @date ${.now?string('yyyy-MM-dd HH:mm:ss')} - */ +* @description ${classInfo.classComment} +* @author ${authorName} +* @date ${.now?string('yyyy-MM-dd HH:mm:ss')} +*/ +@Slf4j @RestController @RequestMapping("/${classInfo.className?uncap_first}") public class ${classInfo.className}Controller { @@ -26,14 +34,20 @@ public class ${classInfo.className}Controller { * 新增或编辑 */ @PostMapping("/save") - public Object save(${classInfo.className} ${classInfo.className?uncap_first}){ - ${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("id",id)) - if(${classInfo.className?uncap_first}!=null){ + public Object save(@RequestBody ${classInfo.className} ${classInfo.className?uncap_first}){ + log.info("${classInfo.className?uncap_first}:"+JSON.toJSONString(${classInfo.className?uncap_first})); + ${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())); + ${classInfo.className?uncap_first}.setModifyDate(new Date()); + if(old${classInfo.className}!=null){ ${classInfo.className?uncap_first}Mapper.updateById(${classInfo.className?uncap_first}); }else{ - ${classInfo.className?uncap_first}Mapper.insert(${classInfo.className?uncap_first}); + 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){ + return new ReturnT<>(ReturnT.FAIL_CODE,"保存失败,名字重复"); + } + ${classInfo.className?uncap_first}.setCreateDate(new Date()); + ${classInfo.className?uncap_first}Mapper.insert(${classInfo.className?uncap_first}); } - return ${returnUtil}.success(${classInfo.className?uncap_first}); + return new ReturnT<>(ReturnT.SUCCESS_CODE,"保存成功"); } /** @@ -41,11 +55,12 @@ public class ${classInfo.className}Controller { */ @PostMapping("/delete") public Object delete(int id){ - ${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("id",id)) + ${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",id)); if(${classInfo.className?uncap_first}!=null){ - return ${returnUtil}.success(${classInfo.className?uncap_first}); + ${classInfo.className?uncap_first}Mapper.deleteById(id); + return new ReturnT<>(ReturnT.SUCCESS_CODE,"删除成功"); }else{ - return ${returnUtil}.error("没有找到该对象"); + return new ReturnT<>(ReturnT.FAIL_CODE,"没有找到该对象"); } } @@ -54,11 +69,11 @@ public class ${classInfo.className}Controller { */ @PostMapping("/find") public Object find(int id){ - ${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("id",id)) + ${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",id)); if(${classInfo.className?uncap_first}!=null){ - return ${returnUtil}.success(${classInfo.className?uncap_first}); + return new ReturnT<>(${classInfo.className?uncap_first}); }else{ - return ${returnUtil}.error("没有找到该对象"); + return new ReturnT<>(ReturnT.FAIL_CODE,"没有找到该对象"); } } @@ -66,17 +81,33 @@ public class ${classInfo.className}Controller { * 分页查询 */ @PostMapping("/list") - public Object list(${classInfo.className} ${classInfo.className?uncap_first}, - @RequestParam(required = false, defaultValue = "0") int pageNumber, - @RequestParam(required = false, defaultValue = "10") int pageSize) { + public Object list(String searchParams, + @RequestParam(required = false, defaultValue = "0") int page, + @RequestParam(required = false, defaultValue = "10") int limit) { + log.info("page:"+page+"-limit:"+limit+"-json:"+ JSON.toJSONString(searchParams)); //分页构造器 - Page<${classInfo.className}> page = new Page<${classInfo.className}>(pageNumber,pageSize); + Page<${classInfo.className}> buildPage = new Page<${classInfo.className}>(page,limit); //条件构造器 - QueryWrapper<${classInfo.className}> queryWrapperw = new QueryWrapper<${classInfo.className}>(${classInfo.className?uncap_first}); + QueryWrapper<${classInfo.className}> queryWrapper = new QueryWrapper<${classInfo.className}>(); + if(StringUtils.isNotEmpty(searchParams)&&JSON.isValid(searchParams)) { + ${classInfo.className} ${classInfo.className?uncap_first} = JSON.parseObject(searchParams, ${classInfo.className}.class); + 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()); + } //执行分页 - IPage<${classInfo.className}> pageList = certPersonMapper.selectPage(page, queryWrapperw); + IPage<${classInfo.className}> pageList = ${classInfo.className?uncap_first}Mapper.selectPage(buildPage, queryWrapper); //返回结果 - return ${returnUtil}.success(pageList); + return new ReturnT<>(pageList.getRecords(),Integer.parseInt(pageList.getTotal()+"")); + } + @GetMapping("/list") + public ModelAndView listPage(){ + return new ModelAndView("cms/${classInfo.className?uncap_first}-list"); + } + @GetMapping("/edit") + public ModelAndView editPage(int id){ + ${classInfo.className} ${classInfo.className?uncap_first} = ${classInfo.className?uncap_first}Mapper.selectOne(new QueryWrapper<${classInfo.className}>().eq("${classInfo.className?uncap_first}_id",id)); + return new ModelAndView("cms/${classInfo.className?uncap_first}-edit","${classInfo.className?uncap_first}",${classInfo.className?uncap_first}); } - } + + + diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl index 231dbd5b..c34443d8 100644 --- a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl +++ b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl @@ -1,13 +1,15 @@ package ${packageName}.mapper; + import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.springframework.stereotype.Repository; +import org.apache.ibatis.annotations.Mapper; +import ${packageName}.entity.${classInfo.className}; /** * @description ${classInfo.classComment} * @author ${authorName} * @date ${.now?string('yyyy-MM-dd HH:mm:ss')} */ -@Repository +@Mapper public interface ${classInfo.className}Mapper extends BaseMapper<${classInfo.className}> { diff --git a/generator-web/src/main/resources/templates/code-generator/ui/layui-edit.ftl b/generator-web/src/main/resources/templates/code-generator/ui/layui-edit.ftl new file mode 100644 index 00000000..cac62d75 --- /dev/null +++ b/generator-web/src/main/resources/templates/code-generator/ui/layui-edit.ftl @@ -0,0 +1,78 @@ + + + + + layuimini + + + + + + + + +
+ + + +<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> + <#list classInfo.fieldList as fieldItem > +
+ +
+ + <#--${fieldItem.fieldComment}--> +
+
+ + + +
+
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/generator-web/src/main/resources/templates/code-generator/ui/layui-list.ftl b/generator-web/src/main/resources/templates/code-generator/ui/layui-list.ftl new file mode 100644 index 00000000..f5b7b842 --- /dev/null +++ b/generator-web/src/main/resources/templates/code-generator/ui/layui-list.ftl @@ -0,0 +1,195 @@ + + + + + layuimini + + + + + + + +
+
+ +
+ 搜索信息 +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+ + + +
+ + + + +
+
+ + + + + + \ No newline at end of file diff --git a/generator-web/src/main/resources/templates/index.ftl b/generator-web/src/main/resources/templates/index.ftl index eb151fe2..63dd94f7 100644 --- a/generator-web/src/main/resources/templates/index.ftl +++ b/generator-web/src/main/resources/templates/index.ftl @@ -88,7 +88,7 @@ success: function (data) { if (data.code === 200) { codeData = data.data; - genCodeArea.setValue(codeData.entity); + genCodeArea.setValue(codeData.beetlentity); genCodeArea.setSize('auto', 'auto'); $.toast("√ 代码生成成功"); //添加历史记录 @@ -231,7 +231,7 @@
返回封装
- +
包名路径
@@ -329,7 +329,7 @@ CREATE TABLE 'userinfo' ( -