From 7fdf832f44527419135536a0e691abfe137ee329 Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Thu, 13 Feb 2025 11:06:19 +0800 Subject: [PATCH 1/4] =?UTF-8?q?BUGFIX:=20toProductImage=E3=80=81relight;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/common/RabbitMQ/GenerateConsumer.java | 11 ++ .../primary/entity/ToProductImageResult.java | 5 + .../ai/da/service/UserLikeGroupService.java | 5 + .../impl/UserLikeGroupServiceImpl.java | 111 +++++++++++++++++- 4 files changed, 129 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java b/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java index 423c5892..b3aee7cd 100644 --- a/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java +++ b/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java @@ -6,6 +6,7 @@ import com.ai.da.common.utils.RedisUtil; import com.ai.da.model.dto.GenerateThroughImageTextDTO; import com.ai.da.model.vo.GenerateResultVO; import com.ai.da.service.GenerateService; +import com.ai.da.service.UserLikeGroupService; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.rabbitmq.client.Channel; @@ -17,6 +18,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.io.IOException; @@ -31,6 +33,9 @@ public class GenerateConsumer { @Resource private GenerateService generateService; + @Resource + private UserLikeGroupService userLikeGroupService; + @Autowired private RabbitMQProperties rabbitMQProperties; @@ -167,6 +172,9 @@ public class GenerateConsumer { String taskId = generateResult.get("tasks_id"); String category = generateResult.get("category"); generateService.processToProductImageResult(taskId, url, category); + } else if (generateResult.get("status").equals("NO_FACE")) { + String taskId = generateResult.get("tasks_id"); + userLikeGroupService.toProduct(taskId); } else { // 修改redis中的数据状态为exception String key = toProductImageResultKey + ":" + generateResult.get("tasks_id"); @@ -214,6 +222,9 @@ public class GenerateConsumer { String taskId = generateResult.get("tasks_id"); String category = generateResult.get("category"); generateService.processRelightResult(taskId, url, category); + } else if (generateResult.get("status").equals("NO_FACE")) { + String taskId = generateResult.get("tasks_id"); + userLikeGroupService.relight(taskId); } else { // 修改redis中的数据状态为exception String key = relightResultKey + ":" + generateResult.get("tasks_id"); diff --git a/src/main/java/com/ai/da/mapper/primary/entity/ToProductImageResult.java b/src/main/java/com/ai/da/mapper/primary/entity/ToProductImageResult.java index 3838b9f5..d5b834f6 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/ToProductImageResult.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/ToProductImageResult.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; import java.time.LocalDateTime; @Data @@ -44,4 +45,8 @@ public class ToProductImageResult implements Serializable { private String resultType; private Double brightenValue; + + private BigDecimal imageStrength; + + private String direction; } diff --git a/src/main/java/com/ai/da/service/UserLikeGroupService.java b/src/main/java/com/ai/da/service/UserLikeGroupService.java index 552e9fe3..e0e9050f 100644 --- a/src/main/java/com/ai/da/service/UserLikeGroupService.java +++ b/src/main/java/com/ai/da/service/UserLikeGroupService.java @@ -10,6 +10,7 @@ import com.ai.da.model.dto.ToProductImageDTO; import com.ai.da.model.vo.*; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -44,6 +45,8 @@ public interface UserLikeGroupService extends IService { List toProduct(ToProductImageDTO toProductImageDTO); + void toProduct(String taskId); + ToProductElementVO toProductImageElementUpload(MultipartFile file, Long userLikeGroupId); Boolean productImageLike(ProductImageLikeDTO productImageLikeDTO); @@ -58,6 +61,8 @@ public interface UserLikeGroupService extends IService { Boolean productImageUnLike(ProductImageLikeDTO productImageLikeDTO); + void relight(String taskId); + List relight(ToProductImageDTO toProductImageDTO); List getRelightResult(List taskIdList); 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 1b7698eb..425199bd 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java @@ -36,13 +36,10 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.*; -import java.nio.file.Paths; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; -import static cn.hutool.poi.excel.sax.AttributeName.s; - /** * 服务实现类 * @@ -343,6 +340,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); + qw.lambda().eq(ToProductImageResult::getTaskId, taskId); + List toProductImageResults = toProductImageResultMapper.selectList(qw); + if (CollectionUtil.isNotEmpty(toProductImageResults)) { + ToProductImageResult toProductImageResultOne = toProductImageResults.get(0); + ToProductImageRecord toProductImageRecord = toProductImageRecordMapper.selectById(toProductImageResultOne.getToProductImageRecordId()); + String prompt = toProductImageRecord.getPrompt(); + StringBuilder sb = new StringBuilder("The best quality, masterpiece, real image."); + if (!StringUtil.isNullOrEmpty(prompt)) { + prompt = pythonService.promptTranslate(prompt); + } + String elementType = toProductImageResultOne.getElementType(); + if (elementType.equals("DesignOutfit")) { + TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageResultOne.getElementId()); + Long designItemId = tDesignPythonOutfit.getDesignItemId(); + QueryWrapper designItemDetailQueryWrapper = new QueryWrapper<>(); + designItemDetailQueryWrapper.lambda().eq(DesignItemDetail::getDesignItemId, designItemId); + designItemDetailQueryWrapper.lambda().ne(DesignItemDetail::getType, "Body"); + List designItemDetails = designItemDetailMapper.selectList(designItemDetailQueryWrapper); + String collect = designItemDetails.stream().map(DesignItemDetail::getType).collect(Collectors.joining(",")); + + Long designId = tDesignPythonOutfit.getDesignId(); + Design design = designMapper.selectById(designId); + String productType = "overall"; + if (design.getSingleOverall().equals("single")) { + productType = "single"; + sb.append(collect); + }else { + if (collect.contains("Tops")) { + sb.append("a handsome man,"); + }else { + sb.append("a beautiful women,"); + } + sb.append("wearing ").append(collect); + } + if (StringUtils.isEmpty(prompt)) { + sb.append(",high quality clothing details,8K realistic,HDR"); + }else { + sb.append(",high quality clothing details,").append(prompt).append(",8K realistic,HDR"); + } + // 走模型 + pythonService.toProductImage(tDesignPythonOutfit.getDesignUrl(), taskId, sb.toString(), toProductImageResultOne.getImageStrength(), "single"); + }else { + if (StringUtils.isEmpty(prompt)) { + sb.append(",high quality clothing details,8K realistic,HDR"); + }else { + sb.append(",high quality clothing details,").append(prompt).append(",8K realistic,HDR"); + } + + ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageResultOne.getElementId()); + // 走模型 + pythonService.toProductImage(toProductElement.getUrl(), taskId, sb.toString(), toProductImageResultOne.getImageStrength(), "single"); + } + + } + } + @Resource private ToProductElementMapper toProductElementMapper; @@ -535,6 +595,48 @@ public class UserLikeGroupServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); + qw.lambda().eq(ToProductImageResult::getTaskId, taskId); + List toProductImageResults = toProductImageResultMapper.selectList(qw); + if (CollectionUtil.isNotEmpty(toProductImageResults)) { + ToProductImageResult toProductImageResultOne = toProductImageResults.get(0); + ToProductImageRecord toProductImageRecord = toProductImageRecordMapper.selectById(toProductImageResultOne.getToProductImageRecordId()); + String prompt = toProductImageRecord.getPrompt(); + + // 翻译 + String s = ""; + if (!StringUtil.isNullOrEmpty(prompt)) { + s = pythonService.promptTranslate(prompt); + }else { + s = "Snow moutain, snowy day, natural light"; + } + String elementType = toProductImageResultOne.getElementType(); + if (elementType.equals("ToProductImage")) { + ToProductImageResult toProductImageResult1 = toProductImageResultMapper.selectById(toProductImageResultOne.getElementId()); + String relightType = "overall"; + if (toProductImageResult1.getElementType().equals("DesignOutfit")) { + TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageResult1.getElementId()); + Long designId = tDesignPythonOutfit.getDesignId(); + Design design = designMapper.selectById(designId); + if (design.getSingleOverall().equals("single")) { + relightType = "single"; + } + } + + // 走模型 + pythonService.relight(toProductImageResult1.getUrl(), taskId, s, toProductImageResultOne.getDirection(), "single"); + }else { + ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageResultOne.getElementId()); + // 走模型 + pythonService.relight(toProductElement.getUrl(), taskId, s, toProductImageResultOne.getDirection(), "single"); + } + + } + } + @Override @Transactional(rollbackFor = Exception.class) public List relight(ToProductImageDTO toProductImageDTO) { @@ -594,6 +696,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl Date: Thu, 13 Feb 2025 11:42:45 +0800 Subject: [PATCH 2/4] =?UTF-8?q?BUGFIX:=20dev=E5=85=B3=E9=97=ADtoProductIma?= =?UTF-8?q?ge=E3=80=81relight=E6=B6=88=E8=B4=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/common/RabbitMQ/GenerateConsumer.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java b/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java index b3aee7cd..cc679eff 100644 --- a/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java +++ b/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java @@ -318,15 +318,15 @@ public class GenerateConsumer { processGenerateResult(msg, channel); } - @RabbitListener(queues = "#{rabbitMQProperties.queues.toProductImageResult}") - @RabbitHandler - public void getToProductImageResult(Message msg, Channel channel) { - processToProductImageResult(msg, channel); - } - - @RabbitListener(queues = "#{rabbitMQProperties.queues.relightResult}") - @RabbitHandler - public void getRelightResult(Message msg, Channel channel) { - processRelightResult(msg, channel); - } +// @RabbitListener(queues = "#{rabbitMQProperties.queues.toProductImageResult}") +// @RabbitHandler +// public void getToProductImageResult(Message msg, Channel channel) { +// processToProductImageResult(msg, channel); +// } +// +// @RabbitListener(queues = "#{rabbitMQProperties.queues.relightResult}") +// @RabbitHandler +// public void getRelightResult(Message msg, Channel channel) { +// processRelightResult(msg, channel); +// } } From 6222377bc5d238297e597494c112503fe750bdbb Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Thu, 13 Feb 2025 11:57:00 +0800 Subject: [PATCH 3/4] =?UTF-8?q?BUGFIX:=20dev=E6=81=A2=E5=A4=8DtoProductIma?= =?UTF-8?q?ge=E3=80=81relight=E6=B6=88=E8=B4=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/common/RabbitMQ/GenerateConsumer.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java b/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java index cc679eff..b3aee7cd 100644 --- a/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java +++ b/src/main/java/com/ai/da/common/RabbitMQ/GenerateConsumer.java @@ -318,15 +318,15 @@ public class GenerateConsumer { processGenerateResult(msg, channel); } -// @RabbitListener(queues = "#{rabbitMQProperties.queues.toProductImageResult}") -// @RabbitHandler -// public void getToProductImageResult(Message msg, Channel channel) { -// processToProductImageResult(msg, channel); -// } -// -// @RabbitListener(queues = "#{rabbitMQProperties.queues.relightResult}") -// @RabbitHandler -// public void getRelightResult(Message msg, Channel channel) { -// processRelightResult(msg, channel); -// } + @RabbitListener(queues = "#{rabbitMQProperties.queues.toProductImageResult}") + @RabbitHandler + public void getToProductImageResult(Message msg, Channel channel) { + processToProductImageResult(msg, channel); + } + + @RabbitListener(queues = "#{rabbitMQProperties.queues.relightResult}") + @RabbitHandler + public void getRelightResult(Message msg, Channel channel) { + processRelightResult(msg, channel); + } } From 6d3253aed3d239cfc4deb7fed9398574aae083f2 Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Fri, 14 Feb 2025 11:49:37 +0800 Subject: [PATCH 4/4] BUGFIX: bindEmail; --- .../da/service/impl/AccountServiceImpl.java | 30 +++++++++---------- .../da/service/impl/PortfolioServiceImpl.java | 11 ++++--- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java index d0ddf604..74069f07 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -318,7 +318,7 @@ public class AccountServiceImpl extends ServiceImpl impl accountExtendQW.lambda().eq(AccountExtend::getAccountId, userHolder.getId()); accountExtendQW.lambda().eq(AccountExtend::getAuthType, "Wechat"); List accountExtends = accountExtendMapper.selectList(accountExtendQW); - if (CollectionUtil.isNotEmpty(accountExtends)) { + if (CollectionUtil.isNotEmpty(accountExtends) && !Objects.equals(accountExtends.get(0).getAccountId(), accountOld.getId())) { AccountExtend accountExtend = accountExtends.get(0); accountExtend.setAccountId(accountOld.getId()); accountExtendMapper.updateById(accountExtend); @@ -336,25 +336,23 @@ public class AccountServiceImpl extends ServiceImpl impl } } Account accountNew = accountMapper.selectById(userHolder.getId()); + + if (StringUtils.isEmpty(accountNew.getUserEmail())) { + TrialOrder trialOrder = CopyUtil.copyObject(accountNew, TrialOrder.class); + trialOrder.setEmail(accountBindEmailDTO.getUserEmail()); + trialOrder.setCreateTime(LocalDateTime.now()); + trialOrder.setUpdateTime(LocalDateTime.now()); + trialOrder.setStatus(1); + // 获取用户申请试用IP + String ipAddress = RequestInfoUtil.getIpAddress(request); + trialOrder.setIp(ipAddress); + trialOrderMapper.insert(trialOrder); + } + accountNew.setUserEmail(accountBindEmailDTO.getUserEmail()); -// accountNew.setOccupation(accountBindEmailDTO.getOccupation()); -// accountNew.setCountry(accountBindEmailDTO.getCountry()); -// accountNew.setTitle(accountBindEmailDTO.getTitle()); -// accountNew.setSurname(accountBindEmailDTO.getSurname()); -// accountNew.setGivenName(accountBindEmailDTO.getGivenName()); accountMapper.updateById(accountNew); - TrialOrder trialOrder = CopyUtil.copyObject(accountNew, TrialOrder.class); - trialOrder.setEmail(accountNew.getUserEmail()); - trialOrder.setCreateTime(LocalDateTime.now()); - trialOrder.setUpdateTime(LocalDateTime.now()); - trialOrder.setStatus(1); - // 获取用户申请试用IP - String ipAddress = RequestInfoUtil.getIpAddress(request); - trialOrder.setIp(ipAddress); - trialOrderMapper.insert(trialOrder); - return result; } diff --git a/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java b/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java index 6936a532..dcf4287e 100644 --- a/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java @@ -529,11 +529,14 @@ public class PortfolioServiceImpl extends ServiceImpl