Generate
1、将生成图片的md5存储到数据库 2、记录sketchboard下,生成图片时的性别(添加到generateType之后)
This commit is contained in:
@@ -2,6 +2,10 @@ package com.ai.da.common.enums;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public enum GenerateModeEnum {
|
public enum GenerateModeEnum {
|
||||||
|
|
||||||
@@ -27,4 +31,8 @@ public enum GenerateModeEnum {
|
|||||||
this.code = code;
|
this.code = code;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<String> getGenerateModeList(){
|
||||||
|
return Stream.of(TEXT,IMAGE,TEXT_IMAGE).map(GenerateModeEnum::getValue).collect(Collectors.toList());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,5 +3,15 @@ package com.ai.da.mapper;
|
|||||||
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
import com.ai.da.common.config.mybatis.plus.CommonMapper;
|
||||||
import com.ai.da.mapper.entity.GenerateDetail;
|
import com.ai.da.mapper.entity.GenerateDetail;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface GenerateDetailMapper extends CommonMapper<GenerateDetail> {
|
public interface GenerateDetailMapper extends CommonMapper<GenerateDetail> {
|
||||||
|
/**
|
||||||
|
* 查找相同MD5相同level1Type 被like过的图片的libraryId
|
||||||
|
* @param md5 图片的MD5值
|
||||||
|
* @param level1Type levelType
|
||||||
|
* @return libraryId
|
||||||
|
*/
|
||||||
|
List<Map<String,Long>> getLibraryIdThroughMD5(String md5, String level1Type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,4 +13,7 @@ public class GenerateCollectionItemVO {
|
|||||||
|
|
||||||
@ApiModelProperty("generate生成图片的url")
|
@ApiModelProperty("generate生成图片的url")
|
||||||
private String generateItemUrl;
|
private String generateItemUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty("生成的图片是否已经被like")
|
||||||
|
private Boolean isLiked = Boolean.FALSE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,13 +69,17 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
// 1、获取用户信息
|
// 1、获取用户信息
|
||||||
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
AuthPrincipalVo userHolder = UserContext.getUserHolder();
|
||||||
Long accountId = userHolder.getId();
|
Long accountId = userHolder.getId();
|
||||||
|
if (!GenerateModeEnum.getGenerateModeList().contains(generateThroughImageTextDTO.getGenerateType())){
|
||||||
|
throw new BusinessException("unknown.generate.type");
|
||||||
|
}
|
||||||
|
|
||||||
// 2、判断必须入参是否为非空
|
// 2、判断必须入参是否为非空
|
||||||
Generate generate = new Generate();
|
Generate generate = new Generate();
|
||||||
generate.setAccountId(accountId);
|
generate.setAccountId(accountId);
|
||||||
generate.setLevel1Type(generateThroughImageTextDTO.getLevel1Type());
|
generate.setLevel1Type(generateThroughImageTextDTO.getLevel1Type());
|
||||||
|
// 当level1type是sketchboard时,存数据库需要加上当前性别
|
||||||
generate.setGenerateType(generate.getLevel1Type().equals(SKETCH_BOARD.getRealName()) ?
|
generate.setGenerateType(generate.getLevel1Type().equals(SKETCH_BOARD.getRealName()) ?
|
||||||
generateThroughImageTextDTO.getGender() + "_" + generateThroughImageTextDTO.getGenerateType() :
|
generateThroughImageTextDTO.getGenerateType() + " (" +generateThroughImageTextDTO.getGender() + ")":
|
||||||
generateThroughImageTextDTO.getGenerateType());
|
generateThroughImageTextDTO.getGenerateType());
|
||||||
generate.setModelName(StringUtil.isNullOrEmpty(generateThroughImageTextDTO.getVersion()) ? ModelNameEnum.MODEL_0.getCode() : generateThroughImageTextDTO.getVersion());
|
generate.setModelName(StringUtil.isNullOrEmpty(generateThroughImageTextDTO.getVersion()) ? ModelNameEnum.MODEL_0.getCode() : generateThroughImageTextDTO.getVersion());
|
||||||
generate.setCreateDate(DateUtil.getByTimeZone(generateThroughImageTextDTO.getTimeZone()));
|
generate.setCreateDate(DateUtil.getByTimeZone(generateThroughImageTextDTO.getTimeZone()));
|
||||||
@@ -93,7 +97,9 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
save(generate);
|
save(generate);
|
||||||
|
|
||||||
// 4、向模型发起请求
|
// 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" :
|
String category = generateThroughImageTextDTO.getLevel1Type().equals(SKETCH_BOARD.getRealName()) ? "sketch" :
|
||||||
generateThroughImageTextDTO.getLevel1Type().equals(PRINT_BOARD.getRealName()) ? "print" : "moodboard";
|
generateThroughImageTextDTO.getLevel1Type().equals(PRINT_BOARD.getRealName()) ? "print" : "moodboard";
|
||||||
List<String> generatedSketchUrl = pythonService.generateSketchOrPrint(accountId, Objects.isNull(elementId) ? null : collectionElement.getUrl(),
|
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<>();
|
List<GenerateCollectionItemVO> generatedCollectionItems = new ArrayList<>();
|
||||||
generatedSketchUrl.forEach(item -> {
|
generatedSketchUrl.forEach(item -> {
|
||||||
GenerateDetail generateDetail = new GenerateDetail();
|
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.setUrl(item);
|
||||||
generateDetail.setGenerateId(generate.getId());
|
generateDetail.setGenerateId(generate.getId());
|
||||||
generateDetail.setCreateDate(DateUtil.getByTimeZone(generateThroughImageTextDTO.getTimeZone()));
|
generateDetail.setCreateDate(DateUtil.getByTimeZone(generateThroughImageTextDTO.getTimeZone()));
|
||||||
generateDetail.setMd5(MD5Utils.encryptFile(minioUtil.getPresignedUrl(item, 24 * 60), Boolean.FALSE));
|
generateDetail.setMd5(md5);
|
||||||
generateDetailMapper.insert(generateDetail);
|
generateDetailMapper.insert(generateDetail);
|
||||||
|
|
||||||
GenerateCollectionItemVO generateCollectionItemVO = new GenerateCollectionItemVO();
|
|
||||||
generateCollectionItemVO.setGenerateItemId(generateDetail.getId());
|
generateCollectionItemVO.setGenerateItemId(generateDetail.getId());
|
||||||
generateCollectionItemVO.setGenerateItemUrl(minioUtil.getPresignedUrl(item, 24 * 60));
|
generateCollectionItemVO.setGenerateItemUrl(minioUtil.getPresignedUrl(item, 24 * 60));
|
||||||
generatedCollectionItems.add(generateCollectionItemVO);
|
generatedCollectionItems.add(generateCollectionItemVO);
|
||||||
|
|||||||
13
src/main/resources/mapper/GenerateDetailMapper.xml
Normal file
13
src/main/resources/mapper/GenerateDetailMapper.xml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ai.da.mapper.GenerateDetailMapper">
|
||||||
|
<select id="getLibraryIdThroughMD5" resultType="java.util.Map">
|
||||||
|
select a.library_id
|
||||||
|
from t_generate_detail a
|
||||||
|
left join t_generate b
|
||||||
|
on a.generate_id = b.id
|
||||||
|
where a.md5 = #{md5}
|
||||||
|
and a.is_like = 1
|
||||||
|
and b.level1_type = #{level1Type}
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
@@ -143,3 +143,4 @@ level1Type.does.not.match=level1Type does not match!
|
|||||||
the.image.does.not.exist.please.reselect=the image does not exist, please reselect!
|
the.image.does.not.exist.please.reselect=the image does not exist, please reselect!
|
||||||
design.item.does.not.exist=design item does not exist!
|
design.item.does.not.exist=design item does not exist!
|
||||||
layers.does.not.exists=layers does not exists!
|
layers.does.not.exists=layers does not exists!
|
||||||
|
unknown.generate.type=unknown generate type!
|
||||||
Reference in New Issue
Block a user