From f29586dbcd6af0077af62efa95105ef2350d794b Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 09 Jul 2025 18:17:54 +0800
Subject: [PATCH] feat(clothes): 新增多图案和图案位置功能

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java |   85 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 70 insertions(+), 15 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java
index 6d6c591..f52d65f 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java
@@ -16,7 +16,9 @@
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
 import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
 import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo;
+import cc.mrbird.febs.mall.vo.clothes.AdminClothesLocationRemarkVo;
 import cc.mrbird.febs.mall.vo.clothes.AdminClothesOrderListVo;
+import cc.mrbird.febs.mall.vo.clothes.AdminClothesPatternRemarkVo;
 import cc.mrbird.febs.mall.vo.clothes.AdminClothesSocialListVo;
 import cc.mrbird.febs.pay.util.WeixinServiceUtil;
 import cn.hutool.core.bean.BeanUtil;
@@ -24,6 +26,8 @@
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -67,6 +71,9 @@
     private final ClothesSocialFileMapper clothesSocialFileMapper;
     private final ClothesSocialMuseMapper clothesSocialMuseMapper;
     private final ClothesSocialCategoryMapper clothesSocialCategoryMapper;
+
+    private final ClothesPatternRemarkMapper clothesPatternRemarkMapper;
+    private final ClothesLocationRemarkMapper clothesLocationRemarkMapper;
 
     private final IApiMallMemberWalletService memberWalletService;
     private final IMallMoneyFlowService mallMoneyFlowService;
@@ -157,6 +164,7 @@
     public FebsResponse sizeAdd(ClothesSize dto) {
         ClothesSize clothesSize = new ClothesSize();
         clothesSize.setName(dto.getName());
+        clothesSize.setCode(dto.getCode());
         clothesSize.setOrderNum(dto.getOrderNum());
         clothesSize.setPrice(dto.getPrice());
         clothesSize.setType(dto.getType());
@@ -199,7 +207,7 @@
         ClothesPattern clothesPattern = new ClothesPattern();
         clothesPattern.setName(dto.getName());
         clothesPattern.setCode(dto.getCode());
-        clothesPattern.setType(dto.getType());
+//        clothesPattern.setType(dto.getType());
         clothesPattern.setPrice(dto.getPrice());
         clothesPattern.setOrderNum(dto.getOrderNum());
         clothesPattern.setImage(dto.getImage());
@@ -222,7 +230,6 @@
                             .set(ClothesPattern::getContent, dto.getContent())
                             .set(ClothesPattern::getOrderNum, dto.getOrderNum())
                             .set(ClothesPattern::getPrice, dto.getPrice())
-                            .set(ClothesPattern::getType, dto.getType())
             );
         }
         return new FebsResponse().success().message("操作成功");
@@ -917,6 +924,10 @@
         if(ObjectUtil.isNull(entity)){
             throw new RuntimeException("内容不存在,无法操作");
         }
+
+        if(ObjectUtil.isNull(dto.getTypeId())){
+            throw new RuntimeException("请选择设计类型");
+        }
         entity.setCategoryId(dto.getCategoryId());
         entity.setMemberId(dto.getMemberId());
         entity.setName(dto.getName());
@@ -945,17 +956,10 @@
                 }
             }
         }
-
-        clothesSocialMuseMapper.delete(
-                Wrappers.lambdaQuery(ClothesSocialMuse.class)
-                .eq(ClothesSocialMuse::getSocialId, entity.getId())
-                );
-        if(ObjectUtil.isNotNull(dto.getTypeId())){
-            ClothesSocialMuse clothesSocialMuse = new ClothesSocialMuse();
-            clothesSocialMuse.setSocialId(entity.getId());
-            clothesSocialMuse.setTypeId(dto.getTypeId());
-            clothesSocialMuseMapper.insert(clothesSocialMuse);
-        }
+        ClothesSocialMuse clothesSocialMuse = new ClothesSocialMuse();
+        clothesSocialMuse.setSocialId(entity.getId());
+        clothesSocialMuse.setTypeId(dto.getTypeId());
+        clothesSocialMuseMapper.insert(clothesSocialMuse);
 
         return new FebsResponse().success().message("操作成功");
     }
@@ -1045,13 +1049,64 @@
         ClothesSocialMuse entity = clothesSocialMuseMapper.selectById(id);
         if(ObjectUtil.isNotNull(entity)){
             entity.setClothId(dto.getClothId());
-            entity.setLocationId(dto.getLocationId());
             entity.setSizeId(dto.getSizeId());
-            entity.setPatternId(dto.getPatternId());
             entity.setArtId(dto.getArtId());
             clothesSocialMuseMapper.updateById(entity);
         }
 
+        Long socialId = entity.getSocialId();
+        ClothesSocial clothesSocial = clothesSocialMapper.selectById(socialId);
+
+        List<AdminClothesPatternRemarkVo> patternData = dto.getPatternData();
+        if(CollUtil.isNotEmpty(patternData)){
+            Set<Long> patternIds = patternData.stream().map(AdminClothesPatternRemarkVo::getPatternId).collect(Collectors.toSet());
+
+            clothesPatternRemarkMapper.delete(
+                    Wrappers.lambdaQuery(ClothesPatternRemark.class)
+                            .eq(ClothesPatternRemark::getType, SocialPatternLocationTypeEnum.MUSE.getValue())
+                            .eq(ClothesPatternRemark::getSourceId, id)
+                            .in(ClothesPatternRemark::getPatternId, patternIds)
+            );
+            for (AdminClothesPatternRemarkVo pattern : patternData) {
+                ClothesPatternRemark clothesPatternRemark = new ClothesPatternRemark();
+                clothesPatternRemark.setMemberId(clothesSocial.getMemberId());
+                clothesPatternRemark.setType(SocialPatternLocationTypeEnum.MUSE.getValue());
+                clothesPatternRemark.setSourceId(entity.getId());
+                clothesPatternRemark.setPatternId(pattern.getPatternId());
+
+                Map<String,String> remarkMap = new HashMap<>();
+                remarkMap.put("file",pattern.getSkuPatternImage());
+                remarkMap.put("text",pattern.getPatternText());
+                clothesPatternRemark.setRemark(JSONUtil.parse(remarkMap).toString());
+                clothesPatternRemarkMapper.insert(clothesPatternRemark);
+            }
+        }
+
+        List<AdminClothesLocationRemarkVo> locationData = dto.getLocationData();
+        if(CollUtil.isNotEmpty(locationData)){
+            Set<Long> locationIds = locationData.stream().map(AdminClothesLocationRemarkVo::getLocationId).collect(Collectors.toSet());
+
+            clothesLocationRemarkMapper.delete(
+                    Wrappers.lambdaQuery(ClothesLocationRemark.class)
+                            .eq(ClothesLocationRemark::getType, SocialPatternLocationTypeEnum.MUSE.getValue())
+                            .eq(ClothesLocationRemark::getSourceId, id)
+                            .in(ClothesLocationRemark::getLocationId, locationIds)
+            );
+            for (AdminClothesLocationRemarkVo location : locationData) {
+                ClothesLocationRemark clothesLocationRemark = new ClothesLocationRemark();
+                clothesLocationRemark.setMemberId(clothesSocial.getMemberId());
+                clothesLocationRemark.setType(SocialPatternLocationTypeEnum.MUSE.getValue());
+                clothesLocationRemark.setSourceId(entity.getId());
+                clothesLocationRemark.setLocationId(location.getLocationId());
+
+                Map<String,String> remarkMap = new HashMap<>();
+                remarkMap.put("file",location.getSkuLocationImage());
+                remarkMap.put("text",location.getLocationText());
+                clothesLocationRemark.setRemark(JSONUtil.parse(remarkMap).toString());
+                clothesLocationRemarkMapper.insert(clothesLocationRemark);
+            }
+        }
+
         return new FebsResponse().success().message("操作成功");
     }
 

--
Gitblit v1.9.1