1. 添加对话接口

jinan_dev
xueqingkun 5 months ago
parent 120129d55d
commit 2389e70ee2

@ -1,16 +1,19 @@
package com.supervision.police.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.common.domain.R;
import com.supervision.police.service.ChatService;
import com.supervision.police.vo.ChatReqVO;
import com.supervision.police.vo.ChatResVO;
import com.supervision.police.vo.ConversationResVo;
import com.supervision.utils.UserUtil;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@RestController
@ -27,4 +30,34 @@ public class ChatController {
return R.ok(chatResVO);
}
/**
*
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("/conversation/list")
public R<IPage<ConversationResVo>> queryUserConversationList(@RequestParam(defaultValue = "1") @Parameter(name = "pageNum",description = "页码") Integer pageNum,
@RequestParam(defaultValue = "10") @Parameter(name = "pageSize",description = "每页数量") Integer pageSize){
IPage<ConversationResVo> conversationResVoIPage = chatService.queryUserConversationList(UserUtil.getUser().getId(),pageNum, pageSize);
return R.ok(conversationResVoIPage);
}
@GetMapping("/conversation/infoList")
public R<IPage<ChatResVO>> queryConversationInfoList(@RequestParam String conversationId,
@RequestParam(defaultValue = "1") @Parameter(name = "pageNum",description = "页码") Integer pageNum,
@RequestParam(defaultValue = "10") @Parameter(name = "pageSize",description = "每页数量") Integer pageSize){
IPage<ChatResVO> chatResVOIPage = chatService.queryConversationInfoList(conversationId, pageNum, pageSize);
return R.ok(chatResVOIPage);
}
@PostMapping("/conversation/delete")
public R<Boolean> deleteConversation(@RequestBody List<String> conversationIdList) {
chatService.deleteConversation(conversationIdList);
return R.ok(true);
}
}

@ -5,6 +5,8 @@ import com.supervision.police.vo.ChatReqVO;
import com.supervision.police.vo.ChatResVO;
import com.supervision.police.vo.ConversationResVo;
import java.util.List;
public interface ChatService {
ChatResVO chat(ChatReqVO chatReqVO);
ChatResVO chatNew(ChatReqVO chatReqVO);
@ -14,4 +16,7 @@ public interface ChatService {
IPage<ConversationResVo> queryUserConversationList(String userId, int page, int size);
void deleteConversation(List<String> conversationIdList);
}

@ -1,5 +1,6 @@
package com.supervision.police.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
@ -201,6 +202,20 @@ public class ChatServiceImpl implements ChatService {
return conversationService.queryUserConversationList(userId, new Page<>(page,size));
}
@Override
@Transactional(rollbackFor = Exception.class, transactionManager = "dataSourceTransactionManager")
public void deleteConversation(List<String> conversationIdList) {
if (CollUtil.isEmpty(conversationIdList)){
return;
}
for (String conversationId : conversationIdList) {
boolean success = conversationService.removeById(conversationId);
if (success){
conversationQaService.lambdaUpdate().eq(ConversationQa::getConversationId, conversationId).remove();
}
}
}
/**
*
*

@ -1,5 +1,7 @@
package com.supervision.police.vo;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.supervision.chat.client.dto.chat.ChatResDTO;
import com.supervision.police.domain.ConversationQa;
import com.supervision.police.vo.dify.KnowledgeBaseSegmentVO;
@ -47,6 +49,9 @@ public class ChatResVO {
this.setId(conversationQa.getId());
this.setQuestion(conversationQa.getQuestion());
this.setAnswer(conversationQa.getAnswer());
if (StrUtil.isNotEmpty(conversationQa.getAnswer())){
this.answwerMap = JSONUtil.toBean(conversationQa.getAnswer(), Map.class);
}
this.setType(conversationQa.getType());
this.setQuestionTime(conversationQa.getQuestionTime());
this.setIntentType(conversationQa.getIntentType());

Loading…
Cancel
Save