From 18be52e806abfd815448f1e44ca5e4433de3d159 Mon Sep 17 00:00:00 2001 From: xupei Date: Thu, 19 Jun 2025 17:16:48 +0800 Subject: [PATCH 1/4] =?UTF-8?q?BUGFIX:=201=E3=80=81llm=E4=BD=BF=E7=94=A8sk?= =?UTF-8?q?etch=E6=9F=A5=E8=AF=A2=E5=B7=A5=E5=85=B7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E4=BF=9D=E5=AD=98=E5=88=B0=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E4=B8=AD=202=E3=80=81flux=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=8A=B6=E6=80=81=E4=B8=8B=EF=BC=8C=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=BB=93=E6=9E=9C=E6=8A=A5=E9=94=99=203=E3=80=81618?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E9=82=AE=E4=BB=B6=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/controller/AccountController.java | 9 ++++++ .../com/ai/da/service/AccountService.java | 2 ++ .../da/service/impl/AccountServiceImpl.java | 28 +++++++++++++++++++ .../ai/da/service/impl/LLMServiceImpl.java | 12 +++++--- .../da/service/impl/LibraryServiceImpl.java | 5 ++++ .../impl/UserLikeGroupServiceImpl.java | 4 +-- 6 files changed, 54 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ai/da/controller/AccountController.java b/src/main/java/com/ai/da/controller/AccountController.java index aef2353f..660ece11 100644 --- a/src/main/java/com/ai/da/controller/AccountController.java +++ b/src/main/java/com/ai/da/controller/AccountController.java @@ -371,4 +371,13 @@ public class AccountController { public Response subAccountImport(@RequestParam("file") MultipartFile file) { return Response.success(accountService.subAccountImport(file)); } + + @GetMapping("/send618Email") + @ApiOperation(value = "618邮件发送") + public Response send618PromotionEmailTemp() { + accountService.send618PromotionEmailTemp(); + return Response.success("success"); + } + + } diff --git a/src/main/java/com/ai/da/service/AccountService.java b/src/main/java/com/ai/da/service/AccountService.java index 9b7ff681..3beb8705 100644 --- a/src/main/java/com/ai/da/service/AccountService.java +++ b/src/main/java/com/ai/da/service/AccountService.java @@ -233,4 +233,6 @@ public interface AccountService extends IService { Boolean subAccountImport(MultipartFile file); Set organizationNameSearch(String type, String name); + + void send618PromotionEmailTemp(); } 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 2a3f4293..cd33b444 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -3031,4 +3031,32 @@ public class AccountServiceImpl extends ServiceImpl impl return new HashSet<>(); } + @Override + public void send618PromotionEmailTemp() { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("is_deleted", 0); + + List trialOrders = trialOrderMapper.selectList(queryWrapper); + +// List accountList = accountMapper.selectList(queryWrapper); + System.out.println(trialOrders); + int total = trialOrders.size(); + log.info("试用用户总量:{}", total); + int current = 1; + for (TrialOrder trialOrder : trialOrders) { + log.info("邮件发送进度 {}/{}", current, total); + try { + if (!StringUtil.isNullOrEmpty(trialOrder.getCountry()) && trialOrder.getCountry().equals("China")) { + SendEmailUtil.send618PromotionEmailTemp(trialOrder.getEmail(), "CHINESE_SIMPLIFIED"); + } else { + // 英文 + SendEmailUtil.send618PromotionEmailTemp(trialOrder.getEmail(), "ENGLISH"); + } + }catch (Exception e) { + log.info(e.getMessage()); + } + current ++; + } + } + } diff --git a/src/main/java/com/ai/da/service/impl/LLMServiceImpl.java b/src/main/java/com/ai/da/service/impl/LLMServiceImpl.java index bc36761c..6ff1d890 100644 --- a/src/main/java/com/ai/da/service/impl/LLMServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LLMServiceImpl.java @@ -367,7 +367,7 @@ public class LLMServiceImpl implements LLMService { systemImage.setAccountId(accountId); chatMessageMapper.insert(systemImage); } else if (Objects.nonNull(toolsName) && toolsName.equals("search_sketch_img")) { - json.put("content", processSearchSketchToolCon(toolsData)); + json.put("content", processSearchSketchToolCon(projectId, toolsData)); } else if (Objects.nonNull(toolsName) && toolsName.equals("update_project_info")) { updateProjectParams(projectId, toolsData); @@ -395,7 +395,7 @@ public class LLMServiceImpl implements LLMService { return emitter; } - private String processSearchSketchToolCon(JSONObject content){ + private String processSearchSketchToolCon(Long projectId, JSONObject content){ // content内容 "{\"sketch_list\": [\"\\\\female\\\\blouse\\\\blouse_645.jpg\", \"\\\\female\\\\dress\\\\0902004968.jpg\"]}" JSONArray sketchList = content.getJSONArray("sketch_list"); if (sketchList.isEmpty()){ @@ -404,12 +404,16 @@ public class LLMServiceImpl implements LLMService { ArrayList dataList = new ArrayList<>(); sketchList.forEach(sketch -> { ReceiveCollectionElement receiveCollectionElement = new ReceiveCollectionElement(); - receiveCollectionElement.setUrl((String) sketch); - receiveCollectionElement.setMinioUrl(minioUtil.getPreSignedUrl(sysImage + "/images" + sketch, CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + String path = sketch.toString().replace("\\", "/"); + receiveCollectionElement.setUrl(path); + receiveCollectionElement.setLevel1Type(CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName()); + receiveCollectionElement.setMinioUrl(minioUtil.getPreSignedUrl(sysImage + "/images" + path, CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); dataList.add(receiveCollectionElement); }); ReceiveDesignParam receiveDesignParam = new ReceiveDesignParam(); receiveDesignParam.setReceiveCollectionElementList(dataList); + receiveDesignParam.setProjectId(projectId); + designService.receiveDesignParams(receiveDesignParam); return JSONArray.toJSONString(receiveDesignParam); } diff --git a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java index 98956f0a..438c47fb 100644 --- a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java @@ -422,6 +422,11 @@ public class LibraryServiceImpl extends ServiceImpl impl throw new BusinessException("processMannequins.interface.exception"); } + /** + * 去sketch白边 + * @param filePath + * @param category + */ @Override public void processSketchBoards(String filePath, String category) { Long imageId = pythonTAllInfoService.getImageIdByPath(filePath); 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 478db716..47ebf47f 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java @@ -668,7 +668,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl Date: Thu, 19 Jun 2025 17:22:43 +0800 Subject: [PATCH 2/4] BUGFIX: --- src/main/java/com/ai/da/controller/AccountController.java | 4 ++-- src/main/java/com/ai/da/service/AccountService.java | 2 +- src/main/java/com/ai/da/service/impl/AccountServiceImpl.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ai/da/controller/AccountController.java b/src/main/java/com/ai/da/controller/AccountController.java index 660ece11..1e27bf17 100644 --- a/src/main/java/com/ai/da/controller/AccountController.java +++ b/src/main/java/com/ai/da/controller/AccountController.java @@ -372,12 +372,12 @@ public class AccountController { return Response.success(accountService.subAccountImport(file)); } - @GetMapping("/send618Email") + /*@GetMapping("/send618Email") @ApiOperation(value = "618邮件发送") public Response send618PromotionEmailTemp() { accountService.send618PromotionEmailTemp(); return Response.success("success"); - } + }*/ } diff --git a/src/main/java/com/ai/da/service/AccountService.java b/src/main/java/com/ai/da/service/AccountService.java index 3beb8705..a725e395 100644 --- a/src/main/java/com/ai/da/service/AccountService.java +++ b/src/main/java/com/ai/da/service/AccountService.java @@ -234,5 +234,5 @@ public interface AccountService extends IService { Set organizationNameSearch(String type, String name); - void send618PromotionEmailTemp(); + /*void send618PromotionEmailTemp();*/ } 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 cd33b444..b7cec9b6 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -3031,7 +3031,7 @@ public class AccountServiceImpl extends ServiceImpl impl return new HashSet<>(); } - @Override +/* @Override public void send618PromotionEmailTemp() { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("is_deleted", 0); @@ -3057,6 +3057,6 @@ public class AccountServiceImpl extends ServiceImpl impl } current ++; } - } + }*/ } From 64b32dc3a3b1a779c7e905dd87dc253764d62402 Mon Sep 17 00:00:00 2001 From: xupei Date: Thu, 19 Jun 2025 18:24:07 +0800 Subject: [PATCH 3/4] =?UTF-8?q?BUGFIX:sketch=E6=90=9C=E7=B4=A2=E5=87=BA?= =?UTF-8?q?=E7=9A=84=E5=9B=BE=E7=89=87=E5=8E=BB=E7=99=BD=E8=BE=B9=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ai/da/service/impl/LLMServiceImpl.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ai/da/service/impl/LLMServiceImpl.java b/src/main/java/com/ai/da/service/impl/LLMServiceImpl.java index 6ff1d890..5d7715de 100644 --- a/src/main/java/com/ai/da/service/impl/LLMServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LLMServiceImpl.java @@ -234,8 +234,8 @@ public class LLMServiceImpl implements LLMService { executor.submit(() -> { try { -// boolean validate = jwtTokenHelper.validateToken(token); - boolean validate = true; + boolean validate = jwtTokenHelper.validateToken(token); +// boolean validate = true; if (validate) { AuthPrincipalVo principal = jwtTokenHelper.parserToUser(token); Long accountId = principal.getId(); @@ -405,9 +405,11 @@ public class LLMServiceImpl implements LLMService { sketchList.forEach(sketch -> { ReceiveCollectionElement receiveCollectionElement = new ReceiveCollectionElement(); String path = sketch.toString().replace("\\", "/"); - receiveCollectionElement.setUrl(path); + String minioPath = sysImage + "/images" + path; + receiveCollectionElement.setUrl(minioPath); receiveCollectionElement.setLevel1Type(CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName()); - receiveCollectionElement.setMinioUrl(minioUtil.getPreSignedUrl(sysImage + "/images" + path, CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + receiveCollectionElement.setLevel2Type(path.split("/")[2]); + receiveCollectionElement.setMinioUrl(minioUtil.getPreSignedUrl(minioPath, CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); dataList.add(receiveCollectionElement); }); ReceiveDesignParam receiveDesignParam = new ReceiveDesignParam(); From 92278cf91ba676c88876c0402ff8bca858be3788 Mon Sep 17 00:00:00 2001 From: xupei Date: Fri, 20 Jun 2025 12:01:17 +0800 Subject: [PATCH 4/4] =?UTF-8?q?BUGFIX:=E8=8E=B7=E5=8F=96all=20pose?= =?UTF-8?q?=E7=9A=84=E9=A2=84=E8=A7=88=E5=9C=B0=E5=9D=80=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/ai/da/common/enums/PoseEnum.java | 4 +++- src/main/java/com/ai/da/common/utils/MinioUtil.java | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ai/da/common/enums/PoseEnum.java b/src/main/java/com/ai/da/common/enums/PoseEnum.java index 713e791e..09480d9e 100644 --- a/src/main/java/com/ai/da/common/enums/PoseEnum.java +++ b/src/main/java/com/ai/da/common/enums/PoseEnum.java @@ -63,7 +63,9 @@ public enum PoseEnum { } public static List> getPropertyList() { - return new ArrayList<>(PROPERTY_LIST); // 返回副本以保证不可变性 + return PROPERTY_LIST.stream() + .map(HashMap::new) // 深拷贝每个 Map + .collect(Collectors.toList()); } public static List getVideoList() { diff --git a/src/main/java/com/ai/da/common/utils/MinioUtil.java b/src/main/java/com/ai/da/common/utils/MinioUtil.java index de9e423b..1dc16740 100644 --- a/src/main/java/com/ai/da/common/utils/MinioUtil.java +++ b/src/main/java/com/ai/da/common/utils/MinioUtil.java @@ -377,7 +377,8 @@ public class MinioUtil { try { String lowerName = fileName.toLowerCase(); - boolean isImage = lowerName.endsWith(".jpg") || lowerName.endsWith(".jpeg") || lowerName.endsWith(".png"); + boolean isImage = lowerName.endsWith(".jpg") || lowerName.endsWith(".jpeg") + || lowerName.endsWith(".png") || lowerName.endsWith(".gif"); GetPresignedObjectUrlArgs.Builder builder = GetPresignedObjectUrlArgs.builder() .bucket(bucketName) @@ -390,6 +391,8 @@ public class MinioUtil { String contentType = "image/jpeg"; if (lowerName.endsWith(".png")) { contentType = "image/png"; + } else if (lowerName.endsWith(".gif")) { // 新增 GIF + contentType = "image/gif"; } Map queryParams = new HashMap<>(); @@ -400,8 +403,10 @@ public class MinioUtil { } return minioClient.getPresignedObjectUrl(builder.build()); - } catch (MinioException | InvalidKeyException | IOException | NoSuchAlgorithmException e) { + } catch (MinioException | InvalidKeyException + | IOException | NoSuchAlgorithmException | IllegalArgumentException e) { e.printStackTrace(); + log.error("bucket: {}, object:{}", bucketName, fileName); throw new BusinessException(e.getMessage()); } }