package cc.mrbird.febs.ai.service.impl; import cc.mrbird.febs.ai.entity.*; import cc.mrbird.febs.ai.enumerates.AiCommonEnum; import cc.mrbird.febs.ai.enumerates.ProductCategoryLevelEnum; import cc.mrbird.febs.ai.mapper.AiAgentCategoryMapper; import cc.mrbird.febs.ai.mapper.AiAgentMapper; import cc.mrbird.febs.ai.mapper.AiAgentStartQuestionMapper; import cc.mrbird.febs.ai.req.agent.AiAgentInitDto; import cc.mrbird.febs.ai.req.agent.ApiAgentCategoryAllDto; import cc.mrbird.febs.ai.req.agent.ApiAgentPageDto; import cc.mrbird.febs.ai.res.agent.AiAgentInitVo; import cc.mrbird.febs.ai.res.agent.ApiAgentCategoryVo; import cc.mrbird.febs.ai.res.agent.ApiAgentVo; import cc.mrbird.febs.ai.res.product.ApiProductVo; import cc.mrbird.febs.ai.res.productCategory.ApiProductCategoryVo; import cc.mrbird.febs.ai.service.AiAgentService; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.exception.FebsException; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; 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; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class AiAgentServiceImpl extends ServiceImpl implements AiAgentService { private final AiAgentMapper aiAgentMapper; private final AiAgentCategoryMapper aiAgentCategoryMapper; private final AiAgentStartQuestionMapper aiAgentStartQuestionMapper; @Override public FebsResponse allCategoryList(ApiAgentCategoryAllDto dto) { List list = new ArrayList<>(); LambdaQueryWrapper query = Wrappers.lambdaQuery(AiAgentCategory.class); if (StrUtil.isEmpty(dto.getCompanyId())){ dto.setCompanyId(AiCommonEnum.COMPANY_ID.getPrompt()); } query.eq(AiAgentCategory::getCompanyId, dto.getCompanyId()); query.eq(AiAgentCategory::getState, 1); query.orderByAsc(AiAgentCategory::getSort); List listByQuery = aiAgentCategoryMapper.selectList(query); if (CollUtil.isNotEmpty(listByQuery)){ for (AiAgentCategory entity : listByQuery){ ApiAgentCategoryVo vo = new ApiAgentCategoryVo(); vo.setId(entity.getId()); vo.setName(entity.getName()); list.add(vo); } } return new FebsResponse().success().data(list); } @Override public FebsResponse agentList(ApiAgentPageDto dto) { // 创建分页对象,传入当前页和每页大小 Page page = new Page<>(dto.getPageNow(), dto.getPageSize()); Page pageListByQuery = aiAgentMapper.getPageListByQuery(page, dto); return new FebsResponse().success().data(pageListByQuery); } @Override public FebsResponse initAgent(AiAgentInitDto dto) { String id = dto.getId(); AiAgent aiAgent = aiAgentMapper.selectById(id); if (aiAgent == null) { throw new FebsException("智能体异常"); } AiAgentInitVo vo = new AiAgentInitVo(); //将chatWebPlugin复制给apiInitPluginVo BeanUtil.copyProperties(aiAgent, vo); List aiAgentStartQuestions = aiAgentStartQuestionMapper.selectList( Wrappers.lambdaQuery(AiAgentStartQuestion.class) .select(AiAgentStartQuestion::getTitle) .eq(AiAgentStartQuestion::getAgentId, id) ); if (CollUtil.isNotEmpty(aiAgentStartQuestions)){ List items = new ArrayList<>(); for (AiAgentStartQuestion aiAgentStartQuestion : aiAgentStartQuestions) { items.add(aiAgentStartQuestion.getTitle()); } vo.setItems( items); } return new FebsResponse().success().data(vo); } }