18586361686
2025-05-22 3cc3e04ca406d2d00052d81036ad2f7d73b19d15
aiflowy-modules/aiflowy-module-ai/src/main/java/tech/aiflowy/ai/service/impl/AiPluginServiceImpl.java
@@ -1,14 +1,19 @@
package tech.aiflowy.ai.service.impl;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import tech.aiflowy.ai.entity.AiPlugin;
import tech.aiflowy.ai.entity.AiPluginCategoryRelation;
import tech.aiflowy.ai.mapper.AiPluginCategoryRelationMapper;
import tech.aiflowy.ai.mapper.AiPluginMapper;
import tech.aiflowy.ai.service.AiPluginService;
import org.springframework.stereotype.Service;
import tech.aiflowy.common.domain.Result;
import javax.annotation.Resource;
import java.math.BigInteger;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -23,6 +28,9 @@
    @Resource
    AiPluginMapper aiPluginMapper;
    @Resource
    AiPluginCategoryRelationMapper aiPluginCategoryRelationMapper;
    @Override
    public Result savePlugin(AiPlugin aiPlugin) {
@@ -68,7 +76,26 @@
    }
    @Override
    public void pageByCategory(Long pageNumber, Long pageSize, int category) {
    public Result pageByCategory(Long pageNumber, Long pageSize, int category) {
        // 通过分类查询插件
        QueryWrapper queryWrapper = QueryWrapper.create().select("plugin_id")
                .from("tb_ai_plugin_category_relation")
                .where("category_id = ? ", category);
        // 分页查询该分类中的插件
        Page<BigInteger> pagePluginIds = aiPluginCategoryRelationMapper.paginateAs(new Page<>(pageNumber, pageSize), queryWrapper, BigInteger.class);
        Page<AiPluginCategoryRelation> paginateCategories =  aiPluginCategoryRelationMapper.paginate(pageNumber, pageSize, queryWrapper);
        List<AiPlugin> aiPlugins = Collections.emptyList();
        if (paginateCategories.getRecords().isEmpty()){
            return Result.success(new Page<>(aiPlugins, pageNumber, pageSize, paginateCategories.getTotalRow()));
        }
        List<BigInteger> pluginIds = pagePluginIds.getRecords();
        // 查询对应的插件信息
        QueryWrapper queryPluginWrapper = QueryWrapper.create().select("*")
                .from("tb_ai_plugin")
                .in("id", pluginIds);
        aiPlugins = aiPluginMapper.selectListByQuery(queryPluginWrapper);
        Page<AiPlugin> aiPluginPage = new Page<>(aiPlugins, pageNumber, pageSize, paginateCategories.getTotalRow());
        return Result.success(aiPluginPage);
    }