From 306f4f3987bb9f9064022b3b4388b882462f7245 Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Fri, 25 Apr 2025 15:34:35 +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 --- .../security/filter/AuthenticationFilter.java | 2 +- .../da/controller/ThirdPartyController.java | 7 + .../model/dto/ReceiveCollectionElement.java | 11 + .../ai/da/model/dto/ReceiveDesignParam.java | 13 + .../java/com/ai/da/service/DesignService.java | 2 + .../ai/da/service/impl/DesignServiceImpl.java | 342 +++++++++++++----- .../impl/UserLikeGroupServiceImpl.java | 27 +- 7 files changed, 281 insertions(+), 123 deletions(-) create mode 100644 src/main/java/com/ai/da/model/dto/ReceiveCollectionElement.java create mode 100644 src/main/java/com/ai/da/model/dto/ReceiveDesignParam.java diff --git a/src/main/java/com/ai/da/common/security/filter/AuthenticationFilter.java b/src/main/java/com/ai/da/common/security/filter/AuthenticationFilter.java index 76486549..b9b586f1 100644 --- a/src/main/java/com/ai/da/common/security/filter/AuthenticationFilter.java +++ b/src/main/java/com/ai/da/common/security/filter/AuthenticationFilter.java @@ -52,7 +52,7 @@ public class AuthenticationFilter extends OncePerRequestFilter { "/api/python/flush","/api/account/healthy","/api/ali-pay/trade/notify","/api/paypal/ipn/back","/api/alipay-hk/trade/notify", "/api/portfolio/page", "/api/portfolio/detail", "/api/portfolio/commentPage", "/api/portfolio/viewsIncrease", "/api/account/designWorksRegister","/api/account/questionnaire","/api/stripe/trade/notify", - "/notification","/api/account/activateNewEmail","/api/third/party/auth/google_callback","/api/third/party/parseGoogleCredential","/api/third/party/receiveDesignResults","/api/third/party/parseWeChatCode" + "/notification","/api/account/activateNewEmail","/api/third/party/auth/google_callback","/api/third/party/parseGoogleCredential","/api/third/party/receiveDesignResults","/api/third/party/parseWeChatCode","/api/third/party/receiveDesignParams" , "api/account/schoolLogin", "api/account/enterpriseLogin", "api/account/organizationNameSearch" ); diff --git a/src/main/java/com/ai/da/controller/ThirdPartyController.java b/src/main/java/com/ai/da/controller/ThirdPartyController.java index 72454016..40cdaf42 100644 --- a/src/main/java/com/ai/da/controller/ThirdPartyController.java +++ b/src/main/java/com/ai/da/controller/ThirdPartyController.java @@ -146,4 +146,11 @@ public class ThirdPartyController { public Response receiveDesignResults(@Valid @RequestBody JSONObject responseObject) { return Response.success(designService.receiveDesignResults(responseObject)); } + + @ApiOperation(value = "接收Design入参") + @PostMapping("/receiveDesignParams") + @CrossOrigin + public Response receiveDesignParams(@Valid @RequestBody ReceiveDesignParam receiveDesignParam) { + return Response.success(designService.receiveDesignParams(receiveDesignParam)); + } } diff --git a/src/main/java/com/ai/da/model/dto/ReceiveCollectionElement.java b/src/main/java/com/ai/da/model/dto/ReceiveCollectionElement.java new file mode 100644 index 00000000..427f7b95 --- /dev/null +++ b/src/main/java/com/ai/da/model/dto/ReceiveCollectionElement.java @@ -0,0 +1,11 @@ +package com.ai.da.model.dto; + +import lombok.Data; + +@Data +public class ReceiveCollectionElement { + private String url; + private String level1Type; + private String level2Type; + private String rgb; +} diff --git a/src/main/java/com/ai/da/model/dto/ReceiveDesignParam.java b/src/main/java/com/ai/da/model/dto/ReceiveDesignParam.java new file mode 100644 index 00000000..ce50680a --- /dev/null +++ b/src/main/java/com/ai/da/model/dto/ReceiveDesignParam.java @@ -0,0 +1,13 @@ +package com.ai.da.model.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class ReceiveDesignParam { + + private List receiveCollectionElementList; + + private Long projectId; +} diff --git a/src/main/java/com/ai/da/service/DesignService.java b/src/main/java/com/ai/da/service/DesignService.java index feb27ee0..7e72bd93 100644 --- a/src/main/java/com/ai/da/service/DesignService.java +++ b/src/main/java/com/ai/da/service/DesignService.java @@ -117,4 +117,6 @@ public interface DesignService extends IService { IPage cloudPage(CloudPageDTO cloudPageDTO); CloudTaskResultVO getDesignCloudResult(DesignCloudResultQuery designCloudResultQuery); + + Boolean receiveDesignParams(ReceiveDesignParam receiveDesignParam); } 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 64c857f2..3728b585 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -1798,20 +1798,6 @@ public class DesignServiceImpl extends ServiceImpl impleme public String designCloud(CloudTaskDTO cloudTaskDTO) { if (cloudTaskDTO.getBuildType().equals(BuildType.DESIGN.getValue())) { Long projectId = cloudTaskDTO.getProjectId(); -// Project project = projectService.getById(projectId); -// project.setParentId(projectId); -// project.setId(null); -// project.setName(project.getName() + "_cloud"); -// LocalDateTime now = LocalDateTime.now(); -// project.setCreateTime(now); -// project.setUpdateTime(now); -// projectService.getBaseMapper().insert(project); -// Long workspaceId = workspaceService.getByProjectId(projectId); -// Workspace workspace = workspaceService.getById(workspaceId); -// workspace.setProjectId(project.getId()); -// workspace.setId(null); -// workspaceService.getBaseMapper().insert(workspace); - DesignCollectionDTO designDTO = transDesignParam(projectId); designDTO.setDesignNum(cloudTaskDTO.getNums()); AuthPrincipalVo userInfo = UserContext.getUserHolder(); @@ -1858,91 +1844,183 @@ public class DesignServiceImpl extends ServiceImpl impleme if (!StringUtil.isNullOrEmpty(prompt)) { prompt = pythonService.promptTranslate(prompt); } - for (ToProductImageVO toProductImageVO : toProductImageDTO.getToProductImageVOList()) { - String taskId; - if (toProductImageVO.getElementType().equals("DesignOutfit")) { - taskId = UUID.randomUUID() + "-" + i + "-" + userHolder.getId(); - TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageVO.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(",")); + int fullBatches = toProductImageDTO.getToProductImageVOList().size() / cloudTaskDTO.getNums(); // 可整除的次数 + int remainder = toProductImageDTO.getToProductImageVOList().size() % cloudTaskDTO.getNums(); // 剩下的余数 - 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,"); + for (int i1 = 0; i1 < fullBatches; i1++) { + for (ToProductImageVO toProductImageVO : toProductImageDTO.getToProductImageVOList()) { + String taskId; + if (toProductImageVO.getElementType().equals("DesignOutfit")) { + taskId = UUID.randomUUID() + "-" + i + "-" + userHolder.getId(); + TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageVO.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 { - sb.append("a beautiful women,"); + if (collect.contains("Tops")) { + sb.append("a handsome man,"); + }else { + sb.append("a beautiful women,"); + } + sb.append("wearing ").append(collect); } - sb.append("wearing ").append(collect); - } - if (StringUtils.isEmpty(prompt)) { - sb.append(",high quality clothing details,8K realistic,HDR"); + 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.toProductImageBatch(tDesignPythonOutfit.getDesignUrl(), taskId, sb.toString(), toProductImageDTO.getImageStrength(), productType); + ToProductImageResult toProductImageResult = new ToProductImageResult(); + toProductImageResult.setElementId(tDesignPythonOutfit.getId()); + toProductImageResult.setElementType("DesignOutfit"); + toProductImageResult.setCreateTime(LocalDateTime.now()); + toProductImageResult.setToProductImageRecordId(toProductImageRecord.getId()); + toProductImageResult.setIsLike(0); + toProductImageResult.setTaskId(taskId); + toProductImageResult.setProjectId(projectId); + toProductImageResult.setTaskIdBatch(batchTaskId); + if (userLikeGroupId != null) { + toProductImageResult.setUserLikeGroupId(userLikeGroupId); + } + toProductImageResult.setImageStrength(toProductImageDTO.getImageStrength()); + toProductImageResultMapper.insert(toProductImageResult); + result.add(toProductImageResult); }else { - sb.append(",high quality clothing details,").append(prompt).append(",8K realistic,HDR"); - } - // 走模型 - pythonService.toProductImageBatch(tDesignPythonOutfit.getDesignUrl(), taskId, sb.toString(), toProductImageDTO.getImageStrength(), productType); - ToProductImageResult toProductImageResult = new ToProductImageResult(); - toProductImageResult.setElementId(tDesignPythonOutfit.getId()); - toProductImageResult.setElementType("DesignOutfit"); - toProductImageResult.setCreateTime(LocalDateTime.now()); - toProductImageResult.setToProductImageRecordId(toProductImageRecord.getId()); -// toProductImageResult.setUrl(productImageUrl); - toProductImageResult.setIsLike(0); - toProductImageResult.setTaskId(taskId); - toProductImageResult.setProjectId(projectId); - toProductImageResult.setTaskIdBatch(batchTaskId); - if (userLikeGroupId != null) { - toProductImageResult.setUserLikeGroupId(userLikeGroupId); - } - toProductImageResult.setImageStrength(toProductImageDTO.getImageStrength()); - toProductImageResultMapper.insert(toProductImageResult); -// toProductImageResult.setUrl(minioUtil.getPresignedUrl(toProductImageResult.getUrl(), 24 * 60)); - result.add(toProductImageResult); - }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"); - } + 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"); + } - taskId = UUID.randomUUID() + "-" + i + "-" + userHolder.getId(); - ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageVO.getElementId()); - // 走模型 - pythonService.toProductImageBatch(toProductElement.getUrl(), taskId, sb.toString(), toProductImageDTO.getImageStrength(), "overall"); - ToProductImageResult toProductImageResult = new ToProductImageResult(); - toProductImageResult.setElementId(toProductElement.getId()); - toProductImageResult.setElementType("ProductElement"); - toProductImageResult.setCreateTime(LocalDateTime.now()); - toProductImageResult.setToProductImageRecordId(toProductImageRecord.getId()); -// toProductImageResult.setUrl(productImageUrl); - toProductImageResult.setIsLike(0); - toProductImageResult.setTaskId(taskId); - toProductImageResult.setProjectId(projectId); - toProductImageResult.setTaskIdBatch(batchTaskId); - if (userLikeGroupId != null) { - toProductImageResult.setUserLikeGroupId(userLikeGroupId); + taskId = UUID.randomUUID() + "-" + i + "-" + userHolder.getId(); + ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageVO.getElementId()); + // 走模型 + pythonService.toProductImageBatch(toProductElement.getUrl(), taskId, sb.toString(), toProductImageDTO.getImageStrength(), "overall"); + ToProductImageResult toProductImageResult = new ToProductImageResult(); + toProductImageResult.setElementId(toProductElement.getId()); + toProductImageResult.setElementType("ProductElement"); + toProductImageResult.setCreateTime(LocalDateTime.now()); + toProductImageResult.setToProductImageRecordId(toProductImageRecord.getId()); + toProductImageResult.setIsLike(0); + toProductImageResult.setTaskId(taskId); + toProductImageResult.setProjectId(projectId); + toProductImageResult.setTaskIdBatch(batchTaskId); + if (userLikeGroupId != null) { + toProductImageResult.setUserLikeGroupId(userLikeGroupId); + } + toProductImageResult.setImageStrength(toProductImageDTO.getImageStrength()); + toProductImageResultMapper.insert(toProductImageResult); + result.add(toProductImageResult); } - toProductImageResult.setImageStrength(toProductImageDTO.getImageStrength()); - toProductImageResultMapper.insert(toProductImageResult); -// toProductImageResult.setUrl(minioUtil.getPresignedUrl(toProductImageResult.getUrl(), 24 * 60)); - result.add(toProductImageResult); + i ++; + sb = new StringBuilder("The best quality, masterpiece, real image."); + // 添加需要扣除的积分到预扣除区 + creditsService.addRecordToCreditsDeduction(userHolder.getId(), taskId, CreditsEventsEnum.TO_PRODUCT_IMAGE); } - i ++; - sb = new StringBuilder("The best quality, masterpiece, real image."); - // 添加需要扣除的积分到预扣除区 - creditsService.addRecordToCreditsDeduction(userHolder.getId(), taskId, CreditsEventsEnum.TO_PRODUCT_IMAGE); } + + if (remainder > 0) { + List tempList = new ArrayList<>(toProductImageDTO.getToProductImageVOList()); + Collections.shuffle(tempList); // 打乱顺序 + + // 取前 remainder 个 + List randomPick = tempList.subList(0, remainder); + for (ToProductImageVO toProductImageVO : randomPick) { + String taskId; + if (toProductImageVO.getElementType().equals("DesignOutfit")) { + taskId = UUID.randomUUID() + "-" + i + "-" + userHolder.getId(); + TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageVO.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.toProductImageBatch(tDesignPythonOutfit.getDesignUrl(), taskId, sb.toString(), toProductImageDTO.getImageStrength(), productType); + ToProductImageResult toProductImageResult = new ToProductImageResult(); + toProductImageResult.setElementId(tDesignPythonOutfit.getId()); + toProductImageResult.setElementType("DesignOutfit"); + toProductImageResult.setCreateTime(LocalDateTime.now()); + toProductImageResult.setToProductImageRecordId(toProductImageRecord.getId()); + toProductImageResult.setIsLike(0); + toProductImageResult.setTaskId(taskId); + toProductImageResult.setProjectId(projectId); + toProductImageResult.setTaskIdBatch(batchTaskId); + if (userLikeGroupId != null) { + toProductImageResult.setUserLikeGroupId(userLikeGroupId); + } + toProductImageResult.setImageStrength(toProductImageDTO.getImageStrength()); + toProductImageResultMapper.insert(toProductImageResult); + result.add(toProductImageResult); + }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"); + } + + taskId = UUID.randomUUID() + "-" + i + "-" + userHolder.getId(); + ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageVO.getElementId()); + // 走模型 + pythonService.toProductImageBatch(toProductElement.getUrl(), taskId, sb.toString(), toProductImageDTO.getImageStrength(), "overall"); + ToProductImageResult toProductImageResult = new ToProductImageResult(); + toProductImageResult.setElementId(toProductElement.getId()); + toProductImageResult.setElementType("ProductElement"); + toProductImageResult.setCreateTime(LocalDateTime.now()); + toProductImageResult.setToProductImageRecordId(toProductImageRecord.getId()); + toProductImageResult.setIsLike(0); + toProductImageResult.setTaskId(taskId); + toProductImageResult.setProjectId(projectId); + toProductImageResult.setTaskIdBatch(batchTaskId); + if (userLikeGroupId != null) { + toProductImageResult.setUserLikeGroupId(userLikeGroupId); + } + toProductImageResult.setImageStrength(toProductImageDTO.getImageStrength()); + toProductImageResultMapper.insert(toProductImageResult); + result.add(toProductImageResult); + } + i ++; + sb = new StringBuilder("The best quality, masterpiece, real image."); + // 添加需要扣除的积分到预扣除区 + creditsService.addRecordToCreditsDeduction(userHolder.getId(), taskId, CreditsEventsEnum.TO_PRODUCT_IMAGE); + } + } + CloudTask cloudTask = CopyUtil.copyObject(cloudTaskDTO, CloudTask.class); cloudTask.setProjectId(projectId); cloudTask.setTaskId(batchTaskId); @@ -2012,7 +2090,6 @@ public class DesignServiceImpl extends ServiceImpl impleme toProductImageResult.setElementType("ToProductImage"); toProductImageResult.setCreateTime(LocalDateTime.now()); toProductImageResult.setToProductImageRecordId(toProductImageRecord.getId()); -// toProductImageResult.setUrl(productImageUrl); toProductImageResult.setIsLike(0); toProductImageResult.setTaskId(taskId); toProductImageResult.setProjectId(projectId); @@ -2025,7 +2102,6 @@ public class DesignServiceImpl extends ServiceImpl impleme } toProductImageResult.setDirection(toProductImageDTO.getDirection()); toProductImageResultMapper.insert(toProductImageResult); -// toProductImageResult.setUrl(minioUtil.getPresignedUrl(toProductImageResult.getUrl(), 24 * 60)); result.add(toProductImageResult); }else { ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageVO.getElementId()); @@ -2036,7 +2112,6 @@ public class DesignServiceImpl extends ServiceImpl impleme toProductImageResult.setElementType("ProductElement"); toProductImageResult.setCreateTime(LocalDateTime.now()); toProductImageResult.setToProductImageRecordId(toProductImageRecord.getId()); -// toProductImageResult.setUrl(productImageUrl); toProductImageResult.setIsLike(0); toProductImageResult.setTaskId(taskId); toProductImageResult.setProjectId(projectId); @@ -2049,11 +2124,10 @@ public class DesignServiceImpl extends ServiceImpl impleme } toProductImageResult.setDirection(toProductImageDTO.getDirection()); toProductImageResultMapper.insert(toProductImageResult); -// toProductImageResult.setUrl(minioUtil.getPresignedUrl(toProductImageResult.getUrl(), 24 * 60)); result.add(toProductImageResult); } // 添加需要扣除的积分到预扣除区 -// creditsService.addRecordToCreditsDeduction(userHolder.getId(), taskId, CreditsEventsEnum.RELIGHT); + creditsService.addRecordToCreditsDeduction(userHolder.getId(), taskId, CreditsEventsEnum.RELIGHT); } CloudTask cloudTask = CopyUtil.copyObject(cloudTaskDTO, CloudTask.class); cloudTask.setProjectId(projectId); @@ -2244,7 +2318,7 @@ public class DesignServiceImpl extends ServiceImpl impleme log.info("增加image_id关联运行时间:" + totalTimeInSeconds + " 秒"); //design startTime = System.currentTimeMillis(); - String requestId = UUID.randomUUID().toString(); + String requestId = UUID.randomUUID().toString() + "_" + userInfo.getId(); pythonObjects.setRequestId(requestId); AuthPrincipalVo userHolder = UserContext.getUserHolder(); String taskId = pythonService.designBatch(pythonObjects, userHolder.getId(), elementVO.getDesignNum(), requestId); @@ -2631,4 +2705,80 @@ public class DesignServiceImpl extends ServiceImpl impleme return result; } + @Resource + private PanToneMapper panToneMapper; + + @Override + public Boolean receiveDesignParams(ReceiveDesignParam receiveDesignParam) { + List receiveCollectionElementList = receiveDesignParam.getReceiveCollectionElementList(); + if (!CollectionUtils.isEmpty(receiveCollectionElementList)) { + Project project = projectService.getById(receiveDesignParam.getProjectId()); +// Project project = projectService.getById(1750L); + List collectionElementList = new ArrayList<>(); + Date date = new Date(); + for (ReceiveCollectionElement receiveCollectionElement : receiveCollectionElementList) { + CollectionElement collectionElement = new CollectionElement(); + if (receiveCollectionElement.getLevel1Type().equals(CollectionLevel1TypeEnum.PRINT_BOARD.getRealName())) { + String url = receiveCollectionElement.getUrl(); + String[] split = url.split("/"); + String pictureName = split[split.length - 1]; + String[] split1 = pictureName.split("\\."); + collectionElement.setLevel1Type(receiveCollectionElement.getLevel1Type()); + collectionElement.setAccountId(project.getAccountId()); + collectionElement.setProjectId(project.getId()); + collectionElement.setLevel2Type(receiveCollectionElement.getLevel2Type()); + collectionElement.setName(split1[0]); + collectionElement.setUrl(url); + collectionElement.setHasPin((byte) 0); + collectionElement.setCreateDate(date); + }else if (receiveCollectionElement.getLevel1Type().equals(CollectionLevel1TypeEnum.MOOD_BOARD.getRealName())) { + String url = receiveCollectionElement.getUrl(); + String[] split = url.split("/"); + String pictureName = split[split.length - 1]; + String[] split1 = pictureName.split("\\."); + collectionElement.setLevel1Type(receiveCollectionElement.getLevel1Type()); + collectionElement.setAccountId(project.getAccountId()); + collectionElement.setProjectId(project.getId()); + collectionElement.setName(split1[0]); + collectionElement.setUrl(url); + collectionElement.setHasPin((byte) 0); + collectionElement.setCreateDate(date); + }else if (receiveCollectionElement.getLevel1Type().equals(CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName())) { + String url = receiveCollectionElement.getUrl(); + String[] split = url.split("/"); + String pictureName = split[split.length - 1]; + String[] split1 = pictureName.split("\\."); + collectionElement.setLevel1Type(receiveCollectionElement.getLevel1Type()); + collectionElement.setAccountId(project.getAccountId()); + collectionElement.setProjectId(project.getId()); + collectionElement.setLevel2Type(receiveCollectionElement.getLevel2Type()); + collectionElement.setName(split1[0]); + collectionElement.setUrl(url); + collectionElement.setHasPin((byte) 0); + collectionElement.setCreateDate(date); + }else if (receiveCollectionElement.getLevel1Type().equals(CollectionLevel1TypeEnum.COLOR_BOARD.getRealName())) { + String color = receiveCollectionElement.getRgb(); + int[] rgb = Arrays.stream(color.split("\\s+")).mapToInt(Integer::parseInt).toArray(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("r", rgb[0]); + queryWrapper.eq("g", rgb[1]); + queryWrapper.eq("b", rgb[2]); + PanTone panTone = panToneMapper.selectOne(queryWrapper); + if (Objects.nonNull(panTone)) { + collectionElement.setLevel1Type(receiveCollectionElement.getLevel1Type()); + collectionElement.setAccountId(project.getAccountId()); + collectionElement.setProjectId(project.getId()); + collectionElement.setName(panTone.getName()); + collectionElement.setHasPin((byte) 0); + collectionElement.setColorRgb(color); + collectionElement.setCreateDate(date); + } + } + collectionElementList.add(collectionElement); + } + collectionElementService.saveBatch(collectionElementList); + } + return Boolean.TRUE; + } + } \ No newline at end of file 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 5c1928f0..8de99153 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java @@ -1664,6 +1664,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); -// qw.lambda().eq(CollectionElement::getProjectId, moduleSaveDTO.getProjectId()); -// qw.lambda().eq(CollectionElement::getLevel1Type, CollectionLevel1TypeEnum.MOOD_BOARD.getRealName()); -//// qw.lambda().eq(CollectionElement::getCollectionId, 0); -// List compositeImageList = collectionElementMapper.selectList(qw); -// if (CollectionUtils.isEmpty(compositeImageList)) { -// CollectionElement collectionElement = collectionElementMapper.selectById(moodBoard.getMoodTemplateId()); -// collectionElement.setProjectId(moduleSaveDTO.getProjectId()); -// collectionElementMapper.updateById(collectionElement); -// if (!StringUtils.isEmpty(moodBoard.getMoodboardPosition())) { -// // 合成图位置信息通过collectElementId关联(旧逻辑通过collectionId关联) -// designService.parseMoodboardPosition(moodBoard.getMoodboardPosition(), collectionElement.getId()); -// } -// }else { -// CollectionElement compositeImage = compositeImageList.get(0); -// if (!Objects.equals(compositeImage.getId(), moodBoard.getMoodTemplateId())) { -// compositeImage.setProjectId(null); -// CollectionElement collectionElement = collectionElementMapper.selectById(moodBoard.getMoodTemplateId()); -// collectionElement.setProjectId(moduleSaveDTO.getProjectId()); -// collectionElementMapper.updateById(collectionElement); -// if (!StringUtils.isEmpty(moodBoard.getMoodboardPosition())) { -// // 合成图位置信息通过collectElementId关联(旧逻辑通过collectionId关联) -// designService.parseMoodboardPosition(moodBoard.getMoodboardPosition(), collectionElement.getId()); -// } -// } -// } } List moodBoards = moodBoard.getMoodBoards(); if (CollectionUtil.isNotEmpty(moodBoards)) {