diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PagedResponse.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PagedResponse.java new file mode 100644 index 0000000..1fd8ceb --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PagedResponse.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.common.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; + +import java.util.Collections; +import java.util.List; + +@Schema(description = "分页结果") +@Data +@Builder +public class PagedResponse { + + @Schema(description = "总条数") + private long total; + + @Schema(description = "当前页码,从 1 开始") + private int current; + + @Schema(description = "分页大小") + private int size; + + @Schema(description = "当前页数据") + private List records; + + @Schema(description = "总页数") + private int pages; + + public static PagedResponse of(long total, int current, int size, List records) { + int pages = size <= 0 ? 0 : (int) ((total + size - 1) / size); + return PagedResponse.builder() + .total(total) + .current(current) + .size(size) + .pages(pages) + .records(records == null ? Collections.emptyList() : records) + .build(); + } +} diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/Algorithm.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/Algorithm.java index 589b8d7..574faf2 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/Algorithm.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/common/enums/Algorithm.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import java.util.Objects; +import java.util.Set; /** * @author chenjiale @@ -57,4 +58,8 @@ public enum Algorithm { } return ERROR; } + + public static Set getAlgorithmIds() { + return Set.of(PCA.code, ANN.code); + } } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java index 503d459..5fffd5c 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/ModelController.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.alert.controller.admin.model; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PagedResponse; import cn.iocoder.yudao.module.alert.controller.admin.model.vo.*; import cn.iocoder.yudao.module.alert.param.AnnTestParam; import cn.iocoder.yudao.module.alert.param.AnnTrainParam; @@ -28,8 +29,8 @@ public class ModelController { @GetMapping("/card/list") - public CommonResult> getModelList(ModelSelectQuery query) { - List modelList = modelService.getModelList(query); + public CommonResult> getModelList(ModelSelectQuery query) { + PagedResponse modelList = modelService.getModelList(query); return CommonResult.success(modelList); } diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSelectQuery.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSelectQuery.java index d15c65b..0413fba 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSelectQuery.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/controller/admin/model/vo/ModelSelectQuery.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.alert.controller.admin.model.vo; +import cn.iocoder.yudao.framework.common.pojo.PageParam; import lombok.Data; +import lombok.EqualsAndHashCode; /** * @author chenjiale @@ -8,7 +10,8 @@ import lombok.Data; * @date 2023-08-19 13:25 */ @Data -public class ModelSelectQuery { +@EqualsAndHashCode(callSuper = true) +public class ModelSelectQuery extends PageParam { /** * 机组id */ diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java index 332e21c..93a92da 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/ModelService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.alert.service.model; +import cn.iocoder.yudao.framework.common.pojo.PagedResponse; import cn.iocoder.yudao.module.alert.controller.admin.model.vo.*; import cn.iocoder.yudao.module.alert.param.AnnTestParam; import cn.iocoder.yudao.module.alert.param.ModelTestParam; @@ -21,7 +22,7 @@ public interface ModelService { * @param query 请求参数 * @return model 列表 */ - List getModelList(ModelSelectQuery query); + PagedResponse getModelList(ModelSelectQuery query); /** * 获取模型信息 diff --git a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java index 8c362e0..a3afeeb 100644 --- a/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java +++ b/yudao-module-alert/yudao-module-alert-biz/src/main/java/cn/iocoder/yudao/module/alert/service/model/impl/ModelServiceImpl.java @@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.alert.service.model.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PagedResponse; import cn.iocoder.yudao.framework.common.util.http.HttpUtils; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; @@ -29,6 +31,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.core.type.TypeReference; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -62,7 +65,7 @@ public class ModelServiceImpl implements ModelService { private String algorithmHost; @Override - public List getModelList(ModelSelectQuery query) { + public PagedResponse getModelList(ModelSelectQuery query) { Integer systemId = query.getSystemId(); String modelName = query.getName(); Integer status = query.getStatus(); @@ -81,9 +84,25 @@ public class ModelServiceImpl implements ModelService { .eq(Objects.nonNull(trash), ModelCfg::getTrash, trash) .eq(ModelCfg::getVisible, ModelVisible.VISIBLE.code) .in(CollUtil.isNotEmpty(systems), ModelCfg::getSystemId, systems) + .in(ModelCfg::getAlgorithmId, Algorithm.getAlgorithmIds()) .like(StringUtils.hasLength(modelName), ModelCfg::getModelName, modelName); - List list = modelCfgService.list(queryWrapper); - return list.stream().map(modelCfg -> ModelSimpleVO.builder() + if (Objects.equals(query.getPageSize(), PageParam.PAGE_SIZE_NONE)) { + List list = modelCfgService.list(queryWrapper); + List records = list.stream().map(modelCfg -> ModelSimpleVO.builder() + .id(modelCfg.getId()) + .name(modelCfg.getModelName() == null ? null : modelCfg.getModelName().trim()) + .creator(modelCfg.getCreator()) + .createTime(modelCfg.getCreateTime()) + .version(modelCfg.getCurVersion()) + .status(modelCfg.getStatus()) + .algorithm(Algorithm.of(modelCfg.getAlgorithmId()).toString()) + .build()) + .collect(Collectors.toList()); + return PagedResponse.of(list.size(), query.getPageNo(), query.getPageSize(), records); + } + + Page page = modelCfgService.page(new Page<>(query.getPageNo(), query.getPageSize()), queryWrapper); + List list = page.getRecords().stream().map(modelCfg -> ModelSimpleVO.builder() .id(modelCfg.getId()) .name(modelCfg.getModelName() == null ? null : modelCfg.getModelName().trim()) .creator(modelCfg.getCreator()) @@ -93,6 +112,7 @@ public class ModelServiceImpl implements ModelService { .algorithm(Algorithm.of(modelCfg.getAlgorithmId()).toString()) .build()) .collect(Collectors.toList()); + return PagedResponse.of(page.getTotal(), query.getPageNo(), query.getPageSize(), list); } @Override