feat(): 新增代码生成器对象,列表查询模型
parent
d653a28754
commit
7d05afa63f
|
@ -82,12 +82,12 @@ public class GenConstants {
|
|||
* 页面不需要查询字段
|
||||
*/
|
||||
public static final String[] COLUMNNAME_NOT_QUERY = {"id", "create_by", "create_time", "del_flag", "update_by",
|
||||
"update_time", "remark"};
|
||||
"update_time"};
|
||||
|
||||
/**
|
||||
* Entity基类字段
|
||||
*/
|
||||
public static final String[] BASE_ENTITY = {"createBy", "createTime", "updateBy", "updateTime", "remark"};
|
||||
public static final String[] BASE_ENTITY = {"createBy", "createTime", "updateBy", "updateTime"};
|
||||
|
||||
/**
|
||||
* Tree基类字段
|
||||
|
|
|
@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* 表格分页数据对象
|
||||
|
@ -34,6 +35,21 @@ public class DataPageResp<T> implements Serializable {
|
|||
public static <T> DataPageResp<T> of(PageQueryModel<T> pageQueryModel) {
|
||||
return new DataPageResp<>(pageQueryModel.getTotal(), pageQueryModel.getDataList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建分页查询模型对象
|
||||
* @param mapper 分页对象
|
||||
* @return 分页模型对象
|
||||
*/
|
||||
public <R> DataPageResp<R> cover(Function<T,R> mapper) {
|
||||
return new DataPageResp<>(
|
||||
this.getTotal(),
|
||||
this.rows.stream()
|
||||
.map(mapper)
|
||||
.toList()
|
||||
);
|
||||
}
|
||||
|
||||
public static <T> DataPageResp<T> of(Long total, List<T> rows) {
|
||||
return new DataPageResp<>(total,rows);
|
||||
}
|
||||
|
|
|
@ -5,15 +5,17 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* 分页查询模型
|
||||
* @author dongzeliang
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PageQueryModel<T> {
|
||||
|
||||
|
@ -36,6 +38,25 @@ public class PageQueryModel<T> {
|
|||
public static <T> PageQueryModel<T> of(Page<T> page) {
|
||||
return new PageQueryModel<>(page.getTotal(), page.getRecords());
|
||||
}
|
||||
|
||||
/**
|
||||
* 私有构造
|
||||
*/
|
||||
private PageQueryModel() {}
|
||||
|
||||
/**
|
||||
* 构建分页查询模型对象
|
||||
* @param mapper 分页对象
|
||||
* @return 分页模型对象
|
||||
*/
|
||||
public <R> PageQueryModel<R> cover(Function<T,R> mapper) {
|
||||
return new PageQueryModel<>(
|
||||
this.getTotal(),
|
||||
this.dataList.stream()
|
||||
.map(mapper)
|
||||
.toList()
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 构建分页查询模型对象
|
||||
* @param total,list 分页对象
|
||||
|
|
|
@ -133,6 +133,8 @@ public class VelocityUtils {
|
|||
templates.add("vm/java/saveModel.java.vm");
|
||||
templates.add("vm/java/edit.java.vm");
|
||||
templates.add("vm/java/editModel.java.vm");
|
||||
templates.add("vm/java/pageQueryModel.java.vm");
|
||||
templates.add("vm/java/pageResp.java.vm");
|
||||
templates.add("vm/java/controller.java.vm");
|
||||
templates.add("vm/java/service.java.vm");
|
||||
templates.add("vm/java/serviceImpl.java.vm");
|
||||
|
@ -179,6 +181,12 @@ public class VelocityUtils {
|
|||
if (template.contains("queryModel.java.vm")) {
|
||||
fileName = StringUtils.format("{}/domain/model/{}QueryModel.java", javaPath, className);
|
||||
}
|
||||
if (template.contains("pageQueryModel.java.vm")) {
|
||||
fileName = StringUtils.format("{}/domain/model/{}PageQueryModel.java", javaPath, className);
|
||||
}
|
||||
if (template.contains("pageResp.java.vm")) {
|
||||
fileName = StringUtils.format("{}/domain/resp/{}PageResp.java", javaPath, className);
|
||||
}
|
||||
if (template.contains("save.java.vm")) {
|
||||
fileName = StringUtils.format("{}/domain/req/{}SaveReq.java", javaPath, className);
|
||||
}
|
||||
|
|
|
@ -23,6 +23,8 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
import ${packageName}.domain.${ClassName};
|
||||
import ${packageName}.domain.req.${ClassName}QueryReq;
|
||||
import ${packageName}.domain.model.${ClassName}QueryModel;
|
||||
import ${packageName}.domain.model.${ClassName}PageQueryModel;
|
||||
import ${packageName}.domain.resp.${ClassName}PageResp;
|
||||
import ${packageName}.domain.req.${ClassName}SaveReq;
|
||||
import ${packageName}.domain.req.${ClassName}EditReq;
|
||||
import ${packageName}.domain.model.${ClassName}SaveModel;
|
||||
|
@ -58,9 +60,9 @@ public class ${ClassName}Controller extends BaseController {
|
|||
@RequiresPermissions("${permissionPrefix}:list")
|
||||
@GetMapping("/list")
|
||||
#if($table.crud)
|
||||
public Result<DataPageResp<${ClassName}>> list(${ClassName}QueryReq ${className}QueryReq) {
|
||||
PageQueryModel<${ClassName}> pageQueryModel = ${className}Service.pageQuery(${ClassName}QueryModel.reqBuild(${className}QueryReq));
|
||||
return resultList(pageQueryModel);
|
||||
public Result<DataPageResp<${ClassName}PageResp>> list(${ClassName}QueryReq ${className}QueryReq) {
|
||||
PageQueryModel<${ClassName}PageQueryModel> pageQueryModel = ${className}Service.pageQuery(${ClassName}QueryModel.reqBuild(${className}QueryReq));
|
||||
return Result.success(DataPageResp.of(pageQueryModel).cover(${ClassName}PageResp::infoBuild));
|
||||
}
|
||||
#elseif($table.tree)
|
||||
public Result<List<${ClassName}>> list(${ClassName} ${className}) {
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
package ${packageName}.domain.req;
|
||||
|
||||
#foreach ($import in $importList)
|
||||
import ${import};
|
||||
#end
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import ${packageName}.domain.${ClassName};
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* ${functionName}分页查询返回模型
|
||||
*
|
||||
* @author ${author}
|
||||
* @date ${datetime}
|
||||
*/
|
||||
#if($table.crud)
|
||||
#set($Entity="BaseEntity")
|
||||
#elseif($table.tree)
|
||||
#set($Entity="TreeEntity")
|
||||
#end
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Schema(description = "${functionName}分页查询返回模型")
|
||||
public class ${ClassName}PageQueryModel {
|
||||
|
||||
#foreach ($column in $columns)
|
||||
#if(!$table.isSuperColumn($column.javaField))
|
||||
#if($column.isList == '1')
|
||||
/**
|
||||
* $column.columnComment
|
||||
*/
|
||||
#if($column.list)
|
||||
#set($parentheseIndex=$column.columnComment.indexOf("("))
|
||||
#if($parentheseIndex != -1)
|
||||
#set($comment=$column.columnComment.substring(0, $parentheseIndex))
|
||||
#else
|
||||
#set($comment=$column.columnComment)
|
||||
#end
|
||||
#if($column.javaType == 'Date')
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
#end
|
||||
#end
|
||||
#set($isRequired='')
|
||||
#if($column.isRequired == '1')
|
||||
#set($isRequired=', required = true')
|
||||
#end
|
||||
@Schema(name = "${column.javaField}", title = "${column.columnComment}", description = "${column.columnComment}" $isRequired)
|
||||
private $column.javaType $column.javaField;
|
||||
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
/**
|
||||
* 信息构造器
|
||||
*/
|
||||
public static ${ClassName}PageQueryModel infoBuild(${ClassName} ${className}){
|
||||
return ${ClassName}PageQueryModel.builder()
|
||||
#foreach ($column in $columns)
|
||||
#if($column.isList == '1')
|
||||
#if(!$table.isSuperColumn($column.javaField))
|
||||
#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
|
||||
#set($AttrName=$column.javaField)
|
||||
#else
|
||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||
#end
|
||||
.${column.javaField}(${className}.get${AttrName}())
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
package ${packageName}.domain.resp;
|
||||
|
||||
#foreach ($import in $importList)
|
||||
import ${import};
|
||||
#end
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import ${packageName}.domain.${ClassName};
|
||||
import ${packageName}.domain.model.${ClassName}PageQueryModel;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* ${functionName}分页接口返回结果集
|
||||
*
|
||||
* @author ${author}
|
||||
* @date ${datetime}
|
||||
*/
|
||||
#if($table.crud)
|
||||
#set($Entity="BaseEntity")
|
||||
#elseif($table.tree)
|
||||
#set($Entity="TreeEntity")
|
||||
#end
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Schema(description = "${functionName}分页接口返回结果集")
|
||||
public class ${ClassName}PageResp {
|
||||
|
||||
#foreach ($column in $columns)
|
||||
#if(!$table.isSuperColumn($column.javaField))
|
||||
#if($column.isList == '1')
|
||||
/**
|
||||
* $column.columnComment
|
||||
*/
|
||||
#if($column.list)
|
||||
#set($parentheseIndex=$column.columnComment.indexOf("("))
|
||||
#if($parentheseIndex != -1)
|
||||
#set($comment=$column.columnComment.substring(0, $parentheseIndex))
|
||||
#else
|
||||
#set($comment=$column.columnComment)
|
||||
#end
|
||||
#if($column.javaType == 'Date')
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
#end
|
||||
#end
|
||||
#set($isRequired='')
|
||||
#if($column.isRequired == '1')
|
||||
#set($isRequired=', required = true')
|
||||
#end
|
||||
@Schema(name = "${column.javaField}", title = "${column.columnComment}", description = "${column.columnComment}" $isRequired)
|
||||
private $column.javaType $column.javaField;
|
||||
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
/**
|
||||
* 信息构造器
|
||||
*/
|
||||
public static ${ClassName}PageResp infoBuild(${ClassName}PageQueryModel pageQueryModel){
|
||||
return ${ClassName}PageResp.builder()
|
||||
#foreach ($column in $columns)
|
||||
#if($column.isList == '1')
|
||||
#if(!$table.isSuperColumn($column.javaField))
|
||||
#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
|
||||
#set($AttrName=$column.javaField)
|
||||
#else
|
||||
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
|
||||
#end
|
||||
.${column.javaField}(pageQueryModel.get${AttrName}())
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
|
@ -4,6 +4,7 @@ import java.util.List;
|
|||
import com.muyu.common.core.web.page.PageQueryModel;
|
||||
import ${packageName}.domain.${ClassName};
|
||||
import ${packageName}.domain.model.${ClassName}QueryModel;
|
||||
import ${packageName}.domain.model.${ClassName}PageQueryModel;
|
||||
import ${packageName}.domain.model.${ClassName}SaveModel;
|
||||
import ${packageName}.domain.model.${ClassName}EditModel;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
@ -21,7 +22,7 @@ public interface ${ClassName}Service extends IService<${ClassName}> {
|
|||
* @param pageQueryModel ${functionName}
|
||||
* @return ${functionName}集合
|
||||
*/
|
||||
public PageQueryModel<${ClassName}> pageQuery(${ClassName}QueryModel pageQueryModel);
|
||||
public PageQueryModel<${ClassName}PageQueryModel> pageQuery(${ClassName}QueryModel pageQueryModel);
|
||||
|
||||
/**
|
||||
* 查询${functionName}列表
|
||||
|
|
|
@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
import ${packageName}.mapper.${ClassName}Mapper;
|
||||
import ${packageName}.domain.${ClassName};
|
||||
import ${packageName}.domain.model.${ClassName}QueryModel;
|
||||
import ${packageName}.domain.model.${ClassName}PageQueryModel;
|
||||
import ${packageName}.domain.model.${ClassName}SaveModel;
|
||||
import ${packageName}.domain.model.${ClassName}EditModel;
|
||||
import ${packageName}.service.${ClassName}Service;
|
||||
|
@ -33,7 +34,7 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
|
|||
* @return ${functionName}
|
||||
*/
|
||||
@Override
|
||||
public PageQueryModel<${ClassName}> pageQuery(${ClassName}QueryModel pageQueryModel) {
|
||||
public PageQueryModel<${ClassName}PageQueryModel> pageQuery(${ClassName}QueryModel pageQueryModel) {
|
||||
LambdaQueryWrapper<${ClassName}> queryWrapper = new LambdaQueryWrapper<>();
|
||||
#foreach($column in $columns)
|
||||
#set($queryType=$column.queryType)
|
||||
|
@ -58,7 +59,7 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
|
|||
queryWrapper.between(ObjectUtil.isNotNull(pageQueryModel.get$JavaField()),${ClassName}::get$JavaField, pageQueryModel.getBeginParam("$JavaField"),pageQueryModel.getEndParam("$JavaField"));
|
||||
#end #end #end
|
||||
Page<${ClassName}> page = this.page(pageQueryModel.buildPage(), queryWrapper);
|
||||
return PageQueryModel.of(page);
|
||||
return PageQueryModel.of(page).cover(${ClassName}PageQueryModel::infoBuild);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -50,16 +50,9 @@ public class SysDictDataController extends BaseController {
|
|||
@RequiresPermissions("system:dict:list")
|
||||
@PostMapping("/list")
|
||||
public Result<DataPageResp<SysDictDataListResp>> list (@RequestBody SysDictDataListReq sysDictDataListReq) {
|
||||
List<SysDictData> sysDictDataList = dictDataService.selectDictDataList(SysDictDataPageQueryModel.reqBuild(sysDictDataListReq)).getDataList();
|
||||
List<SysDictDataListResp> sysDictDataListRespList = sysDictDataList.stream().map(
|
||||
SysDictDataListResp::buildResp
|
||||
).distinct().collect(Collectors.toList());
|
||||
PageQueryModel<SysDictDataListResp> sysDictDataListRespPageQueryModel = new PageQueryModel<>();
|
||||
sysDictDataListRespPageQueryModel.setTotal(sysDictDataListRespList.size());
|
||||
sysDictDataListRespPageQueryModel.setDataList(sysDictDataListRespList);
|
||||
return Result.success(
|
||||
DataPageResp.of(sysDictDataListRespPageQueryModel)
|
||||
);
|
||||
PageQueryModel<SysDictData> pageQueryModel = dictDataService.selectDictDataList(SysDictDataPageQueryModel.reqBuild(sysDictDataListReq));
|
||||
DataPageResp.of(pageQueryModel).cover(SysDictDataListResp::buildResp);
|
||||
return Result.success(DataPageResp.of(pageQueryModel).cover(SysDictDataListResp::buildResp));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -42,7 +42,6 @@ public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDi
|
|||
lambdaQueryWrapper.like(StringUtils.isNotNull(pageQueryModel.getDictLabel()),SysDictData::getDictLabel, pageQueryModel.getDictLabel());
|
||||
lambdaQueryWrapper.eq(StringUtils.isNotNull(pageQueryModel.getStatus()),SysDictData::getStatus, pageQueryModel.getStatus());
|
||||
Page<SysDictData> sysDictDataPage = this.page(pageQueryModel.buildPage(), lambdaQueryWrapper);
|
||||
|
||||
return PageQueryModel.of(sysDictDataPage);
|
||||
}
|
||||
|
||||
|
|
|
@ -59,12 +59,7 @@ public class SysLogininforServiceImpl extends ServiceImpl<SysLogininforMapper, S
|
|||
.eq(StringUtils.isNotEmpty(pageQueryModel.getStatus()), SysLogininfor::getStatus, pageQueryModel.getStatus())
|
||||
.like(StringUtils.isNotEmpty(pageQueryModel.getUserName()), SysLogininfor::getUserName, pageQueryModel.getUserName())
|
||||
.between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime()));
|
||||
return new PageQueryModel<>(){{
|
||||
setDataList(page.getRecords().stream()
|
||||
.map(SysLogininforListModel::buildSysLogininforListModel)
|
||||
.toList());
|
||||
setTotal(page.getTotal());
|
||||
}};
|
||||
return PageQueryModel.of(page).cover(SysLogininforListModel::buildSysLogininforListModel);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue