Administrator
5 days ago 48bfa5a490da8433419d19a03f710233636a4ed3
feat(yinhe): 实现系统代理列表分页功能

- 添加 ApiProductVo 导入以支持产品相关功能
- 引入 MyBatis Plus 分页插件支持
- 将原有的列表查询逻辑替换为分页查询实现
- 新增 YHSysAgentMapper 分页查询方法接口
- 创建 YHSysAgentMapper.xml 映射文件实现分页 SQL 查询
- 优化查询条件处理和结果封装逻辑
1 files added
2 files modified
59 ■■■■■ changed files
src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java 27 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/YHSysAgentMapper.xml 25 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentMapper.java
@@ -1,7 +1,14 @@
package cc.mrbird.febs.yinhe.mapper;
import cc.mrbird.febs.yinhe.entity.YHSysAgent;
import cc.mrbird.febs.yinhe.req.YHSysAgentDto;
import cc.mrbird.febs.yinhe.res.YHSysAgentVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
public interface YHSysAgentMapper extends BaseMapper<YHSysAgent> {
    Page<YHSysAgentVo> getPageListByQuery(Page<YHSysAgentVo> page, @Param("record")YHSysAgentDto dto);
}
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.yinhe.service.impl;
import cc.mrbird.febs.ai.res.product.ApiProductVo;
import cc.mrbird.febs.ai.strategy.LlmStrategyFactory;
import cc.mrbird.febs.ai.strategy.enumerates.LlmStrategyEnum;
import cc.mrbird.febs.ai.utils.UUID;
@@ -22,6 +23,7 @@
import com.alibaba.dashscope.common.Role;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -196,27 +198,10 @@
    @Override
    public FebsResponse agentSysList(YHSysAgentDto dto) {
        ArrayList<YHSysAgentVo> vos = new ArrayList<>();
        LambdaQueryWrapper<YHSysAgent> query = Wrappers.lambdaQuery(YHSysAgent.class);
        query.eq(YHSysAgent::getState,1);
        if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){
            query.eq(YHSysAgent::getAgentCategoryId,dto.getAgentCategoryId());
        }
        query.orderByDesc(YHSysAgent::getCreateTime);
        List<YHSysAgent> list = yhSysAgentMapper.selectList(query);
        if (CollUtil.isNotEmpty(list)){
            for (YHSysAgent entity : list) {
                YHSysAgentVo vo = new YHSysAgentVo();
                vo.setId(entity.getId());
                vo.setName(entity.getName());
                vo.setDescription(entity.getDescription());
                vo.setIconImg(entity.getIconImg());
                vos.add(vo);
            }
        }
        return new FebsResponse().success().data(vos);
        // 创建分页对象,传入当前页和每页大小
        Page<YHSysAgentVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
        Page<YHSysAgentVo> pageListByQuery = yhSysAgentMapper.getPageListByQuery(page, dto);
        return new FebsResponse().success().data(pageListByQuery);
    }
    @Override
src/main/resources/mapper/modules/YHSysAgentMapper.xml
New file
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cc.mrbird.febs.yinhe.mapper.YHSysAgentMapper">
    <select id="getPageListByQuery" resultType="cc.mrbird.febs.yinhe.res.YHSysAgentVo">
        select
        a.id as id,
        a.name as name,
        a.icon_img as iconImg,
        a.description as description
        from sys_agent a
        <where>
            a.state = 1
            <if test="record != null">
                <if test="record.agentCategoryId != null and record.agentCategoryId != ''">
                    and a.agent_category_id = #{record.agentCategoryId}
                </if>
            </if>
        </where>
        order by a.create_time desc
    </select>
</mapper>