{ "author" : "Peter Cheung", "version" : "1.2.8", "userSecure" : "", "currTypeMapperGroupName" : "Default", "currTemplateGroupName" : "mybatis-mvc", "currColumnConfigGroupName" : "Default", "currGlobalConfigGroupName" : "Default", "typeMapper" : { }, "template" : { "mybatis-mvc" : { "name" : "mybatis-mvc", "elementList" : [ { "name" : "domain.java.vm", "code" : "##引入宏定义\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/domain\", \".java\")\n\n#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}domain;\n\nimport lombok.extern.slf4j.Slf4j;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport lombok.AllArgsConstructor;\nimport lombok.Data;\nimport lombok.NoArgsConstructor;\n\nimport java.io.Serializable;\nimport java.util.Date;\n\n##使用宏定义实现类注释信息\n#tableComment(\"对象\")\n@Slf4j\n@Data\n@AllArgsConstructor\n@NoArgsConstructor\n@ApiModel(\"$!{tableInfo.comment}($!{tableInfo.name})对象\" )\npublic class $!{tableInfo.name} implements Serializable {\n private static final long serialVersionUID = $!tool.serial();\n #foreach($column in $tableInfo.fullColumn)\n #if(${column.comment})/**${column.comment}*/#end\n @ApiModelProperty(value = \"#if(${column.comment})${column.comment}#end\" )\n private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n #end\n /**用此变量排序*/\n @ApiModelProperty(value = \"用此变量排序\" )\n private String orderByMe;\n/**\n * 升降序\n * <p>\n * ASC:表示按升序排序\n * <p>\n * DESC:表示按降序排序\n */\n @ApiModelProperty(value = \"升降序 ASC:表示按升序排序 DESC:表示按降序排序\" )\n private String orderByMeSort;\n /**\n * 页码\n */\n @ApiModelProperty(value = \"页码\" )\n private int pageNum;\n /**\n * 一页数量\n */\n @ApiModelProperty(value = \"一页数量\" )\n private int pageSize;\n}\n" }, { "name" : "mapper.java.vm", "code" : "##定义初始变量\n#set($tableName = $tool.append($tableInfo.name, \"Mapper\"))\n##设置回调\n$!callback.setFileName($tool.append($tableName, \".java\"))\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/mapper\"))\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}mapper;\n\nimport $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};\nimport org.apache.ibatis.annotations.Mapper;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层\n *\n * @author $!author\n * @since $!time.currTime()\n */\n@Mapper\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 * @return 对象列表\n */\n List<$!{tableInfo.name}> queryAll($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 模糊查询指定行数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 查询条件\n * @return 对象列表\n */\n List<$!{tableInfo.name}> queryAllLike($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\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 * 修改全部非null数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 影响行数\n */\n int updateAll($!{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" : "mapper.xml.vm", "code" : "##引入mybatis支持\n$!{mybatisSupport.vm}\n\n##设置保存名称与保存位置\n$!callback.setFileName($tool.append($!{tableInfo.name}, \"Mapper.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}.mapper.$!{tableInfo.name}Mapper\">\n\n <resultMap type=\"$!{tableInfo.savePackageName}.domain.$!{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=\"queryAll\" resultMap=\"$!{tableInfo.name}Map\">\n select\n #allSqlColumn()\n from $!tableInfo.obj.name\n <where>\n #foreach($column in $tableInfo.fullColumn)\n <if test=\"$!column.name != null#if($column.type.equals(\n \"java.lang.String\")) and $!column.name != ''#end\">\n and $!column.obj.name = #{$!column.name}\n </if>\n #end\n </where>\n <if test=\"orderByMe != null and orderByMe != '' and orderByMeSort != null and orderByMeSort != ''\">\n order by\n <choose>\n #foreach($column in $tableInfo.fullColumn)\n <when test=\"orderByMe == '$!column.name' and orderByMeSort == 'ASC'\">\n $!column.obj.name\n </when>\n #end\n #foreach($column in $tableInfo.fullColumn)\n <when test=\"orderByMe == '$!column.name' and orderByMeSort == 'DESC'\">\n $!column.obj.name desc\n </when>\n #end\n <otherwise>\n 1\n </otherwise>\n </choose>\n </if>\n </select>\n\n <!--模糊查询指定行数据-->\n <select id=\"queryAllLike\" resultMap=\"$!{tableInfo.name}Map\">\n select\n #allSqlColumn()\n from $!tableInfo.obj.name\n <where>\n #foreach($column in $tableInfo.fullColumn)\n <if test=\"$!column.name != null#if($column.type.equals(\n \"java.lang.String\")) and $!column.name != ''#end\">\n and $!column.obj.name like concat('%',#{$!column.name},'%')\n </if>\n #end\n </where>\n <if test=\"orderByMe != null and orderByMe != '' and orderByMeSort != null and orderByMeSort != ''\">\n order by\n <choose>\n #foreach($column in $tableInfo.fullColumn)\n <when test=\"orderByMe == '$!column.name' and orderByMeSort == 'ASC'\">\n $!column.obj.name\n </when>\n #end\n #foreach($column in $tableInfo.fullColumn)\n <when test=\"orderByMe == '$!column.name' and orderByMeSort == 'DESC'\">\n $!column.obj.name desc\n </when>\n #end\n <otherwise>\n 1\n </otherwise>\n </choose>\n </if>\n </select>\n\n <!--统计总行数-->\n <select id=\"count\" resultType=\"java.lang.Long\">\n select count(*)\n from $!tableInfo.obj.name\n <where>\n #foreach($column in $tableInfo.fullColumn)\n <if test=\"$!column.name != null#if($column.type.equals(\n \"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\">\n insert into $!{tableInfo.obj.name}(#foreach($column in $tableInfo.fullColumn)$!column.obj.name#if($foreach.hasNext), #end#end)\n values (#foreach($column in $tableInfo.fullColumn)#{$!{column.name}}#if($foreach.hasNext), #end#end)\n </insert>\n\n <insert id=\"insertBatch\" keyProperty=\"$!pk.name\">\n insert into $!{tableInfo.obj.name}\n (#foreach($column in $tableInfo.fullColumn)$!column.obj.name#if($foreach.hasNext), #end#end)\n values\n <foreach collection=\"entities\" item=\"entity\" separator=\",\">\n (#foreach($column in $tableInfo.fullColumn)#{entity.$!{column.name}}#if($foreach.hasNext), #end#end)\n </foreach>\n </insert>\n\n <insert id=\"insertOrUpdateBatch\" keyProperty=\"$!pk.name\">\n insert into $!{tableInfo.obj.name}\n (#foreach($column in $tableInfo.fullColumn)$!column.obj.name#if($foreach.hasNext), #end#end)\n values\n <foreach collection=\"entities\" item=\"entity\" separator=\",\">\n (#foreach($column in $tableInfo.fullColumn)#{entity.$!{column.name}}#if($foreach.hasNext), #end#end)\n </foreach>\n on duplicate key update\n #foreach($column in $tableInfo.fullColumn)$!column.obj.name = values($!column.obj.name)#if($foreach.hasNext),\n #end\n #end\n\n </insert>\n\n <!--通过主键修改数据-->\n <update id=\"update\">\n update $!{tableInfo.obj.name}\n <set>\n #foreach($column in $tableInfo.fullColumn)\n <if test=\"$!column.name != null#if($column.type.equals(\n \"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 <!--通过主键修改全部非null数据-->\n <update id=\"updateAll\">\n update $!{tableInfo.obj.name}\n <set>\n #foreach($column in $tableInfo.fullColumn)\n <if test=\"$!column.name != null\">\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\n from $!{tableInfo.obj.name} where $!pk.obj.name = #{$!pk.name}\n </delete>\n\n</mapper>\n" }, { "name" : "r.java.vm", "code" : "##设置回调\n$!callback.setFileName($tool.append(\"R.java\"))\n$!callback.setSavePath($tool.append($tableInfo.savePath, \"/util\"))\n\n#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}util;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport lombok.Getter;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.http.HttpStatus;\nimport org.springframework.http.ResponseEntity;\n\nimport java.io.Serializable;\n\n/**\n * 统一返回对象R\n *\n * @author $!author\n * @since $!time.currTime()\n */\n@Slf4j\n@Getter\n@ApiModel(\"统一返回对象R\")\npublic class R implements Serializable {\n private static final long serialVersionUID = $!tool.serial();\n @ApiModelProperty(value = \"响应编码\")\n private int code;\n @ApiModelProperty(value = \"响应信息\")\n private String message;\n @ApiModelProperty(value = \"响应数据\")\n private Object data;\n\n /**\n * 私有构造方法\n */\n private R() {\n }\n\n /**\n * 设置数据\n *\n * @param data 数据\n * @return R\n */\n public R data(Object data) {\n this.data = data;\n return this;\n }\n\n /**\n * 成功\n *\n * @return R\n */\n public static R ok() {\n R r = new R();\n r.code = HttpStatus.OK.value();\n r.message = HttpStatus.OK.getReasonPhrase();\n return r;\n }\n\n /**\n * 由于被认为是客户端错误\n * 错误的请求语法\n * 无效的请求消息帧或欺骗性的请求路由\n * 服务器无法或不会处理请求。\n *\n * @return R\n */\n public static R badRequest() {\n R r = new R();\n r.code = HttpStatus.BAD_REQUEST.value();\n r.message = HttpStatus.BAD_REQUEST.getReasonPhrase();\n return r;\n }\n\n\n /**\n * 认证授权失败 Unauthorized\n * 请求要求用户的身份认证\n * 客户端必须对自身进行身份验证才能获得请求的响应\n *\n * @return R\n */\n public static R unauthorized() {\n R r = new R();\n r.code = HttpStatus.UNAUTHORIZED.value();\n r.message = HttpStatus.UNAUTHORIZED.getReasonPhrase();\n return r;\n }\n\n /**\n * Forbidden\n * 服务器理解请求客户端的请求,但是拒绝执行此请求\n * 客户端没有访问内容的权限,也就是说,它是未经授权的,因此服务器拒绝提供请求的资源。\n * 与401Unauthorized不同,服务器知道客户端的身份。\n *\n * @return R\n */\n public static R forbidden() {\n R r = new R();\n r.code = HttpStatus.FORBIDDEN.value();\n r.message = HttpStatus.FORBIDDEN.getReasonPhrase();\n return r;\n }\n\n /**\n * Internal Server Error\n * 服务器内部错误,无法完成请求\n *\n * @return R\n */\n public static R exp() {\n R r = new R();\n r.code = HttpStatus.INTERNAL_SERVER_ERROR.value();\n r.message = HttpStatus.INTERNAL_SERVER_ERROR.getReasonPhrase();\n return r;\n }\n\n /**\n * 将R转换为ResponseEntity\n *\n * @param r body\n * @return 响应实体\n */\n public static ResponseEntity<R> deal(R r) {\n switch (r.getCode()) {\n case 400:\n return ResponseEntity.badRequest().body(r);\n case 401:\n return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(r);\n case 403:\n return ResponseEntity.status(HttpStatus.FORBIDDEN).body(r);\n case 500:\n return ResponseEntity.internalServerError().body(r);\n default:\n return ResponseEntity.ok(r);\n }\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 $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};\nimport $!{tableInfo.savePackageName}.util.R;\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 R queryById($!pk.shortType $!pk.name);\n\n /**\n * 全查询\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 筛选条件\n * @return 查询结果\n */\n R queryAll($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 模糊全查询\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 筛选条件\n * @return 查询结果\n */\n R queryAllLike($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 分页查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @return 查询结果\n */\n R page($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 分页模糊查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @return 查询结果\n */\n R pageLike($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 新增数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 实例对象\n */\n R insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 修改数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 实例对象\n */\n R update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));\n\n /**\n * 通过主键删除数据\n *\n * @param $!pk.name 主键\n * @return 是否成功\n */\n R 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 com.github.pagehelper.PageHelper;\nimport lombok.extern.slf4j.Slf4j;\nimport $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};\nimport $!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper;\nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;\nimport $!{tableInfo.savePackageName}.util.R;\nimport org.springframework.stereotype.Service;\n\nimport javax.annotation.Resource;\n\n/**\n * $!{tableInfo.comment}($!{tableInfo.name})表服务实现类\n *\n * @author $!author\n * @since $!time.currTime()\n */\n@Slf4j\n@Service\npublic class $!{tableName} implements $!{tableInfo.name}Service {\n@Resource\nprivate $!{tableInfo.name}Mapper $!tool.firstLowerCase($!{tableInfo.name})Mapper;\n\n/**\n * 通过ID查询单条数据\n *\n * @param $!pk.name 主键\n * @return 实例对象\n */\n@Override\npublic R queryById($!pk.shortType $!pk.name) {\n return R.ok().data(this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.queryById($!pk.name));\n }\n\n/**\n * 全查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @return 查询结果\n */\n@Override\npublic R queryAll($!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}) {\n return R.ok().data(this.$!{tool.firstLowerCase($tableInfo.name)}Mapper.queryAll($!{tool.firstLowerCase($tableInfo.name)}));\n }\n\n/**\n * 模糊全查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @return 查询结果\n */\n@Override\npublic R queryAllLike($!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}) {\n return R.ok().data(this.$!{tool.firstLowerCase($tableInfo.name)}Mapper.queryAllLike($!{tool.firstLowerCase($tableInfo.name)}));\n }\n\n/**\n * 分页查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @return 查询结果\n */\n@Override\npublic R page($!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}) {\n return R.ok().data(PageHelper.startPage($!{tool.firstLowerCase($tableInfo.name)}.getPageNum(), $!{tool.firstLowerCase($tableInfo.name)}.getPageSize()).doSelectPageInfo(() -> this.$!{tool.firstLowerCase($tableInfo.name)}Mapper.queryAll($!{tool.firstLowerCase($tableInfo.name)})));\n }\n\n/**\n * 分页模糊查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @return 查询结果\n */\n@Override\npublic R pageLike($!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}) {\n return R.ok().data(PageHelper.startPage($!{tool.firstLowerCase($tableInfo.name)}.getPageNum(), $!{tool.firstLowerCase($tableInfo.name)}.getPageSize()).doSelectPageInfo(() -> this.$!{tool.firstLowerCase($tableInfo.name)}Mapper.queryAllLike($!{tool.firstLowerCase($tableInfo.name)})));\n }\n\n/**\n * 新增数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 实例对象\n */\n@Override\npublic R insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {\n this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.insert($!tool.firstLowerCase($!{tableInfo.name}));\n return R.ok().data($!tool.firstLowerCase($!{tableInfo.name}));\n }\n\n/**\n * 修改数据\n *\n * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象\n * @return 实例对象\n */\n@Override\npublic R update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {\n this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.updateAll($!tool.firstLowerCase($!{tableInfo.name}));\n return R.ok().data(this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.queryById($!{tool.firstLowerCase($!{tableInfo.name})}.get$!tool.firstUpperCase($pk.name)()));\n }\n\n/**\n * 通过主键删除数据\n *\n * @param $!pk.name 主键\n * @return 是否成功\n */\n@Override\npublic R deleteById($!pk.shortType $!pk.name) {\n boolean del = this.$!{tool.firstLowerCase($!{tableInfo.name})}Mapper.deleteById($!pk.name) > 0;\n return R.ok().data(del);\n }\n }" }, { "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;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport io.swagger.annotations.ApiParam;\nimport lombok.extern.slf4j.Slf4j;\nimport $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};\nimport $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;\nimport $!{tableInfo.savePackageName}.util.R;\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@Slf4j\n@RestController\n@RequestMapping(\"api/$!{tableInfo.name}\")\n@Api(tags = \"$!{tableInfo.comment}($!{tableInfo.name})表控制层\")\npublic class $!{tableName} {\n/**\n * 服务对象\n */\n@Resource\nprivate $!{tableInfo.name}Service $!tool.firstLowerCase($tableInfo.name)Service;\n\n/**\n * 全查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @return 查询结果\n */\n@ApiOperation(\"全查询\")\n@GetMapping(\"all\")\npublic R queryAll(@ApiParam(value = \"$!{tool.firstLowerCase($tableInfo.name)} 筛选条件\") $!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}){\n return this.$!{tool.firstLowerCase($tableInfo.name)}Service.queryAll($!{tool.firstLowerCase($tableInfo.name)});\n }\n\n/**\n * 模糊全查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @return 查询结果\n */\n@ApiOperation(\"模糊全查询\")\n@PostMapping(\"like\")\npublic R queryAllLike(@ApiParam(value = \"$!{tool.firstLowerCase($tableInfo.name)} 筛选条件\") $!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}){\n return this.$!{tool.firstLowerCase($tableInfo.name)}Service.queryAllLike($!{tool.firstLowerCase($tableInfo.name)});\n }\n\n/**\n * 通过主键查询单条数据\n *\n * @param id 主键\n * @return 单条数据\n */\n@ApiOperation(\"通过主键查询单条数据\")\n@GetMapping(\"one\")\npublic R queryById(@ApiParam(value = \"id 主键\") $!pk.shortType id){\n return this.$!{tool.firstLowerCase($tableInfo.name)}Service.queryById(id);\n }\n\n/**\n * 分页查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @return 查询结果\n */\n@ApiOperation(\"分页查询\")\n@PostMapping(\"page\")\npublic R page(@ApiParam(value = \"$!{tool.firstLowerCase($tableInfo.name)} 筛选条件\") @RequestBody $!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}){\n return this.$!{tool.firstLowerCase($tableInfo.name)}Service.page($!{tool.firstLowerCase($tableInfo.name)});\n }\n\n/**\n * 分页模糊查询\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 筛选条件\n * @return 查询结果\n */\n@ApiOperation(\"分页模糊查询\")\n@PostMapping(\"page/like\")\npublic R pageLike(@ApiParam(value = \"$!{tool.firstLowerCase($tableInfo.name)} 筛选条件\") @RequestBody $!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}){\n return this.$!{tool.firstLowerCase($tableInfo.name)}Service.pageLike($!{tool.firstLowerCase($tableInfo.name)});\n }\n\n/**\n * 新增数据\n *\n * @param $!{tool.firstLowerCase($tableInfo.name)} 实体\n * @return 新增结果\n */\n@ApiOperation(\"新增数据\")\n@PostMapping(\"add\")\npublic R add(@ApiParam(value = \"$!{tool.firstLowerCase($tableInfo.name)} 实体\") @RequestBody $!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}){\n return 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@ApiOperation(\"编辑数据\")\n@PostMapping(\"edit\")\npublic R edit(@ApiParam(value = \"$!{tool.firstLowerCase($tableInfo.name)} 实体\") @RequestBody $!{tableInfo.name} $!{tool.firstLowerCase($tableInfo.name)}){\n return this.$!{tool.firstLowerCase($tableInfo.name)}Service.update($!{tool.firstLowerCase($tableInfo.name)});\n }\n\n/**\n * 删除数据\n *\n * @param id 主键\n * @return 删除是否成功\n */\n@ApiOperation(\"删除数据\")\n@GetMapping(\"delete\")\npublic R deleteById(@ApiParam(value = \"id 主键\") $!pk.shortType id){\n return this.$!{tool.firstLowerCase($tableInfo.name)}Service.deleteById(id);\n }\n }\n" } ] } }, "columnConfig" : { }, "globalConfig" : { } }