初始化项目
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
package ${table.packageName}.${subPackageName};
|
||||
|
||||
import xtools.boot.api.model.dto.Result;
|
||||
import xtools.boot.api.model.dto.page.PageReq;
|
||||
import xtools.boot.api.model.dto.page.PageResp;
|
||||
import xtools.boot.api.model.dto.req.IdListReq;
|
||||
import ${table.packageName}.model.dto.req.${table.entityName}AddReq;
|
||||
import ${table.packageName}.model.dto.req.${table.entityName}PageReq;
|
||||
import ${table.packageName}.model.dto.req.${table.entityName}UpdateReq;
|
||||
import ${table.packageName}.model.dto.resp.${table.entityName}Resp;
|
||||
#if($api)
|
||||
import ${table.packageName}.api.${table.entityName}Api;
|
||||
#end
|
||||
#if($exportExcel || $importExcel)
|
||||
import ${table.packageName}.model.dto.excel.${table.entityName}Excel;
|
||||
#end
|
||||
#if($exportExcel)
|
||||
import java.util.List;
|
||||
#end
|
||||
|
||||
/**
|
||||
* <p>Title : ${table.entityName}Service</p>
|
||||
* <p>Description : $!{table.businessName} Service</p>
|
||||
* <p>Company : org.xujun</p>
|
||||
*
|
||||
* @author : ${table.author}
|
||||
* @version : ${version}
|
||||
* @date : ${date}
|
||||
*/
|
||||
public interface ${table.entityName}Service #if($api)extends ${table.entityName}Api #end{
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*
|
||||
* @param pageReq 分页请求
|
||||
* @return 分页结果
|
||||
*/
|
||||
Result<PageResp<${table.entityName}Resp>> page(PageReq<${table.entityName}PageReq> pageReq);
|
||||
|
||||
/**
|
||||
* 根据 ID 查询
|
||||
*
|
||||
* @param id ID
|
||||
* @return 结果
|
||||
*/
|
||||
Result<${table.entityName}Resp> getById(Long id);
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param req 添加请求
|
||||
* @return 添加结果
|
||||
*/
|
||||
Result<Boolean> add(${table.entityName}AddReq req);
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param req 修改请求
|
||||
* @return 修改结果
|
||||
*/
|
||||
Result<Boolean> update(${table.entityName}UpdateReq req);
|
||||
|
||||
/**
|
||||
* 根据 ID 删除
|
||||
*
|
||||
* @param req ID 集合
|
||||
* @return 删除结果
|
||||
*/
|
||||
Result<Boolean> delById(IdListReq req);
|
||||
|
||||
#if($exportExcel)
|
||||
/**
|
||||
* 导出 Excel
|
||||
*
|
||||
* @param req 请求参数
|
||||
* @return Excel 数据
|
||||
*/
|
||||
List<${table.entityName}Excel> exportExcel(${table.entityName}PageReq req);
|
||||
|
||||
#end
|
||||
#if($importExcel)
|
||||
/**
|
||||
* 导入 Excel
|
||||
*
|
||||
* @param dataList Excel 数据
|
||||
*/
|
||||
void importExcel(List<${table.entityName}Excel> dataList);
|
||||
|
||||
#end
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package ${table.packageName}.${subPackageName};
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import ${table.packageName}.mapper.${table.entityName}Mapper;
|
||||
import ${table.packageName}.model.entity.${table.entityName};
|
||||
|
||||
/**
|
||||
* <p>Title : ${table.entityName}BaseService</p>
|
||||
* <p>Description : $!{table.businessName} BaseService</p>
|
||||
* <p>Company : org.xujun</p>
|
||||
*
|
||||
* @author : ${table.author}
|
||||
* @version : ${version}
|
||||
* @date : ${date}
|
||||
*/
|
||||
@Component
|
||||
public class ${table.entityName}BaseService extends ServiceImpl<${table.entityName}Mapper, ${table.entityName}> {
|
||||
}
|
||||
@@ -0,0 +1,255 @@
|
||||
package ${table.packageName}.${subPackageName};
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import xtools.boot.api.exection.BizError;
|
||||
import xtools.boot.api.exection.BizWarning;
|
||||
import xtools.boot.api.model.dto.Result;
|
||||
import xtools.boot.api.model.dto.page.PageReq;
|
||||
import xtools.boot.api.model.dto.page.PageResp;
|
||||
import xtools.boot.api.model.dto.req.IdListReq;
|
||||
import xtools.boot.db.mybatisplus.utils.QueryUtils;
|
||||
#if($importMap.hasStringUtils)
|
||||
import xtools.core.StringUtils;
|
||||
#end
|
||||
import ${table.packageName}.convert.${table.entityName}Convert;
|
||||
import ${table.packageName}.model.dto.req.${table.entityName}AddReq;
|
||||
import ${table.packageName}.model.dto.req.${table.entityName}PageReq;
|
||||
import ${table.packageName}.model.dto.req.${table.entityName}UpdateReq;
|
||||
import ${table.packageName}.model.dto.resp.${table.entityName}Resp;
|
||||
import ${table.packageName}.model.entity.${table.entityName};
|
||||
#if($exportExcel || $importExcel)
|
||||
import ${table.packageName}.model.dto.excel.${table.entityName}Excel;
|
||||
#end
|
||||
import ${table.packageName}.service.${table.entityName}Service;
|
||||
import ${table.packageName}.service.base.${table.entityName}BaseService;
|
||||
import java.util.Objects;
|
||||
#if($exportExcel)
|
||||
import java.util.List;
|
||||
#end
|
||||
|
||||
/**
|
||||
* <p>Title : ${table.entityName}ServiceImpl</p>
|
||||
* <p>Description : $!{table.businessName} ServiceImpl</p>
|
||||
* <p>Company : org.xujun</p>
|
||||
*
|
||||
* @author : ${table.author}
|
||||
* @version : ${version}
|
||||
* @date : ${date}
|
||||
*/
|
||||
@Primary
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ${table.entityName}ServiceImpl implements ${table.entityName}Service {
|
||||
|
||||
private final ${table.entityName}BaseService ${table.propName}BaseService;
|
||||
|
||||
private final ${table.entityName}Convert ${table.propName}Convert;
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*
|
||||
* @param pageReq 分页请求
|
||||
* @return 分页结果
|
||||
*/
|
||||
@Override
|
||||
public Result<PageResp<${table.entityName}Resp>> page(PageReq<${table.entityName}PageReq> pageReq) {
|
||||
// 分页查询
|
||||
Page<${table.entityName}> page = getPageData(pageReq.getCurrentPage(), pageReq.getPageSize(), pageReq.getQuery());
|
||||
// 分装结果
|
||||
PageResp<${table.entityName}Resp> pageResp = new PageResp<>(pageReq, page.getTotal(), ${table.propName}Convert.entityToRespList(page.getRecords()));
|
||||
return Result.ok(pageResp);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 ID 查询
|
||||
*
|
||||
* @param id ID
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public Result<${table.entityName}Resp> getById(Long id) {
|
||||
${table.entityName} data = ${table.propName}BaseService.getById(id);
|
||||
return Result.ok(${table.propName}Convert.entityToResp(data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param req 添加请求
|
||||
* @return 添加结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result<Boolean> add(${table.entityName}AddReq req) {
|
||||
${table.entityName} entity = ${table.propName}Convert.addReqToEntity(req);
|
||||
if (Objects.nonNull(existsEntity(entity))) {
|
||||
throw new BizWarning("数据已存在");
|
||||
}
|
||||
return Result.ok(${table.propName}BaseService.save(entity));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param req 修改请求
|
||||
* @return 修改结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result<Boolean> update(${table.entityName}UpdateReq req) {
|
||||
${table.entityName} entity = ${table.propName}Convert.updateReqToEntity(req);
|
||||
if (Objects.nonNull(existsEntity(entity))) {
|
||||
throw new BizWarning("数据已存在");
|
||||
}
|
||||
return Result.ok(${table.propName}BaseService.updateById(entity));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 ID 删除
|
||||
*
|
||||
* @param req ID 集合
|
||||
* @return 删除结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result<Boolean> delById(IdListReq req) {
|
||||
boolean removed = ${table.propName}BaseService.removeByIds(req.getIdList());
|
||||
if (!removed) {
|
||||
throw new BizError("删除失败");
|
||||
}
|
||||
return Result.ok(true);
|
||||
}
|
||||
|
||||
#if($exportExcel)
|
||||
/**
|
||||
* 导出 Excel
|
||||
*
|
||||
* @param req 请求参数
|
||||
* @return Excel 数据
|
||||
*/
|
||||
@Override
|
||||
public List<${table.entityName}Excel> exportExcel(${table.entityName}PageReq req) {
|
||||
// 创建查询条件
|
||||
LambdaQueryWrapper<${table.entityName}> query = new LambdaQueryWrapper<>();
|
||||
// 查询字段
|
||||
query.select(
|
||||
#foreach($column in ${columnList})
|
||||
#if($foreach.index.equals(0))
|
||||
${table.entityName}::get${column.funName}
|
||||
#else
|
||||
, ${table.entityName}::get${column.funName}
|
||||
#end
|
||||
#end
|
||||
);
|
||||
// 设置查询条件
|
||||
setQueryWrapper(query, req);
|
||||
// 排序
|
||||
query.orderByDesc(${table.entityName}::getGmtCreate);
|
||||
List<${table.entityName}> dataList = ${table.propName}BaseService.list(query);
|
||||
return dataList.stream().map(item -> ${table.propName}Convert.entityToExcel(item)).toList();
|
||||
}
|
||||
|
||||
#end
|
||||
#if($importExcel)
|
||||
/**
|
||||
* 导入 Excel
|
||||
*
|
||||
* @param dataList Excel 数据
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void importExcel(List<${table.entityName}Excel> dataList) {
|
||||
for (${table.entityName}Excel excel : dataList) {
|
||||
${table.entityName} item = ${table.propName}Convert.excelToEntity(excel);
|
||||
${table.entityName} dbItem = existsEntity(item);
|
||||
if (Objects.isNull(dbItem)) {
|
||||
// 新增
|
||||
${table.propName}BaseService.save(item);
|
||||
} else {
|
||||
// 修改
|
||||
item.setId(dbItem.getId());
|
||||
${table.propName}BaseService.updateById(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#end
|
||||
/**
|
||||
* 获取分页数据
|
||||
*
|
||||
* @param currentPage 当前页
|
||||
* @param pageSize 每页数量
|
||||
* @param req 请求参数
|
||||
* @return 分页数据
|
||||
*/
|
||||
private Page<${table.entityName}> getPageData(Integer currentPage, Integer pageSize, ${table.entityName}PageReq req) {
|
||||
// 创建查询条件
|
||||
LambdaQueryWrapper<${table.entityName}> query = new LambdaQueryWrapper<>();
|
||||
// 查询字段
|
||||
query.select(
|
||||
#foreach($column in ${columnList})
|
||||
#if($foreach.index.equals(0))
|
||||
${table.entityName}::get${column.funName}
|
||||
#else
|
||||
, ${table.entityName}::get${column.funName}
|
||||
#end
|
||||
#end
|
||||
);
|
||||
// 设置查询条件
|
||||
setQueryWrapper(query, req);
|
||||
// 排序
|
||||
query.orderByDesc(${table.entityName}::getGmtCreate);
|
||||
return ${table.propName}BaseService.page(QueryUtils.getPage(currentPage, pageSize), query);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置查询条件
|
||||
*
|
||||
* @param query 查询条件
|
||||
* @param req 请求参数
|
||||
*/
|
||||
private void setQueryWrapper(LambdaQueryWrapper<${table.entityName}> query, ${table.entityName}PageReq req) {
|
||||
if (Objects.isNull(req)) {
|
||||
return;
|
||||
}
|
||||
// 查询条件
|
||||
#foreach($column in ${columnList})
|
||||
#if(!$column.fieldName.equals("gmtCreate") && !$column.fieldName.equals("gmtModified"))
|
||||
#if($column.queryType.equals(1))
|
||||
query.eq(Objects.nonNull(req.get${column.funName}()), ${table.entityName}::get${column.funName}, req.get${column.funName}());
|
||||
#end
|
||||
#if($column.queryType.equals(2))
|
||||
query.like(StringUtils.isNotBlank(req.get${column.funName}()), ${table.entityName}::get${column.funName}, req.get${column.funName}());
|
||||
#end
|
||||
#if($column.queryType.equals(12))
|
||||
QueryUtils.addTimeRange(query, req.get${column.funName}Range(), ${table.entityName}::get${column.funName});
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
QueryUtils.addTimeRange(query, req.getGmtCreateRange(), ${table.entityName}::getGmtCreate);
|
||||
QueryUtils.addTimeRange(query, req.getGmtModifiedRange(), ${table.entityName}::getGmtModified);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断实体是否存在
|
||||
*
|
||||
* @param entity 实体
|
||||
* @return 是否存在
|
||||
*/
|
||||
private ${table.entityName} existsEntity(${table.entityName} entity) {
|
||||
// 创建查询条件
|
||||
LambdaQueryWrapper<${table.entityName}> query = new LambdaQueryWrapper<>();
|
||||
// 查询字段
|
||||
query.select(${table.entityName}::getId);
|
||||
// 排除当前数据
|
||||
query.ne(Objects.nonNull(entity.getId()), ${table.entityName}::getId, entity.getId());
|
||||
// 校验数据时候存在的条件
|
||||
return ${table.propName}BaseService.getOne(query);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user