@@ -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<LibraryModelPointM
@Override
public LibraryModelPointVO saveOrEditTemplatePoint ( LibraryModelPointDTO libraryModelPointDTO ) {
// Library library = libraryService.getById(libraryModelPointDTO.getLibraryId());
// Assert.notNull(library,"library does not exist!");
LibraryModelPointVO libraryModelPointVO = CopyUtil . copyObject ( libraryModelPointDTO , LibraryModelPointVO . class ) ;
// 从url中截取出的模特minio地址
String targetPath = null ;
// 标志是否有更改过模特比例
boolean flag = false ;
// 只有修改了模特后, 才传modelPath字段
if ( ! StringUtil . isNullOrEmpty ( libraryModelPointDTO . getModelPath ( ) ) ) {
flag = true ;
String url = libraryModelPointDTO . getModelPath ( ) ;
// 找到路径的起始位置(从"://"之后查找第一个"/")
int pathStartIndex = url . indexOf ( " / " , url . indexOf ( " :// " ) + 3 ) ;
// 找到查询参数的起始位置("?" 的位置)
int queryStartIndex = url . indexOf ( " ? " ) ;
// 截取目标部分
targetPath = url . substring ( pathStartIndex + 1 , queryStartIndex ) ;
}
// 不管是保存还是另存为, 都需要传模特的libraryId
Library libModel = libraryService . getById ( libraryModelPointDTO . getLibraryId ( ) ) ;
if ( Objects . isNull ( libModel ) ) {
throw new BusinessException ( " model.not.found " ) ;
}
if ( libraryModelPointDTO . getIsCovered ( ) ) {
// 当前模特路径
String url = libraryModelPointDTO . getModelPath ( ) ;
// 标志是否有更改过模特比例(即更换模特图)
boolean flag = url . equals ( libModel . getUrl ( ) ) ;
if ( libraryModelPointDTO . getIsCovered ( ) & & Objects . nonNull ( libraryModelPointDTO . getTemplateId ( ) ) ) {
// 覆盖保存,即更新原有数据(点位数据和模特图片)
LibraryModelPoint modelPoint = getById ( libraryModelPointDTO . getTemplateId ( ) ) ;
if ( Objects . isNull ( modelPoint ) ) {
@@ -92,12 +81,13 @@ public class LibraryModelPointServiceImpl extends ServiceImpl<LibraryModelPointM
modelPoint . setId ( libraryModelPointDTO . getTemplateId ( ) ) ;
updateById ( modelPoint ) ;
libraryModelPointVO . setTemplateId ( modelPoint . getId ( ) ) ;
libraryModelPointVO . setRelationId ( libraryModelPointDTO . getLibraryId ( ) ) ;
// 更新模特图片
if ( flag ) {
libModel . setUrl ( targetPath ) ;
libModel . setMd5 ( MD5Utils . encryptFile ( targetPath , false ) ) ;
List < Integer > imagesWidthAndHeight = minioUtil . getImagesWidthAndHeight ( targetPath ) ;
libModel . setUrl ( url ) ;
libModel . setMd5 ( MD5Utils . encryptFile ( minioUtil . getPreSignedUrl ( url , CommonConstant . MINIO_IMAGE_EXPIRE_TIME ) , false ) ) ;
List < Integer > 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<LibraryModelPointM
} else {
// 不覆盖,即另存为
// 新增模特library信息
if ( flag ) {
Library saveAsModel = new L ibrary ( ) ;
saveAsModel . setAccountId ( libModel . getAccountId ( ) ) ;
saveAsModel . setLevel1 Type ( libModel . getLevel1 Type ( ) ) ;
saveAsModel . setLevel2Type ( libModel . getLevel2Type ( ) ) ;
saveAsModel . setName ( DateUtil . dateToStr ( new Date ( ) , DateUtil . YYYY_MM_DD ) ) ;
saveAsModel . setUrl ( targetPath ) ;
saveAsModel . setMd5 ( MD5 Utils . encryptFile ( targetPath , false ) ) ;
List < Integer > imagesWidthAndHeight = minioUtil . getImagesWidthAndHeight ( targetPath ) ;
saveAsModel . setWidt h ( 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 ( l ibModel . getAccountId ( ) ) ;
saveAsModel . setLevel1Type ( libModel . getLevel1Type ( ) ) ;
saveAsModel . setLevel2 Type ( libModel . getLevel2 Type ( ) ) ;
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 < Integer > imagesWidthAndHeight = minio Util . getImagesWidthAndHeight ( url ) ;
saveAsModel . setWidth ( imagesWidthAndHeight . get ( 0 ) ) ;
saveAsModel . setHig h ( 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())) {