From 5882ba8863d77fdcc168b176c3ffb30e8a20556a Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 13 七月 2026 17:54:25 +0800
Subject: [PATCH] 缩短二维码原始参数

---
 backend/src/main/java/com/sinata/appointment/service/MiniVisitorApplicationService.java |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/backend/src/main/java/com/sinata/appointment/service/MiniVisitorApplicationService.java b/backend/src/main/java/com/sinata/appointment/service/MiniVisitorApplicationService.java
index 244cef7..2f1e864 100644
--- a/backend/src/main/java/com/sinata/appointment/service/MiniVisitorApplicationService.java
+++ b/backend/src/main/java/com/sinata/appointment/service/MiniVisitorApplicationService.java
@@ -103,6 +103,17 @@
         mpVisitorMapper.updateById(row);
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    public void delete(Long id, String uuid) {
+        MpUser current = miniAuthApplicationService.currentMpUser();
+        MpVisitor row = loadOwnedVisitor(id, uuid, current.getId());
+        boolean wasDefault = isDefault(row);
+        mpVisitorMapper.deleteById(row.getId());
+        if (wasDefault) {
+            resetEarliestVisitorAsDefault(current.getId());
+        }
+    }
+
     public MiniVisitorDetailVo detail(Long id, String uuid) {
         MpUser current = miniAuthApplicationService.currentMpUser();
         MpVisitor row = loadOwnedVisitor(id, uuid, current.getId());
@@ -165,6 +176,21 @@
                 > 0;
     }
 
+    private void resetEarliestVisitorAsDefault(Long mpUserId) {
+        MpVisitor next =
+                mpVisitorMapper.selectOne(
+                        new LambdaQueryWrapper<MpVisitor>()
+                                .eq(MpVisitor::getMpUserId, mpUserId)
+                                .eq(MpVisitor::getDelFlag, 0)
+                                .orderByAsc(MpVisitor::getCreateTime)
+                                .orderByAsc(MpVisitor::getId)
+                                .last("limit 1"));
+        if (next != null) {
+            next.setIsDefault(1);
+            mpVisitorMapper.updateById(next);
+        }
+    }
+
     private List<String> resolveMissingFieldCodes(MpVisitor row, Set<String> requiredCodes) {
         List<String> missing = new ArrayList<>();
         for (String code : requiredCodes) {

--
Gitblit v1.7.1