1、将生成图片的md5存储到数据库
2、记录sketchboard下,生成图片时的性别(添加到generateType之后)
This commit is contained in:
xupei
2023-11-03 11:29:54 +08:00
parent 0313149ea5
commit ffcbabf62e
6 changed files with 54 additions and 5 deletions

View File

@@ -69,13 +69,17 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
// 1、获取用户信息
AuthPrincipalVo userHolder = UserContext.getUserHolder();
Long accountId = userHolder.getId();
if (!GenerateModeEnum.getGenerateModeList().contains(generateThroughImageTextDTO.getGenerateType())){
throw new BusinessException("unknown.generate.type");
}
// 2、判断必须入参是否为非空
Generate generate = new Generate();
generate.setAccountId(accountId);
generate.setLevel1Type(generateThroughImageTextDTO.getLevel1Type());
// 当level1type是sketchboard时存数据库需要加上当前性别
generate.setGenerateType(generate.getLevel1Type().equals(SKETCH_BOARD.getRealName()) ?
generateThroughImageTextDTO.getGender() + "_" + generateThroughImageTextDTO.getGenerateType() :
generateThroughImageTextDTO.getGenerateType() + " (" +generateThroughImageTextDTO.getGender() + ")":
generateThroughImageTextDTO.getGenerateType());
generate.setModelName(StringUtil.isNullOrEmpty(generateThroughImageTextDTO.getVersion()) ? ModelNameEnum.MODEL_0.getCode() : generateThroughImageTextDTO.getVersion());
generate.setCreateDate(DateUtil.getByTimeZone(generateThroughImageTextDTO.getTimeZone()));
@@ -93,7 +97,9 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
save(generate);
// 4、向模型发起请求
int mode = GenerateModeEnum.TEXT.getValue().equals(generate.getGenerateType()) ? GenerateModeEnum.TEXT.getCode() : GenerateModeEnum.TEXT_IMAGE.getCode();
int mode = GenerateModeEnum.TEXT.getValue().equals(generateThroughImageTextDTO.getGenerateType()) ?
GenerateModeEnum.TEXT.getCode() :
GenerateModeEnum.TEXT_IMAGE.getCode();
String category = generateThroughImageTextDTO.getLevel1Type().equals(SKETCH_BOARD.getRealName()) ? "sketch" :
generateThroughImageTextDTO.getLevel1Type().equals(PRINT_BOARD.getRealName()) ? "print" : "moodboard";
List<String> generatedSketchUrl = pythonService.generateSketchOrPrint(accountId, Objects.isNull(elementId) ? null : collectionElement.getUrl(),
@@ -106,13 +112,21 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
List<GenerateCollectionItemVO> generatedCollectionItems = new ArrayList<>();
generatedSketchUrl.forEach(item -> {
GenerateDetail generateDetail = new GenerateDetail();
GenerateCollectionItemVO generateCollectionItemVO = new GenerateCollectionItemVO();
String md5 = MD5Utils.encryptFile(minioUtil.getPresignedUrl(item, 24 * 60), Boolean.FALSE);
// 通过MD5值和level1Type,判断不同level1Type下相同的图片是否被like过
List<Map<String,Long>> libraryIdList = generateDetailMapper.getLibraryIdThroughMD5(md5, generateThroughImageTextDTO.getLevel1Type());
if (!libraryIdList.isEmpty()){
generateDetail.setIsLike((byte) 1);
generateDetail.setLibraryId(libraryIdList.get(0).get("library_id"));
generateCollectionItemVO.setIsLiked(Boolean.TRUE);
}
generateDetail.setUrl(item);
generateDetail.setGenerateId(generate.getId());
generateDetail.setCreateDate(DateUtil.getByTimeZone(generateThroughImageTextDTO.getTimeZone()));
generateDetail.setMd5(MD5Utils.encryptFile(minioUtil.getPresignedUrl(item, 24 * 60), Boolean.FALSE));
generateDetail.setMd5(md5);
generateDetailMapper.insert(generateDetail);
GenerateCollectionItemVO generateCollectionItemVO = new GenerateCollectionItemVO();
generateCollectionItemVO.setGenerateItemId(generateDetail.getId());
generateCollectionItemVO.setGenerateItemUrl(minioUtil.getPresignedUrl(item, 24 * 60));
generatedCollectionItems.add(generateCollectionItemVO);