From 252407776810c937e0c84fb4529923c4d83ee59f Mon Sep 17 00:00:00 2001 From: xupei <1779019091@qq.com> Date: Thu, 2 Nov 2023 10:55:25 +0800 Subject: [PATCH] =?UTF-8?q?generate=201=E3=80=81sketchboard=E7=9A=84?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=9D=A1=E4=BB=B6=E6=B7=BB=E5=8A=A0gender=20?= =?UTF-8?q?2=E3=80=81=E6=B7=BB=E5=8A=A0=E5=AD=98=E5=82=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=9B=BE=E7=89=87MD5=E5=80=BC=E5=88=B0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/mapper/entity/GenerateDetail.java | 5 +++++ .../dto/GenerateThroughImageTextDTO.java | 3 +++ .../java/com/ai/da/python/PythonService.java | 3 ++- .../ai/da/service/impl/DesignServiceImpl.java | 4 +++- .../da/service/impl/GenerateServiceImpl.java | 19 ++++++++++++------- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ai/da/mapper/entity/GenerateDetail.java b/src/main/java/com/ai/da/mapper/entity/GenerateDetail.java index ba81827c..cce89e29 100644 --- a/src/main/java/com/ai/da/mapper/entity/GenerateDetail.java +++ b/src/main/java/com/ai/da/mapper/entity/GenerateDetail.java @@ -42,6 +42,11 @@ public class GenerateDetail { */ private Long libraryId; + /** + * 图片的md5 + */ + private String md5; + /** * 创建时间 */ diff --git a/src/main/java/com/ai/da/model/dto/GenerateThroughImageTextDTO.java b/src/main/java/com/ai/da/model/dto/GenerateThroughImageTextDTO.java index 6883c64f..1ed89a2e 100644 --- a/src/main/java/com/ai/da/model/dto/GenerateThroughImageTextDTO.java +++ b/src/main/java/com/ai/da/model/dto/GenerateThroughImageTextDTO.java @@ -30,6 +30,9 @@ public class GenerateThroughImageTextDTO { @ApiModelProperty("Outwear Dress Blouse Skirt Trousers") String level2Type; + @ApiModelProperty("性别") + String gender; + @ApiModelProperty("选择的模型名") String version; diff --git a/src/main/java/com/ai/da/python/PythonService.java b/src/main/java/com/ai/da/python/PythonService.java index 0f15a21d..573d3261 100644 --- a/src/main/java/com/ai/da/python/PythonService.java +++ b/src/main/java/com/ai/da/python/PythonService.java @@ -2013,7 +2013,7 @@ public class PythonService { throw new BusinessException("system error!"); } - public List generateSketchOrPrint(Long userId, String url, String category, String text, int mode, String modelName) { + public List generateSketchOrPrint(Long userId, String url, String category, String text, int mode, String modelName, String gender) { //限流校验 AccessLimitUtils.validate("generateSketchOrPrint", 5); OkHttpClient client = new OkHttpClient().newBuilder() @@ -2030,6 +2030,7 @@ public class PythonService { content.put("mode", mode); content.put("str", text); content.put("version", modelName); + content.put("gender", gender); RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(content, SerializerFeature.WriteMapNullValue)); Request request = new Request.Builder() // .url(accessPythonIp + ":2828/aida/diffusion") 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 6fe64225..b81f1f04 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -861,6 +861,7 @@ public class DesignServiceImpl extends ServiceImpl impleme @Override public DesignItemDetailVO detail(Long designPythonOutfitId, Long designItemId) { + // 1、校验 DesignItem designItem = designItemService.getById(designItemId); if (Objects.isNull(designItem)) { throw new BusinessException("designItem.not.found"); @@ -884,6 +885,7 @@ public class DesignServiceImpl extends ServiceImpl impleme flag = Boolean.TRUE; } + // 2、组装返回参数 DesignItemDetailVO response = new DesignItemDetailVO(); response.setSingleOverall(design.getSingleOverall()); response.setSwitchCategory(design.getSwitchCategory()); @@ -1023,7 +1025,7 @@ public class DesignServiceImpl extends ServiceImpl impleme * @return */ private DesignItemDetailVO editResponseColor(List designItemDetails, DesignItemDetailVO designItemDetailVO) { - // 使用designItemDetailId做映射 + // 使用designItemDetailId rgb(String)做映射 HashMap designItemDetailIdColor = new HashMap<>(); designItemDetails.forEach(designItemDetail -> { if (!StringUtil.isNullOrEmpty(designItemDetail.getColor())) { diff --git a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java index dcdcc7e1..0ab5de53 100644 --- a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java @@ -23,13 +23,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import io.minio.errors.MinioException; import io.netty.util.internal.StringUtil; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.util.*; +import static com.ai.da.common.enums.CollectionLevel1TypeEnum.*; + @Service public class GenerateServiceImpl extends ServiceImpl implements GenerateService { @@ -73,10 +74,13 @@ public class GenerateServiceImpl extends ServiceImpl i // 2、判断必须入参是否为非空 Generate generate = new Generate(); generate.setAccountId(accountId); - generate.setGenerateType(generateThroughImageTextDTO.getGenerateType()); + generate.setLevel1Type(generateThroughImageTextDTO.getLevel1Type()); + generate.setGenerateType(generate.getLevel1Type().equals(SKETCH_BOARD.getRealName()) ? + generateThroughImageTextDTO.getGender() + "_" + generateThroughImageTextDTO.getGenerateType() : + generateThroughImageTextDTO.getGenerateType()); generate.setModelName(StringUtil.isNullOrEmpty(generateThroughImageTextDTO.getVersion()) ? ModelNameEnum.MODEL_0.getCode() : generateThroughImageTextDTO.getVersion()); generate.setCreateDate(DateUtil.getByTimeZone(generateThroughImageTextDTO.getTimeZone())); - generate.setLevel1Type(generateThroughImageTextDTO.getLevel1Type()); + String text = generateThroughImageTextDTO.getText(); Long elementId = generateThroughImageTextDTO.getCollectionElementId(); @@ -91,10 +95,10 @@ public class GenerateServiceImpl extends ServiceImpl i // 4、向模型发起请求 int mode = GenerateModeEnum.TEXT.getValue().equals(generate.getGenerateType()) ? GenerateModeEnum.TEXT.getCode() : GenerateModeEnum.TEXT_IMAGE.getCode(); - String category = generateThroughImageTextDTO.getLevel1Type().equals(CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName()) ? "sketch" : - generateThroughImageTextDTO.getLevel1Type().equals(CollectionLevel1TypeEnum.PRINT_BOARD.getRealName()) ? "print" : "moodboard"; + String category = generateThroughImageTextDTO.getLevel1Type().equals(SKETCH_BOARD.getRealName()) ? "sketch" : + generateThroughImageTextDTO.getLevel1Type().equals(PRINT_BOARD.getRealName()) ? "print" : "moodboard"; List generatedSketchUrl = pythonService.generateSketchOrPrint(accountId, Objects.isNull(elementId) ? null : collectionElement.getUrl(), - category, text, mode, generateThroughImageTextDTO.getVersion()); + category, text, mode, generateThroughImageTextDTO.getVersion(), generateThroughImageTextDTO.getGender()); // List generatedSketchUrl = Arrays.asList("testUrl1","testUrl2","testUrl3","testUrl4"); @@ -106,6 +110,7 @@ public class GenerateServiceImpl extends ServiceImpl i generateDetail.setUrl(item); generateDetail.setGenerateId(generate.getId()); generateDetail.setCreateDate(DateUtil.getByTimeZone(generateThroughImageTextDTO.getTimeZone())); + generateDetail.setMd5(MD5Utils.encryptFile(minioUtil.getPresignedUrl(item, 24 * 60), Boolean.FALSE)); generateDetailMapper.insert(generateDetail); GenerateCollectionItemVO generateCollectionItemVO = new GenerateCollectionItemVO(); @@ -142,7 +147,7 @@ public class GenerateServiceImpl extends ServiceImpl i public GenerateLikeVO generateLike(GenerateLikeDTO generateLikeDTO) { // 1、判断参数是否正确 // 1.1 必须参数是否非空 - if (CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName().equals(generateLikeDTO.getLevel1Type())) { + if (SKETCH_BOARD.getRealName().equals(generateLikeDTO.getLevel1Type())) { Assert.isTrue(!StringUtil.isNullOrEmpty(generateLikeDTO.getLevel2Type()), "level2Type cannot be empty"); } // 1.2 判断参数是否真实有效