data;
+
+ /**
+ * 分页元信息;非分页接口不显示此字段
+ */
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private Page page;
+
+ /**
+ * 构建分页结果(MyBatis-Plus {@link IPage})。
+ *
+ * data 为当前页记录列表;page 提供分页元信息。
+ */
public static PageResult success(IPage page) {
PageResult result = new PageResult<>();
result.setCode(ResultCode.SUCCESS.getCode());
-
- Data data = new Data<>();
- data.setList(page.getRecords());
- data.setTotal(page.getTotal());
-
- result.setData(data);
result.setMsg(ResultCode.SUCCESS.getMsg());
+
+ List records =
+ (page == null || page.getRecords() == null)
+ ? Collections.emptyList()
+ : page.getRecords();
+ result.setData(records);
+
+ Page pageMeta = new Page();
+ pageMeta.setPageNum(page != null ? page.getCurrent() : 1L);
+ pageMeta.setPageSize(page != null ? page.getSize() : 0L);
+ pageMeta.setTotal(page != null ? page.getTotal() : 0L);
+ result.setPage(pageMeta);
+
return result;
}
- @lombok.Data
- public static class Data {
+ /**
+ * 构建列表结果(无分页)。
+ *
+ * page 置为 null,用于与分页返回区分。
+ */
+ public static PageResult success(List list) {
+ PageResult result = new PageResult<>();
+ result.setCode(ResultCode.SUCCESS.getCode());
+ result.setMsg(ResultCode.SUCCESS.getMsg());
+ result.setData(list != null ? list : Collections.emptyList());
+ result.setPage(null);
+ return result;
+ }
- private List list;
+ @Data
+ public static class Page {
+
+ private long pageNum;
+
+ private long pageSize;
private long total;
-
}
}
diff --git a/src/main/java/com/youlai/boot/core/web/Result.java b/src/main/java/com/youlai/boot/core/web/Result.java
index 6e4e6ac6..528c57bc 100644
--- a/src/main/java/com/youlai/boot/core/web/Result.java
+++ b/src/main/java/com/youlai/boot/core/web/Result.java
@@ -8,7 +8,7 @@ import java.io.Serializable;
/**
* 统一响应结构体
*
- * @author Ray
+ * @author Ray.Hao
* @since 2022/1/30
**/
@Data
@@ -76,7 +76,4 @@ public class Result implements Serializable {
return result;
}
- public static boolean isSuccess(Result> result) {
- return result != null && ResultCode.SUCCESS.getCode().equals(result.getCode());
- }
}
diff --git a/src/main/java/com/youlai/boot/platform/ai/controller/AiAssistantController.java b/src/main/java/com/youlai/boot/platform/ai/controller/AiAssistantController.java
index 1e8d6a1b..040db52c 100644
--- a/src/main/java/com/youlai/boot/platform/ai/controller/AiAssistantController.java
+++ b/src/main/java/com/youlai/boot/platform/ai/controller/AiAssistantController.java
@@ -6,7 +6,7 @@ import com.youlai.boot.core.web.Result;
import com.youlai.boot.platform.ai.model.dto.AiExecuteRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDTO;
-import com.youlai.boot.platform.ai.model.query.AiAssistantPageQuery;
+import com.youlai.boot.platform.ai.model.query.AiAssistantQuery;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVO;
import com.youlai.boot.platform.ai.service.AiAssistantRecordService;
import io.swagger.v3.oas.annotations.Operation;
@@ -76,7 +76,7 @@ public class AiAssistantController {
@Operation(summary = "获取 AI 命令记录分页列表")
@GetMapping("/records")
- public PageResult getRecordPage(AiAssistantPageQuery queryParams) {
+ public PageResult getRecordPage(AiAssistantQuery queryParams) {
IPage page = aiAssistantRecordService.getRecordPage(queryParams);
return PageResult.success(page);
}
diff --git a/src/main/java/com/youlai/boot/platform/ai/mapper/AiAssistantRecordMapper.java b/src/main/java/com/youlai/boot/platform/ai/mapper/AiAssistantRecordMapper.java
index 140b1487..ca6668c5 100644
--- a/src/main/java/com/youlai/boot/platform/ai/mapper/AiAssistantRecordMapper.java
+++ b/src/main/java/com/youlai/boot/platform/ai/mapper/AiAssistantRecordMapper.java
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.platform.ai.model.entity.AiAssistantRecord;
-import com.youlai.boot.platform.ai.model.query.AiAssistantPageQuery;
+import com.youlai.boot.platform.ai.model.query.AiAssistantQuery;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVO;
import org.apache.ibatis.annotations.Mapper;
@@ -18,5 +18,5 @@ public interface AiAssistantRecordMapper extends BaseMapper {
* @param queryParams 查询参数
* @return 分页结果
*/
- IPage getRecordPage(Page page, AiAssistantPageQuery queryParams);
+ IPage getRecordPage(Page page, AiAssistantQuery queryParams);
}
diff --git a/src/main/java/com/youlai/boot/platform/ai/model/query/AiAssistantPageQuery.java b/src/main/java/com/youlai/boot/platform/ai/model/query/AiAssistantPageQuery.java
index 4d5cc552..4fc4083a 100644
--- a/src/main/java/com/youlai/boot/platform/ai/model/query/AiAssistantPageQuery.java
+++ b/src/main/java/com/youlai/boot/platform/ai/model/query/AiAssistantPageQuery.java
@@ -1,6 +1,6 @@
package com.youlai.boot.platform.ai.model.query;
-import com.youlai.boot.common.base.BasePageQuery;
+import com.youlai.boot.common.base.BaseQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
@@ -16,7 +16,7 @@ import java.util.List;
@Schema(description = "AI 助手行为记录分页查询对象")
@Getter
@Setter
-public class AiAssistantPageQuery extends BasePageQuery {
+public class AiAssistantPageQuery extends BaseQuery {
@Schema(description = "关键字(原始命令/函数名称/用户名)")
private String keywords;
diff --git a/src/main/java/com/youlai/boot/platform/ai/model/query/AiAssistantQuery.java b/src/main/java/com/youlai/boot/platform/ai/model/query/AiAssistantQuery.java
new file mode 100644
index 00000000..03966ea7
--- /dev/null
+++ b/src/main/java/com/youlai/boot/platform/ai/model/query/AiAssistantQuery.java
@@ -0,0 +1,44 @@
+package com.youlai.boot.platform.ai.model.query;
+
+import com.youlai.boot.common.base.BaseQuery;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * AI 助手行为记录查询对象
+ *
+ * @author Ray.Hao
+ * @since 3.0.0
+ */
+@Schema(description = "AI 助手行为记录查询对象")
+@Getter
+@Setter
+public class AiAssistantQuery extends BaseQuery {
+
+ @Schema(description = "关键字(原始命令/函数名称/用户名)")
+ private String keywords;
+
+ @Schema(description = "执行状态(0-待执行, 1-成功, -1-失败)")
+ private Integer executeStatus;
+
+ @Schema(description = "用户ID")
+ private Long userId;
+
+ @Schema(description = "解析状态(0-失败, 1-成功)")
+ private Integer parseStatus;
+
+ @Schema(description = "创建时间范围")
+ private List createTime;
+
+ @Schema(description = "函数名称")
+ private String functionName;
+
+ @Schema(description = "AI供应商")
+ private String aiProvider;
+
+ @Schema(description = "AI模型")
+ private String aiModel;
+}
diff --git a/src/main/java/com/youlai/boot/platform/ai/service/AiAssistantRecordService.java b/src/main/java/com/youlai/boot/platform/ai/service/AiAssistantRecordService.java
index 03861aee..e542025c 100644
--- a/src/main/java/com/youlai/boot/platform/ai/service/AiAssistantRecordService.java
+++ b/src/main/java/com/youlai/boot/platform/ai/service/AiAssistantRecordService.java
@@ -6,7 +6,7 @@ import com.youlai.boot.platform.ai.model.dto.AiExecuteRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDTO;
import com.youlai.boot.platform.ai.model.entity.AiAssistantRecord;
-import com.youlai.boot.platform.ai.model.query.AiAssistantPageQuery;
+import com.youlai.boot.platform.ai.model.query.AiAssistantQuery;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVO;
import jakarta.servlet.http.HttpServletRequest;
@@ -47,7 +47,7 @@ public interface AiAssistantRecordService extends IService {
* @param queryParams 查询参数
* @return 分页列表
*/
- IPage getRecordPage(AiAssistantPageQuery queryParams);
+ IPage getRecordPage(AiAssistantQuery queryParams);
/**
* 删除 AI 助手行为记录。
diff --git a/src/main/java/com/youlai/boot/platform/ai/service/impl/AiAssistantRecordServiceImpl.java b/src/main/java/com/youlai/boot/platform/ai/service/impl/AiAssistantRecordServiceImpl.java
index 3835916b..66b0a690 100644
--- a/src/main/java/com/youlai/boot/platform/ai/service/impl/AiAssistantRecordServiceImpl.java
+++ b/src/main/java/com/youlai/boot/platform/ai/service/impl/AiAssistantRecordServiceImpl.java
@@ -15,7 +15,7 @@ import com.youlai.boot.platform.ai.model.dto.AiFunctionCallDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseRequestDTO;
import com.youlai.boot.platform.ai.model.dto.AiParseResponseDTO;
import com.youlai.boot.platform.ai.model.entity.AiAssistantRecord;
-import com.youlai.boot.platform.ai.model.query.AiAssistantPageQuery;
+import com.youlai.boot.platform.ai.model.query.AiAssistantQuery;
import com.youlai.boot.platform.ai.model.vo.AiAssistantRecordVO;
import com.youlai.boot.platform.ai.service.AiAssistantRecordService;
import com.youlai.boot.platform.ai.tools.UserTools;
@@ -294,13 +294,16 @@ public class AiAssistantRecordServiceImpl
}
@Override
- public IPage getRecordPage(AiAssistantPageQuery queryParams) {
+ public IPage getRecordPage(AiAssistantQuery queryParams) {
Page page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize());
return this.baseMapper.getRecordPage(page, queryParams);
}
@Override
public boolean deleteRecords(List ids) {
+ if (ids == null || ids.isEmpty()) {
+ return true;
+ }
return this.removeByIds(ids);
}
diff --git a/src/main/java/com/youlai/boot/platform/codegen/controller/CodegenController.java b/src/main/java/com/youlai/boot/platform/codegen/controller/CodegenController.java
index 5485dced..de890da4 100644
--- a/src/main/java/com/youlai/boot/platform/codegen/controller/CodegenController.java
+++ b/src/main/java/com/youlai/boot/platform/codegen/controller/CodegenController.java
@@ -7,7 +7,7 @@ import com.youlai.boot.config.property.CodegenProperties;
import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.platform.codegen.service.CodegenService;
import com.youlai.boot.platform.codegen.model.form.GenConfigForm;
-import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
+import com.youlai.boot.platform.codegen.model.query.TableQuery;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVO;
import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import com.youlai.boot.common.annotation.Log;
@@ -44,10 +44,10 @@ public class CodegenController {
private final CodegenProperties codegenProperties;
@Operation(summary = "获取数据表分页列表")
- @GetMapping("/table/page")
+ @GetMapping("/table")
@Log(value = "代码生成分页列表", module = LogModuleEnum.OTHER)
public PageResult getTablePage(
- TablePageQuery queryParams
+ TableQuery queryParams
) {
Page result = codegenService.getTablePage(queryParams);
return PageResult.success(result);
diff --git a/src/main/java/com/youlai/boot/platform/codegen/mapper/DatabaseMapper.java b/src/main/java/com/youlai/boot/platform/codegen/mapper/DatabaseMapper.java
index 3d742c63..c62c79c2 100644
--- a/src/main/java/com/youlai/boot/platform/codegen/mapper/DatabaseMapper.java
+++ b/src/main/java/com/youlai/boot/platform/codegen/mapper/DatabaseMapper.java
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.platform.codegen.model.bo.ColumnMetaData;
import com.youlai.boot.platform.codegen.model.bo.TableMetaData;
-import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
+import com.youlai.boot.platform.codegen.model.query.TableQuery;
import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import org.apache.ibatis.annotations.Mapper;
@@ -27,7 +27,7 @@ public interface DatabaseMapper extends BaseMapper {
* @param queryParams
* @return
*/
- Page getTablePage(Page page, TablePageQuery queryParams);
+ Page getTablePage(Page page, TableQuery queryParams);
/**
* 获取表字段列表
diff --git a/src/main/java/com/youlai/boot/platform/codegen/model/query/TablePageQuery.java b/src/main/java/com/youlai/boot/platform/codegen/model/query/TablePageQuery.java
index 4213560d..b9895385 100644
--- a/src/main/java/com/youlai/boot/platform/codegen/model/query/TablePageQuery.java
+++ b/src/main/java/com/youlai/boot/platform/codegen/model/query/TablePageQuery.java
@@ -1,7 +1,7 @@
package com.youlai.boot.platform.codegen.model.query;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.youlai.boot.common.base.BasePageQuery;
+import com.youlai.boot.common.base.BaseQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
@@ -17,7 +17,7 @@ import java.util.List;
@Schema(description = "数据表分页查询对象")
@Getter
@Setter
-public class TablePageQuery extends BasePageQuery {
+public class TablePageQuery extends BaseQuery {
@Schema(description="关键字(表名)")
private String keywords;
diff --git a/src/main/java/com/youlai/boot/platform/codegen/model/query/TableQuery.java b/src/main/java/com/youlai/boot/platform/codegen/model/query/TableQuery.java
new file mode 100644
index 00000000..443efab6
--- /dev/null
+++ b/src/main/java/com/youlai/boot/platform/codegen/model/query/TableQuery.java
@@ -0,0 +1,31 @@
+package com.youlai.boot.platform.codegen.model.query;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.youlai.boot.common.base.BaseQuery;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 数据表查询对象
+ *
+ * @author Ray
+ * @since 2.10.0
+ */
+@Schema(description = "数据表查询对象")
+@Getter
+@Setter
+public class TableQuery extends BaseQuery {
+
+ @Schema(description="关键字(表名)")
+ private String keywords;
+
+ /**
+ * 排除的表名
+ */
+ @JsonIgnore
+ private List excludeTables;
+
+}
diff --git a/src/main/java/com/youlai/boot/platform/codegen/service/CodegenService.java b/src/main/java/com/youlai/boot/platform/codegen/service/CodegenService.java
index 32c020d1..aa1f4a58 100644
--- a/src/main/java/com/youlai/boot/platform/codegen/service/CodegenService.java
+++ b/src/main/java/com/youlai/boot/platform/codegen/service/CodegenService.java
@@ -1,7 +1,7 @@
package com.youlai.boot.platform.codegen.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
+import com.youlai.boot.platform.codegen.model.query.TableQuery;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVO;
import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
@@ -21,7 +21,7 @@ public interface CodegenService {
* @param queryParams 查询参数
* @return
*/
- Page getTablePage(TablePageQuery queryParams);
+ Page getTablePage(TableQuery queryParams);
/**
* 获取预览生成代码
diff --git a/src/main/java/com/youlai/boot/platform/codegen/service/impl/CodegenServiceImpl.java b/src/main/java/com/youlai/boot/platform/codegen/service/impl/CodegenServiceImpl.java
index 8722ec86..20309ff5 100644
--- a/src/main/java/com/youlai/boot/platform/codegen/service/impl/CodegenServiceImpl.java
+++ b/src/main/java/com/youlai/boot/platform/codegen/service/impl/CodegenServiceImpl.java
@@ -20,7 +20,7 @@ import com.youlai.boot.core.exception.BusinessException;
import com.youlai.boot.platform.codegen.mapper.DatabaseMapper;
import com.youlai.boot.platform.codegen.model.entity.GenTable;
import com.youlai.boot.platform.codegen.model.entity.GenTableColumn;
-import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
+import com.youlai.boot.platform.codegen.model.query.TableQuery;
import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVO;
import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import lombok.RequiredArgsConstructor;
@@ -61,7 +61,7 @@ public class CodegenServiceImpl implements CodegenService {
* @param queryParams 查询参数
* @return 分页结果
*/
- public Page getTablePage(TablePageQuery queryParams) {
+ public Page getTablePage(TableQuery queryParams) {
Page page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize());
// 设置排除的表
List excludeTables = codegenProperties.getExcludeTables();
diff --git a/src/main/java/com/youlai/boot/system/controller/ConfigController.java b/src/main/java/com/youlai/boot/system/controller/ConfigController.java
index a7df99ed..280a4e32 100644
--- a/src/main/java/com/youlai/boot/system/controller/ConfigController.java
+++ b/src/main/java/com/youlai/boot/system/controller/ConfigController.java
@@ -6,7 +6,7 @@ import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.core.web.Result;
import com.youlai.boot.common.annotation.Log;
import com.youlai.boot.system.model.form.ConfigForm;
-import com.youlai.boot.system.model.query.ConfigPageQuery;
+import com.youlai.boot.system.model.query.ConfigQuery;
import com.youlai.boot.system.model.vo.ConfigVO;
import com.youlai.boot.system.service.ConfigService;
import io.swagger.v3.oas.annotations.Parameter;
@@ -35,11 +35,11 @@ public class ConfigController {
private final ConfigService configService;
@Operation(summary = "系统配置分页列表")
- @GetMapping("/page")
+ @GetMapping
@PreAuthorize("@ss.hasPerm('sys:config:list')")
@Log( value = "系统配置分页列表",module = LogModuleEnum.SETTING)
- public PageResult page(@ParameterObject ConfigPageQuery configPageQuery) {
- IPage result = configService.page(configPageQuery);
+ public PageResult page(@ParameterObject ConfigQuery queryParams) {
+ IPage result = configService.page(queryParams);
return PageResult.success(result);
}
diff --git a/src/main/java/com/youlai/boot/system/controller/DictController.java b/src/main/java/com/youlai/boot/system/controller/DictController.java
index ea0d2881..28f0b1aa 100644
--- a/src/main/java/com/youlai/boot/system/controller/DictController.java
+++ b/src/main/java/com/youlai/boot/system/controller/DictController.java
@@ -6,8 +6,8 @@ import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.core.web.Result;
import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.system.model.form.DictItemForm;
-import com.youlai.boot.system.model.query.DictItemPageQuery;
-import com.youlai.boot.system.model.query.DictPageQuery;
+import com.youlai.boot.system.model.query.DictItemQuery;
+import com.youlai.boot.system.model.query.DictQuery;
import com.youlai.boot.system.model.vo.DictItemOptionVO;
import com.youlai.boot.system.model.vo.DictItemPageVO;
import com.youlai.boot.system.model.vo.DictPageVO;
@@ -48,10 +48,10 @@ public class DictController {
// 字典相关接口
//---------------------------------------------------
@Operation(summary = "字典分页列表")
- @GetMapping("/page")
+ @GetMapping
@Log( value = "字典分页列表",module = LogModuleEnum.DICT)
public PageResult getDictPage(
- DictPageQuery queryParams
+ DictQuery queryParams
) {
Page result = dictService.getDictPage(queryParams);
return PageResult.success(result);
@@ -59,7 +59,7 @@ public class DictController {
@Operation(summary = "字典列表")
- @GetMapping
+ @GetMapping("/options")
public Result>> getDictList() {
List