Files
hcframe/EasyCodeConfig.json

224 lines
70 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"author" : "lhc",
"version" : "1.2.4",
"userSecure" : "",
"currTypeMapperGroupName" : "Default",
"currTemplateGroupName" : "hcframe",
"currColumnConfigGroupName" : "Default",
"currGlobalConfigGroupName" : "Default",
"typeMapper" : {
"Default" : {
"name" : "Default",
"elementList" : [ {
"matchType" : "REGEX",
"columnType" : "varchar(\\(\\d+\\))?",
"javaType" : "java.lang.String"
}, {
"matchType" : "REGEX",
"columnType" : "char(\\(\\d+\\))?",
"javaType" : "java.lang.String"
}, {
"matchType" : "REGEX",
"columnType" : "(tiny|medium|long)*text",
"javaType" : "java.lang.String"
}, {
"matchType" : "REGEX",
"columnType" : "decimal(\\(\\d+,\\d+\\))?",
"javaType" : "java.lang.Double"
}, {
"matchType" : "ORDINARY",
"columnType" : "integer",
"javaType" : "java.lang.Integer"
}, {
"matchType" : "REGEX",
"columnType" : "(tiny|small|medium)*int(\\(\\d+\\))?",
"javaType" : "java.lang.Integer"
}, {
"matchType" : "ORDINARY",
"columnType" : "int4",
"javaType" : "java.lang.Integer"
}, {
"matchType" : "ORDINARY",
"columnType" : "int8",
"javaType" : "java.lang.Long"
}, {
"matchType" : "REGEX",
"columnType" : "bigint(\\(\\d+\\))?",
"javaType" : "java.lang.Long"
}, {
"matchType" : "ORDINARY",
"columnType" : "date",
"javaType" : "java.util.Date"
}, {
"matchType" : "ORDINARY",
"columnType" : "datetime",
"javaType" : "java.util.Date"
}, {
"matchType" : "ORDINARY",
"columnType" : "timestamp",
"javaType" : "java.util.Date"
}, {
"matchType" : "ORDINARY",
"columnType" : "time",
"javaType" : "java.time.LocalTime"
}, {
"matchType" : "ORDINARY",
"columnType" : "boolean",
"javaType" : "java.lang.Boolean"
}, {
"matchType" : "ORDINARY",
"columnType" : "bigint(20) unsigned",
"javaType" : "java.lang.Long"
}, {
"matchType" : "REGEX",
"columnType" : "double(\\(\\d+,\\d+\\))?",
"javaType" : "java.lang.Double"
}, {
"matchType" : "ORDINARY",
"columnType" : "json",
"javaType" : "java.lang.String"
} ]
}
},
"template" : {
"MybatisPlus-Mixed" : {
"name" : "MybatisPlus-Mixed",
"elementList" : [ {
"name" : "controller.java.vm",
"code" : "##导入宏定义\n$!{define.vm}\n\n##设置表后缀(宏定义)\n#setTableSuffix(\"Controller\")\n\n##保存文件(宏定义)\n#save(\"/controller\", \"Controller.java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"controller\")\n\n##定义服务名\n#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), \"Service\"))\n\n##定义实体对象名\n#set($entityName = $!tool.firstLowerCase($!tableInfo.name))\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomidou.mybatisplus.extension.api.ApiController;\nimport com.baomidou.mybatisplus.extension.api.R;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport $!{tableInfo.savePackageName}.entity.$!tableInfo.name;\nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;\nimport org.springframework.web.bind.annotation.*;\n\nimport javax.annotation.Resource;\nimport java.io.Serializable;\nimport java.util.List;\n\n##表注释(宏定义)\n#tableComment(\"表控制层\")\n@RestController\n@RequestMapping(\"$!tool.firstLowerCase($!tableInfo.name)\")\npublic class $!{tableName} extends ApiController {\n /**\n * 服务对象\n */\n @Resource\n private $!{tableInfo.name}Service $!{serviceName};\n\n /**\n * 分页查询所有数据\n *\n * @param page 分页对象\n * @param $!entityName 查询实体\n * @return 所有数据\n */\n @GetMapping\n public R selectAll(Page<$!tableInfo.name> page, $!tableInfo.name $!entityName) {\n return success(this.$!{serviceName}.page(page, new QueryWrapper<>($!entityName)));\n }\n\n /**\n * 通过主键查询单条数据\n *\n * @param id 主键\n * @return 单条数据\n */\n @GetMapping(\"{id}\")\n public R selectOne(@PathVariable Serializable id) {\n return success(this.$!{serviceName}.getById(id));\n }\n\n /**\n * 新增数据\n *\n * @param $!entityName 实体对象\n * @return 新增结果\n */\n @PostMapping\n public R insert(@RequestBody $!tableInfo.name $!entityName) {\n return success(this.$!{serviceName}.save($!entityName));\n }\n\n /**\n * 修改数据\n *\n * @param $!entityName 实体对象\n * @return 修改结果\n */\n @PutMapping\n public R update(@RequestBody $!tableInfo.name $!entityName) {\n return success(this.$!{serviceName}.updateById($!entityName));\n }\n\n /**\n * 删除数据\n *\n * @param idList 主键结合\n * @return 删除结果\n */\n @DeleteMapping\n public R delete(@RequestParam(\"idList\") List<Long> idList) {\n return success(this.$!{serviceName}.removeByIds(idList));\n }\n}\n"
}, {
"name" : "dao.java.vm",
"code" : "##导入宏定义\n$!{define.vm}\n\n##设置表后缀(宏定义)\n#setTableSuffix(\"Dao\")\n\n##保存文件(宏定义)\n#save(\"/dao\", \"Dao.java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"dao\")\n\nimport java.util.List;\n\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport org.apache.ibatis.annotations.Param;\nimport $!{tableInfo.savePackageName}.entity.$!tableInfo.name;\n\n##表注释(宏定义)\n#tableComment(\"表数据库访问层\")\npublic interface $!{tableName} extends BaseMapper<$!tableInfo.name> {\n\n/**\n* 批量新增数据MyBatis原生foreach方法\n*\n* @param entities List<$!{tableInfo.name}> 实例对象列表\n* @return 影响行数\n*/\nint insertBatch(@Param(\"entities\") List<$!{tableInfo.name}> entities);\n\n/**\n* 批量新增或按主键更新数据MyBatis原生foreach方法\n*\n* @param entities List<$!{tableInfo.name}> 实例对象列表\n* @return 影响行数\n* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常请自行校验入参\n*/\nint insertOrUpdateBatch(@Param(\"entities\") List<$!{tableInfo.name}> entities);\n\n}\n"
}, {
"name" : "entity.java.vm",
"code" : "##导入宏定义\n$!{define.vm}\n\n##保存文件(宏定义)\n#save(\"/entity\", \".java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"entity\")\n\n##自动导入包(全局变量)\n$!autoImport\nimport com.baomidou.mybatisplus.extension.activerecord.Model;\nimport java.io.Serializable;\n\n##表注释(宏定义)\n#tableComment(\"表实体类\")\n@SuppressWarnings(\"serial\")\npublic class $!{tableInfo.name} extends Model<$!{tableInfo.name}> {\n#foreach($column in $tableInfo.fullColumn)\n #if(${column.comment})//${column.comment}#end\n\n private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n#end\n\n#foreach($column in $tableInfo.fullColumn)\n#getSetMethod($column)\n#end\n\n#foreach($column in $tableInfo.pkColumn)\n /**\n * 获取主键值\n *\n * @return 主键值\n */\n @Override\n protected Serializable pkVal() {\n return this.$!column.name;\n }\n #break\n#end\n}\n"
}, {
"name" : "mapper.xml.vm",
"code" : "##引入mybatis支持\n$!{mybatisSupport.vm}\n\n##设置保存名称与保存位置\n$!callback.setFileName($tool.append($!{tableInfo.name}, \"Dao.xml\"))\n$!callback.setSavePath($tool.append($modulePath, \"/src/main/resources/mapper\"))\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"$!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao\">\n\n <resultMap type=\"$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}\" id=\"$!{tableInfo.name}Map\">\n#foreach($column in $tableInfo.fullColumn)\n <result property=\"$!column.name\" column=\"$!column.obj.name\" jdbcType=\"$!column.ext.jdbcType\"/>\n#end\n </resultMap>\n\n <!-- 批量插入 -->\n <insert id=\"insertBatch\" keyProperty=\"$!pk.name\" useGeneratedKeys=\"true\">\n insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)\n values\n <foreach collection=\"entities\" item=\"entity\" separator=\",\">\n (#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)\n </foreach>\n </insert>\n <!-- 批量插入或按主键更新 -->\n <insert id=\"insertOrUpdateBatch\" keyProperty=\"$!pk.name\" useGeneratedKeys=\"true\">\n insert into $!{tableInfo.obj.parent.name}.$!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)\n values\n <foreach collection=\"entities\" item=\"entity\" separator=\",\">\n (#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)\n </foreach>\n on duplicate key update\n #foreach($column in $tableInfo.otherColumn)$!column.obj.name = values($!column.obj.name) #if($velocityHasNext), #end#end\n </insert>\n\n</mapper>\n"
}, {
"name" : "service.java.vm",
"code" : "##导入宏定义\n$!{define.vm}\n\n##设置表后缀(宏定义)\n#setTableSuffix(\"Service\")\n\n##保存文件(宏定义)\n#save(\"/service\", \"Service.java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"service\")\n\nimport com.baomidou.mybatisplus.extension.service.IService;\nimport $!{tableInfo.savePackageName}.entity.$!tableInfo.name;\n\n##表注释(宏定义)\n#tableComment(\"表服务接口\")\npublic interface $!{tableName} extends IService<$!tableInfo.name> {\n\n}\n"
}, {
"name" : "serviceImpl.java.vm",
"code" : "##导入宏定义\n$!{define.vm}\n\n##设置表后缀(宏定义)\n#setTableSuffix(\"ServiceImpl\")\n\n##保存文件(宏定义)\n#save(\"/service/impl\", \"ServiceImpl.java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"service.impl\")\n\nimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;\nimport $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao;\nimport $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};\nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;\nimport org.springframework.stereotype.Service;\n\n##表注释(宏定义)\n#tableComment(\"表服务实现类\")\n@Service(\"$!tool.firstLowerCase($tableInfo.name)Service\")\npublic class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Dao, $!{tableInfo.name}> implements $!{tableInfo.name}Service {\n\n}\n"
} ]
},
"MybatisPlus" : {
"name" : "MybatisPlus",
"elementList" : [ {
"name" : "controller.java.vm",
"code" : "##导入宏定义\n$!{define.vm}\n\n##设置表后缀(宏定义)\n#setTableSuffix(\"Controller\")\n\n##保存文件(宏定义)\n#save(\"/controller\", \"Controller.java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"controller\")\n\n##定义服务名\n#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), \"Service\"))\n\n##定义实体对象名\n#set($entityName = $!tool.firstLowerCase($!tableInfo.name))\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomidou.mybatisplus.extension.api.ApiController;\nimport com.baomidou.mybatisplus.extension.api.R;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport $!{tableInfo.savePackageName}.entity.$!tableInfo.name;\nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;\nimport org.springframework.web.bind.annotation.*;\n\nimport javax.annotation.Resource;\nimport java.io.Serializable;\nimport java.util.List;\n\n##表注释(宏定义)\n#tableComment(\"表控制层\")\n@RestController\n@RequestMapping(\"$!tool.firstLowerCase($!tableInfo.name)\")\npublic class $!{tableName} extends ApiController {\n /**\n * 服务对象\n */\n @Resource\n private $!{tableInfo.name}Service $!{serviceName};\n\n /**\n * 分页查询所有数据\n *\n * @param page 分页对象\n * @param $!entityName 查询实体\n * @return 所有数据\n */\n @GetMapping\n public R selectAll(Page<$!tableInfo.name> page, $!tableInfo.name $!entityName) {\n return success(this.$!{serviceName}.page(page, new QueryWrapper<>($!entityName)));\n }\n\n /**\n * 通过主键查询单条数据\n *\n * @param id 主键\n * @return 单条数据\n */\n @GetMapping(\"{id}\")\n public R selectOne(@PathVariable Serializable id) {\n return success(this.$!{serviceName}.getById(id));\n }\n\n /**\n * 新增数据\n *\n * @param $!entityName 实体对象\n * @return 新增结果\n */\n @PostMapping\n public R insert(@RequestBody $!tableInfo.name $!entityName) {\n return success(this.$!{serviceName}.save($!entityName));\n }\n\n /**\n * 修改数据\n *\n * @param $!entityName 实体对象\n * @return 修改结果\n */\n @PutMapping\n public R update(@RequestBody $!tableInfo.name $!entityName) {\n return success(this.$!{serviceName}.updateById($!entityName));\n }\n\n /**\n * 删除数据\n *\n * @param idList 主键结合\n * @return 删除结果\n */\n @DeleteMapping\n public R delete(@RequestParam(\"idList\") List<Long> idList) {\n return success(this.$!{serviceName}.removeByIds(idList));\n }\n}\n"
}, {
"name" : "dao.java.vm",
"code" : "##导入宏定义\n$!{define.vm}\n\n##设置表后缀(宏定义)\n#setTableSuffix(\"Dao\")\n\n##保存文件(宏定义)\n#save(\"/dao\", \"Dao.java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"dao\")\n\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport $!{tableInfo.savePackageName}.entity.$!tableInfo.name;\n\n##表注释(宏定义)\n#tableComment(\"表数据库访问层\")\npublic interface $!{tableName} extends BaseMapper<$!tableInfo.name> {\n\n}\n"
}, {
"name" : "entity.java.vm",
"code" : "##导入宏定义\n$!{define.vm}\n\n##保存文件(宏定义)\n#save(\"/entity\", \".java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"entity\")\n\n##自动导入包(全局变量)\n$!{autoImport.vm}\nimport com.baomidou.mybatisplus.extension.activerecord.Model;\nimport java.io.Serializable;\n\n##表注释(宏定义)\n#tableComment(\"表实体类\")\n@SuppressWarnings(\"serial\")\npublic class $!{tableInfo.name} extends Model<$!{tableInfo.name}> {\n#foreach($column in $tableInfo.fullColumn)\n #if(${column.comment})//${column.comment}#end\n\n private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n#end\n\n#foreach($column in $tableInfo.fullColumn)\n#getSetMethod($column)\n#end\n\n#foreach($column in $tableInfo.pkColumn)\n /**\n * 获取主键值\n *\n * @return 主键值\n */\n @Override\n protected Serializable pkVal() {\n return this.$!column.name;\n }\n #break\n#end\n}\n"
}, {
"name" : "service.java.vm",
"code" : "##导入宏定义\n$!{define.vm}\n\n##设置表后缀(宏定义)\n#setTableSuffix(\"Service\")\n\n##保存文件(宏定义)\n#save(\"/service\", \"Service.java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"service\")\n\nimport com.baomidou.mybatisplus.extension.service.IService;\nimport $!{tableInfo.savePackageName}.entity.$!tableInfo.name;\n\n##表注释(宏定义)\n#tableComment(\"表服务接口\")\npublic interface $!{tableName} extends IService<$!tableInfo.name> {\n\n}\n"
}, {
"name" : "serviceImpl.java.vm",
"code" : "##导入宏定义\n$!{define.vm}\n\n##设置表后缀(宏定义)\n#setTableSuffix(\"ServiceImpl\")\n\n##保存文件(宏定义)\n#save(\"/service/impl\", \"ServiceImpl.java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"service.impl\")\n\nimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;\nimport $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao;\nimport $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};\nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;\nimport org.springframework.stereotype.Service;\n\n##表注释(宏定义)\n#tableComment(\"表服务实现类\")\n@Service(\"$!tool.firstLowerCase($tableInfo.name)Service\")\npublic class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Dao, $!{tableInfo.name}> implements $!{tableInfo.name}Service {\n\n}\n"
} ]
},
"hcframe" : {
"name" : "hcframe",
"elementList" : [ {
"name" : "controller.java.vm",
"code" : "##定义初始变量\n#set($tableName = $tool.append($tableInfo.name, \"Controller\"))\n##设置回调\n$!callback.setFileName($tool.append($tableName, \".java\"))\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/controller\"))\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller;\n\nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;\nimport com.github.pagehelper.PageInfo;\nimport com.taixingyiji.base.common.ResultVO;\nimport com.taixingyiji.base.common.WebPageInfo;\nimport com.taixingyiji.base.module.log.annotation.LogAnno;\nimport io.swagger.annotations.*;\nimport org.apache.shiro.authz.annotation.Logical;\nimport org.apache.shiro.authz.annotation.RequiresPermissions;\nimport org.springframework.web.bind.annotation.*;\nimport springfox.documentation.annotations.ApiIgnore;\n\nimport java.util.List;\nimport java.util.Map;\n\n\n /**\n * @author $!author\n * @version 1.0\n * @className $!{tableName}\n * @date $!time.currTime()\n * @description $!{tableInfo.comment}($!{tableInfo.name})表控制层\n */\n@Api(tags = \"$!{tableInfo.comment}$!{tableName}操作\")\n@RestController\n@RequestMapping(\"$!tool.firstLowerCase($tableInfo.name)\")\npublic class $!{tableName} {\n\n final $!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;\n\n public $!{tableName}($!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service) {\n this.$!tool.firstLowerCase($tableInfo.name)Service = $!tool.firstLowerCase($tableInfo.name)Service;\n }\n \n @PostMapping()\n @LogAnno(operateType = \"新增$!{tableInfo.comment}($tableInfo.name)\", moduleName = \"$!{tableInfo.comment}($tableInfo.name)\")\n @ApiOperation(value = \"新增$!{tableInfo.comment}($tableInfo.name)\", notes = \"传key-value对象模式即可\")\n @RequiresPermissions(value = {\"$tableInfo.name:add\"})\n @ApiImplicitParams({\n @ApiImplicitParam(name = \"X-Access-Token\",\n value = \"账户令牌\",\n required = true,\n dataType = \"string\",\n paramType = \"header\"),\n#foreach($column in $tableInfo.otherColumn)\n @ApiImplicitParam(name = \"$tool.hump2Underline($!{column.name}).toUpperCase()\",value = \"$!{column.comment}\", dataType = \"$!{column.shortType}\",paramType = \"query\"),\n#end\n })\n public ResultVO<Map<String, Object>> add(@ApiIgnore @RequestParam Map<String, Object> data) {\n return $!{tool.firstLowerCase($tableInfo.name)}Service.add(data);\n }\n\n @PutMapping(\"/{version}\")\n @LogAnno(operateType = \"更新$!{tableInfo.comment}($tableInfo.name)\", moduleName = \"更新$!{tableInfo.comment}($tableInfo.name)\")\n @ApiOperation(value = \"更新$!{tableInfo.comment}($tableInfo.name)\")\n @RequiresPermissions(value = {\"$tableInfo.name:edit\"})\n @ApiImplicitParams({\n @ApiImplicitParam(name = \"X-Access-Token\",\n value = \"账户令牌\",\n required = true,\n dataType = \"string\",\n paramType = \"header\"),\n#foreach($column in $tableInfo.pkColumn)\n @ApiImplicitParam(name = \"$tool.hump2Underline($!{column.name}).toUpperCase()\",required = true,value = \"$!{column.comment}\", dataType = \"$!{column.shortType}\",paramType = \"query\"),\n#end\n#foreach($column in $tableInfo.otherColumn)\n @ApiImplicitParam(name = \"$tool.hump2Underline($!{column.name}).toUpperCase()\",value = \"$!{column.comment}\", dataType = \"$!{column.shortType}\",paramType = \"query\"),\n#end\n @ApiImplicitParam(name = \"version\",value = \"乐观锁\", dataType = \"Integer\",required = true,paramType = \"path\"),\n }) \n public ResultVO<Map<String, Object>> update(@ApiIgnore @RequestParam Map<String, Object> data, @PathVariable Integer version) {\n data.remove(\"id\");\n return $!{tool.firstLowerCase($tableInfo.name)}Service.update(data, version);\n }\n\n @PutMapping(\"/many/{ids}\")\n @LogAnno(operateType = \"批量更新$!{tableInfo.comment}($tableInfo.name)\", moduleName = \"批量更新$!{tableInfo.comment}($tableInfo.name)\")\n @ApiOperation(value = \"批量更新$!{tableInfo.comment}($tableInfo.name)\")\n @ApiImplicitParams({\n @ApiImplicitParam(name = \"X-Access-Token\",\n value = \"账户令牌\",\n required = true,\n dataType = \"string\",\n paramType = \"header\"), \n#foreach($column in $tableInfo.otherColumn)\n @ApiImplicitParam(name = \"$tool.hump2Underline($!{column.name}).toUpperCase()\",value = \"$!{column.comment}\", dataType = \"$!{column.shortType}\",paramType = \"query\"),\n#end\n @ApiImplicitParam(name = \"ids\",value = \"主键以逗号隔开1,2,3\",required = true, dataType = \"String\",paramType = \"path\"),\n }) \n @RequiresPermissions(value = {\"$tableInfo.name:edit:batch\"})\n public ResultVO<Integer> updateMany(@ApiIgnore @RequestParam Map<String, Object> data, @PathVariable String ids) {\n return $!{tool.firstLowerCase($tableInfo.name)}Service.updateMany(data, ids);\n }\n\n @DeleteMapping(\"/{ids}\")\n @ApiImplicitParams({\n @ApiImplicitParam(name = \"X-Access-Token\",\n value = \"账户令牌\",\n required = true,\n dataType = \"string\",\n paramType = \"header\"),\n @ApiImplicitParam(name = \"ids\",value = \"主键以逗号隔开1,2,3\",required = true, dataType = \"String\",paramType = \"path\")\n })\n @LogAnno(operateType = \"删除$!{tableInfo.comment}($tableInfo.name)\", moduleName = \"删除$!{tableInfo.comment}($tableInfo.name)\")\n @ApiOperation(value = \"删除$!{tableInfo.comment}($tableInfo.name)\")\n @RequiresPermissions(value = {\"$tableInfo.name:delete\"})\n public ResultVO<Integer> delete(@PathVariable String ids) {\n return $!{tool.firstLowerCase($tableInfo.name)}Service.delete(ids);\n }\n \n @DeleteMapping(\"one/{id}\")\n @ApiImplicitParams({\n @ApiImplicitParam(name = \"X-Access-Token\",\n value = \"账户令牌\",\n required = true,\n dataType = \"string\",\n paramType = \"header\"),\n @ApiImplicitParam(name = \"id\",value = \"主键\",required = true, dataType = \"String\",paramType = \"path\")\n }) \n @LogAnno(operateType = \"删除单条$!{tableInfo.comment}($tableInfo.name)\", moduleName = \"删除单条$!{tableInfo.comment}($tableInfo.name)\")\n @ApiOperation(value = \"删除单条$!{tableInfo.comment}($tableInfo.name)\")\n @RequiresPermissions(value = {\"$tableInfo.name:delete:one\"})\n public ResultVO<Map<String, Object>> deleteOne(@PathVariable String id) {\n return $!{tool.firstLowerCase($tableInfo.name)}Service.deleteOne(id);\n }\n\n @GetMapping()\n @ApiImplicitParams({\n @ApiImplicitParam(name = \"X-Access-Token\",\n value = \"账户令牌\",\n required = true,\n dataType = \"string\",\n paramType = \"header\"),\n @ApiImplicitParam(name = \"data\",value = \"查询条件参照前端api\")\n })\n @ApiOperation(value = \"获取$!{tableInfo.comment}($tableInfo.name)\")\n @RequiresPermissions(value = {\"$tableInfo.name\", \"$tableInfo.name:list\"}, logical = Logical.OR)\n public ResultVO<PageInfo<Map<String, Object>>> getList(String data, WebPageInfo webPageInfo) {\n return $!{tool.firstLowerCase($tableInfo.name)}Service.getList(data, webPageInfo);\n }\n\n @GetMapping(\"one/{id}\")\n @ApiImplicitParams({\n @ApiImplicitParam(name = \"X-Access-Token\",\n value = \"账户令牌\",\n required = true,\n dataType = \"string\",\n paramType = \"header\"),\n @ApiImplicitParam(name = \"id\",value = \"主键\",required = true, dataType = \"String\",paramType = \"path\")\n })\n @ApiOperation(value = \"获取单条$!{tableInfo.comment}($tableInfo.name)\")\n @RequiresPermissions(value = {\"$tableInfo.name:one\"})\n public ResultVO<Map<String, Object>> getOne(@PathVariable String id) {\n return $!{tool.firstLowerCase($tableInfo.name)}Service.getOne(id);\n }\n\n @GetMapping(\"many/{ids}\")\n @ApiImplicitParams({\n @ApiImplicitParam(name = \"X-Access-Token\",\n value = \"账户令牌\",\n required = true,\n dataType = \"string\",\n paramType = \"header\"),\n @ApiImplicitParam(name = \"ids\",value = \"主键以逗号隔开1,2,3\",required = true, dataType = \"String\",paramType = \"path\")\n })\n @ApiOperation(value = \"获取多条$!{tableInfo.comment}($tableInfo.name)\")\n @RequiresPermissions(value = {\"$tableInfo.name\", \"$tableInfo.name:many\"}, logical = Logical.OR)\n public ResultVO<List<Map<String, Object>>> getMany(@PathVariable String ids) {\n return $!{tool.firstLowerCase($tableInfo.name)}Service.getMany(ids);\n }\n\n @GetMapping(\"reference\")\n @ApiImplicitParam(name = \"X-Access-Token\",\n value = \"账户令牌\",\n required = true,\n dataType = \"string\",\n paramType = \"header\")\n @ApiOperation(value = \"获取$!{tableInfo.comment}($tableInfo.name)关联列表\")\n @RequiresPermissions(value = {\"$tableInfo.name\", \"$tableInfo.name:reference\"}, logical = Logical.OR)\n public ResultVO<PageInfo<Map<String, Object>>> getReference(String data, WebPageInfo webPageInfo, String target, String id) {\n return $!{tool.firstLowerCase($tableInfo.name)}Service.getReference(data, webPageInfo, target, id);\n }\n}\n"
}, {
"name" : "serviceImpl.java.vm",
"code" : "##定义初始变量\n#set($tableName = $tool.append($tableInfo.name, \"ServiceImpl\"))\n##设置回调\n$!callback.setFileName($tool.append($tableName, \".java\"))\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/service/impl\"))\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl;\n\nimport com.github.pagehelper.PageInfo;\nimport com.taixingyiji.base.common.ResultVO;\nimport com.taixingyiji.base.common.WebPageInfo;\nimport com.taixingyiji.base.module.data.module.BaseMapper;\nimport com.taixingyiji.base.module.data.service.TableService;\nimport com.taixingyiji.base.module.tableconfig.entity.OsSysTable;\nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;\nimport org.springframework.stereotype.Service;\nimport com.taixingyiji.base.common.ServiceException;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\nimport java.util.Map;\n\n/**\n * @author $!author\n * @version 1.0\n * @className $!{tableName}\n * @date $!time.currTime()\n * @description $!{tableInfo.comment}($!{tableInfo.name})表服务实现类\n */\n@Service\npublic class $!{tableName} implements $!{tableInfo.name}Service {\n\n public static final String TABLE_NAME = \"$tool.hump2Underline($tableInfo.name).toUpperCase()\";\n public static final String PK = \"$tool.hump2Underline($pk.name).toUpperCase()\";\n public static final OsSysTable TABLE_INFO = OsSysTable.builder().tablePk(PK).tableName(TABLE_NAME).build();\n\n final TableService tableService;\n\n final BaseMapper baseMapper;\n\n public $!{tableName}(TableService tableService, BaseMapper baseMapper) {\n this.tableService = tableService;\n this.baseMapper = baseMapper;\n }\n \n @Override\n public ResultVO<Map<String, Object>> add(Map<String, Object> data) {\n return tableService.saveWithDate(TABLE_INFO, data);\n }\n\n @Override\n public ResultVO<Map<String, Object>> update(Map<String, Object> data, Integer version) {\n return tableService.updateWithDate(TABLE_INFO, data, version);\n }\n\n @Override\n public ResultVO<Integer> updateMany(Map<String, Object> data, String ids) {\n data.put(PK, ids);\n return tableService.updateBatchWithDate(TABLE_INFO, data);\n }\n\n @Override\n public ResultVO<Integer> delete(String ids) {\n return tableService.logicDelete(TABLE_INFO, ids);\n }\n\n @Override\n public ResultVO<PageInfo<Map<String, Object>>> getList(String data, WebPageInfo webPageInfo) {\n return ResultVO.getSuccess(tableService.searchSingleTables(data, TABLE_INFO, webPageInfo));\n }\n\n @Override\n public ResultVO<Map<String, Object>> getOne(String id) {\n return ResultVO.getSuccess(tableService.getOne(TABLE_INFO, id));\n }\n\n @Override\n public ResultVO<List<Map<String, Object>>> getMany(String ids) {\n return ResultVO.getSuccess(tableService.getMany(TABLE_INFO, ids));\n }\n\n @Override\n public ResultVO<PageInfo<Map<String, Object>>> getReference(String data, WebPageInfo webPageInfo, String target, String id) {\n return ResultVO.getSuccess(tableService.getReference(TABLE_INFO, data, webPageInfo, target, id));\n }\n \n @Override\n @Transactional(rollbackFor = Exception.class)\n public ResultVO<Map<String, Object>> deleteOne(String id) {\n Map<String, Object> map = baseMapper.selectByPk(TABLE_INFO, id);\n ResultVO result = tableService.logicDelete(TABLE_INFO, id);\n if (result.getCode() != 0) {\n throw new ServiceException(\"删除失败\");\n }\n return ResultVO.getSuccess(map);\n }\n}"
}, {
"name" : "service.java.vm",
"code" : "##定义初始变量\n#set($tableName = $tool.append($tableInfo.name, \"Service\"))\n##设置回调\n$!callback.setFileName($tool.append($tableName, \".java\"))\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/service\"))\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;\n\nimport com.github.pagehelper.PageInfo;\nimport com.taixingyiji.base.common.ResultVO;\nimport com.taixingyiji.base.common.WebPageInfo;\n\nimport java.util.List;\nimport java.util.Map;\n \n /**\n * @author $!author\n * @version 1.0\n * @className $!{tableName}\n * @date $!time.currTime()\n * @description $!{tableInfo.comment}($!{tableInfo.name})表服务接口\n */\npublic interface $!{tableName} {\n\n ResultVO<Map<String, Object>> add(Map<String, Object> data);\n\n ResultVO<Map<String, Object>> update(Map<String, Object> data, Integer version);\n\n ResultVO<Integer> updateMany(Map<String, Object> data, String ids);\n\n ResultVO<Integer> delete(String ids);\n \n ResultVO<Map<String, Object>> deleteOne(String id);\n\n ResultVO<PageInfo<Map<String, Object>>> getList(String data, WebPageInfo webPageInfo);\n\n ResultVO<Map<String, Object>> getOne(String id);\n\n ResultVO<List<Map<String, Object>>> getMany(String ids);\n\n ResultVO<PageInfo<Map<String, Object>>> getReference(String data, WebPageInfo webPageInfo, String target, String id);\n}"
}, {
"name" : "index.vue.vm",
"code" : "$!callback.setFileName(\"index.vue\")\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/$!tool.firstLowerCase($tableInfo.name)\"))\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n<template>\n <div class=\"dashboard-editor-container\">\n <transition name=\"el-zoom-in-bottom\">\n <el-row v-show=\"searchVisible\">\n <el-col :span=\"24\">\n <el-card shadow=\"always\" class=\"select-card\">\n <search-key-co\n :form-key=\"tableHead\"\n :search-data=\"searchForm\"\n time-format=\"x\"\n @search-submit=\"query\"\n @reset-search-form=\"resetSearch\"\n />\n </el-card>\n </el-col>\n </el-row>\n </transition>\n <el-row>\n <el-col :span=\"24\">\n <el-card shadow=\"always\" class=\"select-card\">\n <el-form :inline=\"true\" class=\"user-button-option\">\n <el-button type=\"primary\" size=\"small\" @click=\"showAdd\">\n 新增\n </el-button>\n <el-button type=\"primary\" size=\"small\" @click=\"deleteData\">\n 批量删除\n </el-button>\n <el-button type=\"primary\" plain size=\"small\" @click=\"showSearch\">\n 检索<el-icon style=\"margin-left: 5px\" v-if=\"!searchVisible\"\n ><arrow-up-bold\n /></el-icon>\n <el-icon style=\"margin-left: 5px\" v-else\n ><arrow-down-bold\n /></el-icon>\n </el-button>\n </el-form>\n <table-head-co\n ref=\"tableCo\"\n :check-box-visible=\"true\"\n :formatter=\"tableFormatter\"\n :form-list=\"tableList\"\n :table-heads=\"tableHead\"\n :loading=\"loading\"\n :slot-visible=\"true\"\n :width=\"150\"\n cell-align=\"center\"\n @handle-sort-change=\"handleSortChange\"\n @handle-selection-change=\"handleSelectionChange\"\n >\n <template v-slot=\"scope\" style=\"text-align: center\">\n <el-button size=\"small\" @click=\"showEdit(scope.item.row)\">\n 编辑\n </el-button>\n <el-button size=\"small\" @click=\"showDetails(scope.item.row)\">\n 详情\n </el-button>\n </template>\n </table-head-co>\n <div style=\"text-align: center\">\n <el-pagination\n v-if=\"total > 10\"\n :current-page=\"currentPage\"\n :page-sizes=\"pageSizes\"\n :page-size=\"pageSize\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n :total=\"total\"\n class=\"pagStyle\"\n @size-change=\"handleSizePagChange\"\n @current-change=\"handleCurrentPagChange\"\n />\n </div>\n </el-card>\n </el-col>\n </el-row>\n </div>\n</template>\n<script lang=\"ts\" src=\"./index.ts\"></script>\n\n<style lang=\"scss\">\n.dashboard-editor-container {\n position: relative;\n\n .github-corner {\n position: absolute;\n top: 0;\n border: 0;\n right: 0;\n }\n\n .chart-wrapper {\n background: #fff;\n padding: 16px 16px 0;\n margin-bottom: 32px;\n }\n}\n\n.chart-container {\n position: relative;\n width: 100%;\n height: calc(100vh - 200px);\n}\n\n.el-select-dropdown__item {\n font-size: 12px;\n height: 30px;\n line-height: 30px;\n}\n\n@media (max-width: 1024px) {\n .chart-wrapper {\n padding: 8px;\n }\n}\n\n.user-query-option {\n padding: 10px;\n background: #fff;\n text-align: center;\n\n .el-form-item {\n margin-bottom: 1px;\n }\n}\n\n.user-button-option {\n padding: 10px;\n}\n\n.pagStyle {\n background: #fff;\n text-align: center;\n padding: 10px;\n}\n\n.custom-tree-node {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 14px;\n padding-right: 8px;\n}\n</style>\n"
}, {
"name" : "index.ts.vm",
"code" : "$!callback.setFileName(\"index.ts\")\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/$!tool.firstLowerCase($tableInfo.name)\"))\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\nimport CommonNext, { CommonNextProp } from \"/@/api/mixins/CommonNext\";\nimport { toRefs, getCurrentInstance, ref } from \"vue\";\nimport searchKeyCo from \"/@/components/CommonCo/searchKeyCo.vue\";\nimport tableHeadCo from \"/@/components/CommonCo/tableHeadCo.vue\";\nimport formCo from \"/@/components/CommonCo/formCo.vue\";\nimport { ArrowUpBold, ArrowDownBold } from \"@element-plus/icons-vue\";\n\nexport default {\n // 引入组件\n components: { searchKeyCo, tableHeadCo, formCo, ArrowUpBold, ArrowDownBold },\n setup() {\n const searchVisible = ref(false);\n\n const showSearch = () => {\n searchVisible.value = !searchVisible.value;\n };\n // 新增校验规则\n const addRule = {};\n\n // 编辑校验规则\n const editRule = {};\n //获取当前实力\n const instance = getCurrentInstance();\n\n // 定义props传给通用组件\n const props: CommonNextProp = {\n tableAlias: \"$!tool.firstLowerCase($tableInfo.name)\",\n instance,\n addDialogTitle: \"新增记录\",\n editDialogTitle: \"编辑记录\",\n detailDialogTile: \"详细信息\",\n addRule,\n editRule,\n primaryKey: \"$tool.hump2Underline($pk.name)\",\n parentRoute: \"$replace\"\n };\n\n // 引入通用组件api\n const {\n CommonObj,\n tableFormatter,\n handleSelectionChange,\n cancelForm,\n handleCurrentPagChange,\n handleSizePagChange,\n handleSortChange,\n resetSearch,\n formSubmit,\n query,\n deleteData,\n showDetails,\n showAdd,\n showEdit\n } = CommonNext.setup(props as never, undefined);\n\n return {\n ...toRefs(CommonObj),\n query,\n resetSearch,\n tableFormatter,\n handleCurrentPagChange,\n handleSizePagChange,\n handleSortChange,\n handleSelectionChange,\n showAdd,\n cancelForm,\n formSubmit,\n deleteData,\n showEdit,\n showSearch,\n searchVisible,\n showDetails\n };\n }\n};\n"
}, {
"name" : "router.json.vm",
"code" : "$!callback.setFileName(\"index.json\")\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/$!tool.firstLowerCase($tableInfo.name)\"))\n {\n path: \"$replace/$!tool.firstLowerCase($tableInfo.name)\",\n name: \"$!tool.firstLowerCase($tableInfo.name)\",\n component: () => import(\"/@/views$replace/$!tool.firstLowerCase($tableInfo.name)/index.vue\"),\n meta: {\n title: \"message.hcUser\",\n i18n: true,\n showLink: true\n },\n children: [\n {\n path: \"$replace/$!tool.firstLowerCase($tableInfo.name)/add\",\n component: () => import(\"/@/views/common/add/index.vue\"),\n name: \"$!tool.firstLowerCase($tableInfo.name)Add\",\n meta: {\n title: \"\",\n showLink: false,\n i18n: false,\n dynamicLevel: 3,\n refreshRedirect: \"$replace/$!tool.firstLowerCase($tableInfo.name)\",\n realPath: \"common/add\"\n }\n },\n {\n path: \"$replace/$!tool.firstLowerCase($tableInfo.name)/edit\",\n component: () => import(\"/@/views/common/edit/index.vue\"),\n name: \"$!tool.firstLowerCase($tableInfo.name)Edit\",\n meta: {\n title: \"\",\n showLink: false,\n i18n: false,\n dynamicLevel: 3,\n refreshRedirect: \"$replace/$!tool.firstLowerCase($tableInfo.name)\",\n realPath: \"common/edit\"\n }\n },\n {\n path: \"$replace/$!tool.firstLowerCase($tableInfo.name)/detail\",\n component: () => import(\"/@/views/common/detail/index.vue\"),\n name: \"$!tool.firstLowerCase($tableInfo.name)Detail\",\n meta: {\n title: \"\",\n showLink: false,\n i18n: false,\n dynamicLevel: 3,\n refreshRedirect: \"$replace/$!tool.firstLowerCase($tableInfo.name)\",\n realPath: \"common/detail\"\n }\n }\n ]\n },"
} ]
},
"spring-data-mongodb" : {
"name" : "spring-data-mongodb",
"elementList" : [ {
"name" : "controller.java.vm",
"code" : "##导入宏定义、设置包名、类名、文件名##导入宏定义\n$!{define.vm}\n#setPackageSuffix(\"controller\")\n#setTableSuffix(\"Controller\")\n#save(\"/controller\", \"Controller.java\")\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n##定义服务名\n#set($serviceSortType = $!tool.append($!tableInfo.name, \"Service\"))\n#set($serviceType = $!tool.append($!tableInfo.savePackageName, \".service.\", $serviceSortType))\n#set($serviceVarName = $!tool.firstLowerCase($serviceSortType))\n\n#set($entityShortType = $!tableInfo.name)\n#set($entityType = $!tableInfo.psiClassObj.getQualifiedName())\n#set($entityVarName = $!tool.firstLowerCase($!tableInfo.name))\n#set($pkType = $!pk.type)\n\nimport $pkType;\nimport $entityType;\nimport $serviceType;\nimport lombok.AllArgsConstructor;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.Pageable;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RestController;\n\n\n/**\n * $!{tableInfo.comment}控制层\n *\n * @author $!author\n * @since $!time.currTime()\n */\n@RestController\n@RequestMapping(\"/$!tool.firstLowerCase($!tableInfo.name)\")\n@AllArgsConstructor\npublic class $!{tableName} {\n\n\tprivate $serviceSortType $serviceVarName;\n\n\t/**\n\t * 获取$!{tableInfo.comment}列表(分页)\n\t */\n\t@GetMapping(\"/list\")\n\tpublic Page<$entityShortType> list(Pageable page) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * 获取$!{tableInfo.comment}\n\t */\n\t@GetMapping(\"/get\")\n\tpublic $entityShortType get($!pk.shortType id) {\n\t\treturn ${serviceVarName}.findById(id);\n\t}\n\n\t/**\n\t * 添加$!{tableInfo.comment}\n\t */\n\t@PostMapping(\"/add\")\n\tpublic void add(@RequestBody $entityShortType $entityVarName) {\n\t\t${serviceVarName}.save($entityVarName);\n\t}\n\n\n\t/**\n\t * 修改$!{tableInfo.comment}\n\t */\n\t@PostMapping(\"/update\")\n\tpublic void update(@RequestBody $entityShortType $entityVarName) {\n\t\t${serviceVarName}.save($entityVarName);\n\t}\n\n\t/**\n\t * 删除$!{tableInfo.comment}\n\t */\n\t@PostMapping(\"/delete\")\n\tpublic void delete($!pk.shortType id) {\n\t\t${serviceVarName}.deleteById(id);\n\t}\n\n}\n"
}, {
"name" : "entity.java.vm",
"code" : "##引入宏定义\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/entity\", \".java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"entity\")\n\n##使用全局变量实现默认包导入\n$!{autoImport.vm}\nimport java.io.Serializable;\n\n##使用宏定义实现类注释信息\n#tableComment(\"实体类\")\npublic class $!{tableInfo.name} implements Serializable {\n private static final long serialVersionUID = $!tool.serial();\n#foreach($column in $tableInfo.fullColumn)\n #if(${column.comment})/**\n * ${column.comment}\n */#end\n\n private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n#end\n\n#foreach($column in $tableInfo.fullColumn)\n##使用宏定义实现get,set方法\n#getSetMethod($column)\n#end\n\n}\n"
}, {
"name" : "repository.java.vm",
"code" : "##导入宏定义、设置包名、类名、文件名##导入宏定义\n$!{define.vm}\n#setPackageSuffix(\"repository\")\n#setTableSuffix(\"Repository\")\n#save(\"/repository\", \"Repository.java\")\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n##实体类名、主键类名\n#set($entityShortType = $!tableInfo.name)\n#set($entityType = $!tableInfo.psiClassObj.getQualifiedName())\n#set($pkShortType = $!pk.shortType)\n#set($pkType = $!pk.type)\n\nimport $pkType;\nimport $entityType;\nimport org.springframework.data.mongodb.repository.MongoRepository;\n\n\n/**\n * $!{tableInfo.comment}持久层\n *\n * @author $!author\n * @since $!time.currTime()\n */\npublic interface $!{tableName} extends MongoRepository<$entityShortType, $pkShortType> {\n\n}\n"
}, {
"name" : "service.java.vm",
"code" : "##导入宏定义、设置包名、类名、文件名##导入宏定义\n$!{define.vm}\n#setPackageSuffix(\"service\")\n#setTableSuffix(\"Service\")\n#save(\"/service\", \"Service.java\")\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n##实体类名、主键类名\n#set($entityShortType = $!tableInfo.name)\n#set($entityType = $!tableInfo.psiClassObj.getQualifiedName())\n#set($entityVarName = $!tool.firstLowerCase($!tableInfo.name))\n#set($pkShortType = $!pk.shortType)\n#set($pkType = $!pk.type)\n\nimport $pkType;\nimport $entityType;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.Pageable;\nimport java.util.Collection;\nimport java.util.List;\n\n\n/**\n * $!{tableInfo.comment}业务层\n *\n * @author $!author\n * @since $!time.currTime()\n */\npublic interface $!{tableName} {\n\n void save($entityShortType $entityVarName);\n\n void deleteById($pkShortType id);\n\n $entityShortType findById($pkShortType id);\n\n List<$entityShortType> findById(Collection<$pkShortType> ids);\n\n Page<$entityShortType> list(Pageable page);\n\n}\n"
}, {
"name" : "serviceImpl.java.vm",
"code" : "##导入宏定义、设置包名、类名、文件名\n$!{define.vm}\n#setPackageSuffix(\"service.impl\")\n#setTableSuffix(\"ServiceImpl\")\n#save(\"/service/impl\", \"ServiceImpl.java\")\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n##业务层类名、持久层类名、实体名\n#set($serviceSortType = $!tool.append($!tableInfo.name, \"Service\"))\n#set($serviceType = $!tool.append($!tableInfo.savePackageName, \".service.\", $serviceSortType))\n#set($repositorySortType = $!tool.append($!tableInfo.name, \"Repository\"))\n#set($repositoryType = $!tool.append($!tableInfo.savePackageName, \".repository.\", $repositorySortType))\n#set($repositoryVarName = $!tool.firstLowerCase($!repositorySortType))\n#set($entityShortType = $!tableInfo.name)\n#set($entityType = $!tableInfo.psiClassObj.getQualifiedName())\n#set($entityVarName = $!tool.firstLowerCase($!tableInfo.name))\n#set($pkShortType = $!pk.shortType)\n#set($pkType = $!pk.type)\n\nimport $pkType;\nimport $entityType;\nimport $serviceType;\nimport $repositoryType;\nimport org.springframework.stereotype.Service;\nimport javax.annotation.Resource;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.Pageable;\nimport java.util.Collection;\nimport java.util.List;\nimport java.util.stream.Collectors;\nimport java.util.stream.StreamSupport;\n\n\n/**\n * $!{tableInfo.comment}业务层\n *\n * @author $!author\n * @since $!time.currTime()\n */\n@Service\npublic class $!{tableName} implements $!serviceSortType {\n\n\t@Resource\n private $repositorySortType $repositoryVarName;\n\n @Override\n public void save($entityShortType $entityVarName) {\n $!{repositoryVarName}.save($entityVarName);\n }\n\n @Override\n public void deleteById($pkShortType id) {\n $!{repositoryVarName}.delete(id);\n }\n\n @Override\n public $entityShortType findById($pkShortType id) {\n return $!{repositoryVarName}.findOne(id);\n }\n\n @Override\n public List<$entityShortType> findById(Collection<$pkShortType> ids) {\n Iterable<$entityShortType> iterable = $!{repositoryVarName}.findAll(ids);\n return StreamSupport.stream(iterable.spliterator(), false)\n .collect(Collectors.toList());\n }\n\n @Override\n public Page<$entityShortType> list(Pageable page) {\n return $!{repositoryVarName}.findAll(page);\n }\n\n}\n"
} ]
},
"Default" : {
"name" : "Default",
"elementList" : [ {
"name" : "controller.java.vm",
"code" : "##定义初始变量\n#set($tableName = $tool.append($tableInfo.name, \"Controller\"))\n##设置回调\n$!callback.setFileName($tool.append($tableName, \".java\"))\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/controller\"))\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}controller;\n\nimport $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};\nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageRequest;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.*;\n\nimport javax.annotation.Resource;\n\n/**\n * $!{tableInfo.comment}($!{tableInfo.name})表控制层\n *\n * @author $!author\n * @since $!time.currTime()\n */\n@RestController\n@RequestMapping(\"$!tool.firstLowerCase($tableInfo.name)\")\npublic class $!{tableName} {\n /**\n * 服务对象\n */\n @Resource\n private $!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;\n\n /**\n * 分页查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @param pageRequest 分页对象\n * @return 查询结果\n */\n @GetMapping\n public ResponseEntity<Page<$!{tableInfo.name}>> queryByPage($!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}, PageRequest pageRequest) {\n return ResponseEntity.ok(this.$!{tool.firstLowerCase($tableInfo.name)}Service.queryByPage($!{tool.firstLowerCase($tableInfo.name)}, pageRequest));\n }\n\n /**\n * 通过主键查询单条数据\n *\n * @param id 主键\n * @return 单条数据\n */\n @GetMapping(\"{id}\")\n public ResponseEntity<$!{tableInfo.name}> queryById(@PathVariable(\"id\") $!pk.shortType id) {\n return ResponseEntity.ok(this.$!{tool.firstLowerCase($tableInfo.name)}Service.queryById(id));\n }\n\n /**\n * 新增数据\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 实体\n * @return 新增结果\n */\n @PostMapping\n public ResponseEntity<$!{tableInfo.name}> add($!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}) {\n return ResponseEntity.ok(this.$!{tool.firstLowerCase($tableInfo.name)}Service.insert($!{tool.firstLowerCase($tableInfo.name)}));\n }\n\n /**\n * 编辑数据\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 实体\n * @return 编辑结果\n */\n @PutMapping\n public ResponseEntity<$!{tableInfo.name}> edit($!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}) {\n return ResponseEntity.ok(this.$!{tool.firstLowerCase($tableInfo.name)}Service.update($!{tool.firstLowerCase($tableInfo.name)}));\n }\n\n /**\n * 删除数据\n *\n * @param id 主键\n * @return 删除是否成功\n */\n @DeleteMapping\n public ResponseEntity<Boolean> deleteById($!pk.shortType id) {\n return ResponseEntity.ok(this.$!{tool.firstLowerCase($tableInfo.name)}Service.deleteById(id));\n }\n\n}\n"
}, {
"name" : "dao.java.vm",
"code" : "##定义初始变量\n#set($tableName = $tool.append($tableInfo.name, \"Dao\"))\n##设置回调\n$!callback.setFileName($tool.append($tableName, \".java\"))\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/dao\"))\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}dao;\n\nimport $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};\nimport org.apache.ibatis.annotations.Param;\nimport org.springframework.data.domain.Pageable;\nimport java.util.List;\n\n/**\n * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层\n *\n * @author $!author\n * @since $!time.currTime()\n */\npublic interface $!{tableName} {\n\n /**\n * 通过ID查询单条数据\n *\n * @param $!pk.name 主键\n * @return 实例对象\n */\n $!{tableInfo.name} queryById($!pk.shortType $!pk.name);\n\n /**\n * 查询指定行数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 查询条件\n * @param pageable 分页对象\n * @return 对象列表\n */\n List<$!{tableInfo.name}> queryAllByLimit($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}), @Param(\"pageable\") Pageable pageable);\n\n /**\n * 统计总行数\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 查询条件\n * @return 总行数\n */\n long count($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 新增数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 影响行数\n */\n int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 批量新增数据MyBatis原生foreach方法\n *\n * @param entities List<$!{tableInfo.name}> 实例对象列表\n * @return 影响行数\n */\n int insertBatch(@Param(\"entities\") List<$!{tableInfo.name}> entities);\n\n /**\n * 批量新增或按主键更新数据MyBatis原生foreach方法\n *\n * @param entities List<$!{tableInfo.name}> 实例对象列表\n * @return 影响行数\n * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常请自行校验入参\n */\n int insertOrUpdateBatch(@Param(\"entities\") List<$!{tableInfo.name}> entities);\n\n /**\n * 修改数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 影响行数\n */\n int update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 通过主键删除数据\n *\n * @param $!pk.name 主键\n * @return 影响行数\n */\n int deleteById($!pk.shortType $!pk.name);\n\n}\n"
}, {
"name" : "debug.json.vm",
"code" : "// 禁止将生成结果写入到文件\n$!callback.setWriteFile(false)\n\n//调试表原始对象\n$!tool.debug($tableInfo.obj)\n\n//调试列原始对象\n$!tool.debug($tableInfo.fullColumn.get(0).obj)\n\n//调试列原始列类型\n$!tool.debug($tableInfo.fullColumn.get(0).obj.dataType)\n\n//获取原始列类型中的字段\nsqlType = $!tool.getField($tableInfo.fullColumn.get(0).obj.dataType, \"typeName\")\n\n//执行原始列类型中的方法\nsqlTypeLen = $!tableInfo.fullColumn.get(0).obj.dataType.getLength()\n"
}, {
"name" : "entity.java.vm",
"code" : "##引入宏定义\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/entity\", \".java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"entity\")\n\n##使用全局变量实现默认包导入\n$!{autoImport.vm}\nimport java.io.Serializable;\n\n##使用宏定义实现类注释信息\n#tableComment(\"实体类\")\npublic class $!{tableInfo.name} implements Serializable {\n private static final long serialVersionUID = $!tool.serial();\n#foreach($column in $tableInfo.fullColumn)\n #if(${column.comment})/**\n * ${column.comment}\n */#end\n\n private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n#end\n\n#foreach($column in $tableInfo.fullColumn)\n##使用宏定义实现get,set方法\n#getSetMethod($column)\n#end\n\n}\n"
}, {
"name" : "mapper.xml.vm",
"code" : "##引入mybatis支持\n$!{mybatisSupport.vm}\n\n##设置保存名称与保存位置\n$!callback.setFileName($tool.append($!{tableInfo.name}, \"Dao.xml\"))\n$!callback.setSavePath($tool.append($modulePath, \"/src/main/resources/mapper\"))\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"$!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao\">\n\n <resultMap type=\"$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}\" id=\"$!{tableInfo.name}Map\">\n#foreach($column in $tableInfo.fullColumn)\n <result property=\"$!column.name\" column=\"$!column.obj.name\" jdbcType=\"$!column.ext.jdbcType\"/>\n#end\n </resultMap>\n\n <!--查询单个-->\n <select id=\"queryById\" resultMap=\"$!{tableInfo.name}Map\">\n select\n #allSqlColumn()\n\n from $!tableInfo.obj.name\n where $!pk.obj.name = #{$!pk.name}\n </select>\n\n <!--查询指定行数据-->\n <select id=\"queryAllByLimit\" resultMap=\"$!{tableInfo.name}Map\">\n select\n #allSqlColumn()\n\n from $!tableInfo.obj.name\n <where>\n#foreach($column in $tableInfo.fullColumn)\n <if test=\"$!column.name != null#if($column.type.equals(\"java.lang.String\")) and $!column.name != ''#end\">\n and $!column.obj.name = #{$!column.name}\n </if>\n#end\n </where>\n limit #{pageable.offset}, #{pageable.pageSize}\n </select>\n\n <!--统计总行数-->\n <select id=\"count\" resultType=\"java.lang.Long\">\n select count(1)\n from $!tableInfo.obj.name\n <where>\n#foreach($column in $tableInfo.fullColumn)\n <if test=\"$!column.name != null#if($column.type.equals(\"java.lang.String\")) and $!column.name != ''#end\">\n and $!column.obj.name = #{$!column.name}\n </if>\n#end\n </where>\n </select>\n\n <!--新增所有列-->\n <insert id=\"insert\" keyProperty=\"$!pk.name\" useGeneratedKeys=\"true\">\n insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)\n values (#foreach($column in $tableInfo.otherColumn)#{$!{column.name}}#if($velocityHasNext), #end#end)\n </insert>\n\n <insert id=\"insertBatch\" keyProperty=\"$!pk.name\" useGeneratedKeys=\"true\">\n insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)\n values\n <foreach collection=\"entities\" item=\"entity\" separator=\",\">\n (#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)\n </foreach>\n </insert>\n\n <insert id=\"insertOrUpdateBatch\" keyProperty=\"$!pk.name\" useGeneratedKeys=\"true\">\n insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.otherColumn)$!column.obj.name#if($velocityHasNext), #end#end)\n values\n <foreach collection=\"entities\" item=\"entity\" separator=\",\">\n (#foreach($column in $tableInfo.otherColumn)#{entity.$!{column.name}}#if($velocityHasNext), #end#end)\n </foreach>\n on duplicate key update\n #foreach($column in $tableInfo.otherColumn)$!column.obj.name = values($!column.obj.name)#if($velocityHasNext),\n #end#end\n\n </insert>\n\n <!--通过主键修改数据-->\n <update id=\"update\">\n update $!{tableInfo.obj.name}\n <set>\n#foreach($column in $tableInfo.otherColumn)\n <if test=\"$!column.name != null#if($column.type.equals(\"java.lang.String\")) and $!column.name != ''#end\">\n $!column.obj.name = #{$!column.name},\n </if>\n#end\n </set>\n where $!pk.obj.name = #{$!pk.name}\n </update>\n\n <!--通过主键删除-->\n <delete id=\"deleteById\">\n delete from $!{tableInfo.obj.name} where $!pk.obj.name = #{$!pk.name}\n </delete>\n\n</mapper>\n"
}, {
"name" : "service.java.vm",
"code" : "##定义初始变量\n#set($tableName = $tool.append($tableInfo.name, \"Service\"))\n##设置回调\n$!callback.setFileName($tool.append($tableName, \".java\"))\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/service\"))\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;\n\nimport $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageRequest;\n\n/**\n * $!{tableInfo.comment}($!{tableInfo.name})表服务接口\n *\n * @author $!author\n * @since $!time.currTime()\n */\npublic interface $!{tableName} {\n\n /**\n * 通过ID查询单条数据\n *\n * @param $!pk.name 主键\n * @return 实例对象\n */\n $!{tableInfo.name} queryById($!pk.shortType $!pk.name);\n\n /**\n * 分页查询\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 筛选条件\n * @param pageRequest 分页对象\n * @return 查询结果\n */\n Page<$!{tableInfo.name}> queryByPage($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}), PageRequest pageRequest);\n\n /**\n * 新增数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 实例对象\n */\n $!{tableInfo.name} insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 修改数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 实例对象\n */\n $!{tableInfo.name} update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 通过主键删除数据\n *\n * @param $!pk.name 主键\n * @return 是否成功\n */\n boolean deleteById($!pk.shortType $!pk.name);\n\n}"
}, {
"name" : "serviceImpl.java.vm",
"code" : "##定义初始变量\n#set($tableName = $tool.append($tableInfo.name, \"ServiceImpl\"))\n##设置回调\n$!callback.setFileName($tool.append($tableName, \".java\"))\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/service/impl\"))\n\n##拿到主键\n#if(!$tableInfo.pkColumn.isEmpty())\n #set($pk = $tableInfo.pkColumn.get(0))\n#end\n\n#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl;\n\nimport $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};\nimport $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao;\nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;\nimport org.springframework.stereotype.Service;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageImpl;\nimport org.springframework.data.domain.PageRequest;\n\nimport javax.annotation.Resource;\n\n/**\n * $!{tableInfo.comment}($!{tableInfo.name})表服务实现类\n *\n * @author $!author\n * @since $!time.currTime()\n */\n@Service(\"$!tool.firstLowerCase($!{tableInfo.name})Service\")\npublic class $!{tableName} implements $!{tableInfo.name}Service {\n @Resource\n private $!{tableInfo.name}Dao $!tool.firstLowerCase($!{tableInfo.name})Dao;\n\n /**\n * 通过ID查询单条数据\n *\n * @param $!pk.name 主键\n * @return 实例对象\n */\n @Override\n public $!{tableInfo.name} queryById($!pk.shortType $!pk.name) {\n return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.queryById($!pk.name);\n }\n\n /**\n * 分页查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @param pageRequest 分页对象\n * @return 查询结果\n */\n @Override\n public Page<$!{tableInfo.name}> queryByPage($!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}, PageRequest pageRequest) {\n long total = this.$!{tool.firstLowerCase($tableInfo.name)}Dao.count($!{tool.firstLowerCase($tableInfo.name)});\n return new PageImpl<>(this.$!{tool.firstLowerCase($tableInfo.name)}Dao.queryAllByLimit($!{tool.firstLowerCase($tableInfo.name)}, pageRequest), pageRequest, total);\n }\n\n /**\n * 新增数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 实例对象\n */\n @Override\n public $!{tableInfo.name} insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {\n this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.insert($!tool.firstLowerCase($!{tableInfo.name}));\n return $!tool.firstLowerCase($!{tableInfo.name});\n }\n\n /**\n * 修改数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 实例对象\n */\n @Override\n public $!{tableInfo.name} update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {\n this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.update($!tool.firstLowerCase($!{tableInfo.name}));\n return this.queryById($!{tool.firstLowerCase($!{tableInfo.name})}.get$!tool.firstUpperCase($pk.name)());\n }\n\n /**\n * 通过主键删除数据\n *\n * @param $!pk.name 主键\n * @return 是否成功\n */\n @Override\n public boolean deleteById($!pk.shortType $!pk.name) {\n return this.$!{tool.firstLowerCase($!{tableInfo.name})}Dao.deleteById($!pk.name) > 0;\n }\n}"
} ]
}
},
"columnConfig" : {
"Default" : {
"name" : "Default",
"elementList" : [ {
"title" : "disable",
"type" : "BOOLEAN",
"selectValue" : ""
}, {
"title" : "support",
"type" : "SELECT",
"selectValue" : "add,edit,query,del,ui"
} ]
}
},
"globalConfig" : {
"Default" : {
"name" : "Default",
"elementList" : [ {
"name" : "autoImport.vm",
"value" : "##自动导入包(仅导入实体属性需要的包,通常用于实体类)\n#foreach($import in $importList)\nimport $!import;\n#end"
}, {
"name" : "define.vm",
"value" : "##Velocity宏定义\n\n##定义设置表名后缀的宏定义,调用方式:#setTableSuffix(\"Test\")\n#macro(setTableSuffix $suffix)\n #set($tableName = $!tool.append($tableInfo.name, $suffix))\n#end\n\n##定义设置包名后缀的宏定义,调用方式:#setPackageSuffix(\"Test\")\n#macro(setPackageSuffix $suffix)\n#if($suffix!=\"\")package #end#if($tableInfo.savePackageName!=\"\")$!{tableInfo.savePackageName}.#{end}$!suffix;\n#end\n\n##定义直接保存路径与文件名简化的宏定义,调用方式:#save(\"/entity\", \".java\")\n#macro(save $path $fileName)\n $!callback.setSavePath($tool.append($tableInfo.savePath, $path))\n $!callback.setFileName($tool.append($tableInfo.name, $fileName))\n#end\n\n##定义表注释的宏定义,调用方式:#tableComment(\"注释信息\")\n#macro(tableComment $desc)\n/**\n * $!{tableInfo.comment}($!{tableInfo.name})$desc\n *\n * @author $!author\n * @since $!time.currTime()\n */\n#end\n\n##定义GETSET方法的宏定义调用方式#getSetMethod($column)\n#macro(getSetMethod $column)\n\n public $!{tool.getClsNameByFullName($column.type)} get$!{tool.firstUpperCase($column.name)}() {\n return $!{column.name};\n }\n\n public void set$!{tool.firstUpperCase($column.name)}($!{tool.getClsNameByFullName($column.type)} $!{column.name}) {\n this.$!{column.name} = $!{column.name};\n }\n#end"
}, {
"name" : "init.vm",
"value" : "##初始化区域\n\n##去掉表的t_前缀\n$!tableInfo.setName($tool.getClassName($tableInfo.obj.name.replaceFirst(\"book_\",\"\")))\n\n##参考阿里巴巴开发手册POJO 类中布尔类型的变量,都不要加 is 前缀,否则部分框架解析会引起序列化错误\n#foreach($column in $tableInfo.fullColumn)\n#if($column.name.startsWith(\"is\") && $column.type.equals(\"java.lang.Boolean\"))\n $!column.setName($tool.firstLowerCase($column.name.substring(2)))\n#end\n#end\n\n##实现动态排除列\n#set($temp = $tool.newHashSet(\"testCreateTime\", \"otherColumn\"))\n#foreach($item in $temp)\n #set($newList = $tool.newArrayList())\n #foreach($column in $tableInfo.fullColumn)\n #if($column.name!=$item)\n ##带有反回值的方法调用时使用$tool.call来消除返回值\n $tool.call($newList.add($column))\n #end\n #end\n ##重新保存\n $tableInfo.setFullColumn($newList)\n#end\n\n##对importList进行篡改\n#set($temp = $tool.newHashSet())\n#foreach($column in $tableInfo.fullColumn)\n #if(!$column.type.startsWith(\"java.lang.\"))\n ##带有反回值的方法调用时使用$tool.call来消除返回值\n $tool.call($temp.add($column.type))\n #end\n#end\n##覆盖\n#set($importList = $temp)"
}, {
"name" : "mybatisSupport.vm",
"value" : "##针对Mybatis 进行支持主要用于生成xml文件\n#foreach($column in $tableInfo.fullColumn)\n ##储存列类型\n $tool.call($column.ext.put(\"sqlType\", $tool.getField($column.obj.dataType, \"typeName\")))\n #if($tool.newHashSet(\"java.lang.String\").contains($column.type))\n #set($jdbcType=\"VARCHAR\")\n #elseif($tool.newHashSet(\"java.lang.Boolean\", \"boolean\").contains($column.type))\n #set($jdbcType=\"BOOLEAN\")\n #elseif($tool.newHashSet(\"java.lang.Byte\", \"byte\").contains($column.type))\n #set($jdbcType=\"BYTE\")\n #elseif($tool.newHashSet(\"java.lang.Integer\", \"int\", \"java.lang.Short\", \"short\").contains($column.type))\n #set($jdbcType=\"INTEGER\")\n #elseif($tool.newHashSet(\"java.lang.Long\", \"long\").contains($column.type))\n #set($jdbcType=\"INTEGER\")\n #elseif($tool.newHashSet(\"java.lang.Float\", \"float\", \"java.lang.Double\", \"double\").contains($column.type))\n #set($jdbcType=\"NUMERIC\")\n #elseif($tool.newHashSet(\"java.util.Date\", \"java.sql.Timestamp\", \"java.time.Instant\", \"java.time.LocalDateTime\", \"java.time.OffsetDateTime\", \"\tjava.time.ZonedDateTime\").contains($column.type))\n #set($jdbcType=\"TIMESTAMP\")\n #elseif($tool.newHashSet(\"java.sql.Date\", \"java.time.LocalDate\").contains($column.type))\n #set($jdbcType=\"TIMESTAMP\")\n #else\n ##其他类型\n #set($jdbcType=\"VARCHAR\")\n #end\n $tool.call($column.ext.put(\"jdbcType\", $jdbcType))\n#end\n\n##定义宏,查询所有列\n#macro(allSqlColumn)#foreach($column in $tableInfo.fullColumn)$column.obj.name#if($velocityHasNext), #end#end#end\n"
} ]
}
}
}