|
@@ -5,8 +5,10 @@ import cn.cslg.pas.common.model.dify.confessionSession.*;
|
|
|
import cn.cslg.pas.common.utils.CacheUtils;
|
|
|
import cn.cslg.pas.common.utils.FormatUtil;
|
|
|
import cn.cslg.pas.common.utils.LoginUtils;
|
|
|
+import cn.cslg.pas.domain.dify.AssoConfessionSessionFile;
|
|
|
import cn.cslg.pas.exception.ExceptionEnum;
|
|
|
import cn.cslg.pas.exception.XiaoShiException;
|
|
|
+import cn.cslg.pas.mapper.dify.AssoConfessionSessionFileMapper;
|
|
|
import cn.cslg.pas.service.common.FileManagerService;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -14,9 +16,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import cn.cslg.pas.domain.dify.ConfessionSession;
|
|
|
import cn.cslg.pas.mapper.dify.ConfessionSessionMapper;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
@@ -34,6 +39,7 @@ public class ConfessionSessionService extends ServiceImpl<ConfessionSessionMappe
|
|
|
private final CacheUtils cacheUtils;
|
|
|
private final LoginUtils loginUtils;
|
|
|
private final FileManagerService fileManagerService;
|
|
|
+ private final AssoConfessionSessionFileMapper assoConfessionSessionFileMapper;
|
|
|
|
|
|
public Integer addConfessionSession(AddConfessionSessionDTO addConfessionSessionDTO) {
|
|
|
String guid = addConfessionSessionDTO.getFileGuid();
|
|
@@ -55,6 +61,7 @@ public class ConfessionSessionService extends ServiceImpl<ConfessionSessionMappe
|
|
|
confessionSession.setConversationName(name);
|
|
|
String id = loginUtils.getId().toString();
|
|
|
confessionSession.setCreateId(id);
|
|
|
+ confessionSession.setType(addConfessionSessionDTO.getType());
|
|
|
confessionSession.insert();
|
|
|
return confessionSession.getId();
|
|
|
}
|
|
@@ -98,6 +105,10 @@ public class ConfessionSessionService extends ServiceImpl<ConfessionSessionMappe
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
+
|
|
|
+ List<Integer> confessionSessionIds = confessionSessions.stream().map(ConfessionSession::getId).collect(Collectors.toList());
|
|
|
+ List<QueryAssoConfessionSessionFileDTO> sessionFileDTOS = this.queryAssoConfessionSessionFileDTOS(confessionSessionIds);
|
|
|
+
|
|
|
for (ConfessionSession confessionSession : confessionSessions) {
|
|
|
QueryConfessionSessionVO queryConfessionSessionVO = new QueryConfessionSessionVO();
|
|
|
BeanUtils.copyProperties(confessionSession, queryConfessionSessionVO);
|
|
@@ -106,11 +117,51 @@ public class ConfessionSessionService extends ServiceImpl<ConfessionSessionMappe
|
|
|
SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(guid)).findFirst().orElse(null);
|
|
|
queryConfessionSessionVO.setSystemFile(systemFile);
|
|
|
}
|
|
|
+ if (!CollectionUtils.isEmpty(sessionFileDTOS)) {
|
|
|
+ QueryAssoConfessionSessionFileDTO fileDTO = sessionFileDTOS.stream().filter(i -> i.getConfessionSessionId().equals(confessionSession.getId())).findFirst().orElse(null);
|
|
|
+ if (fileDTO != null) {
|
|
|
+ queryConfessionSessionVO.setAssoSystemFile(fileDTO.getSystemFile());
|
|
|
+ }
|
|
|
+ }
|
|
|
queryConfessionSessionVOS.add(queryConfessionSessionVO);
|
|
|
}
|
|
|
return queryConfessionSessionVOS;
|
|
|
}
|
|
|
|
|
|
+ public List<QueryAssoConfessionSessionFileDTO> queryAssoConfessionSessionFileDTOS(List<Integer> list) {
|
|
|
+ //装载会话关联文件信息
|
|
|
+ List<QueryAssoConfessionSessionFileDTO> assoConfessionSessionFileDTOS = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(list)) {
|
|
|
+ List<AssoConfessionSessionFile> assoConfessionSessionFiles = assoConfessionSessionFileMapper.selectList(new LambdaQueryWrapper<AssoConfessionSessionFile>()
|
|
|
+ .in(AssoConfessionSessionFile::getConfessionSessionId, list));
|
|
|
+ if (!CollectionUtils.isEmpty(assoConfessionSessionFiles)) {
|
|
|
+ List<String> fileGuids = assoConfessionSessionFiles.stream().map(AssoConfessionSessionFile::getGuid)
|
|
|
+ .filter(StringUtils::isNotEmpty).collect(Collectors.toList());
|
|
|
+ List<SystemFile> systemFiles = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ if (!CollectionUtils.isEmpty(fileGuids)) {
|
|
|
+ String res = fileManagerService.getSystemFileFromFMS(fileGuids);
|
|
|
+ systemFiles = JSONObject.parseArray(res, SystemFile.class);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ for (AssoConfessionSessionFile sessionFile : assoConfessionSessionFiles) {
|
|
|
+ QueryAssoConfessionSessionFileDTO fileDTO = new QueryAssoConfessionSessionFileDTO();
|
|
|
+ BeanUtils.copyProperties(sessionFile, fileDTO);
|
|
|
+ fileDTO.setAssoConfessionSessionFileId(sessionFile.getId());
|
|
|
+ if (!CollectionUtils.isEmpty(systemFiles)) {
|
|
|
+ SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(sessionFile.getGuid())).findFirst().orElse(null);
|
|
|
+ fileDTO.setSystemFile(systemFile);
|
|
|
+ }
|
|
|
+ assoConfessionSessionFileDTOS.add(fileDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return assoConfessionSessionFileDTOS;
|
|
|
+ }
|
|
|
+
|
|
|
public List<Integer> deleteConfessionSessions(DeleteConfessionSessionDTO deleteConfessionSessionDTO) {
|
|
|
List<Integer> ids = deleteConfessionSessionDTO.getConfessionSessionIds();
|
|
|
this.removeBatchByIds(ids);
|
|
@@ -128,6 +179,14 @@ public class ConfessionSessionService extends ServiceImpl<ConfessionSessionMappe
|
|
|
confessionSession.insert();
|
|
|
return confessionSession.getId();
|
|
|
}
|
|
|
+
|
|
|
+ public Integer addConfessionSessionFile(AddConfessionSessionFileDTO addConfessionSessionFileDTO) {
|
|
|
+ AssoConfessionSessionFile assoConfessionSessionFile = new AssoConfessionSessionFile();
|
|
|
+ assoConfessionSessionFile.setConfessionSessionId(addConfessionSessionFileDTO.getConfessionSessionId());
|
|
|
+ assoConfessionSessionFile.setGuid(addConfessionSessionFileDTO.getGuid());
|
|
|
+ assoConfessionSessionFile.insert();
|
|
|
+ return assoConfessionSessionFile.getId();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|