|
@@ -6,8 +6,10 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|
|
import com.storlead.framework.common.result.Result;
|
|
import com.storlead.framework.common.result.Result;
|
|
|
import com.storlead.knowledge.config.DifyProperties;
|
|
import com.storlead.knowledge.config.DifyProperties;
|
|
|
import com.storlead.knowledge.entity.AiMessageEntity;
|
|
import com.storlead.knowledge.entity.AiMessageEntity;
|
|
|
|
|
+import com.storlead.knowledge.entity.AiMessageReviewEntity;
|
|
|
import com.storlead.knowledge.pojo.dto.ChatDTO;
|
|
import com.storlead.knowledge.pojo.dto.ChatDTO;
|
|
|
import com.storlead.knowledge.pojo.dto.QueryPageDTO;
|
|
import com.storlead.knowledge.pojo.dto.QueryPageDTO;
|
|
|
|
|
+import com.storlead.knowledge.service.AiMessageReviewService;
|
|
|
import com.storlead.knowledge.service.AiMessageService;
|
|
import com.storlead.knowledge.service.AiMessageService;
|
|
|
import com.storlead.knowledge.utils.HttpService;
|
|
import com.storlead.knowledge.utils.HttpService;
|
|
|
import com.storlead.knowledge.utils.JacksonHolder;
|
|
import com.storlead.knowledge.utils.JacksonHolder;
|
|
@@ -40,6 +42,9 @@ public class ChatController {
|
|
|
@Resource
|
|
@Resource
|
|
|
private AiMessageService aiMessageService;
|
|
private AiMessageService aiMessageService;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private AiMessageReviewService aiMessageReviewService;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 创建聊天 blocking模式
|
|
* 创建聊天 blocking模式
|
|
|
* @param chatDTO
|
|
* @param chatDTO
|
|
@@ -99,9 +104,62 @@ public class ChatController {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@GetMapping("messages")
|
|
@GetMapping("messages")
|
|
|
- @ApiOperation("获取聊天记录(支持关键字搜索和分页)")
|
|
|
|
|
|
|
+ @ApiOperation("获取聊天记录(支持关键字搜索和分页,含好评/差评总数)")
|
|
|
public Result<Object> listMessages(QueryPageDTO page) {
|
|
public Result<Object> listMessages(QueryPageDTO page) {
|
|
|
- return Result.ok(aiMessageService.pageQuery(page));
|
|
|
|
|
|
|
+ return Result.ok(aiMessageService.pageQueryWithReview(page));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @GetMapping("message/{id}")
|
|
|
|
|
+ @ApiOperation("根据ID获取单条聊天记录")
|
|
|
|
|
+ public Result<Object> getMessage(@PathVariable Long id) {
|
|
|
|
|
+ AiMessageEntity entity = aiMessageService.getById(id);
|
|
|
|
|
+ if (entity == null) {
|
|
|
|
|
+ return Result.error("聊天记录不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result.ok(entity);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @PutMapping("message")
|
|
|
|
|
+ @ApiOperation("更新单条聊天记录")
|
|
|
|
|
+ public Result<Object> updateMessage(@RequestBody AiMessageEntity entity) {
|
|
|
|
|
+ if (entity.getId() == null) {
|
|
|
|
|
+ return Result.error("ID不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ boolean success = aiMessageService.update(entity);
|
|
|
|
|
+ if (!success) {
|
|
|
|
|
+ return Result.error("更新失败,聊天记录不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result.ok("更新成功");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @GetMapping("message/{id}/review")
|
|
|
|
|
+ @ApiOperation("根据聊天消息ID获取评价记录")
|
|
|
|
|
+ public Result<Object> getReview(@PathVariable Long id) {
|
|
|
|
|
+ AiMessageReviewEntity entity = aiMessageReviewService.getByAiMessageId(id);
|
|
|
|
|
+ if (entity == null) {
|
|
|
|
|
+ return Result.ok(new AiMessageReviewEntity().setAiMessageId(id).setAgree(0).setDisagree(0));
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result.ok(entity);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @PostMapping("message/review")
|
|
|
|
|
+ @ApiOperation("添加或更新评价记录(点赞/差评)")
|
|
|
|
|
+ public Result<Object> saveOrUpdateReview(@RequestBody AiMessageReviewEntity entity) {
|
|
|
|
|
+ if (entity.getAiMessageId() == null) {
|
|
|
|
|
+ return Result.error("aiMessageId不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ // 确保 agree 和 disagree 不为 null
|
|
|
|
|
+ if (entity.getAgree() == null) {
|
|
|
|
|
+ entity.setAgree(0);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (entity.getDisagree() == null) {
|
|
|
|
|
+ entity.setDisagree(0);
|
|
|
|
|
+ }
|
|
|
|
|
+ boolean success = aiMessageReviewService.saveOrUpdateReview(entity);
|
|
|
|
|
+ if (!success) {
|
|
|
|
|
+ return Result.error("操作失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ return Result.ok("操作成功");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@GetMapping("history")
|
|
@GetMapping("history")
|