From d21cb4adfc3e710a74bc94aae33c8e4e509e3d1a Mon Sep 17 00:00:00 2001 From: xupei Date: Wed, 2 Apr 2025 11:08:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A8=A1=E7=89=B9=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E6=8E=A5=E5=8F=A3=E5=92=8C=E6=B7=BB=E5=8A=A0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E6=A8=A1=E7=89=B9=E5=88=B0=E4=B8=AA=E4=BA=BAlib?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/controller/LibraryController.java | 4 +- .../ai/da/model/dto/LibraryModelPointDTO.java | 3 +- .../impl/LibraryModelPointServiceImpl.java | 66 ++++++++----------- .../da/service/impl/LibraryServiceImpl.java | 4 +- src/main/resources/messages_en.properties | 2 + src/main/resources/messages_zh.properties | 2 + 6 files changed, 38 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/ai/da/controller/LibraryController.java b/src/main/java/com/ai/da/controller/LibraryController.java index 3b146901..bf55589a 100644 --- a/src/main/java/com/ai/da/controller/LibraryController.java +++ b/src/main/java/com/ai/da/controller/LibraryController.java @@ -203,8 +203,8 @@ public class LibraryController { } @ApiOperation(value = "将系统模特添加到个人library") - @PostMapping("addSysModelToLib") - public Response addSysModelToLib(@ApiParam("系统模特id") @RequestPart("sysModelId")long sysModelId){ + @GetMapping("addSysModelToLib") + public Response addSysModelToLib(@ApiParam("系统模特id") @RequestParam("sysModelId")long sysModelId){ return Response.success(libraryService.addSysModelToLib(sysModelId)); } diff --git a/src/main/java/com/ai/da/model/dto/LibraryModelPointDTO.java b/src/main/java/com/ai/da/model/dto/LibraryModelPointDTO.java index 60b6de3e..a6bdb477 100644 --- a/src/main/java/com/ai/da/model/dto/LibraryModelPointDTO.java +++ b/src/main/java/com/ai/da/model/dto/LibraryModelPointDTO.java @@ -62,7 +62,8 @@ public class LibraryModelPointDTO implements Serializable { @ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") private String timeZone; - @ApiModelProperty("模特路径 全路径即可") + @NotBlank(message = "model.path.cannot.be.empty") + @ApiModelProperty("模特路径") private String modelPath; @ApiModelProperty("是否覆盖保存还是另存为 true -> 保存,false -> 另存为") diff --git a/src/main/java/com/ai/da/service/impl/LibraryModelPointServiceImpl.java b/src/main/java/com/ai/da/service/impl/LibraryModelPointServiceImpl.java index d07b2ec0..48ccab1b 100644 --- a/src/main/java/com/ai/da/service/impl/LibraryModelPointServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LibraryModelPointServiceImpl.java @@ -2,6 +2,7 @@ package com.ai.da.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.ai.da.common.config.exception.BusinessException; +import com.ai.da.common.constant.CommonConstant; import com.ai.da.common.enums.SingleOverallEnum; import com.ai.da.common.utils.CopyUtil; import com.ai.da.common.utils.DateUtil; @@ -22,7 +23,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import io.netty.util.internal.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -56,31 +56,20 @@ public class LibraryModelPointServiceImpl extends ServiceImpl imagesWidthAndHeight = minioUtil.getImagesWidthAndHeight(targetPath); + libModel.setUrl(url); + libModel.setMd5(MD5Utils.encryptFile(minioUtil.getPreSignedUrl(url, CommonConstant.MINIO_IMAGE_EXPIRE_TIME), false)); + List imagesWidthAndHeight = minioUtil.getImagesWidthAndHeight(url); libModel.setWidth(imagesWidthAndHeight.get(0)); libModel.setHigh(imagesWidthAndHeight.get(1)); libModel.setUpdateDate(DateUtil.getByTimeZone(libraryModelPointDTO.getTimeZone())); @@ -106,28 +96,28 @@ public class LibraryModelPointServiceImpl extends ServiceImpl imagesWidthAndHeight = minioUtil.getImagesWidthAndHeight(targetPath); - saveAsModel.setWidth(imagesWidthAndHeight.get(0)); - saveAsModel.setHigh(imagesWidthAndHeight.get(1)); - saveAsModel.setCreateDate(DateUtil.getByTimeZone(libraryModelPointDTO.getTimeZone())); - libraryService.save(saveAsModel); - // 更新新的模特在library中的id,用于后面新建模特点位信息用 - libraryModelPointDTO.setLibraryId(saveAsModel.getId()); - } + Library saveAsModel = new Library(); + saveAsModel.setAccountId(libModel.getAccountId()); + saveAsModel.setLevel1Type(libModel.getLevel1Type()); + saveAsModel.setLevel2Type(libModel.getLevel2Type()); + saveAsModel.setName(DateUtil.dateToStr(new Date(), DateUtil.YYYY_MM_DD)); + saveAsModel.setUrl(url); + saveAsModel.setMd5(MD5Utils.encryptFile(minioUtil.getPreSignedUrl(url, CommonConstant.MINIO_IMAGE_EXPIRE_TIME), false)); + List imagesWidthAndHeight = minioUtil.getImagesWidthAndHeight(url); + saveAsModel.setWidth(imagesWidthAndHeight.get(0)); + saveAsModel.setHigh(imagesWidthAndHeight.get(1)); + saveAsModel.setCreateDate(DateUtil.getByTimeZone(libraryModelPointDTO.getTimeZone())); + libraryService.save(saveAsModel); + // 更新新的模特在library中的id,用于后面新建模特点位信息用 + libraryModelPointDTO.setLibraryId(saveAsModel.getId()); // 新增模特点位信息 LibraryModelPoint libraryModelPoint = resolvePoint(libraryModelPointDTO); + libraryModelPoint.setModelType("Library"); libraryModelPoint.setCreateDate(DateUtil.getByTimeZone(libraryModelPointDTO.getTimeZone())); save(libraryModelPoint); libraryModelPointVO.setTemplateId(libraryModelPoint.getId()); + libraryModelPointVO.setRelationId(libraryModelPoint.getRelationId()); } //编辑 /*if (!StringUtils.isEmpty(libraryModelPointDTO.getModelSex())) { diff --git a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java index f1615112..53303768 100644 --- a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java @@ -24,7 +24,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.google.common.base.Function; import lombok.extern.slf4j.Slf4j; import okhttp3.*; import org.apache.commons.fileupload.FileItem; @@ -51,7 +50,6 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -830,12 +828,14 @@ public class LibraryServiceImpl extends ServiceImpl impl } Library library = CopyUtil.copyObject(sysFile, Library.class); + library.setId(null); library.setAccountId(accountId); library.setName(DateUtil.dateToStr(new Date(), DateUtil.YYYY_MM_DD)); List imagesWidthAndHeight = minioUtil.getImagesWidthAndHeight(sysFile.getUrl()); library.setWidth(imagesWidthAndHeight.get(0)); library.setHigh(imagesWidthAndHeight.get(1)); library.setCreateDate(new Date()); + library.setUpdateDate(null); libraryMapper.insert(library); return library.getId(); diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index 7599e966..72d23f64 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -151,6 +151,8 @@ remaining.credits.insufficient=Your remaining credits are insufficient for this you.haven't.subscribed.to.any.products.yet=You haven't subscribed to any products yet generate.result.below.standard=The quality of the generated images currently falls below standard. Please consider adjusting your prompt and trying again. partial.design.failed=Partial design failed, Please try again later. +email.count.limit=Rate limit reached. Retry in 1 hour. +model.path.cannot.be.empty=Model path cannot be empty. # 可能会报异常 # Informative: diff --git a/src/main/resources/messages_zh.properties b/src/main/resources/messages_zh.properties index d16d1a1a..4313f6a3 100644 --- a/src/main/resources/messages_zh.properties +++ b/src/main/resources/messages_zh.properties @@ -147,6 +147,8 @@ remaining.credits.insufficient=您的剩余积分不够本次生成消耗,请 you.haven't.subscribed.to.any.products.yet=您还未订阅任何产品 generate.result.below.standard=当前生成的图像质量低于标准。请考虑调整您的提示词并再次尝试 partial.design.failed=局部设计失败。请稍后重试。 +email.count.limit=您的账号触发邮件发送频率限制,请一小时后重试。 +model.path.cannot.be.empty=模特路径不能为空 # 可能会报异常 # Informative: