Commit fe63bda4c7afc96dabe9da560777b31089b7c984

Authored by cherishsince
1 parent e7a3f47d

【增加】清空 Chat 对话

yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/chat/AiChatConversationController.java
@@ -69,6 +69,13 @@ public class AiChatConversationController { @@ -69,6 +69,13 @@ public class AiChatConversationController {
69 return success(true); 69 return success(true);
70 } 70 }
71 71
  72 + @DeleteMapping("/delete-my-all-except-pinned")
  73 + @Operation(summary = "删除所有对话(置顶除外)")
  74 + @Parameter(name = "id", required = true, description = "会话编号", example = "1024")
  75 + public CommonResult<Boolean> deleteMyAllExceptPinned() {
  76 + chatConversationService.deleteMyAllExceptPinned(getLoginUserId());
  77 + return success(true);
  78 + }
72 // ========== 会话管理 ========== 79 // ========== 会话管理 ==========
73 80
74 } 81 }
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatConversationService.java
@@ -62,4 +62,10 @@ public interface AiChatConversationService { @@ -62,4 +62,10 @@ public interface AiChatConversationService {
62 */ 62 */
63 AiChatConversationDO validateExists(Long id); 63 AiChatConversationDO validateExists(Long id);
64 64
  65 + /**
  66 + * 删除 - 所有对话,置顶除外
  67 + *
  68 + * @param loginUserId
  69 + */
  70 + void deleteMyAllExceptPinned(Long loginUserId);
65 } 71 }
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatConversationServiceImpl.java
@@ -4,8 +4,8 @@ import cn.hutool.core.lang.Assert; @@ -4,8 +4,8 @@ import cn.hutool.core.lang.Assert;
4 import cn.hutool.core.util.ObjUtil; 4 import cn.hutool.core.util.ObjUtil;
5 import cn.hutool.core.util.ObjectUtil; 5 import cn.hutool.core.util.ObjectUtil;
6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  7 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
7 import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationCreateMyReqVO; 8 import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationCreateMyReqVO;
8 -import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationRespVO;  
9 import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationUpdateMyReqVO; 9 import cn.iocoder.yudao.module.ai.controller.admin.chat.vo.conversation.AiChatConversationUpdateMyReqVO;
10 import cn.iocoder.yudao.module.ai.dal.dataobject.chat.AiChatConversationDO; 10 import cn.iocoder.yudao.module.ai.dal.dataobject.chat.AiChatConversationDO;
11 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatModelDO; 11 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiChatModelDO;
@@ -21,8 +21,9 @@ import org.springframework.validation.annotation.Validated; @@ -21,8 +21,9 @@ import org.springframework.validation.annotation.Validated;
21 import java.time.LocalDateTime; 21 import java.time.LocalDateTime;
22 import java.util.List; 22 import java.util.List;
23 23
24 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.*;  
25 -import static cn.iocoder.yudao.module.ai.ErrorCodeConstants.*; 24 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  25 +import static cn.iocoder.yudao.module.ai.ErrorCodeConstants.CHAT_CONVERSATION_MODEL_ERROR;
  26 +import static cn.iocoder.yudao.module.ai.ErrorCodeConstants.CHAT_CONVERSATION_NOT_EXISTS;
26 27
27 /** 28 /**
28 * AI 聊天对话 Service 实现类 29 * AI 聊天对话 Service 实现类
@@ -124,4 +125,13 @@ public class AiChatConversationServiceImpl implements AiChatConversationService @@ -124,4 +125,13 @@ public class AiChatConversationServiceImpl implements AiChatConversationService
124 return conversation; 125 return conversation;
125 } 126 }
126 127
  128 + @Override
  129 + public void deleteMyAllExceptPinned(Long loginUserId) {
  130 + chatConversationMapper.delete(
  131 + new LambdaQueryWrapperX<AiChatConversationDO>()
  132 + .eq(AiChatConversationDO::getUserId, loginUserId)
  133 + .eq(AiChatConversationDO::getPinned, false)
  134 + );
  135 + }
  136 +
127 } 137 }