From 7ac2b27a83110b03eb1af11728164ea4dd3c58cb Mon Sep 17 00:00:00 2001 From: MaDaLei Date: Sat, 18 Apr 2026 21:11:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=202026-04-18=2021:11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/petstore/controller/ReportLeadController.java | 1 + src/main/java/com/petstore/service/ReportLeadService.java | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/petstore/controller/ReportLeadController.java b/src/main/java/com/petstore/controller/ReportLeadController.java index 3034ae3..833eff0 100644 --- a/src/main/java/com/petstore/controller/ReportLeadController.java +++ b/src/main/java/com/petstore/controller/ReportLeadController.java @@ -54,6 +54,7 @@ public class ReportLeadController { data.put("remindDate", lead.getRemindDate() == null ? null : lead.getRemindDate().toString()); data.put("unsubscribeToken", lead.getUnsubscribeToken()); data.put("wechatBound", outcome.wechatBound()); + data.put("repeatSubmit", outcome.repeatSubmit()); return Map.of("code", 200, "data", data); } catch (IllegalArgumentException e) { return Map.of("code", 400, "message", e.getMessage()); diff --git a/src/main/java/com/petstore/service/ReportLeadService.java b/src/main/java/com/petstore/service/ReportLeadService.java index 6067155..84800fd 100644 --- a/src/main/java/com/petstore/service/ReportLeadService.java +++ b/src/main/java/com/petstore/service/ReportLeadService.java @@ -31,8 +31,8 @@ public class ReportLeadService { private final UserService userService; private final WechatMiniProgramService wechatMiniProgramService; - /** 留资提交结果:记录 + 是否已将微信 openid 绑定到宠主账号(S3→S4) */ - public record LeadSubmitOutcome(ReportLead lead, boolean wechatBound) {} + /** 留资提交结果:记录 + 是否已将微信 openid 绑定到宠主账号(S3→S4)+ 是否同报告同手机号再次提交(幂等更新) */ + public record LeadSubmitOutcome(ReportLead lead, boolean wechatBound, boolean repeatSubmit) {} /** 当服务类型不在已配置表中时使用的兜底间隔(天) */ private static final int FALLBACK_MIN = 28; @@ -127,6 +127,7 @@ public class ReportLeadService { LocalDateTime now = LocalDateTime.now(); ReportLead lead = reportLeadMapper.findFirstByReportIdAndPhone(report.getId(), phone).orElse(null); + boolean repeatSubmit = lead != null; if (lead == null) { lead = new ReportLead(); lead.setReportId(report.getId()); @@ -180,7 +181,7 @@ public class ReportLeadService { } } - return new LeadSubmitOutcome(lead, wechatBound); + return new LeadSubmitOutcome(lead, wechatBound, repeatSubmit); } /** 退订:按 unsubscribeToken 找记录并置状态 */