From 1bbfe8d0920f99dbeb1650712be8eba60ce6a49b Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sat, 8 Nov 2025 15:12:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(printer):=20=E6=B7=BB=E5=8A=A0=E7=85=A7?= =?UTF-8?q?=E7=89=87=E6=9D=A5=E6=BA=90ID=E5=AD=97=E6=AE=B5=E5=B9=B6?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在MemberPrintEntity中新增sourceId字段用于记录照片来源 - 更新addUserPhoto方法签名,增加sourceId参数 - 修改照片上传接口,支持传递sourceId参数 - 完善自动添加照片到打印列表的逻辑,关联sourceId - 更新数据库映射文件,添加source_id字段的读写配置- 优化重复照片检测逻辑,确保数据一致性 --- .../mobile/AppPrinterController.java | 2 +- .../pc/printer/entity/MemberPrintEntity.java | 1 + .../basic/service/printer/PrinterService.java | 2 +- .../printer/impl/PrinterServiceImpl.java | 18 +++++++++++------- src/main/resources/mapper/PrinterMapper.xml | 2 ++ 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppPrinterController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppPrinterController.java index ddc8671d..a4d71f10 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppPrinterController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppPrinterController.java @@ -72,7 +72,7 @@ public class AppPrinterController { String[] split = file.getOriginalFilename().split("\\."); String ext = split[split.length - 1]; String url = StorageFactory.use().uploadFile(file, "printer", UUID.randomUUID() + "." + ext); - Integer id = printerService.addUserPhoto(JwtTokenUtil.getWorker().getUserId(), scenicId, url, parseFaceId(faceId)); + Integer id = printerService.addUserPhoto(JwtTokenUtil.getWorker().getUserId(), scenicId, url, parseFaceId(faceId), null); return ApiResponse.success(id); } @PostMapping(value = "/uploadTo/{scenicId}/cropped/{id}", consumes = "multipart/form-data") diff --git a/src/main/java/com/ycwl/basic/model/pc/printer/entity/MemberPrintEntity.java b/src/main/java/com/ycwl/basic/model/pc/printer/entity/MemberPrintEntity.java index 937cd5ee..e3096208 100644 --- a/src/main/java/com/ycwl/basic/model/pc/printer/entity/MemberPrintEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/printer/entity/MemberPrintEntity.java @@ -15,6 +15,7 @@ public class MemberPrintEntity { private Long scenicId; private Long memberId; private Long faceId; + private Long sourceId; private String origUrl; private String cropUrl; private String printUrl; diff --git a/src/main/java/com/ycwl/basic/service/printer/PrinterService.java b/src/main/java/com/ycwl/basic/service/printer/PrinterService.java index 6014075e..85b5c734 100644 --- a/src/main/java/com/ycwl/basic/service/printer/PrinterService.java +++ b/src/main/java/com/ycwl/basic/service/printer/PrinterService.java @@ -39,7 +39,7 @@ public interface PrinterService { boolean deleteUserPhoto(Long memberId, Long scenicId, Long relationId); - Integer addUserPhoto(Long memberId, Long scenicId, String url, Long faceId); + Integer addUserPhoto(Long memberId, Long scenicId, String url, Long faceId, Long sourceId); MemberPrintResp getUserPhoto(Long memberId, Long scenicId, Long id); diff --git a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java index fc6e7c6f..3d26f031 100644 --- a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java @@ -272,11 +272,12 @@ public class PrinterServiceImpl implements PrinterService { } @Override - public Integer addUserPhoto(Long memberId, Long scenicId, String url, Long faceId) { + public Integer addUserPhoto(Long memberId, Long scenicId, String url, Long faceId, Long sourceId) { MemberPrintEntity entity = new MemberPrintEntity(); entity.setMemberId(memberId); entity.setScenicId(scenicId); entity.setFaceId(faceId); + entity.setSourceId(sourceId); entity.setOrigUrl(url); // 获取打印尺寸 @@ -411,6 +412,7 @@ public class PrinterServiceImpl implements PrinterService { entity.setMemberId(memberId); entity.setScenicId(scenicId); entity.setFaceId(faceId); + entity.setSourceId(id); entity.setOrigUrl(url); // 获取打印尺寸并裁剪图片 @@ -808,11 +810,13 @@ public class PrinterServiceImpl implements PrinterService { resp.setScenicId(scenicId); faceService.matchFaceId(faceId); autoAddPhotosToPreferPrint(faceId); - List userPhotoList = getUserPhotoList(userId, scenicId, faceId); - boolean noneMatch = userPhotoList.stream() - .noneMatch(item -> Strings.CI.equals(item.getOrigUrl(), sourceEntity.getUrl())); - if (noneMatch) { - addUserPhoto(userId, scenicId, sourceEntity.getUrl(), faceId); + if (sourceEntity != null) { + List userPhotoList = getUserPhotoList(userId, scenicId, faceId); + boolean noneMatch = userPhotoList.stream() + .noneMatch(item -> Strings.CI.equals(item.getOrigUrl(), sourceEntity.getUrl())); + if (noneMatch) { + addUserPhoto(userId, scenicId, sourceEntity.getUrl(), faceId, sourceEntity.getId()); + } } return resp; } @@ -916,7 +920,7 @@ public class PrinterServiceImpl implements PrinterService { int deviceAdded = 0; for (SourceEntity source : sourcesToAdd) { try { - addUserPhoto(memberId, scenicId, source.getUrl(), faceId); + addUserPhoto(memberId, scenicId, source.getUrl(), faceId, source.getId()); deviceAdded++; } catch (Exception e) { log.warn("添加照片到打印列表失败: sourceId={}, url={}, error={}", diff --git a/src/main/resources/mapper/PrinterMapper.xml b/src/main/resources/mapper/PrinterMapper.xml index d8bfd951..374dfd7e 100644 --- a/src/main/resources/mapper/PrinterMapper.xml +++ b/src/main/resources/mapper/PrinterMapper.xml @@ -102,6 +102,7 @@ member_id, scenic_id, face_id, + source_id, orig_url, crop_url, quantity, @@ -112,6 +113,7 @@ #{memberId}, #{scenicId}, #{faceId}, + #{sourceId}, #{origUrl}, #{cropUrl}, 1,