From aba8d209561a130b6d849d96ff202fe172b1ad92 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 11 十一月 2025 13:54:33 +0800
Subject: [PATCH] 玩湃本次新增迭代所有代码

---
 cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java
index b0bf114..d98aada 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java
@@ -25,6 +25,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -143,6 +144,10 @@
                     if (!aBoolean) {
                         return ResultUtil.error("身份证和姓名不匹配");
                     }
+                    // 根据身份证号获取生日
+                    String birthday18 = extractBirthdayFromIdCard(student.getIdCard());
+                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                    student.setBirthday(simpleDateFormat.parse(birthday18));
                 }
                 student.setPhone(editParticipant.getPhone());
                 studentClient.updateAppUser(student);
@@ -153,7 +158,32 @@
             return ResultUtil.runErr();
         }
     }
+    /**
+     * 根据身份证号码提取生日
+     * @param idCard 身份证号码
+     * @return 生日字符串 YYYY-MM-DD格式
+     */
+    public static String extractBirthdayFromIdCard(String idCard) {
+        if (idCard == null || idCard.isEmpty()) {
+            return null;
+        }
 
+        String birthday;
+        if (idCard.length() == 18) {
+            // 18位身份证:截取第7-14位
+            birthday = idCard.substring(6, 14);
+        } else if (idCard.length() == 15) {
+            // 15位身份证:截取第7-12位,并补上前缀"19"
+            birthday = "19" + idCard.substring(6, 12);
+        } else {
+            return null;
+        }
+
+        // 格式化为YYYY-MM-DD格式
+        return birthday.substring(0, 4) + "-" +
+                birthday.substring(4, 6) + "-" +
+                birthday.substring(6, 8);
+    }
 
     @ResponseBody
     @PostMapping("/api/participant/delParticipant")

--
Gitblit v1.7.1