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,