feat(common): 新增基础模块及AI项目初始化功能
- 新增基础响应类BaseResponse,实现统一返回格式 - 定义自定义异常BusinessException及全局异常处理机制 - 构建错误码枚举ErrorCode,包含常见HTTP及业务错误码 - 实现返回工具类ResultUtils提供成功与失败响应构建方法 - 添加分页查询支持PageQuery和TableDataInfo数据结构 - 配置MinIO客户端及服务类MinioFileService实现文件上传、下载、删除功能 - 实现AI项目初始化控制器ProjectInitController,支持文本、文件及URL输入生成项目结构化数据 - 定义项目初始化相关DTO,包括请求参数和复杂的结果结构体 - 补充项目开发环境配置文件,集成Spring AI、PostgreSQL和MinIO配置 - 项目主启动类YlhpAiProjectManagerApplication添加启动入口 - 更新Maven依赖,集成Spring AI、MyBatis Plus、MinIO及AWS S3客户端依赖 - 规范代码包结构,新增多模块package-info.java文件进行模块说明文档编写
This commit is contained in:
81
src/main/java/cn.yinlihupo/common/page/PageQuery.java
Normal file
81
src/main/java/cn.yinlihupo/common/page/PageQuery.java
Normal file
@@ -0,0 +1,81 @@
|
||||
package cn.yinlihupo.common.page;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 分页查询实体类
|
||||
*/
|
||||
@Data
|
||||
public class PageQuery implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 分页大小
|
||||
*/
|
||||
private Integer pageSize;
|
||||
|
||||
/**
|
||||
* 当前页数
|
||||
*/
|
||||
private Integer pageNum;
|
||||
|
||||
/**
|
||||
* 排序列
|
||||
*/
|
||||
private String orderByColumn;
|
||||
|
||||
/**
|
||||
* 排序的方向desc或者asc
|
||||
*/
|
||||
private String isAsc;
|
||||
|
||||
/**
|
||||
* 当前记录起始索引 默认值
|
||||
*/
|
||||
public static final int DEFAULT_PAGE_NUM = 1;
|
||||
|
||||
/**
|
||||
* 每页显示记录数 默认值 默认查全部
|
||||
*/
|
||||
public static final int DEFAULT_PAGE_SIZE = 10;
|
||||
|
||||
public <T> Page<T> build() {
|
||||
Integer pageNum = this.pageNum == null ? DEFAULT_PAGE_NUM : this.pageNum;
|
||||
Integer pageSize = this.pageSize == null ? DEFAULT_PAGE_SIZE : this.pageSize;
|
||||
if (pageNum <= 0) {
|
||||
pageNum = DEFAULT_PAGE_NUM;
|
||||
}
|
||||
return new Page<>(pageNum, pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建排序
|
||||
*/
|
||||
public List<OrderItem> buildOrderItem() {
|
||||
if (orderByColumn == null || orderByColumn.isEmpty() || isAsc == null || isAsc.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
List<OrderItem> list = new ArrayList<>();
|
||||
String[] orderByArr = orderByColumn.split(",");
|
||||
String[] isAscArr = isAsc.split(",");
|
||||
|
||||
for (int i = 0; i < orderByArr.length; i++) {
|
||||
String orderByStr = orderByArr[i].trim();
|
||||
String isAscStr = isAscArr.length == 1 ? isAscArr[0].trim() : isAscArr[i].trim();
|
||||
if ("asc".equalsIgnoreCase(isAscStr)) {
|
||||
list.add(OrderItem.asc(orderByStr));
|
||||
} else if ("desc".equalsIgnoreCase(isAscStr)) {
|
||||
list.add(OrderItem.desc(orderByStr));
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
76
src/main/java/cn.yinlihupo/common/page/TableDataInfo.java
Normal file
76
src/main/java/cn.yinlihupo/common/page/TableDataInfo.java
Normal file
@@ -0,0 +1,76 @@
|
||||
package cn.yinlihupo.common.page;
|
||||
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 表格分页数据对象
|
||||
*/
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class TableDataInfo<T> implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 总记录数
|
||||
*/
|
||||
private long total;
|
||||
|
||||
/**
|
||||
* 列表数据
|
||||
*/
|
||||
private List<T> rows;
|
||||
|
||||
/**
|
||||
* 消息状态码
|
||||
*/
|
||||
private int code;
|
||||
|
||||
/**
|
||||
* 消息内容
|
||||
*/
|
||||
private String msg;
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param list 列表数据
|
||||
* @param total 总记录数
|
||||
*/
|
||||
public TableDataInfo(List<T> list, long total) {
|
||||
this.rows = list;
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
public static <T> TableDataInfo<T> build(IPage<T> page) {
|
||||
TableDataInfo<T> rspData = new TableDataInfo<>();
|
||||
rspData.setCode(HttpStatus.HTTP_OK);
|
||||
rspData.setMsg("查询成功");
|
||||
rspData.setRows(page.getRecords());
|
||||
rspData.setTotal(page.getTotal());
|
||||
return rspData;
|
||||
}
|
||||
|
||||
public static <T> TableDataInfo<T> build(List<T> list) {
|
||||
TableDataInfo<T> rspData = new TableDataInfo<>();
|
||||
rspData.setCode(HttpStatus.HTTP_OK);
|
||||
rspData.setMsg("查询成功");
|
||||
rspData.setRows(list);
|
||||
rspData.setTotal(list.size());
|
||||
return rspData;
|
||||
}
|
||||
|
||||
public static <T> TableDataInfo<T> build() {
|
||||
TableDataInfo<T> rspData = new TableDataInfo<>();
|
||||
rspData.setCode(HttpStatus.HTTP_OK);
|
||||
rspData.setMsg("查询成功");
|
||||
return rspData;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user