From 8e938e9f060ccb4ba9d229769e27af358430c5ba Mon Sep 17 00:00:00 2001 From: xupei Date: Tue, 1 Apr 2025 17:15:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=A8=A1=E7=89=B9=E7=82=B9?= =?UTF-8?q?=E4=BD=8D=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/controller/LibraryController.java | 6 ++ .../ai/da/model/dto/LibraryModelPointDTO.java | 6 ++ .../com/ai/da/service/LibraryService.java | 2 + .../da/service/impl/GenerateServiceImpl.java | 12 +-- .../impl/LibraryModelPointServiceImpl.java | 94 +++++++++++++++---- .../da/service/impl/LibraryServiceImpl.java | 20 ++++ 6 files changed, 116 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/ai/da/controller/LibraryController.java b/src/main/java/com/ai/da/controller/LibraryController.java index 3330da02..3b146901 100644 --- a/src/main/java/com/ai/da/controller/LibraryController.java +++ b/src/main/java/com/ai/da/controller/LibraryController.java @@ -202,4 +202,10 @@ public class LibraryController { return Response.success(true); } + @ApiOperation(value = "将系统模特添加到个人library") + @PostMapping("addSysModelToLib") + public Response addSysModelToLib(@ApiParam("系统模特id") @RequestPart("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 b623a148..60b6de3e 100644 --- a/src/main/java/com/ai/da/model/dto/LibraryModelPointDTO.java +++ b/src/main/java/com/ai/da/model/dto/LibraryModelPointDTO.java @@ -62,4 +62,10 @@ public class LibraryModelPointDTO implements Serializable { @ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") private String timeZone; + @ApiModelProperty("模特路径 全路径即可") + private String modelPath; + + @ApiModelProperty("是否覆盖保存还是另存为 true -> 保存,false -> 另存为") + private Boolean isCovered; + } diff --git a/src/main/java/com/ai/da/service/LibraryService.java b/src/main/java/com/ai/da/service/LibraryService.java index d2083312..3ca76c2a 100644 --- a/src/main/java/com/ai/da/service/LibraryService.java +++ b/src/main/java/com/ai/da/service/LibraryService.java @@ -88,4 +88,6 @@ public interface LibraryService extends IService { void deleteTrialData(Long id); void moveLibraryDate() throws ParseException; + + Long addSysModelToLib(long sysModelId); } 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 769b3eb7..752b90d1 100644 --- a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java @@ -1070,7 +1070,7 @@ public class GenerateServiceImpl extends ServiceImpl i model = libraryService.getById(proportionDTO.getId()); String url = model.getUrl(); name = url.substring(url.indexOf("/") + 1, url.lastIndexOf("/")) + "/" + uuid; - gender = model.getLevel2Type(); +// gender = model.getLevel2Type(); }else { SysFileVO sysModel = sysFileService.getById(proportionDTO.getId()); gender = sysModel.getLevel2Type(); @@ -1078,9 +1078,9 @@ public class GenerateServiceImpl extends ServiceImpl i } // 只需要将结果存入library String modifiedModel = pythonService.modifyModelProportion(proportionDTO.getModelPath(), proportionDTO.getStretch(), name, proportionDTO.getTop(), proportionDTO.getBottom()); - List imagesWidthAndHeight = minioUtil.getImagesWidthAndHeight(modifiedModel); +// List imagesWidthAndHeight = minioUtil.getImagesWidthAndHeight(modifiedModel); - // 存储修改后的模特到个人library + /*// 存储修改后的模特到个人library model = new Library(); model.setAccountId(accountId); model.setLevel1Type(LibraryLevel1TypeEnum.MODELS.getRealName()); @@ -1091,9 +1091,9 @@ public class GenerateServiceImpl extends ServiceImpl i model.setWidth(imagesWidthAndHeight.get(0)); model.setHigh(imagesWidthAndHeight.get(1)); model.setCreateDate(new Date()); - libraryService.save(model); + libraryService.save(model);*/ - // 新建模特点位信息 +/* // 新建模特点位信息 LibraryModelPoint libraryModelPoint = new LibraryModelPoint(); libraryModelPoint.setModelType("Library"); libraryModelPoint.setRelationId(model.getId()); @@ -1104,7 +1104,7 @@ public class GenerateServiceImpl extends ServiceImpl i libraryModelPoint.setHandLeft(Arrays.toString(proportionDTO.getHandLeft())); libraryModelPoint.setHandRight(Arrays.toString(proportionDTO.getHandRight())); libraryModelPoint.setCreateDate(new Date()); - libraryModelPointService.save(libraryModelPoint); + libraryModelPointService.save(libraryModelPoint);*/ return minioUtil.getPreSignedUrl(modifiedModel, CommonConstant.MINIO_IMAGE_EXPIRE_TIME); } 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 2f643368..d07b2ec0 100644 --- a/src/main/java/com/ai/da/service/impl/LibraryModelPointServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LibraryModelPointServiceImpl.java @@ -5,12 +5,13 @@ import com.ai.da.common.config.exception.BusinessException; import com.ai.da.common.enums.SingleOverallEnum; import com.ai.da.common.utils.CopyUtil; import com.ai.da.common.utils.DateUtil; +import com.ai.da.common.utils.MD5Utils; +import com.ai.da.common.utils.MinioUtil; import com.ai.da.mapper.primary.LibraryModelPointMapper; import com.ai.da.mapper.primary.entity.*; import com.ai.da.model.dto.LibraryModelPointDTO; import com.ai.da.model.dto.ModelsDotDTO; import com.ai.da.model.enums.ModelType; -import com.ai.da.model.enums.Sex; import com.ai.da.model.vo.LibraryModelPointVO; import com.ai.da.python.PythonService; import com.ai.da.python.vo.DesignPythonObjects; @@ -21,13 +22,15 @@ 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; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import javax.annotation.Resource; -import java.util.Collections; +import java.util.Date; import java.util.List; import java.util.Objects; @@ -48,21 +51,86 @@ public class LibraryModelPointServiceImpl extends ServiceImpl imagesWidthAndHeight = minioUtil.getImagesWidthAndHeight(targetPath); + libModel.setWidth(imagesWidthAndHeight.get(0)); + libModel.setHigh(imagesWidthAndHeight.get(1)); + libModel.setUpdateDate(DateUtil.getByTimeZone(libraryModelPointDTO.getTimeZone())); + libraryService.updateById(libModel); + } + }else { + // 不覆盖,即另存为 + // 新增模特library信息 + if (flag){ + 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(targetPath); + saveAsModel.setMd5(MD5Utils.encryptFile(targetPath, false)); + List 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()); + } + + // 新增模特点位信息 LibraryModelPoint libraryModelPoint = resolvePoint(libraryModelPointDTO); libraryModelPoint.setCreateDate(DateUtil.getByTimeZone(libraryModelPointDTO.getTimeZone())); save(libraryModelPoint); libraryModelPointVO.setTemplateId(libraryModelPoint.getId()); - } else { - //编辑 - if (!StringUtils.isEmpty(libraryModelPointDTO.getModelSex())) { + } + //编辑 + /*if (!StringUtils.isEmpty(libraryModelPointDTO.getModelSex())) { Library byId = libraryService.getById(libraryModelPointDTO.getLibraryId()); if (!byId.getLevel2Type().equals(libraryModelPointDTO.getModelSex())) { if (byId.getLevel2Type().equals(Sex.FEMALE.getValue())) { @@ -73,17 +141,7 @@ public class LibraryModelPointServiceImpl extends ServiceImpl impl } return Boolean.TRUE; } + + @Override + public Long addSysModelToLib(long sysModelId) { + Long accountId = UserContext.getUserHolder().getId(); + SysFile sysFile = sysFileMapper.selectById(sysModelId); + if (Objects.isNull(sysFile)) { + throw new BusinessException("model.not.found", ResultEnum.PROMPT.getCode()); + } + + Library library = CopyUtil.copyObject(sysFile, Library.class); + 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()); + libraryMapper.insert(library); + + return library.getId(); + } }