| | |
| | | package cc.mrbird.febs.ai.service.impl; |
| | | |
| | | import cc.mrbird.febs.ai.entity.AiCompany; |
| | | import cc.mrbird.febs.ai.entity.AiKnowledgeFile; |
| | | import cc.mrbird.febs.ai.entity.AiProduct; |
| | | import cc.mrbird.febs.ai.entity.AiProductCategory; |
| | | import cc.mrbird.febs.ai.mapper.AiKnowledgeFileMapper; |
| | | import cc.mrbird.febs.ai.service.AiCompanyService; |
| | | import cc.mrbird.febs.ai.service.AiKnowledgeFileService; |
| | | import cc.mrbird.febs.ai.util.KnowledgeBaseUtil; |
| | | import cc.mrbird.febs.ai.util.UUID; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | 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 org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Slf4j |
| | | @Service |
| | |
| | | public class AiKnowledgeFileServiceImpl extends ServiceImpl<AiKnowledgeFileMapper, AiKnowledgeFile> implements AiKnowledgeFileService { |
| | | |
| | | private final AiKnowledgeFileMapper aiKnowledgeFileMapper; |
| | | private final AiCompanyService aiCompanyService; |
| | | |
| | | @Override |
| | | public IPage<AiKnowledgeFile> listInPage(AiKnowledgeFile dto, QueryRequest request) { |
| | | Page<AiKnowledgeFile> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | LambdaQueryWrapper<AiKnowledgeFile> query = Wrappers.lambdaQuery(AiKnowledgeFile.class); |
| | | if (StrUtil.isNotEmpty(dto.getCompanyId())){ |
| | | query.eq(AiKnowledgeFile::getCompanyId, dto.getCompanyId()); |
| | | } |
| | | query.orderByDesc(AiKnowledgeFile::getCompanyId); |
| | | Page<AiKnowledgeFile> pages = aiKnowledgeFileMapper.selectPage(page, query); |
| | | return pages; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public FebsResponse add(AiKnowledgeFile dto) { |
| | | AiKnowledgeFile entity = new AiKnowledgeFile(); |
| | | entity.setId(UUID.getSimpleUUIDString()); |
| | | entity.setCompanyId(dto.getCompanyId()); |
| | | entity.setName(dto.getName()); |
| | | entity.setSavePath(dto.getSavePath()); |
| | | entity.setCreatedTime(new Date()); |
| | | this.save(entity); |
| | | |
| | | String categoryId = null; |
| | | String knowledgeId = null; |
| | | if (StrUtil.isNotEmpty(entity.getCompanyId())){ |
| | | AiCompany aiCompany = aiCompanyService.getById(entity.getCompanyId()); |
| | | if (StrUtil.isNotEmpty(aiCompany.getCategoryId())){ |
| | | categoryId = aiCompany.getCategoryId(); |
| | | knowledgeId = aiCompany.getKnowledgeId(); |
| | | } |
| | | }else{ |
| | | categoryId = KnowledgeBaseUtil.DEFAULT_CATEGORY_ID; |
| | | knowledgeId = KnowledgeBaseUtil.DEFAULT_KNOWLEDGE_ID; |
| | | } |
| | | |
| | | String fileId = KnowledgeBaseUtil.uploadFileToAppData(entity.getSavePath(), categoryId); |
| | | if (StrUtil.isBlank(fileId)){ |
| | | throw new FebsException("初始化应用数据失败"); |
| | | } |
| | | |
| | | String jobId = KnowledgeBaseUtil.updateKnowledgeBase(fileId, knowledgeId, null); |
| | | aiKnowledgeFileMapper.update(null, |
| | | Wrappers.lambdaUpdate(AiKnowledgeFile.class) |
| | | .set(AiKnowledgeFile::getFileId, fileId) |
| | | .set(AiKnowledgeFile::getJobId, jobId) |
| | | .eq(AiKnowledgeFile::getId, entity.getId()) |
| | | ); |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse update(AiKnowledgeFile dto) { |
| | | return null; |
| | | } |
| | | } |