This commit is contained in:
litianxiang
2026-03-24 14:29:08 +08:00
parent bcf51aea23
commit dea2b3be42

View File

@@ -291,49 +291,56 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
public void processGenerateResult(String taskId, String url, String category) { public void processGenerateResult(String taskId, String url, String category) {
log.info("============ProcessGenerateResult listening=========="); log.info("============ProcessGenerateResult listening==========");
log.debug("taskId: " + taskId); log.debug("taskId: " + taskId);
// 1、处理模型返回的数据 String status = null;
GenerateDetail generateDetail = new GenerateDetail();
GenerateCollectionItemVO generateCollectionItemVO = new GenerateCollectionItemVO();
Generate generate;
try { try {
generate = selectByUniqueId(taskId); // 1、处理模型返回的数据
} catch (MybatisPlusException e) { GenerateDetail generateDetail = new GenerateDetail();
log.error(e.getMessage()); GenerateCollectionItemVO generateCollectionItemVO = new GenerateCollectionItemVO();
if (e.getMessage().equals("One record is expected, but the query result is multiple records")) { Generate generate;
generate = selectListByUniqueId(taskId).get(0); try {
} else { generate = selectByUniqueId(taskId);
log.error("There are some problems with database query, please try again."); } catch (MybatisPlusException e) {
return; log.error(e.getMessage());
if (e.getMessage().equals("One record is expected, but the query result is multiple records")) {
generate = selectListByUniqueId(taskId).get(0);
} else {
log.error("There are some problems with database query, please try again.");
return;
}
} }
}
// Generate generate = selectByUniqueId(taskId); // Generate generate = selectByUniqueId(taskId);
String md5 = MD5Utils.encryptFile(minioUtil.getPreSignedUrl(url, 24 * 60), Boolean.FALSE); String md5 = MD5Utils.encryptFile(minioUtil.getPreSignedUrl(url, 24 * 60), Boolean.FALSE);
// 通过MD5值和level1Type,判断不同level1Type下相同的图片是否被like过 // 通过MD5值和level1Type,判断不同level1Type下相同的图片是否被like过
List<Map<String, Long>> libraryIdList = generateDetailMapper.getLibraryIdThroughMD5(md5, generate.getLevel1Type()); List<Map<String, Long>> libraryIdList = generateDetailMapper.getLibraryIdThroughMD5(md5, generate.getLevel1Type());
if (!libraryIdList.isEmpty()) { if (!libraryIdList.isEmpty()) {
generateDetail.setIsLike((byte) 1); generateDetail.setIsLike((byte) 1);
generateDetail.setLibraryId(libraryIdList.get(0).get("library_id")); generateDetail.setLibraryId(libraryIdList.get(0).get("library_id"));
generateCollectionItemVO.setIsLiked(Boolean.TRUE); generateCollectionItemVO.setIsLiked(Boolean.TRUE);
} }
generateDetail.setUrl(url); generateDetail.setUrl(url);
generateDetail.setGenerateId(generate.getId()); generateDetail.setGenerateId(generate.getId());
generateDetail.setCreateDate(LocalDateTime.now()); generateDetail.setCreateDate(LocalDateTime.now());
generateDetail.setMd5(md5); generateDetail.setMd5(md5);
// 将相应的url保存到数据库 // 将相应的url保存到数据库
generateDetailMapper.insert(generateDetail); generateDetailMapper.insert(generateDetail);
log.debug("generateDetail: " + generateDetail.toString());
// String uuid = taskId.substring(0, taskId.substring(0, taskId.lastIndexOf("-")).lastIndexOf("-")); // String uuid = taskId.substring(0, taskId.substring(0, taskId.lastIndexOf("-")).lastIndexOf("-"));
String key = generateResultKey + ":" + taskId; String key = generateResultKey + ":" + taskId;
String imageName = url.substring(url.lastIndexOf("/") + 1); String imageName = url.substring(url.lastIndexOf("/") + 1);
String status = imageName.equals("white_image.jpg") ? "Invalid" : "Success"; status = imageName.equals("white_image.jpg") ? "Invalid" : "Success";
if (StringUtil.isNullOrEmpty(category)) { if (StringUtil.isNullOrEmpty(category)) {
Generate generateRecord = selectByUniqueId(taskId); Generate generateRecord = selectByUniqueId(taskId);
category = generateRecord.getLevel2Type(); category = generateRecord.getLevel2Type();
}
GenerateResultVO generateResultVO = new GenerateResultVO(taskId, generateDetail.getId(), url, status, category);
// 更新redis
redisUtil.addToString(key, new Gson().toJson(generateResultVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
log.debug("generateResultVO: " + generateResultVO.toString());
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
} }
GenerateResultVO generateResultVO = new GenerateResultVO(taskId, generateDetail.getId(), url, status, category);
// 更新redis
redisUtil.addToString(key, new Gson().toJson(generateResultVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
log.debug("generateResultVO: " + generateResultVO.toString());
// 执行积分扣除 // 执行积分扣除
// ** 注:如果生成的图片都是空白 则不扣积分 // ** 注:如果生成的图片都是空白 则不扣积分