BUGFIX:模特上传,事务管理不统一导致library出现孤儿数据
This commit is contained in:
@@ -28,6 +28,7 @@ import io.netty.util.internal.StringUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@@ -53,7 +54,11 @@ public class LibraryModelPointServiceImpl extends ServiceImpl<LibraryModelPointM
|
||||
private final PythonTAllInfoService pythonTAllInfoService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public LibraryModelPointVO saveOrEditTemplatePoint(LibraryModelPointDTO libraryModelPointDTO) {
|
||||
// 参数校验
|
||||
validateInputParams(libraryModelPointDTO);
|
||||
|
||||
LibraryModelPointVO libraryModelPointVO = CopyUtil.copyObject(libraryModelPointDTO, LibraryModelPointVO.class);
|
||||
|
||||
// 不管是保存还是另存为,都需要传模特的libraryId
|
||||
@@ -71,7 +76,8 @@ public class LibraryModelPointServiceImpl extends ServiceImpl<LibraryModelPointM
|
||||
// 更新模特图片
|
||||
if (flag) {
|
||||
libModel.setUrl(url);
|
||||
libModel.setMd5(MD5Utils.encryptFile(minioUtil.getPreSignedUrl(url, CommonConstant.MINIO_IMAGE_EXPIRE_TIME), false));
|
||||
String preSignedUrl = minioUtil.getPreSignedUrl(url, CommonConstant.MINIO_IMAGE_EXPIRE_TIME);
|
||||
libModel.setMd5(MD5Utils.encryptFile(preSignedUrl, false));
|
||||
List<Integer> imagesWidthAndHeight = minioUtil.getImagesWidthAndHeight(url);
|
||||
libModel.setWidth(imagesWidthAndHeight.get(0));
|
||||
libModel.setHigh(imagesWidthAndHeight.get(1));
|
||||
@@ -104,25 +110,10 @@ public class LibraryModelPointServiceImpl extends ServiceImpl<LibraryModelPointM
|
||||
|
||||
} else {
|
||||
// 不覆盖,即另存为
|
||||
// 新增模特library信息
|
||||
Library saveAsModel = new Library();
|
||||
saveAsModel.setAccountId(libModel.getAccountId());
|
||||
saveAsModel.setLevel1Type(libModel.getLevel1Type());
|
||||
saveAsModel.setLevel2Type(libModel.getLevel2Type());
|
||||
String ageGroup = StringUtil.isNullOrEmpty(libModel.getLevel3Type()) ? "Adult" : libModel.getLevel3Type();
|
||||
saveAsModel.setLevel3Type(ageGroup);
|
||||
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 = 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());
|
||||
Library saveAsModel = createNewLibraryCopy(libModel, libraryModelPointDTO);
|
||||
|
||||
// 新增模特点位信息
|
||||
libraryModelPointDTO.setLibraryId(saveAsModel.getId()); // 更新libraryId为新创建的模型ID
|
||||
LibraryModelPoint libraryModelPoint = resolvePoint(libraryModelPointDTO);
|
||||
libraryModelPoint.setModelType("Library");
|
||||
libraryModelPoint.setCreateDate(DateUtil.getByTimeZone(libraryModelPointDTO.getTimeZone()));
|
||||
@@ -130,22 +121,50 @@ public class LibraryModelPointServiceImpl extends ServiceImpl<LibraryModelPointM
|
||||
libraryModelPointVO.setTemplateId(libraryModelPoint.getId());
|
||||
libraryModelPointVO.setRelationId(libraryModelPoint.getRelationId());
|
||||
}
|
||||
//编辑
|
||||
/*if (!StringUtils.isEmpty(libraryModelPointDTO.getModelSex())) {
|
||||
Library byId = libraryService.getById(libraryModelPointDTO.getLibraryId());
|
||||
if (!byId.getLevel2Type().equals(libraryModelPointDTO.getModelSex())) {
|
||||
if (byId.getLevel2Type().equals(Sex.FEMALE.getValue())) {
|
||||
libraryService.checkModel(Sex.FEMALE.getValue(), Collections.singletonList(byId.getId()), 1);
|
||||
}else {
|
||||
libraryService.checkModel(Sex.MALE.getValue(), Collections.singletonList(byId.getId()), 1);
|
||||
}
|
||||
byId.setLevel2Type(libraryModelPointDTO.getModelSex());
|
||||
libraryService.updateById(byId);
|
||||
}
|
||||
}*/
|
||||
return libraryModelPointVO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证输入参数
|
||||
*/
|
||||
private void validateInputParams(LibraryModelPointDTO libraryModelPointDTO) {
|
||||
if (libraryModelPointDTO == null) {
|
||||
throw new BusinessException("libraryModelPointDTO cannot be null");
|
||||
}
|
||||
if (libraryModelPointDTO.getLibraryId() == null || libraryModelPointDTO.getLibraryId() <= 0) {
|
||||
throw new BusinessException("libraryId is required");
|
||||
}
|
||||
if (StringUtils.isEmpty(libraryModelPointDTO.getModelPath())) {
|
||||
throw new BusinessException("modelPath is required");
|
||||
}
|
||||
if (StringUtils.isEmpty(libraryModelPointDTO.getTimeZone())) {
|
||||
throw new BusinessException("timeZone is required");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建新的库模型副本
|
||||
*/
|
||||
private Library createNewLibraryCopy(Library originalModel, LibraryModelPointDTO libraryModelPointDTO) {
|
||||
// 新增模特library信息
|
||||
Library saveAsModel = new Library();
|
||||
saveAsModel.setAccountId(originalModel.getAccountId());
|
||||
saveAsModel.setLevel1Type(originalModel.getLevel1Type());
|
||||
saveAsModel.setLevel2Type(originalModel.getLevel2Type());
|
||||
String ageGroup = StringUtil.isNullOrEmpty(originalModel.getLevel3Type()) ? "Adult" : originalModel.getLevel3Type();
|
||||
saveAsModel.setLevel3Type(ageGroup);
|
||||
saveAsModel.setName(DateUtil.dateToStr(new Date(), DateUtil.YYYY_MM_DD));
|
||||
saveAsModel.setUrl(libraryModelPointDTO.getModelPath());
|
||||
String preSignedUrl = minioUtil.getPreSignedUrl(libraryModelPointDTO.getModelPath(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME);
|
||||
saveAsModel.setMd5(MD5Utils.encryptFile(preSignedUrl, false));
|
||||
List<Integer> imagesWidthAndHeight = minioUtil.getImagesWidthAndHeight(libraryModelPointDTO.getModelPath());
|
||||
saveAsModel.setWidth(imagesWidthAndHeight.get(0));
|
||||
saveAsModel.setHigh(imagesWidthAndHeight.get(1));
|
||||
saveAsModel.setCreateDate(DateUtil.getByTimeZone(libraryModelPointDTO.getTimeZone()));
|
||||
libraryService.save(saveAsModel);
|
||||
return saveAsModel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LibraryModelPointVO saveOrEditTemplatePointOld(LibraryModelPointDTO libraryModelPointDTO) {
|
||||
// Library library = libraryService.getById(libraryModelPointDTO.getLibraryId());
|
||||
|
||||
Reference in New Issue
Block a user