feat: MessageController 新增 listByConversation、versions、deleteVersion
This commit is contained in:
@@ -8,6 +8,7 @@ import com.emotion.dto.request.MessageSearchRequest;
|
||||
import com.emotion.dto.request.MessageRecentRequest;
|
||||
import com.emotion.dto.response.MessageResponse;
|
||||
import com.emotion.service.MessageService;
|
||||
import com.emotion.service.ScriptMessageService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -17,6 +18,7 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 消息控制器
|
||||
@@ -33,6 +35,9 @@ public class MessageController {
|
||||
@Autowired
|
||||
private MessageService messageService;
|
||||
|
||||
@Autowired
|
||||
private ScriptMessageService scriptMessageService;
|
||||
|
||||
/**
|
||||
* 创建消息
|
||||
*/
|
||||
@@ -86,6 +91,23 @@ public class MessageController {
|
||||
return Result.success(pageResult);
|
||||
}
|
||||
|
||||
@Operation(summary = "获取会话消息列表", description = "获取指定会话下的完整消息历史。")
|
||||
@GetMapping(value = "/listByConversation")
|
||||
public Result<List<MessageResponse>> listByConversation(
|
||||
@Parameter(description = "会话 ID") @RequestParam String conversationId,
|
||||
@RequestParam(required = false, defaultValue = "false") Boolean includeVersions) {
|
||||
List<MessageResponse> messages = scriptMessageService.listByConversation(conversationId, includeVersions);
|
||||
return Result.success(messages);
|
||||
}
|
||||
|
||||
@Operation(summary = "获取消息版本链", description = "获取指定剧本消息的所有历史版本。")
|
||||
@GetMapping(value = "/versions")
|
||||
public Result<List<MessageResponse>> getVersions(
|
||||
@Parameter(description = "消息 ID") @RequestParam String messageId) {
|
||||
List<MessageResponse> versions = scriptMessageService.getVersions(messageId);
|
||||
return Result.success(versions);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新消息
|
||||
*/
|
||||
@@ -102,10 +124,10 @@ public class MessageController {
|
||||
/**
|
||||
* 删除消息
|
||||
*/
|
||||
@Operation(summary = "删除消息", description = "删除指定的消息记录。")
|
||||
@DeleteMapping(value = "/delete")
|
||||
public Result<Void> delete(@Parameter(description = "消息 ID") @RequestParam String id) {
|
||||
boolean deleted = messageService.deleteMessage(id);
|
||||
@Operation(summary = "删除版本消息", description = "删除指定的剧本版本消息,不能删除当前生效版本。")
|
||||
@DeleteMapping(value = "/version")
|
||||
public Result<Void> deleteVersion(@Parameter(description = "消息 ID") @RequestParam String id) {
|
||||
boolean deleted = scriptMessageService.deleteVersion(id);
|
||||
if (!deleted) {
|
||||
return Result.error("删除失败");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user