Gtja_java
模板文件
1. mapper.xml
路径: $project/$module/src/main/resources/mapper/${entityName}Mapper.xml
模板:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="$basePackage.mapper.${entityName}Mapper">
</mapper>
2. mapper.java
路径: $project/$module/src/main/java/$basePackage/mapper/${entityName}Mapper.java
模板:
package $basePackage.mapper;
import $basePackage.entity.$entityName;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface ${entityName}Mapper extends BaseMapper<$entityName> {
}
3. service.java
路径: $project/$module/src/main/java/$basePackage/service/${entityName}Service.java
模板:
package $basePackage.service;
import $basePackage.entity.$tableName;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gtja.nkjs.xyfx.common.service.EntityAutoFullService;
import java.util.List;
import java.util.Map;
public interface ${entityName}Service extends IService<$entityName>,
EntityAutoFullService<$entityName> {
}
4. serviceImpl.java
路径: $project/$module/src/main/java/$basePackage/service/impl/${entityName}ServiceImpl.java
模板:
package $basePackage.service.impl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import $basePackage.entity.${entityName};
import $basePackage.mapper.${entityName}Mapper;
import $basePackage.service.${entityName}Service;
import org.springframework.stereotype.Service;
@Service
public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}>
implements ${entityName}Service {
}
5. entity.java
路径: $project/$module/src/main/java/$basePackage/entity/${entityName}.java
模板:
package $basePackage.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@TableName(value = "$tableName")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class $entityName{
// 提示词: 需要填充字段,填充的字段根据提供的模型字段进行填充。
}
6. controller.java
路径:$project/$apiModule/src/main/java/$basePackage/controller/${entityName}Controller.java
模板:
package $basePackage.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import com.gtja.nkjs.common.core.util.R;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@RequestMapping("/$apiPath")
@RestController
@AllArgsConstructor
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class ${entityName}Controller {
}
7. queryService.java
路径: $project/$module/src/main/java/$basePackage/service/Query${queryEntityName}Service.java
模板:
package $basePackage.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import ${basePackage}.service.dto.Query${queryEntityName}InDTO;
import ${basePackage}.service.dto.Query${queryEntityName}OutDTO;
public interface Query${queryEntityName}Service {
Page<Query${queryEntityName}OutDTO> page(Page page, Query${queryEntityName}InDTO dto);
}
8. singleTableQueryService.java
路径: $project/$module/src/main/java/$basePackage/service/impl/Query${queryEntityName}ServiceImpl.java
模板:
package $basePackage.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import ${basePackage}.service.dto.Query${queryEntityName}InDTO;
import ${basePackage}.service.dto.Query${queryEntityName}OutDTO;
import static $basePackage.service.impl.dtomapper.Query${queryEntityName}ServiceImplDTOMapper.INSTANCE;
@Service
public class Query${queryEntityName}ServiceImpl implements Query${queryEntityName}Service {
private ${entityName}Service ${entityName}Service;
public Page<Query${queryEntityName}OutDTO> page(Page page, Query${queryEntityName}InDTO dto){
Page page = ${entityName}Service.lambdaQuery()
// TODO 查询条件
.page(page);
List<Query${queryEntityName}OutDTO> list = INSTANCE.toOutDTO(page.getRecords());
page.setRecords(list);
return page;
}
}
9. simpleTableQueryInDTO.java
路径: $project/$module/src/main/java/$basePackage/service/dto/Query${queryEntityName}InDTO.java
模板:
package ${basePackage}.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class Query${queryEntityName}InDTO {
// 提示词开始
// 将 $basePackage.entity.$entityName 这个类的字段填充过来
// 字段加上swagger 注解
// 提示词结束
// TODO
}
10. simpleTableQueryOutDTO.java
路径: $project/$module/src/main/java/$basePackage/service/dto/Query${queryEntityName}OutDTO.java
模板:
package ${basePackage}.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class Query${queryEntityName}OutDTO {
// 提示词开始
// 将 $basePackage.entity.$entityName 这个类的字段填充过来
// 字段加上swagger 注解
// 提示词结束
// TODO
}
9. queryDTOMapper.java
路径: $project/$module/src/main/java/$basePackage/service/impl/dtomapper.Query${queryEntityName}ServiceImplDTOMapper.java
模板:
package $basePackage.service.impl.dtomapper;
import ${basePackage}.service.dto.Query${queryEntityName}OutDTO;
import ${basePackage}.entity.${entityName};
public interface Query${queryEntityName}ServiceImplDTOMapper {
Query${entityName}ServiceImplDTOMapper INSTANCE = org.mapstruct.factory.Mappers.getMapper(Query${entityName}ServiceImplDTOMapper.class);
List<${Query${queryEntityName}OutDTO> toOutDTO(List<$entityName> list);
${Query${queryEntityName}OutDTO toOutDTO($entityName entity);
}
10. exportService.java
路径: $project/$module/src/main/java/$basePackage/service/${exportService}.java
模板:
package $basePackage.service;
// 提示词开始
// 自动导入相关包
// 提示词结束
public interface ExportFinancingFlowService {
$exportOutDTO export(String exportRecId, $queryInDTO dto);
}
11. exportServiceImpl.java
路径: $project/$module/src/main/java/$basePackage/service/impl/${exportServiceImpl}.java
模板:
package ${basePackage}.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gtja.nkjs.xyfx.biz.corp.service.DataExportService;
import com.gtja.nkjs.xyfx.common.utils.MultiFetchIterator;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.function.Function;
@Service
@RequiredArgsConstructor
public class ${exportServiceImpl} implements ${exportService} {
private final ${queryService} $queryService;
private final DataExportService dataExportService;
public $exportOutDTO export(String exportRecId, $queryInDTO dto) {
MultiFetchIterator iterator = new MultiFetchIterator(new Function<Integer, List>() {
@Override
public List apply(Integer integer) {
Page<Object> page = new Page<>();
page.setCurrent(integer);
page.setSize(5000);
List records = $queryService.page(page, dto).getRecords();
List result = $exportServiceImplDTOMapper.INSTANCE.to(records);
return result;
}
});
dataExportService.export(exportRecId, iterator, ${exportExcelDTO}.class, "${exportEntityName}.xlsx");
return null;
}
}
12. exportServiceImplDTOMapper.java
路径: $project/$module/src/main/java/$basePackage/service/impl/dtomapper/$exportServiceImplDTOMapper.java
模板:
package $basePackage.service.impl.dtomapper;
import lombok.Data;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import org.mapstruct.ReportingPolicy;
import java.util.List;
import java.util.Map;
@Mapper(
unmappedTargetPolicy = ReportingPolicy.ERROR
)
public interface $exportServiceImplDTOMapper {
$exportServiceImplDTOMapper INSTANCE = org.mapstruct.factory.Mappers.getMapper($exportServiceImplDTOMapper.class);
@Data
class Context {
}
List<$exportOutDTO> to(List<$queryOutDTO> list, @org.mapstruct.Context Context context);
$exportOutDTO to($queryOutDTO dto, @org.mapstruct.Context Context context);
}
13. exportExcelDTO.java
路径: $project/$module/src/main/java/$basePackage/service/dto/$exportExcelDTO.java
模板:
package $basePackage.service.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class $exportExcelDTO {
// 提示词开始
// 将 $basePackage.service.dto.$queryOutDTO 这个类的字段填充过来
// 字段加上@ExcelProperty 注解
// 提示词结束
// TODO
}
14. exportOutDTO.java
路径: $project/$module/src/main/java/$basePackage/service/dto/$exportOutDTO.java
模板:
package ${basePackage}.service.dto;
public class ${exportOutDTO} {
}
代码片段模板
1. simpleTableQueryApi
所属模板:controller.java
private final ${entityName}Service ${entityName}Service;
@Operation(summary = "查询")
@GetMapping("/page")
public R<Page<$entityName>> page(Page page) {
Page<$entityName> res = ${entityName}Service.lambdaQuery()
/**
* 此处是根据参数进行条件查询,支持如下
* 参数p1 等于 字段f1 .eq(p1 != null, $entityName::getF1, p1)
* 参数p1 大于等于 .ge(p1 != null, $entityName::getF1, p1)
* 参数p1 小于等于 .le(p1 != null, $entityName::getF1, p1)
* 参数p1 包含 .like(p1 != null, $entityName::getF1, p1)
*/
.page(page);
return R.ok(res);
}
2. simpleTableQueryServiceApi
所属模板: controller.java
private final Query${queryEntityName}Service query${queryEntityName}Service;
@Operation(summary = "查询")
@GetMapping("/page")
public R<Page<Query${queryEntityName}OutDTO>> page(Page page,Query${queryEntityName}Service) {
Page res = query${queryEntityName}Service.page(page, inDTO);
return R.ok(res);
}
3. exportApi
所属模板: controller.java
// 提示词开始
// 导入 com.gtja.nkjs.xyfx.common.constant.ExportDataSources
// 导入 com.gtja.nkjs.xyfx.biz.corp.service.TbDataExportRecService
// 提示词结束
private final TbDataExportRecService tbDataExportRecService;
@GetMapping("/export")
@ApiOperation("导出数据")
public R export(@Valid $queryInDTO inDTO) {
tbDataExportRecService.add(ExportDataSources.$exportSourceName, inDTO);
return R.ok();
}
功能
1. 基础表操作
依赖模板:
- mapper.xml
- mapper.java
- service.java
- serviceImpl.java
- entity.java
2. 单表查询API
依赖模板:
- controller.java 依赖代码片段:
- simpleTableQueryApi
3. 单表查询服务API
依赖模板:
- controller.java 依赖代码片段:
- simpleTableQueryServiceApi
4. 导出服务API
依赖模板:
- exportService.java
- exportServiceImpl.java
- exportExcelDTO.java
- exportOutDTO.java
- exportServiceImplDTOMapper.java
- controller.java
依赖代码片段:
- exportApi
必填变量:
- project
- module
- apiModule
- basePackage
- entityName
- exportEntityName
- exportSourceName
可选变量:
- exportService 默认为
export${exportEntityName}Service
- exportServiceImpl 默认为
export${exportEntityName}ServiceImpl
- exportExcelDTO 默认为
export${exportEntityName}ExcelDTO
- exportServiceImplDTOMapper 默认为
export${exportEntityName}ServiceImplDTOMapper
- exportOutDTO 默认为
export${exportEntityName}OutDTO
- queryService 默认为
query${exportEntityName}Service
- queryInDTO 默认为
query${exportEntityName}InDTO
- queryOutDTO 默认为
query${exportEntityName}OutDTO