From 58212e92ec64bc70a1d6cdc6406d642ed95aebff Mon Sep 17 00:00:00 2001 From: litianxiang Date: Tue, 4 Nov 2025 16:37:57 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=85=8D=E9=A5=B0?= =?UTF-8?q?=E7=B1=BB=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/ai/da/model/enums/FemalePosition.java | 3 ++- src/main/java/com/ai/da/model/enums/MalePosition.java | 3 ++- src/main/java/com/ai/da/model/enums/Position.java | 3 ++- src/main/resources/messages_en.properties | 1 + src/main/resources/messages_fr.properties | 1 + src/main/resources/messages_it.properties | 1 + src/main/resources/messages_ja.properties | 1 + src/main/resources/messages_ko.properties | 1 + src/main/resources/messages_ru.properties | 1 + src/main/resources/messages_th.properties | 1 + src/main/resources/messages_vi.properties | 1 + src/main/resources/messages_zh.properties | 1 + 12 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ai/da/model/enums/FemalePosition.java b/src/main/java/com/ai/da/model/enums/FemalePosition.java index d8efc49e..1231ef0e 100644 --- a/src/main/java/com/ai/da/model/enums/FemalePosition.java +++ b/src/main/java/com/ai/da/model/enums/FemalePosition.java @@ -13,7 +13,8 @@ public enum FemalePosition implements IEnumDisplay { BLOUSE("Blouse"), DRESS("Dress"), TROUSERS("Trousers"), - SKIRT("Skirt"); + SKIRT("Skirt"), + ACCESSORIES("Accessories"); private String value; diff --git a/src/main/java/com/ai/da/model/enums/MalePosition.java b/src/main/java/com/ai/da/model/enums/MalePosition.java index 184eb5f0..761753f6 100644 --- a/src/main/java/com/ai/da/model/enums/MalePosition.java +++ b/src/main/java/com/ai/da/model/enums/MalePosition.java @@ -11,7 +11,8 @@ public enum MalePosition implements IEnumDisplay { TOPS("Tops"), BOTTOMS("Bottoms"), - OUTWEAR("Outwear"); + OUTWEAR("Outwear"), + ACCESSORIES("Accessories"); private String value; diff --git a/src/main/java/com/ai/da/model/enums/Position.java b/src/main/java/com/ai/da/model/enums/Position.java index 204105d1..6c6302d1 100644 --- a/src/main/java/com/ai/da/model/enums/Position.java +++ b/src/main/java/com/ai/da/model/enums/Position.java @@ -19,7 +19,8 @@ public enum Position implements IEnumDisplay { SKIRT("Skirt"), SLOGAN("Slogan"), LOGO("Logo"), - PATTERN("Pattern"); + PATTERN("Pattern"), + ACCESSORIES("Accessories"); private String value; diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index 58e5091e..a360c6b4 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -231,6 +231,7 @@ OVERALL=Overall TOPS=Tops BOTTOMS=Bottoms OUTWEAR=Outwear +ACCESSORIES=Accessories BLOUSE=Blouse DRESS=Dress TROUSERS=Trousers diff --git a/src/main/resources/messages_fr.properties b/src/main/resources/messages_fr.properties index 5e6c99a4..55bce9fa 100644 --- a/src/main/resources/messages_fr.properties +++ b/src/main/resources/messages_fr.properties @@ -171,6 +171,7 @@ OVERALL=Général TOPS=Hauts BOTTOMS=Bas OUTWEAR=Manteau +ACCESSORIES=Accessoires BLOUSE=Chemisier DRESS=Robe TROUSERS=Pantalons diff --git a/src/main/resources/messages_it.properties b/src/main/resources/messages_it.properties index 1b9cacf0..c407872a 100644 --- a/src/main/resources/messages_it.properties +++ b/src/main/resources/messages_it.properties @@ -171,6 +171,7 @@ OVERALL=Complessivo TOPS=Parte superiore BOTTOMS=Parte inferiore OUTWEAR=Capo esterno +ACCESSORIES=Accessori BLOUSE=Camicetta DRESS=Vestito TROUSERS=Pantaloni diff --git a/src/main/resources/messages_ja.properties b/src/main/resources/messages_ja.properties index 3214c7f4..76265f81 100644 --- a/src/main/resources/messages_ja.properties +++ b/src/main/resources/messages_ja.properties @@ -171,6 +171,7 @@ OVERALL=全体 TOPS=トップス BOTTOMS=ボトムス OUTWEAR=アウターウェア +ACCESSORIES=アクセサリー BLOUSE=ブラウス DRESS=ドレス TROUSERS=ズボン diff --git a/src/main/resources/messages_ko.properties b/src/main/resources/messages_ko.properties index ae0b2dda..6381e702 100644 --- a/src/main/resources/messages_ko.properties +++ b/src/main/resources/messages_ko.properties @@ -171,6 +171,7 @@ OVERALL=전체 TOPS=상의 BOTTOMS=하의 OUTWEAR=외투 +ACCESSORIES=액세서리 BLOUSE=블라우스 DRESS=드레스 TROUSERS=바지 diff --git a/src/main/resources/messages_ru.properties b/src/main/resources/messages_ru.properties index 401d55af..0388b275 100644 --- a/src/main/resources/messages_ru.properties +++ b/src/main/resources/messages_ru.properties @@ -171,6 +171,7 @@ OVERALL=Общий TOPS=Топы BOTTOMS=Штаны OUTWEAR=Верхняя одежда +ACCESSORIES=Аксессуары BLOUSE=Блуза DRESS=Платье TROUSERS=Брюки diff --git a/src/main/resources/messages_th.properties b/src/main/resources/messages_th.properties index 5b4a0ae1..fdd9b62c 100644 --- a/src/main/resources/messages_th.properties +++ b/src/main/resources/messages_th.properties @@ -171,6 +171,7 @@ OVERALL=โดยรวม TOPS=เสื้อ BOTTOMS=กางเกง OUTWEAR=เสื้อผ้านอก +ACCESSORIES=เครื่องประดับ BLOUSE=เสื้อผ้าผู้หญิง DRESS=ชุดเดรส TROUSERS=กางเกงขายาว diff --git a/src/main/resources/messages_vi.properties b/src/main/resources/messages_vi.properties index eb874759..fc5e30c3 100644 --- a/src/main/resources/messages_vi.properties +++ b/src/main/resources/messages_vi.properties @@ -171,6 +171,7 @@ OVERALL=Tổng thể TOPS=Áo đầu BOTTOMS=Quần OUTWEAR=Áo ngoại cỡ +ACCESSORIES=Phụ kiện BLOUSE=Áo sơ mi nữ DRESS=Váy TROUSERS=Quần dài diff --git a/src/main/resources/messages_zh.properties b/src/main/resources/messages_zh.properties index b8bd94f2..3b1456d5 100644 --- a/src/main/resources/messages_zh.properties +++ b/src/main/resources/messages_zh.properties @@ -225,6 +225,7 @@ OVERALL=整体 TOPS=上装 BOTTOMS=下装 OUTWEAR=外套 +ACCESSORIES=配饰 BLOUSE=上衣 DRESS=连衣裙 TROUSERS=裤子 From 2a6d3c1b58b3f4be987df7e8e5bd692e9a8a66d0 Mon Sep 17 00:00:00 2001 From: litianxiang Date: Thu, 6 Nov 2025 15:21:37 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix:=E5=88=9D=E6=AC=A1=E4=BB=8E=E6=94=B6?= =?UTF-8?q?=E8=97=8F=E5=92=8C=E7=94=9F=E6=88=90=E7=9A=84=E7=BA=BF=E7=A8=BF?= =?UTF-8?q?=EF=BC=8C=E5=86=8D=E5=88=B7=E6=96=B0=E5=89=8D=E4=B8=8D=E4=BC=9A?= =?UTF-8?q?=E8=A2=AB=E7=94=A8=E4=BA=8Edesign?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CollectionElementServiceImpl.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java index 741b5e2c..6528d88a 100644 --- a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java @@ -644,7 +644,7 @@ public class CollectionElementServiceImpl extends ServiceImpl sketchBoardElements = new ArrayList<>(); // 提取类型为COLLECTION的sketchBoard ID列表 List sketchBoardIds = designDTO.getSketchBoards().stream() .filter(f -> f.getDesignType().equals(DesignTypeEnum.COLLECTION.getRealName())) @@ -652,12 +652,12 @@ public class CollectionElementServiceImpl extends ServiceImpl sketchBoardElements = collectionElementMapper.selectBatchIds(sketchBoardIds); + sketchBoardElements = collectionElementMapper.selectBatchIds(sketchBoardIds); + if (CollectionUtil.isEmpty(sketchBoardElements) || sketchBoardElements.size() != sketchBoardIds.size()) { throw new BusinessException("get.sketchBoards.data.is.mismatch"); } - // 设置验证通过的sketchBoard元素到结果对象 - elementVO.setSketchBoardElements(sketchBoardElements); + // 记录已使用的元素ID usedElementIds.addAll(sketchBoardIds); } @@ -675,7 +675,9 @@ public class CollectionElementServiceImpl extends ServiceImpl idToMap = designDTO.getSketchBoards() .stream() .collect(Collectors.toMap(CollectionSketchDTO::getSketchBoardId, v -> v)); - libraryCollectionElements.addAll(covertLibrarysToCollections(librarys, idToMap)); + List librarysToCollections = covertLibrarysToCollections(librarys, idToMap); + libraryCollectionElements.addAll(librarysToCollections); + sketchBoardElements.addAll(librarysToCollections); } } @@ -691,9 +693,13 @@ public class CollectionElementServiceImpl extends ServiceImpl idToMap = designDTO.getSketchBoards() .stream() .collect(Collectors.toMap(CollectionSketchDTO::getSketchBoardId, v -> v)); - generateCollectionElements.addAll(covertGeneratesToCollections(generateDetailList, idToMap)); + List generatesToCollections = covertGeneratesToCollections(generateDetailList, idToMap); + generateCollectionElements.addAll(generatesToCollections); + sketchBoardElements.addAll(generatesToCollections); } } + // 设置验证通过的sketchBoard元素到结果对象 + elementVO.setSketchBoardElements(sketchBoardElements); } } //校验marketingSketch From 1fd1f7dd47767581df011750affeb8906b05fcbf Mon Sep 17 00:00:00 2001 From: litianxiang Date: Thu, 6 Nov 2025 17:20:05 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E9=85=8D=E9=A5=B0=E6=9B=B4=E6=8D=A2?= =?UTF-8?q?=E4=B8=BA=E5=85=B6=E4=BB=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/ai/da/model/enums/FemalePosition.java | 2 +- src/main/java/com/ai/da/model/enums/MalePosition.java | 2 +- src/main/java/com/ai/da/model/enums/Position.java | 2 +- src/main/resources/messages_en.properties | 2 +- src/main/resources/messages_fr.properties | 2 +- src/main/resources/messages_it.properties | 2 +- src/main/resources/messages_ja.properties | 2 +- src/main/resources/messages_ko.properties | 2 +- src/main/resources/messages_ru.properties | 2 +- src/main/resources/messages_th.properties | 2 +- src/main/resources/messages_vi.properties | 2 +- src/main/resources/messages_zh.properties | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/ai/da/model/enums/FemalePosition.java b/src/main/java/com/ai/da/model/enums/FemalePosition.java index 1231ef0e..052431ab 100644 --- a/src/main/java/com/ai/da/model/enums/FemalePosition.java +++ b/src/main/java/com/ai/da/model/enums/FemalePosition.java @@ -14,7 +14,7 @@ public enum FemalePosition implements IEnumDisplay { DRESS("Dress"), TROUSERS("Trousers"), SKIRT("Skirt"), - ACCESSORIES("Accessories"); + OTHERS("Others"); private String value; diff --git a/src/main/java/com/ai/da/model/enums/MalePosition.java b/src/main/java/com/ai/da/model/enums/MalePosition.java index 761753f6..c8f375df 100644 --- a/src/main/java/com/ai/da/model/enums/MalePosition.java +++ b/src/main/java/com/ai/da/model/enums/MalePosition.java @@ -12,7 +12,7 @@ public enum MalePosition implements IEnumDisplay { TOPS("Tops"), BOTTOMS("Bottoms"), OUTWEAR("Outwear"), - ACCESSORIES("Accessories"); + OTHERS("Others"); private String value; diff --git a/src/main/java/com/ai/da/model/enums/Position.java b/src/main/java/com/ai/da/model/enums/Position.java index 6c6302d1..519ffa36 100644 --- a/src/main/java/com/ai/da/model/enums/Position.java +++ b/src/main/java/com/ai/da/model/enums/Position.java @@ -20,7 +20,7 @@ public enum Position implements IEnumDisplay { SLOGAN("Slogan"), LOGO("Logo"), PATTERN("Pattern"), - ACCESSORIES("Accessories"); + OTHERS("Others"); private String value; diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index a360c6b4..d93adb17 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -231,7 +231,7 @@ OVERALL=Overall TOPS=Tops BOTTOMS=Bottoms OUTWEAR=Outwear -ACCESSORIES=Accessories +OTHERS=Others BLOUSE=Blouse DRESS=Dress TROUSERS=Trousers diff --git a/src/main/resources/messages_fr.properties b/src/main/resources/messages_fr.properties index 55bce9fa..d54a640e 100644 --- a/src/main/resources/messages_fr.properties +++ b/src/main/resources/messages_fr.properties @@ -171,7 +171,7 @@ OVERALL=Général TOPS=Hauts BOTTOMS=Bas OUTWEAR=Manteau -ACCESSORIES=Accessoires +OTHERS=Autres BLOUSE=Chemisier DRESS=Robe TROUSERS=Pantalons diff --git a/src/main/resources/messages_it.properties b/src/main/resources/messages_it.properties index c407872a..bc894d71 100644 --- a/src/main/resources/messages_it.properties +++ b/src/main/resources/messages_it.properties @@ -171,7 +171,7 @@ OVERALL=Complessivo TOPS=Parte superiore BOTTOMS=Parte inferiore OUTWEAR=Capo esterno -ACCESSORIES=Accessori +OTHERS=Altri BLOUSE=Camicetta DRESS=Vestito TROUSERS=Pantaloni diff --git a/src/main/resources/messages_ja.properties b/src/main/resources/messages_ja.properties index 76265f81..cb8661d4 100644 --- a/src/main/resources/messages_ja.properties +++ b/src/main/resources/messages_ja.properties @@ -171,7 +171,7 @@ OVERALL=全体 TOPS=トップス BOTTOMS=ボトムス OUTWEAR=アウターウェア -ACCESSORIES=アクセサリー +OTHERS=その他 BLOUSE=ブラウス DRESS=ドレス TROUSERS=ズボン diff --git a/src/main/resources/messages_ko.properties b/src/main/resources/messages_ko.properties index 6381e702..baa02022 100644 --- a/src/main/resources/messages_ko.properties +++ b/src/main/resources/messages_ko.properties @@ -171,7 +171,7 @@ OVERALL=전체 TOPS=상의 BOTTOMS=하의 OUTWEAR=외투 -ACCESSORIES=액세서리 +OTHERS=기타 BLOUSE=블라우스 DRESS=드레스 TROUSERS=바지 diff --git a/src/main/resources/messages_ru.properties b/src/main/resources/messages_ru.properties index 0388b275..987b5b71 100644 --- a/src/main/resources/messages_ru.properties +++ b/src/main/resources/messages_ru.properties @@ -171,7 +171,7 @@ OVERALL=Общий TOPS=Топы BOTTOMS=Штаны OUTWEAR=Верхняя одежда -ACCESSORIES=Аксессуары +OTHERS=ДРУГИЕ BLOUSE=Блуза DRESS=Платье TROUSERS=Брюки diff --git a/src/main/resources/messages_th.properties b/src/main/resources/messages_th.properties index fdd9b62c..1a9c1d04 100644 --- a/src/main/resources/messages_th.properties +++ b/src/main/resources/messages_th.properties @@ -171,7 +171,7 @@ OVERALL=โดยรวม TOPS=เสื้อ BOTTOMS=กางเกง OUTWEAR=เสื้อผ้านอก -ACCESSORIES=เครื่องประดับ +OTHERS=อื่นๆ BLOUSE=เสื้อผ้าผู้หญิง DRESS=ชุดเดรส TROUSERS=กางเกงขายาว diff --git a/src/main/resources/messages_vi.properties b/src/main/resources/messages_vi.properties index fc5e30c3..358ee9e6 100644 --- a/src/main/resources/messages_vi.properties +++ b/src/main/resources/messages_vi.properties @@ -171,7 +171,7 @@ OVERALL=Tổng thể TOPS=Áo đầu BOTTOMS=Quần OUTWEAR=Áo ngoại cỡ -ACCESSORIES=Phụ kiện +OTHERS=KHÁC BLOUSE=Áo sơ mi nữ DRESS=Váy TROUSERS=Quần dài diff --git a/src/main/resources/messages_zh.properties b/src/main/resources/messages_zh.properties index 3b1456d5..33f21c3c 100644 --- a/src/main/resources/messages_zh.properties +++ b/src/main/resources/messages_zh.properties @@ -225,7 +225,7 @@ OVERALL=整体 TOPS=上装 BOTTOMS=下装 OUTWEAR=外套 -ACCESSORIES=配饰 +OTHERS=其他 BLOUSE=上衣 DRESS=连衣裙 TROUSERS=裤子 From 15f2b78c9409839ac7395d153e5e5a45ce5b84ca Mon Sep 17 00:00:00 2001 From: litianxiang Date: Fri, 7 Nov 2025 11:50:13 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E9=85=8D=E9=A5=B0detail=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/ai/da/python/vo/DesignPythonItem.java | 3 +++ src/main/java/com/ai/da/service/impl/DesignServiceImpl.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ai/da/python/vo/DesignPythonItem.java b/src/main/java/com/ai/da/python/vo/DesignPythonItem.java index 92e3892b..dbe466bb 100644 --- a/src/main/java/com/ai/da/python/vo/DesignPythonItem.java +++ b/src/main/java/com/ai/da/python/vo/DesignPythonItem.java @@ -105,6 +105,9 @@ public class DesignPythonItem { public static List BOTTOMS = Arrays.asList( "Bottoms"); + public static List OTHERS = Arrays.asList( + "Others"); + public static List SYS_HAIRSTYLE_SHOES_BODY = Arrays.asList( SysFileLevel2TypeEnum.HAIRSTYLE.getRealName(), SysFileLevel2TypeEnum.SHOES.getRealName(), SysFileLevel2TypeEnum.EARRINGS.getRealName(), SysFileLevel2TypeEnum.BODY.getRealName()); diff --git a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java index 7a163c54..920f3b97 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -1456,7 +1456,7 @@ public class DesignServiceImpl extends ServiceImpl impleme response.setHighDesignUrl(designItem.getHighDesignUrl()); List filterDetail = designItemDetails.stream() .filter(f -> OUTWEAR_DRESS_BLOUSE.contains(f.getType()) || SKIRT_TROUSERS.contains(f.getType()) - || TOPS.contains(f.getType()) || BOTTOMS.contains(f.getType())) + || TOPS.contains(f.getType()) || BOTTOMS.contains(f.getType())|| OTHERS.contains(f.getType())) .collect(Collectors.toList()); response.setClothes(CopyUtil.copyList(filterDetail, DesignItemClothesDetailVO.class, (o, d) -> { d.setId(o.getId()); From e4e6cfbff7ae10075af091ee3c94b71f490e6233 Mon Sep 17 00:00:00 2001 From: litianxiang Date: Wed, 12 Nov 2025 13:49:01 +0800 Subject: [PATCH 5/5] =?UTF-8?q?sketch=E6=9A=82=E6=97=B6=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BAjava=E7=AB=AF=E6=8E=A8=E8=8D=90=EF=BC=8C=E6=A0=B9?= =?UTF-8?q?=E6=8D=AEstyle=E8=BF=9B=E8=A1=8C=E6=8E=A8=E8=8D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/mapper/primary/WorkspaceMapper.java | 1 + .../secondary/AttributeRetrievalMapper.java | 4 + .../java/com/ai/da/python/PythonService.java | 75 +++++++++++-------- .../com/ai/da/service/WorkspaceService.java | 2 + .../impl/CollectionElementServiceImpl.java | 8 +- .../da/service/impl/GenerateServiceImpl.java | 6 +- .../da/service/impl/WorkspaceServiceImpl.java | 5 ++ .../mapper/primary/WorkspaceMapper.xml | 5 ++ .../secondary/AttributeRetrievalMapper.xml | 17 +++++ 9 files changed, 88 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/ai/da/mapper/primary/WorkspaceMapper.java b/src/main/java/com/ai/da/mapper/primary/WorkspaceMapper.java index 214e97c0..426b1342 100644 --- a/src/main/java/com/ai/da/mapper/primary/WorkspaceMapper.java +++ b/src/main/java/com/ai/da/mapper/primary/WorkspaceMapper.java @@ -24,4 +24,5 @@ public interface WorkspaceMapper extends CommonMapper { */ List selectWorkspacePage(IPage page, WorkspaceVO workspace); + String getStyleByProjectId(Long projectId); } diff --git a/src/main/java/com/ai/da/mapper/secondary/AttributeRetrievalMapper.java b/src/main/java/com/ai/da/mapper/secondary/AttributeRetrievalMapper.java index 74fa789a..d7881a10 100644 --- a/src/main/java/com/ai/da/mapper/secondary/AttributeRetrievalMapper.java +++ b/src/main/java/com/ai/da/mapper/secondary/AttributeRetrievalMapper.java @@ -30,4 +30,8 @@ public interface AttributeRetrievalMapper { void updateStyleByFileName(String style, String fileName, String tableName); String getStyleByUrl(String replace,String tableName); + + Integer getCountByStyle(String tableName, String style); + + String getOneSystemSketchRadom(String tableName, String style, Integer randomNum); } diff --git a/src/main/java/com/ai/da/python/PythonService.java b/src/main/java/com/ai/da/python/PythonService.java index 83a31a0e..26f5b1c8 100644 --- a/src/main/java/com/ai/da/python/PythonService.java +++ b/src/main/java/com/ai/da/python/PythonService.java @@ -29,6 +29,7 @@ import com.google.common.collect.Maps; import io.netty.util.internal.StringUtil; import lombok.extern.slf4j.Slf4j; import okhttp3.*; +import org.apache.commons.lang3.RandomUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -666,33 +667,24 @@ public class PythonService { BigDecimal randomValue = generateRandomValue(); boolean useSystem = randomValue.compareTo(systemScale) <= 0; - if (useSystem) { - // 获取系统推荐sketch - String categoryParam = elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase(); - List recommentdUrlList = getSystemSketchByCategory(categoryParam, elementVO.getBrandId(), elementVO.getBrandScale()); - if (!CollectionUtils.isEmpty(recommentdUrlList)) { - String recommendSystemSketch = recommentdUrlList.get(0); - return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO); - }else { - throw new BusinessException("failed.to.obtain.system.sketch.recommendation"); - } - }else { - if (CollectionUtil.isNotEmpty(collectionElements)) { - int collectionNoPinSize = collectionElements.size(); - int randomNum = RandomsUtil.randomSysFile(collectionNoPinSize); - return coverSketchToDesignPythonItem(collectionElements.get(randomNum).getId(), collectionElements.get(randomNum), elementVO); - }else { - String categoryParam = elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase(); - List recommentdUrlList = getSystemSketchByCategory(categoryParam, elementVO.getBrandId(), elementVO.getBrandScale()); - if (!CollectionUtils.isEmpty(recommentdUrlList)) { - String recommendSystemSketch = recommentdUrlList.get(0); - return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO); - }else { - throw new BusinessException("failed.to.obtain.system.sketch.recommendation"); - } - } + // 用过存在用户上传,则优先使用用户上传 + if (!useSystem && CollectionUtil.isNotEmpty(collectionElements)) { + int collectionNoPinSize = collectionElements.size(); + int randomNum = RandomsUtil.randomSysFile(collectionNoPinSize); + return coverSketchToDesignPythonItem(collectionElements.get(randomNum).getId(), collectionElements.get(randomNum), elementVO); } + // 其他所有情况,都回退到使用系统推荐 + String categoryParam = elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase(); + List recommentdUrlList = getSystemSketchByCategory(categoryParam, elementVO.getBrandId(), elementVO.getBrandScale(),elementVO.getStyle()); + + if (CollectionUtils.isEmpty(recommentdUrlList)) { + throw new BusinessException("failed.to.obtain.system.sketch.recommendation"); + } + + String recommendSystemSketch = recommentdUrlList.get(0); + return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, styleCategory, elementVO); + // int poolNum = 20; // if (CollectionUtil.isNotEmpty(collectionElements)) { // int collectionNoPinSize = collectionElements.size(); @@ -1039,7 +1031,7 @@ public class PythonService { // 获取随机pin sketch的category String category = element.getLevel2Type(); String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase(); - List recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale()); + List recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale(), validateElementVO.getStyle()); if (!CollectionUtils.isEmpty(recommentdUrlList)) { String recommendSystemSketch = recommentdUrlList.get(0); return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO); @@ -1062,7 +1054,7 @@ public class PythonService { String category = dressings.get(randomNum).getStyleCategory(); String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase(); - List recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale()); + List recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale(), validateElementVO.getStyle()); if (!CollectionUtils.isEmpty(recommentdUrlList)) { String recommendSystemSketch = recommentdUrlList.get(0); return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO); @@ -1098,7 +1090,7 @@ public class PythonService { String category = element.getLevel2Type(); String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase(); - List recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale()); + List recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale(), validateElementVO.getStyle()); if (!CollectionUtils.isEmpty(recommentdUrlList)) { String recommendSystemSketch = recommentdUrlList.get(0); return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO); @@ -1122,7 +1114,7 @@ public class PythonService { String category = dressings.get(randomNum).getStyleCategory(); String categoryParam = validateElementVO.getModelSex().toLowerCase() + "_" + category.toLowerCase(); - List recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale()); + List recommentdUrlList = getSystemSketchByCategory(categoryParam, validateElementVO.getBrandId(), validateElementVO.getBrandScale(), validateElementVO.getStyle()); if (!CollectionUtils.isEmpty(recommentdUrlList)) { String recommendSystemSketch = recommentdUrlList.get(0); return coverSystemSketchUrlToDesignPythonItem(recommendSystemSketch, category, validateElementVO); @@ -3962,7 +3954,30 @@ public class PythonService { throw new BusinessException("design.interface.exception"); } - public List getSystemSketchByCategory(String category, Long brandId, Double brandScale) { + public List getSystemSketchByCategory(String category, Long brandId, Double brandScale,String style) { + //******3.1.2版本临时使用java推荐方案去解决style未使用的问题********** + try { + //使用新库attribute_retrieval_style,表命名修改为elementVO.getModelSex().toLowerCase() + "_" + styleCategory.toLowerCase()比如female_skirt,与传入的category保持一致 + Integer countByStyle = attributeRetrievalMapper.getCountByStyle(category, style); + //根据数量随机获取一个系统sketch + if (countByStyle > 0) { + //获取一个不大于countByStyle的随机整数 + Integer randomNum = RandomUtils.nextInt(0, countByStyle); + //返回格式为 dress/0902000649.jpg + String oneSystemSketchRadom = attributeRetrievalMapper.getOneSystemSketchRadom(category, style,randomNum); + String imgName = oneSystemSketchRadom.split("/")[1]; + //补齐正确格式aida-sys-image/images/male/tops/mens_test_5689.png + //裁切category前半部分 + String sex = category.split("_")[0]; + String realCategory = category.split("_")[1]; + String path = "aida-sys-image/images/" + sex + "/" +realCategory +"/" +imgName; + return Arrays.asList(path); + } + } catch (Exception e) { + log.info("推荐失败:{}",e.getMessage()); + throw new BusinessException("system.error"); + } + //**********************end*********************************** AuthPrincipalVo userHolder = UserContext.getUserHolder(); OkHttpClient client = new OkHttpClient().newBuilder() diff --git a/src/main/java/com/ai/da/service/WorkspaceService.java b/src/main/java/com/ai/da/service/WorkspaceService.java index cbd2160d..1c967b38 100644 --- a/src/main/java/com/ai/da/service/WorkspaceService.java +++ b/src/main/java/com/ai/da/service/WorkspaceService.java @@ -68,4 +68,6 @@ public interface WorkspaceService extends IService { String getProjectSexById(Long projectId); + + String getStyleByProjectId(Long projectId); } diff --git a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java index 6528d88a..a6f9b0f0 100644 --- a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java @@ -82,7 +82,7 @@ public class CollectionElementServiceImpl extends ServiceImpl i if (base64Data != null && !base64Data.isEmpty()) { String resultPath = userId + "/product_image" + "/" + uuid; String minioPath = minioUtil.base64UploadToPath("data:image/png;base64," + base64Data, userBucket, resultPath); + if (StringUtil.isNullOrEmpty(minioPath)){ + log.warn("Google API调用成功,但图片保存失败 for taskId: {}", taskId); + } // 生成成功,更新Redis状态和URL GenerateResultVO successResultVO = new GenerateResultVO(taskId, null, minioPath, "Success"); redisUtil.addToString(key, new Gson().toJson(successResultVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); @@ -1495,9 +1498,6 @@ public class GenerateServiceImpl extends ServiceImpl i GenerateResultVO successResultVO = new GenerateResultVO(taskId, null, imageUrl, "Success"); redisUtil.addToString(key, new Gson().toJson(successResultVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); - - // TODO: 处理积分扣除逻辑 - } catch (Exception e) { log.error("Doubao image generation failed for taskId: {}", taskId, e); LambdaQueryWrapper select = new LambdaQueryWrapper().eq(Account::getId, userId).select(Account::getLanguage); diff --git a/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java b/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java index 2531c5e7..d311ea3b 100644 --- a/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java @@ -898,6 +898,11 @@ public class WorkspaceServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); diff --git a/src/main/resources/mapper/primary/WorkspaceMapper.xml b/src/main/resources/mapper/primary/WorkspaceMapper.xml index 592084e1..3da9d6f8 100644 --- a/src/main/resources/mapper/primary/WorkspaceMapper.xml +++ b/src/main/resources/mapper/primary/WorkspaceMapper.xml @@ -27,5 +27,10 @@ + diff --git a/src/main/resources/mapper/secondary/AttributeRetrievalMapper.xml b/src/main/resources/mapper/secondary/AttributeRetrievalMapper.xml index 3c2f0f49..0e118820 100644 --- a/src/main/resources/mapper/secondary/AttributeRetrievalMapper.xml +++ b/src/main/resources/mapper/secondary/AttributeRetrievalMapper.xml @@ -110,4 +110,21 @@ ${tableName} WHERE img_name = #{replace} + + +