From a34b9a6418a8874dc0851cb4e19d189339dd5133 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 04 Aug 2025 15:23:35 +0800
Subject: [PATCH] feat(ai): 添加 AI 用户答题功能

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java |   76 ++++++++++++++++++++++++++++++++++----
 1 files changed, 68 insertions(+), 8 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java
index 6f61c90..2bcd490 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiClothesSocialServiceImpl.java
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.common.enumerates.*;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
+import cc.mrbird.febs.mall.dto.ApiColletDelDto;
 import cc.mrbird.febs.mall.dto.clothes.*;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
@@ -13,6 +14,7 @@
 import cc.mrbird.febs.rabbit.producter.AgentProducer;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSON;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
@@ -195,17 +197,17 @@
                     apiSocialMuseVo.setTypeImg(clothesType.getImage());
                 }
                 ClothesSize clothesSize = clothesSizeMapper.selectById(clothesSocialMuse.getSizeId());
-                if(ObjectUtil.isNotNull(clothesSize)){
+                if(ObjectUtil.isNotNull(clothesSize) && clothesType.getSizeState() == 1){
                     apiSocialMuseVo.setSizeName(clothesSize.getName());
                     totalAmount = totalAmount.add(clothesSize.getPrice());
                 }
                 ClothesCloth clothesCloth = clothesClothMapper.selectById(clothesSocialMuse.getClothId());
-                if(ObjectUtil.isNotNull(clothesCloth)){
+                if(ObjectUtil.isNotNull(clothesCloth) && clothesType.getClothState() == 1){
                     apiSocialMuseVo.setClothName(clothesCloth.getName());
                     totalAmount = totalAmount.add(clothesCloth.getPrice());
                 }
                 ClothesArt clothesArt = clothesArtMapper.selectById(clothesSocialMuse.getArtId());
-                if(ObjectUtil.isNotNull(clothesArt)){
+                if(ObjectUtil.isNotNull(clothesArt) && clothesType.getArtState() == 1){
                     apiSocialMuseVo.setArtName(clothesArt.getName());
                     totalAmount = totalAmount.add(clothesArt.getPrice());
                 }
@@ -218,7 +220,7 @@
                                 .eq(ClothesPatternRemark::getSourceId, clothesSocialMuse.getId())
                                 .eq(ClothesPatternRemark::getType, SocialPatternLocationTypeEnum.MUSE.getValue())
                 );
-                if(CollUtil.isNotEmpty(patternRemarks)){
+                if(CollUtil.isNotEmpty(patternRemarks) && clothesType.getPatternState() == 1){
                     for (ClothesPatternRemark entity : patternRemarks){
                         ApiClothesPatternRemarkVo vo = new ApiClothesPatternRemarkVo();
                         ClothesPattern pattern = clothesPatternMapper.selectById(entity.getPatternId());
@@ -237,7 +239,7 @@
                                 .eq(ClothesLocationRemark::getSourceId, clothesSocialMuse.getId())
                                 .eq(ClothesLocationRemark::getType, SocialPatternLocationTypeEnum.MUSE.getValue())
                 );
-                if(CollUtil.isNotEmpty(locationRemarks)){
+                if(CollUtil.isNotEmpty(locationRemarks)  && clothesType.getLocationState() == 1){
                     for (ClothesLocationRemark entity : locationRemarks){
                         ApiClothesLocationRemarkVo vo = new ApiClothesLocationRemarkVo();
                         ClothesLocation clothesLocation = clothesLocationMapper.selectById(entity.getLocationId());
@@ -250,8 +252,15 @@
                     apiSocialMuseVo.setLocationRemarkList(locationRemarkList);
                 }
                 apiSocialMuseVo.setTotalAmount(totalAmount.setScale(2, RoundingMode.DOWN));
-
+//                if(
+//                        ObjectUtil.isNotNull(clothesArt)
+//                        && ObjectUtil.isNotNull(clothesSize)
+//                        && ObjectUtil.isNotNull(clothesCloth)
+//                ){
+//                    apiSocialInfoVo.setMuse(apiSocialMuseVo);
+//                }
                 apiSocialInfoVo.setMuse(apiSocialMuseVo);
+
 
 //                Integer likeCnt = clothesSocial.getLikeCnt();
 //                Integer collectCnt = clothesSocial.getCollectCnt();
@@ -430,8 +439,6 @@
             clothesSocialFollow.setSourceOptionId(dto.getCommentId());
             clothesSocialFollow.setType(SocialTypeEnum.LIKE.getValue());
             clothesSocialFollowMapper.insert(clothesSocialFollow);
-
-            agentProducer.sendAddCollect(socialId);
         }
         return new FebsResponse().success().message("操作成功");
     }
@@ -459,6 +466,8 @@
             clothesSocialFollow.setSourceId(socialId);
             clothesSocialFollow.setType(SocialTypeEnum.COLLECT.getValue());
             clothesSocialFollowMapper.insert(clothesSocialFollow);
+
+            agentProducer.sendAddCollect(socialId);
         }
         return new FebsResponse().success().message("操作成功");
     }
@@ -524,6 +533,10 @@
                     vo.setPatternPrice(pattern.getPrice());
                     vo.setPatternId(pattern.getId());
                     vo.setPatternRemark(patternRemark.getRemark());
+                    vo.setBoxHeight(pattern.getBoxHeight());
+                    vo.setBoxWidth(pattern.getBoxWidth());
+                    vo.setLeftPercent(pattern.getLeftPercent());
+                    vo.setTopPercent(pattern.getTopPercent());
                     patternRemarkList.add( vo);
 
                     totalPatternAmount = totalPatternAmount.add(pattern.getPrice());
@@ -548,6 +561,10 @@
                     vo.setLocationImage(clothesLocation.getImage());
                     vo.setLocationPrice(clothesLocation.getPrice());
                     vo.setLocationId(clothesLocation.getId());
+                    vo.setBoxHeight(clothesLocation.getBoxHeight());
+                    vo.setBoxWidth(clothesLocation.getBoxWidth());
+                    vo.setLeftPercent(clothesLocation.getLeftPercent());
+                    vo.setTopPercent(clothesLocation.getTopPercent());
                     locationRemarkList.add(vo);
 
                     totalLocationAmount = totalLocationAmount.add(clothesLocation.getPrice());
@@ -651,6 +668,49 @@
         return new FebsResponse().success().data(voPage);
     }
 
+    @Override
+    public FebsResponse delCollection(ApiColletDelDto dto) {
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+        List<Long> ids = dto.getIds();
+        if (CollUtil.isEmpty(ids)) {
+            return new FebsResponse().success().message("操作成功");
+        }
+
+        LambdaQueryWrapper<ClothesSocialFollow> delQuery = new LambdaQueryWrapper<>();
+        delQuery.eq(ClothesSocialFollow::getMemberId, memberId);
+        delQuery.eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue());
+        delQuery.in(ClothesSocialFollow::getSourceId, ids);
+        delQuery.eq(ClothesSocialFollow::getType, SocialTypeEnum.COLLECT.getValue());
+        clothesSocialFollowMapper.delete(delQuery);
+        return new FebsResponse().success().message("操作成功");
+    }
+
+    @Override
+    public FebsResponse followState(ApiSocialCollectFollowStateDto dto) {
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+        HashMap<String, Object> stringObjectHashMap = new HashMap<>();
+
+        Integer collectState = clothesSocialFollowMapper.selectCount(
+                Wrappers.lambdaQuery(ClothesSocialFollow.class)
+                        .eq(ClothesSocialFollow::getMemberId, memberId)
+                        .eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue())
+                        .eq(ClothesSocialFollow::getSourceId, dto.getSocialId())
+                        .eq(ClothesSocialFollow::getType, SocialTypeEnum.COLLECT.getValue())
+        );
+        stringObjectHashMap.put("collectState", collectState);
+
+        Integer likeState = clothesSocialFollowMapper.selectCount(
+                Wrappers.lambdaQuery(ClothesSocialFollow.class)
+                        .eq(ClothesSocialFollow::getMemberId, memberId)
+                        .eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue())
+                        .eq(ClothesSocialFollow::getSourceId, dto.getSocialId())
+                        .eq(ClothesSocialFollow::getType, SocialTypeEnum.LIKE.getValue())
+        );
+        stringObjectHashMap.put("likeState", likeState);
+
+        return new FebsResponse().success().data(stringObjectHashMap);
+    }
+
     public static void main(String[] args) {
         JSONObject jsonObject = new JSONObject();
         jsonObject.putByPath("text", "123");

--
Gitblit v1.9.1