Files
remi-cloud/docs/generator/EasyCodeConfig.json
2024-08-30 02:04:33 +08:00

139 lines
26 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" : "dianjiu",
"version" : "1.2.8",
"userSecure" : "",
"currTypeMapperGroupName" : "Default",
"currTemplateGroupName" : "Remi",
"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.math.BigDecimal"
}, {
"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.time.LocalDateTime"
}, {
"matchType" : "ORDINARY",
"columnType" : "datetime",
"javaType" : "java.time.LocalDateTime"
}, {
"matchType" : "ORDINARY",
"columnType" : "timestamp",
"javaType" : "java.time.LocalDateTime"
}, {
"matchType" : "ORDINARY",
"columnType" : "time",
"javaType" : "java.time.LocalDateTime"
}, {
"matchType" : "ORDINARY",
"columnType" : "boolean",
"javaType" : "java.lang.Boolean"
} ]
}
},
"template" : {
"Remi" : {
"name" : "Remi",
"elementList" : [ {
"name" : "converter.java.vm",
"code" : "##引入宏定义\n$!{init.vm}\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/converter\", \"Converter.java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"converter\")\n\n##使用全局变量实现默认包导入\n$!autoImport\nimport org.mapstruct.Mapper;\nimport org.mapstruct.Mapping;\nimport org.mapstruct.factory.Mappers;\n\n/**\n * @author DianJiu\n * @email dianjiuxyz@gmail.com\n * @desc $!{tableInfo.comment} $!{tableInfo.name}Converter转换接口\n */\n@Mapper\npublic interface $!{tableInfo.name}Converter {\n\n public static $!{tableInfo.name}Converter INSTANT = Mappers.getMapper($!{tableInfo.name}Converter.class);\n\n @Mapping(target = \"id\", ignore = true)\n @Mapping(target = \"deleted\", ignore = true)\n @Mapping(target = \"revision\", ignore = true)\n @Mapping(target = \"deptTenantId\", ignore = true)\n @Mapping(target = \"companyTenantId\", ignore = true)\n @Mapping(target = \"createdBy\", ignore = true)\n @Mapping(target = \"createdAt\", ignore = true)\n @Mapping(target = \"updatedBy\", ignore = true)\n @Mapping(target = \"updatedAt\", ignore = true)\n $!{tableInfo.name} postDtoToEntity($!{tableInfo.name}PostDTO $!tool.firstLowerCase($tableInfo.name)DTO);\n \n @Mapping(target = \"deleted\", ignore = true)\n @Mapping(target = \"revision\", ignore = true)\n @Mapping(target = \"deptTenantId\", ignore = true)\n @Mapping(target = \"companyTenantId\", ignore = true)\n @Mapping(target = \"createdBy\", ignore = true)\n @Mapping(target = \"createdAt\", ignore = true)\n @Mapping(target = \"updatedBy\", ignore = true)\n @Mapping(target = \"updatedAt\", ignore = true)\n $!{tableInfo.name} putDtoToEntity($!{tableInfo.name}PutDTO $!tool.firstLowerCase($tableInfo.name)DTO);\n \n @Mapping(target = \"deleted\", ignore = true)\n @Mapping(target = \"revision\", ignore = true)\n @Mapping(target = \"deptTenantId\", ignore = true)\n @Mapping(target = \"companyTenantId\", ignore = true)\n @Mapping(target = \"createdBy\", ignore = true)\n @Mapping(target = \"createdAt\", ignore = true)\n @Mapping(target = \"updatedBy\", ignore = true)\n @Mapping(target = \"updatedAt\", ignore = true)\n $!{tableInfo.name} queryToEntity($!{tableInfo.name}Query $!tool.firstLowerCase($tableInfo.name)Query);\n \n $!{tableInfo.name}VO entityToVO($!{tableInfo.name} $!tool.firstLowerCase($tableInfo.name));\n \n}"
}, {
"name" : "entity.java.vm",
"code" : "##引入宏定义\n$!{init.vm}\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/entity\", \".java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"entity\")\n\n##使用全局变量实现默认包导入\n$!autoImport\nimport java.io.Serializable;\nimport com.baomidou.mybatisplus.extension.activerecord.Model;\nimport lombok.Data;\nimport lombok.AllArgsConstructor;\nimport lombok.NoArgsConstructor;\nimport lombok.Builder;\n\n/**\n * @author DianJiu\n * @email dianjiuxyz@gmail.com\n * @desc $!{tableInfo.comment} $!{tableInfo.name}DTO对象\n */\n@Data\n@SuperBuilder\n@AllArgsConstructor\n@NoArgsConstructor\n@TableName(\"$tableInfo.obj.name\")\npublic class $!{tableInfo.name} extends BaseEntity {\n#foreach($column in $tableInfo.fullColumn)\n\n #if(!$column.name.equals(\"id\") && !$column.name.equals(\"deleted\") && !$column.name.equals(\"revision\") && !$column.name.equals(\"deptTenantId\") && !$column.name.equals(\"companyTenantId\") && !$column.name.equals(\"createdBy\") && !$column.name.equals(\"createdAt\") && !$column.name.equals(\"updatedBy\") && !$column.name.equals(\"updatedAt\"))\n #if(${column.comment})/**\n * ${column.comment}\n */#end\n private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n #end\n#end\n\n}"
}, {
"name" : "query.java.vm",
"code" : "##引入宏定义\n$!{init.vm}\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/query\", \"Query.java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"query\")\n\n##使用全局变量实现默认包导入\n$!autoImport\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.*;\n\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\n/**\n * @author DianJiu\n * @email dianjiuxyz@gmail.com\n * @desc $!{tableInfo.comment} $!{tableInfo.name}Query对象\n */\n@Data\n@Builder\n@AllArgsConstructor\n@NoArgsConstructor\n@ToString(callSuper = true)\n@Schema(description = \"$!{tableInfo.comment}\")\npublic class $!{tableInfo.name}Query implements Serializable {\n private static final long serialVersionUID = $!tool.serial();\n#foreach($column in $tableInfo.fullColumn)\n #if(!$column.name.equals(\"deleted\") && !$column.name.equals(\"revision\") && !$column.name.equals(\"deptTenantId\") && !$column.name.equals(\"companyTenantId\") && !$column.name.equals(\"createdBy\") && !$column.name.equals(\"createdAt\") && !$column.name.equals(\"updatedBy\") && !$column.name.equals(\"updatedAt\"))\n #if(${column.comment})/**\n * ${column.comment}\n */#end\n #if($column.type.equals(\"java.time.LocalDateTime\"))\n @DateTimeFormat(pattern=\"yyyy-MM-dd HH:mm:ss\")\n @JsonFormat(pattern = \"yyyy-MM-dd HH:mm:ss\", timezone = \"GMT+8\")\n #end\n @Schema(description = \"$column.comment\")\n private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n #end\n#end\n\n}\n"
}, {
"name" : "vo.java.vm",
"code" : "##引入宏定义\n$!{init.vm}\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/vo\", \"VO.java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"vo\")\n\n##使用全局变量实现默认包导入\n$!{autoImport.vm}\nimport com.fasterxml.jackson.annotation.JsonFormat;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.*;\nimport org.springframework.format.annotation.DateTimeFormat;\n\nimport java.io.Serializable;\nimport java.math.BigDecimal;\nimport java.time.LocalDateTime;\n\n/**\n * @author DianJiu\n * @email dianjiuxyz@gmail.com\n * @desc $!{tableInfo.comment} $!{tableInfo.name}VO对象\n */\n@Data\n@Builder\n@AllArgsConstructor\n@NoArgsConstructor\n@ToString(callSuper = true)\n@Schema(description = \"$!{tableInfo.comment}\")\npublic class $!{tableInfo.name}VO 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 #if($column.type.equals(\"java.time.LocalDateTime\"))\n @DateTimeFormat(pattern=\"yyyy-MM-dd HH:mm:ss\")\n @JsonFormat(pattern = \"yyyy-MM-dd HH:mm:ss\", timezone = \"GMT+8\")\n #end\n @Schema(description = \"$column.comment\")\n private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n#end\n\n}"
}, {
"name" : "putdto.java.vm",
"code" : "##引入宏定义\n$!{init.vm}\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/dto/put\", \"PutDTO.java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"dto.put\")\n\n##使用全局变量实现默认包导入\n$!autoImport\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.*;\n\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\n/**\n * @author DianJiu\n * @email dianjiuxyz@gmail.com\n * @desc $!{tableInfo.comment} $!{tableInfo.name}DTO对象\n */\n@Data\n@Builder\n@AllArgsConstructor\n@NoArgsConstructor\n@ToString(callSuper = true)\n@Schema(description = \"$!{tableInfo.comment}\")\npublic class $!{tableInfo.name}PutDTO implements Serializable {\n private static final long serialVersionUID = $!tool.serial();\n#foreach($column in $tableInfo.fullColumn)\n\n #if(!$column.name.equals(\"deleted\") && !$column.name.equals(\"revision\") && !$column.name.equals(\"deptTenantId\") && !$column.name.equals(\"companyTenantId\") && !$column.name.equals(\"createdBy\") && !$column.name.equals(\"createdAt\") && !$column.name.equals(\"updatedBy\") && !$column.name.equals(\"updatedAt\"))\n #if(${column.comment})/**\n * ${column.comment}\n */#end\n #if($column.type.equals(\"java.time.LocalDateTime\"))\n @DateTimeFormat(pattern=\"yyyy-MM-dd HH:mm:ss\")\n @JsonFormat(pattern = \"yyyy-MM-dd HH:mm:ss\", timezone = \"GMT+8\")\n #end\n @Schema(description = \"$column.comment\")\n private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n #end\n#end\n\n}"
}, {
"name" : "postdto.java.vm",
"code" : "##引入宏定义\n$!{init.vm}\n$!{define.vm}\n\n##使用宏定义设置回调(保存位置与文件后缀)\n#save(\"/dto/post\", \"PostDTO.java\")\n\n##使用宏定义设置包后缀\n#setPackageSuffix(\"dto.post\")\n\n##使用全局变量实现默认包导入\n$!autoImport\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.*;\n\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\n/**\n * @author DianJiu\n * @email dianjiuxyz@gmail.com\n * @desc $!{tableInfo.comment} $!{tableInfo.name}DTO对象\n */\n@Data\n@Builder\n@AllArgsConstructor\n@NoArgsConstructor\n@ToString(callSuper = true)\n@Schema(description = \"$!{tableInfo.comment}\")\npublic class $!{tableInfo.name}PostDTO implements Serializable {\n private static final long serialVersionUID = $!tool.serial();\n#foreach($column in $tableInfo.fullColumn)\n\n #if(!$column.name.equals(\"id\") && !$column.name.equals(\"deleted\") && !$column.name.equals(\"revision\") && !$column.name.equals(\"deptTenantId\") && !$column.name.equals(\"companyTenantId\") && !$column.name.equals(\"createdBy\") && !$column.name.equals(\"createdAt\") && !$column.name.equals(\"updatedBy\") && !$column.name.equals(\"updatedAt\"))\n #if(${column.comment})/**\n * ${column.comment}\n */#end\n #if($column.type.equals(\"java.time.LocalDateTime\"))\n @DateTimeFormat(pattern=\"yyyy-MM-dd HH:mm:ss\")\n @JsonFormat(pattern = \"yyyy-MM-dd HH:mm:ss\", timezone = \"GMT+8\")\n #end\n @Schema(description = \"$column.comment\")\n private $!{tool.getClsNameByFullName($column.type)} $!{column.name};\n #end\n#end\n\n}"
}, {
"name" : "controller.java.vm",
"code" : "##导入宏定义\n$!{init.vm}\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.plugins.pagination.Page;\nimport org.springframework.web.bind.annotation.*;\n\nimport javax.annotation.Resource;\nimport javax.validation.constraints.NotBlank;\nimport java.util.List;\n\n##表注释(宏定义)\n/**\n * @author DianJiu\n * @email dianjiuxyz@gmail.com\n * @desc $!{tableInfo.comment}($!{tableInfo.name})控制层\n */\n@Validated\n@RestController\n@ApiSort(value = 1)\n@Tag(name = \"$!{tableInfo.comment}\")\n@RequestMapping(\"$!tool.firstLowerCase($!tableInfo.name)\")\npublic class $!{tableName} {\n /**\n * 服务对象\n */\n @Resource\n private $!{tableInfo.name}Service $!{serviceName};\n\n \n /**\n * 通过主键查询单条数据\n *\n * @param id 主键\n * @return 单条数据\n */\n @GetMapping(\"{id}\")\n @Operation(summary = \"查询单条\")\n public ResultBean<$!{tableInfo.name}VO> get(@PathVariable @Validated @NotBlank(message = \"ID不能为空\") String id) {\n $!{tableInfo.name} $!{tool.firstLowerCase($!{tableInfo.name})} = $!{tool.firstLowerCase($tableInfo.name)}Service.getById(id);\n //处理格式转换\n $!{tableInfo.name}VO $!{tool.firstLowerCase($!{tableInfo.name})}VO = $!{tableInfo.name}Converter.INSTANT.entityToVO($!tool.firstLowerCase($!{tableInfo.name}));\n return ResultBean.success($!{tool.firstLowerCase($!{tableInfo.name})}VO);\n }\n \n /**\n * 通过实体不为空的属性作为筛选条件查询对象列表\n *\n * @param $!tool.firstLowerCase($tableInfo.name)Query 实例对象\n * @return 对象列表\n */\n @PostMapping(value = \"/list\")\n @Operation(summary = \"查询所有\")\n public ResultBean<List<$!{tableInfo.name}VO>> list(@RequestBody $!{tableInfo.name}Query $!tool.firstLowerCase($tableInfo.name)Query) { \n //处理格式转换\n $!{tableInfo.name} $!{tool.firstLowerCase($!{tableInfo.name})} = $!{tableInfo.name}Converter.INSTANT.queryToEntity($!tool.firstLowerCase($tableInfo.name)Query);\n //执行分页查询\n List<$!{tableInfo.name}> listResult = $!{tool.firstLowerCase($tableInfo.name)}Service.list(new QueryWrapper<>($!{tool.firstLowerCase($!{tableInfo.name})}));\n return ResultBean.success(BeanCopyUtils.coverList(listResult, $!{tableInfo.name}VO.class));\n }\n \n /**\n * 分页查询所有数据\n *\n * @param pageQuery 分页对象\n * @param $!tool.firstLowerCase($!{tableInfo.name})Query 查询实体\n * @return 分页对象\n */\n @PostMapping(value = \"/page\")\n @Operation(summary = \"分页查询\")\n public ResultBean<PagerBean<$!{tableInfo.name}VO>> page(PageQuery pageQuery,$!{tableInfo.name}Query $!tool.firstLowerCase($tableInfo.name)Query) {\n //处理分页条件\n Page<$!tableInfo.name> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize());\n //处理格式转换\n $!{tableInfo.name} $!{tool.firstLowerCase($!{tableInfo.name})} = $!{tableInfo.name}Converter.INSTANT.queryToEntity($!tool.firstLowerCase($tableInfo.name)Query);\n //执行分页查询\n Page<$!{tableInfo.name}> pageResult = $!{tool.firstLowerCase($tableInfo.name)}Service.page(page, new QueryWrapper<>($!{tool.firstLowerCase($!{tableInfo.name})}));\n PagerBean<$!{tableInfo.name}VO> pageBean = new PagerBean<>(pageResult.getTotal(), pageResult.getCurrent(),\n pageResult.getSize(), BeanCopyUtils.coverList(pageResult.getRecords(), $!{tableInfo.name}VO.class));\n return ResultBean.success(pageBean);\n }\n\n /**\n * 新增数据\n *\n * @param $!tool.firstLowerCase($tableInfo.name)DTO 实体对象\n * @return 新增结果\n */\n @PostMapping(\"/add\")\n @Operation(summary = \"新增数据\")\n public ResultBean<Boolean> insert(@RequestBody @Validated $!{tableInfo.name}PostDTO $!tool.firstLowerCase($tableInfo.name)DTO) {\n //处理格式转换\n $!{tableInfo.name} $!{tool.firstLowerCase($!{tableInfo.name})} = $!{tableInfo.name}Converter.INSTANT.postDtoToEntity($!tool.firstLowerCase($tableInfo.name)DTO);\n //执行数据保存\n return ResultBean.success($!{tool.firstLowerCase($tableInfo.name)}Service.save($!{tool.firstLowerCase($!{tableInfo.name})}));\n }\n\n /**\n * 修改数据\n *\n * @param $!tool.firstLowerCase($tableInfo.name)DTO 实体对象\n * @return 修改结果\n */\n @PutMapping(\"/update\")\n @Operation(summary = \"修改数据\")\n public ResultBean<Boolean> update(@RequestBody @Validated $!{tableInfo.name}PutDTO $!tool.firstLowerCase($tableInfo.name)DTO) {\n //处理格式转换\n $!{tableInfo.name} $!{tool.firstLowerCase($!{tableInfo.name})} = $!{tableInfo.name}Converter.INSTANT.putDtoToEntity($!tool.firstLowerCase($tableInfo.name)DTO);\n //执行数据更新\n return ResultBean.success($!{tool.firstLowerCase($tableInfo.name)}Service.updateById($!{tool.firstLowerCase($!{tableInfo.name})}));\n }\n\n /**\n * 删除数据\n *\n * @param ids 主键结合\n * @return 删除结果\n */\n @DeleteMapping(\"/delete\")\n @Operation(summary = \"删除数据\")\n public ResultBean<Boolean> delete(@RequestParam(\"ids\") List<String> ids) {\n return ResultBean.success($!{tool.firstLowerCase($tableInfo.name)}Service.removeByIds(ids));\n } \n\n}\n"
}, {
"name" : "service.java.vm",
"code" : "##导入宏定义\n$!{init.vm}\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;\n\n##表注释(宏定义)\n/**\n * @author DianJiu\n * @email dianjiuxyz@gmail.com\n * @desc $!{tableInfo.comment}($!{tableInfo.name})服务定义层\n */\npublic interface $!{tableName} extends IService<$!tableInfo.name> {\n\n}"
}, {
"name" : "serviceimpl.java.vm",
"code" : "##导入宏定义\n$!{init.vm}\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}.service.$!{tableInfo.name}Service;\nimport org.springframework.stereotype.Service;\n\n##表注释(宏定义)\n/**\n * @author DianJiu\n * @email dianjiuxyz@gmail.com\n * @desc $!{tableInfo.comment}($!{tableInfo.name})服务实现层\n */\n@Service(\"$!tool.firstLowerCase($tableInfo.name)Service\")\npublic class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> implements $!{tableInfo.name}Service {\n\n}\n"
}, {
"name" : "mapper.java.vm",
"code" : "##导入宏定义\n$!{init.vm}\n$!{define.vm}\n\n##设置表后缀(宏定义)\n#setTableSuffix(\"Mapper\")\n\n##保存文件(宏定义)\n#save(\"/mapper\", \"Mapper.java\")\n\n##包路径(宏定义)\n#setPackageSuffix(\"mapper\")\nimport org.apache.ibatis.annotations.Mapper;\n\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\n\n##表注释(宏定义)\n/**\n * @author DianJiu\n * @email dianjiuxyz@gmail.com\n * @desc $!{tableInfo.comment}($!{tableInfo.name})数据层\n */\n@Mapper\npublic interface $!{tableName} extends BaseMapper<$!tableInfo.name> {\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##定义GET,SET方法的宏定义,调用方式:#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##去掉表的sdt_前缀\n#if($tableInfo.obj.name.startsWith(\"sdt_\"))\n $!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(4)))\n#end\n\n##去掉表的ids_前缀\n#if($tableInfo.obj.name.startsWith(\"ids_\"))\n $!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(4)))\n#end\n\n##去掉表的ams_前缀\n#if($tableInfo.obj.name.startsWith(\"ams_\"))\n $!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(4)))\n#end\n\n##去掉表的mps_前缀\n#if($tableInfo.obj.name.startsWith(\"mps_\"))\n $!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(4)))\n#end\n\n##去掉表的mps_前缀\n#if($tableInfo.obj.name.startsWith(\"sys_\"))\n $!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(4)))\n#end\n\n##去掉表的cms_前缀\n#if($tableInfo.obj.name.startsWith(\"cms_\"))\n $!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(4)))\n#end\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"
} ]
}
}
}