139 lines
26 KiB
JSON
139 lines
26 KiB
JSON
{
|
||
"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"
|
||
} ]
|
||
}
|
||
}
|
||
} |