From 165449084bb25cac0127871f90cb5ae014461564 Mon Sep 17 00:00:00 2001 From: xupei <1779019091@qq.com> Date: Thu, 7 Sep 2023 15:31:52 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96design=20detail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/controller/DesignDetailController.java | 5 +- .../java/com/ai/da/mapper/entity/PanTone.java | 1 + .../ai/da/model/vo/DesignPythonOutfitVO.java | 7 ++- .../java/com/ai/da/service/DesignService.java | 2 +- .../ITDesignPythonOutfitDetailService.java | 8 +++ .../com/ai/da/service/PanToneService.java | 3 + .../ai/da/service/impl/DesignServiceImpl.java | 57 ++++++++++++++----- .../da/service/impl/PanToneServiceImpl.java | 10 +++- .../TDesignPythonOutfitDetailServiceImpl.java | 12 ++++ 9 files changed, 84 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/ai/da/controller/DesignDetailController.java b/src/main/java/com/ai/da/controller/DesignDetailController.java index 1b4ca8c7..b97ff86e 100644 --- a/src/main/java/com/ai/da/controller/DesignDetailController.java +++ b/src/main/java/com/ai/da/controller/DesignDetailController.java @@ -44,8 +44,9 @@ public class DesignDetailController { } @ApiOperation(value = "查询design详情") @GetMapping("/getDetail") - public Response getDetail(@ApiParam("designItemId") @RequestParam("designItemId") Long designItemId) { - return Response.success(designService.detail(designItemId)); + public Response getDetail(@ApiParam("designItemId") @RequestParam("designItemId") Long designItemId, + @ApiParam("designPythonOutfitId") @RequestParam(value = "designPythonOutfitId",required = false) Long designPythonOutfitId) { + return Response.success(designService.detail(designItemId,designItemId)); } @ApiOperation(value = "切换系统的element") diff --git a/src/main/java/com/ai/da/mapper/entity/PanTone.java b/src/main/java/com/ai/da/mapper/entity/PanTone.java index 0b3f9641..971ef445 100644 --- a/src/main/java/com/ai/da/mapper/entity/PanTone.java +++ b/src/main/java/com/ai/da/mapper/entity/PanTone.java @@ -27,6 +27,7 @@ public class PanTone implements Serializable { /** * pantone_index */ + @TableId("pantone_index") private Integer pantoneIndex; /** diff --git a/src/main/java/com/ai/da/model/vo/DesignPythonOutfitVO.java b/src/main/java/com/ai/da/model/vo/DesignPythonOutfitVO.java index a774b20d..42f99324 100644 --- a/src/main/java/com/ai/da/model/vo/DesignPythonOutfitVO.java +++ b/src/main/java/com/ai/da/model/vo/DesignPythonOutfitVO.java @@ -1,5 +1,6 @@ package com.ai.da.model.vo; +import com.ai.da.mapper.entity.TDesignPythonOutfitDetail; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -10,12 +11,14 @@ import java.util.List; @ApiModel("designItem detail从python端获取的合成图+各图层响应") public class DesignPythonOutfitVO { - @ApiModelProperty("designPythonOutfitId") + @ApiModelProperty("当前图片无图层信息时,为空") private Long designPythonOutfitId; @ApiModelProperty("合成图") String designPythonOutfitUrl; + // TODO + // 需明确,不需要的数据不要返回 @ApiModelProperty("各部分图层信息") - List designItemDetailLayers; + List designItemDetailLayers; } diff --git a/src/main/java/com/ai/da/service/DesignService.java b/src/main/java/com/ai/da/service/DesignService.java index af8ff742..5c84650f 100644 --- a/src/main/java/com/ai/da/service/DesignService.java +++ b/src/main/java/com/ai/da/service/DesignService.java @@ -75,5 +75,5 @@ public interface DesignService extends IService { * @param designItemId * @return */ - DesignItemDetailVO detail(Long designItemId); + DesignItemDetailVO detail(Long designPythonOutfitId,Long designItemId); } diff --git a/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java b/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java index c1352975..9bb8be53 100644 --- a/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java +++ b/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java @@ -6,6 +6,8 @@ import com.ai.da.model.vo.TDesignPythonOutfitDetailVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * design item详情表 服务类 * @@ -23,4 +25,10 @@ public interface ITDesignPythonOutfitDetailService extends IService selectTDesignPythonOutfitDetailPage(IPage page, TDesignPythonOutfitDetailVO tDesignPythonOutfitDetail); + /** + * 通过DesignPythonOutfitId获取designPythonOutfitDetail + * @param designPythonOutfitId + * @return + */ + List getDetailByDesignPythonOutfitId(Long designPythonOutfitId); } diff --git a/src/main/java/com/ai/da/service/PanToneService.java b/src/main/java/com/ai/da/service/PanToneService.java index 5f9fa3c8..7f2af8e8 100644 --- a/src/main/java/com/ai/da/service/PanToneService.java +++ b/src/main/java/com/ai/da/service/PanToneService.java @@ -6,6 +6,7 @@ import com.ai.da.model.vo.PantoneVO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** * 服务类 @@ -41,6 +42,8 @@ public interface PanToneService extends IService { */ PantoneVO getByRGB(Integer r,Integer g,Integer b); + Map getPantoneByRgbBatch(List colors); + PantoneVO getPantoneByRgb(String color); /** 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 b9f70342..b606f01c 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -5,21 +5,17 @@ import com.ai.da.common.config.FileProperties; import com.ai.da.common.config.exception.BusinessException; import com.ai.da.common.context.UserContext; import com.ai.da.common.enums.CollectionLevel1TypeEnum; -import com.ai.da.common.enums.SingleOverallEnum; import com.ai.da.common.enums.SysFileLevel2TypeEnum; import com.ai.da.common.utils.CopyUtil; import com.ai.da.common.utils.DateUtil; import com.ai.da.common.utils.FileUtil; import com.ai.da.common.utils.LocalCacheUtils; import com.ai.da.mapper.DesignMapper; -import com.ai.da.mapper.TDesignPythonOutfitDetailMapper; -import com.ai.da.mapper.TDesignPythonOutfitMapper; import com.ai.da.mapper.entity.*; import com.ai.da.mapper.entity.Collection; import com.ai.da.model.dto.*; import com.ai.da.model.vo.*; import com.ai.da.python.PythonService; -import com.ai.da.python.vo.DesignPythonItem; import com.ai.da.python.vo.DesignPythonItemPrint; import com.ai.da.python.vo.DesignPythonObjects; import com.ai.da.service.*; @@ -31,12 +27,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import io.netty.util.internal.StringUtil; import lombok.extern.slf4j.Slf4j; -import net.sf.jsqlparser.expression.operators.relational.OldOracleJoinBinaryExpression; import org.springframework.stereotype.Service; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import sun.security.krb5.internal.crypto.Des; import javax.annotation.Resource; import java.io.File; @@ -650,7 +644,7 @@ public class DesignServiceImpl extends ServiceImpl impleme } @Override - public DesignItemDetailVO detail(Long designItemId) { + public DesignItemDetailVO detail(Long designPythonOutfitId,Long designItemId) { DesignItem designItem = designItemService.getById(designItemId); Assert.notNull(designItem,"design item does not exist!"); Design design = getById(designItem.getDesignId()); @@ -658,7 +652,13 @@ public class DesignServiceImpl extends ServiceImpl impleme List designItemDetails = designItemDetailService.selectByDesignItemId(designItemId); Assert.notEmpty(designItemDetails,"designItemDetails does not exist!"); // 添加判断designPythonOutfitId是否存在 - + TDesignPythonOutfit designPythonOutfit = new TDesignPythonOutfit(); + Boolean flag = Boolean.FALSE; + if (Objects.nonNull(designPythonOutfitId)){ + designPythonOutfit = designPythonOutfitService.getById(designPythonOutfitId); + Assert.notNull(designPythonOutfit,"designPythonOutfit does not exist!"); + flag = Boolean.TRUE; + } DesignItemDetailVO response = new DesignItemDetailVO(); response.setSingleOverall(design.getSingleOverall()); @@ -688,7 +688,7 @@ public class DesignServiceImpl extends ServiceImpl impleme d.setId(o.getBusinessId()); d.setPrintObject(new DesignPythonItemPrint()); })); - return editResponseColor(designItemDetails,response); + return editDesignItemLayer(flag,designPythonOutfit,designItem.getDesignUrl(),editResponseColor(designItemDetails,response)); } private String converTypeToLevel1(String type){ if(StringUtils.isEmpty(type)){ @@ -735,7 +735,7 @@ public class DesignServiceImpl extends ServiceImpl impleme * @return */ private DesignItemDetailVO editResponseColor(List designItemDetails,DesignItemDetailVO designItemDetailVO){ - designItemDetails.forEach(d -> { + /*designItemDetails.forEach(d -> { if (!StringUtil.isNullOrEmpty(d.getColor())){ PantoneVO pantoneByRgb = panToneService.getPantoneByRgb(d.getColor()); DesignItemClothesDetailVO clothesDetailVO = designItemDetailVO.getClothes().stream() @@ -753,21 +753,50 @@ public class DesignServiceImpl extends ServiceImpl impleme } } } + });*/ + + HashMap businessIdColor = new HashMap<>(); + designItemDetails.forEach(designItemDetail -> { + if (!StringUtil.isNullOrEmpty(designItemDetail.getColor())){ + businessIdColor.put(designItemDetail.getBusinessId(),designItemDetail.getColor()); + } }); + Map pantoneByRgbBatch = panToneService.getPantoneByRgbBatch(new ArrayList<>(businessIdColor.values())); + designItemDetailVO.getClothes().forEach(c -> { + PantoneVO pantoneVO = pantoneByRgbBatch.get(businessIdColor.get(c.getId())); + c.setColor(pantoneVO); + }); + + designItemDetailVO.getOthers().forEach(o -> { + PantoneVO pantoneVO = pantoneByRgbBatch.get(businessIdColor.get(o.getId())); + o.setColor(pantoneVO); + }); return designItemDetailVO; } - private DesignItemDetailVO editDesignItemLayer(Long designPythonOutfitId,DesignItemDetailVO designItemDetailVO){ - // 1、判断designPythonOutfitId查出的图层信息是否为空(不允许为空,系统内部错误) + private DesignItemDetailVO editDesignItemLayer(Boolean flag,TDesignPythonOutfit designPythonOutfit,String designItemId,DesignItemDetailVO designItemDetailVO){ + DesignPythonOutfitVO designPythonOutfitVO = new DesignPythonOutfitVO(); - // 2、将查询出的图层信息填充到designItemDetailVO中 + if (flag){ + // 1、判断designPythonOutfitId查出的图层信息是否为空(不允许为空,系统内部错误) + List details = designPythonOutfitDetailService.getDetailByDesignPythonOutfitId(designPythonOutfit.getId()); + Assert.notEmpty(details,"Some errors occurred, please restart the design"); + // 2、将查询出的图层信息填充到designItemDetailVO中 + designPythonOutfitVO.setDesignPythonOutfitId(designPythonOutfit.getId()); + designPythonOutfitVO.setDesignPythonOutfitUrl(designPythonOutfit.getDesignUrl()); + designPythonOutfitVO.setDesignItemDetailLayers(details); + }else{ + designPythonOutfitVO.setDesignPythonOutfitUrl(designItemId); + } - return null; + designItemDetailVO.setDesignItemUrl(designPythonOutfitVO); + + return designItemDetailVO; } } diff --git a/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java b/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java index b6cddc7d..41148a13 100644 --- a/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java @@ -71,6 +71,7 @@ public class PanToneServiceImpl extends ServiceImpl impl return coverPanToneToVo(panTones); } + @Override public Map getPantoneByRgbBatch(List colors){ HashMap colorValueRgb = new HashMap<>(); @@ -89,13 +90,18 @@ public class PanToneServiceImpl extends ServiceImpl impl colorIndexRgb.put(colorValue.getColorIndex(),colorValueRgb.get(colorValue.getColorValue())); }); - List panTones = panToneService.listByIds(colorIndexRgb.values()); + List panTones = panToneService.listByIds(colorIndexRgb.keySet()); ArrayList pantoneVOS = new ArrayList<>(); panTones.forEach(panTone -> { pantoneVOS.add(coverPanToneToVo(panTone)); }); - return null; + HashMap colorPantoneVO = new HashMap<>(); + pantoneVOS.forEach(pantoneVO -> { + colorPantoneVO.put(colorIndexRgb.get(pantoneVO.getId()),pantoneVO); + }); + + return colorPantoneVO; } diff --git a/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java b/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java index e5206ebb..c4b48285 100644 --- a/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java @@ -4,10 +4,13 @@ import com.ai.da.mapper.TDesignPythonOutfitDetailMapper; import com.ai.da.mapper.entity.TDesignPythonOutfitDetail; import com.ai.da.model.vo.TDesignPythonOutfitDetailVO; import com.ai.da.service.ITDesignPythonOutfitDetailService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + /** * design item详情表 服务实现类 * @@ -22,4 +25,13 @@ public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl getDetailByDesignPythonOutfitId(Long designPythonOutfitId){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("design_python_outfit_id",designPythonOutfitId); + + return baseMapper.selectList(queryWrapper); + + } + }