From 8fd8e2f7c84446ab6bf84fe252053b85d9b20d30 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 30 Oct 2025 10:45:44 +0800
Subject: [PATCH] feat(ai): 简化AI对话项创建逻辑并新增连续对话类型 - 移除复杂的对话项更新逻辑,统一通过add方法创建新项 - 新增AiTalkOutputEnum枚举值CONTEXT_TALK用于AI陪练连续对话 - 更新ApiMemberTalkAnswerSavaDto注释以包含新的对话类型 - 修复对话项创建时类型参数未正确传递的问题 - 优化代码结构,减少冗余的条件判断和数据转换操作
---
src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberCollectionServiceImpl.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 49 insertions(+), 5 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberCollectionServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberCollectionServiceImpl.java
index a70cb57..748f162 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberCollectionServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberCollectionServiceImpl.java
@@ -1,11 +1,16 @@
package cc.mrbird.febs.mall.service.impl;
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.mall.dto.AddCollectionDto;
+import cc.mrbird.febs.mall.dto.ApiColletDelDto;
import cc.mrbird.febs.mall.dto.MemberCollectionListDto;
+import cc.mrbird.febs.mall.entity.MallGoods;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallMemberCollection;
import cc.mrbird.febs.mall.mapper.MallMemberCollectionMapper;
+import cc.mrbird.febs.mall.service.IApiMallGoodsService;
import cc.mrbird.febs.mall.service.IMallMemberCollectionService;
import cc.mrbird.febs.mall.vo.AddCollectionVo;
import cc.mrbird.febs.mall.vo.CollectionListVo;
@@ -29,15 +34,27 @@
@RequiredArgsConstructor
public class MallMemberCollectionServiceImpl extends ServiceImpl<MallMemberCollectionMapper, MallMemberCollection> implements IMallMemberCollectionService {
+ private final IApiMallGoodsService apiMallGoodsService;
+
@Override
public void add(AddCollectionDto addCollectionDto) {
MallMember member = LoginUserUtil.getLoginUser();
- MallMemberCollection collection = new MallMemberCollection();
- collection.setMemberId(member.getId());
- collection.setGoodsId(addCollectionDto.getGoodsId());
+ MallGoods mallgoods = apiMallGoodsService.getById(addCollectionDto.getGoodsId());
+ if (mallgoods == null) {
+ throw new FebsException("商品不存在");
+ }
- this.baseMapper.insert(collection);
+ LambdaQueryWrapper<MallMemberCollection> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(MallMemberCollection::getMemberId, member.getId());
+ queryWrapper.eq(MallMemberCollection::getGoodsId, addCollectionDto.getGoodsId());
+ List<MallMemberCollection> mallMemberCollections = this.baseMapper.selectList(queryWrapper);
+ if (CollUtil.isEmpty(mallMemberCollections)) {
+ MallMemberCollection collection = new MallMemberCollection();
+ collection.setMemberId(member.getId());
+ collection.setGoodsId(addCollectionDto.getGoodsId());
+ this.baseMapper.insert(collection);
+ }
}
@Override
@@ -58,11 +75,38 @@
@Override
public void del(String ids) {
MallMember member = LoginUserUtil.getLoginUser();
- List<String> idsList = StrUtil.split(ids, ',');
+ List<String> goodsIdList = StrUtil.split(ids, ',');
+ if (CollUtil.isEmpty(goodsIdList)) {
+ return;
+ }
+ LambdaQueryWrapper<MallMemberCollection> query = new LambdaQueryWrapper<>();
+ query.in(MallMemberCollection::getGoodsId, goodsIdList);
+ query.eq(MallMemberCollection::getMemberId, member.getId());
+ List<MallMemberCollection> collections = this.baseMapper.selectList(query);
+ if (CollUtil.isEmpty(collections)) {
+ return;
+ }
+
+ List<Long> idsList = collections.stream().map(MallMemberCollection::getId).collect(Collectors.toList());
LambdaQueryWrapper<MallMemberCollection> delQuery = new LambdaQueryWrapper<>();
delQuery.in(MallMemberCollection::getId, idsList);
delQuery.eq(MallMemberCollection::getMemberId, member.getId());
this.baseMapper.delete(delQuery);
}
+
+ @Override
+ public FebsResponse delCollection(ApiColletDelDto dto) {
+ MallMember member = LoginUserUtil.getLoginUser();
+ List<Long> ids = dto.getIds();
+ if (CollUtil.isEmpty(ids)) {
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ LambdaQueryWrapper<MallMemberCollection> delQuery = new LambdaQueryWrapper<>();
+ delQuery.in(MallMemberCollection::getId, ids);
+ delQuery.eq(MallMemberCollection::getMemberId, member.getId());
+ this.baseMapper.delete(delQuery);
+ return new FebsResponse().success().message("操作成功");
+ }
}
--
Gitblit v1.9.1