无关风月
2025-11-11 aba8d209561a130b6d849d96ff202fe172b1ad92
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")