From ba14b67c24b84d632f106361cda62bc211fa215e Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Mon, 21 Apr 2025 19:40:41 +0800 Subject: [PATCH] =?UTF-8?q?TASK:=E6=A8=A1=E5=9D=97=E5=8C=96=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/controller/DesignController.java | 7 -- .../com/ai/da/model/vo/CloudTaskResultVO.java | 1 + .../ai/da/service/UserLikeGroupService.java | 2 + .../ai/da/service/impl/DesignServiceImpl.java | 72 ++++++++++++++++--- .../impl/UserLikeGroupServiceImpl.java | 66 +++++++++++++++++ 5 files changed, 130 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/ai/da/controller/DesignController.java b/src/main/java/com/ai/da/controller/DesignController.java index c423ee6a..ad3d1032 100644 --- a/src/main/java/com/ai/da/controller/DesignController.java +++ b/src/main/java/com/ai/da/controller/DesignController.java @@ -115,11 +115,4 @@ public class DesignController { public Response getDesignCloudResult(@Valid @RequestBody DesignCloudResultQuery designCloudResultQuery) { return Response.success(designService.getDesignCloudResult(designCloudResultQuery)); } - - @ApiOperation(value = "获取生成结果") - @PostMapping("/toProductImageBatchResult") - public Response> getToProductImageResult(@Valid @RequestBody List taskIdList) { - List magicToolResultVOList = userLikeGroupService.getToProductImageResultList(taskIdList); - return Response.success(magicToolResultVOList); - } } diff --git a/src/main/java/com/ai/da/model/vo/CloudTaskResultVO.java b/src/main/java/com/ai/da/model/vo/CloudTaskResultVO.java index 559a5633..4478ec5a 100644 --- a/src/main/java/com/ai/da/model/vo/CloudTaskResultVO.java +++ b/src/main/java/com/ai/da/model/vo/CloudTaskResultVO.java @@ -9,4 +9,5 @@ import java.util.List; public class CloudTaskResultVO { private PageBaseResponse design; private List toProductImage; + private List relight; } diff --git a/src/main/java/com/ai/da/service/UserLikeGroupService.java b/src/main/java/com/ai/da/service/UserLikeGroupService.java index 27ee0396..425ad6ae 100644 --- a/src/main/java/com/ai/da/service/UserLikeGroupService.java +++ b/src/main/java/com/ai/da/service/UserLikeGroupService.java @@ -111,4 +111,6 @@ public interface UserLikeGroupService extends IService { Boolean brandDNADelete(BrandDNADTO brandDNADTO); void toProductBatch(String taskId, String url, String progress); + + void relightBatch(String taskId, String url, String progress); } diff --git a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java index 4401400a..f22f9a00 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -2483,6 +2483,11 @@ public class DesignServiceImpl extends ServiceImpl impleme return convert; } + @Value("${redis.key.toProductImageResultKey}") + private String toProductImageResultKey; + @Value("${redis.key.relightResultKey}") + private String relightResultKey; + @Override public CloudTaskResultVO getDesignCloudResult(DesignCloudResultQuery query) { CloudTaskResultVO result = new CloudTaskResultVO(); @@ -2519,21 +2524,66 @@ public class DesignServiceImpl extends ServiceImpl impleme toProductImageResultQueryWrapper.lambda().eq(ToProductImageResult::getTaskIdBatch, query.getTaskId()); List toProductImageResultList = toProductImageResultMapper.selectList(toProductImageResultQueryWrapper); for (ToProductImageResult toProductImageResult : toProductImageResultList) { - MagicToolResultVO magicToolResultVO = new MagicToolResultVO(); - magicToolResultVO.setUrl(minioUtil.getPreSignedUrl(toProductImageResult.getUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); - magicToolResultVO.setResultType(toProductImageResult.getResultType()); - magicToolResultVO.setElementId(toProductImageResult.getElementId()); - magicToolResultVO.setElementType(toProductImageResult.getElementType()); - if (toProductImageResult.getElementType().equals("ProductElement")) { - ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageResult.getElementId()); - magicToolResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductElement.getUrl(), 24 * 60)); - }else { - TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageResult.getElementId()); - magicToolResultVO.setSourceUrl(minioUtil.getPreSignedUrl(tDesignPythonOutfit.getDesignUrl(), 24 * 60)); + String key = toProductImageResultKey + ":" + toProductImageResult.getTaskId(); + MagicToolResultVO magicToolResultVO = new Gson().fromJson(redisUtil.getFromString(key), MagicToolResultVO.class); + if (!Objects.isNull(magicToolResultVO) && !StringUtil.isNullOrEmpty(magicToolResultVO.getUrl())) { + String url = magicToolResultVO.getUrl(); + if (url.substring(url.lastIndexOf("/") + 1).equals("white_image.jpg")) { + magicToolResultVO.setStatus("Invalid"); + } else { + magicToolResultVO.setUrl(minioUtil.getPreSignedUrl(url, CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + magicToolResultVO.setResultType(toProductImageResult.getResultType()); + magicToolResultVO.setElementId(toProductImageResult.getElementId()); + magicToolResultVO.setElementType(toProductImageResult.getElementType()); + if (toProductImageResult.getElementType().equals("ProductElement")) { + ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageResult.getElementId()); + magicToolResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductElement.getUrl(), 24 * 60)); + }else { + TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageResult.getElementId()); + magicToolResultVO.setSourceUrl(minioUtil.getPreSignedUrl(tDesignPythonOutfit.getDesignUrl(), 24 * 60)); + } + } + } else if (Objects.isNull(magicToolResultVO)) { + magicToolResultVO = new MagicToolResultVO(); } +// if (!StringUtil.isNullOrEmpty(magicToolResultVO.getStatus())) collect.add(magicToolResultVO.getStatus()); + results.add(magicToolResultVO); } result.setToProductImage(results); return result; + } else if (query.getBuildType().equals(BuildType.RELIGHT.getValue())) { + List results = new ArrayList<>(); + QueryWrapper toProductImageResultQueryWrapper = new QueryWrapper<>(); + toProductImageResultQueryWrapper.lambda().eq(ToProductImageResult::getTaskIdBatch, query.getTaskId()); + List toProductImageResultList = toProductImageResultMapper.selectList(toProductImageResultQueryWrapper); + for (ToProductImageResult toProductImageResult : toProductImageResultList) { + String key = relightResultKey + ":" + toProductImageResult.getTaskId(); + MagicToolResultVO magicToolResultVO = new Gson().fromJson(redisUtil.getFromString(key), MagicToolResultVO.class); + if (!Objects.isNull(magicToolResultVO) && !StringUtil.isNullOrEmpty(magicToolResultVO.getUrl())) { + String url = magicToolResultVO.getUrl(); + if (url.substring(url.lastIndexOf("/") + 1).equals("white_image.jpg")) { + magicToolResultVO.setStatus("Invalid"); + } else { + magicToolResultVO.setUrl(minioUtil.getPreSignedUrl(url, CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + magicToolResultVO.setResultType(toProductImageResult.getResultType()); + magicToolResultVO.setElementId(toProductImageResult.getElementId()); + magicToolResultVO.setElementType(toProductImageResult.getElementType()); + if (toProductImageResult.getElementType().equals("ProductElement")) { + ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageResult.getElementId()); + magicToolResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductElement.getUrl(), 24 * 60)); + }else { + ToProductImageResult toProductImageResult1 = toProductImageResultMapper.selectById(toProductImageResult.getElementId()); + magicToolResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductImageResult1.getUrl(), 24 * 60)); + } + } + } else if (Objects.isNull(magicToolResultVO)) { + magicToolResultVO = new MagicToolResultVO(); + } +// if (!StringUtil.isNullOrEmpty(magicToolResultVO.getStatus())) collect.add(magicToolResultVO.getStatus()); + results.add(magicToolResultVO); + } + result.setRelight(results); + return result; } return result; } diff --git a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java index 7f8962e2..036ea6bf 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java @@ -2230,7 +2230,73 @@ public class UserLikeGroupServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); + qw.lambda().eq(ToProductImageResult::getTaskId, taskId); + ToProductImageResult toProductImageResult = toProductImageResultMapper.selectOne(qw); + if (Objects.nonNull(toProductImageResult)) { + if (toProductImageResult.getBrightenValue() != null && toProductImageResult.getBrightenValue() != 1.0) { + pythonService.bright(url, toProductImageResult.getBrightenValue()); + } + toProductImageResult.setUrl(url); + toProductImageResult.setResultType("Relight"); + toProductImageResultMapper.updateById(toProductImageResult); + + String taskIdBatch = toProductImageResult.getTaskIdBatch(); + QueryWrapper cloudTaskQueryWrapper = new QueryWrapper<>(); + cloudTaskQueryWrapper.lambda().eq(CloudTask::getTaskId, taskIdBatch); + CloudTask cloudTask = cloudTaskMapper.selectOne(cloudTaskQueryWrapper); + if (Objects.nonNull(cloudTask)) { + if (cloudTask.getCompletedNum() == null) { + cloudTask.setCompletedNum(1); + }else { + cloudTask.setCompletedNum(cloudTask.getCompletedNum() + 1); + } + if (progress.equals("OK")) { + cloudTask.setStatus(1); + cloudTask.setCompletedNum(cloudTask.getNums()); + } + cloudTaskMapper.updateById(cloudTask); + } + + String key = relightResultKey + ":" + taskId; + String imageName = url.substring(url.lastIndexOf("/") + 1); + String status = imageName.equals("white_image.jpg") ? "Invalid" : "Success"; + GenerateResultVO generateResultVO = new GenerateResultVO(taskId, toProductImageResult.getId(), url, status, null); + redisUtil.addToString(key, new Gson().toJson(generateResultVO), CommonConstant.GENERATE_RESULT_EXPIRE_TIME); + + Long accountId = Long.parseLong(taskId.substring(taskId.lastIndexOf("-") + 1)); + if (!status.equals("Invalid")) { + // 4、扣除积分 + Boolean b = creditsService.taskCreditsDeduction(accountId, taskId); + // 3、记录积分变更 + if (b) creditsService.insertToCreditsDetail(accountId, + CreditsEventsEnum.RELIGHT.getName(), + CreditsEventsEnum.RELIGHT.getValue(), + "negative", null); + } + } + } }