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 |   70 +++++++++++++++++++++++------------
 1 files changed, 46 insertions(+), 24 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 d307cec..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,8 +25,10 @@
 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;
 
 
 /**
@@ -78,27 +80,28 @@
     @ApiOperation(value = "获取参赛人员列表", tags = {"APP-赛事活动列表", "我的二维码", "人员管理", "APP-社区世界杯"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
-            @ApiImplicitParam(value = "isPre(1过滤)", name = "是否过滤未实名", required = true, dataType = "int")
     })
-    public ResultUtil<List<ParticipantVo>> queryParticipantList(Integer isPre) {
+    public ResultUtil<List<ParticipantVo>> queryParticipantList() {
         try {
             Integer uid = tokenUtil.getUserIdFormRedis();
             if (null == uid) {
                 return ResultUtil.tokenErr();
             }
+            System.err.println("查询人员列表");
             List<ParticipantVo> participantVos = participantService.queryParticipantList(uid);
-            if (isPre != null) {
+//            if (isPre != null) {
                 List<ParticipantVo> filteredParticipants = new ArrayList<>();
 
                 for (ParticipantVo participant : participantVos) {
-                    if (participant.getIdcard() != null && !participant.getIdcard().isEmpty()) {
+//                    if (participant.getIdcard() != null && !participant.getIdcard().isEmpty()) {
                         filteredParticipants.add(participant);
-                    }
+//                    }
                 }
-                return ResultUtil.success(filteredParticipants);
-            }
+            List<ParticipantVo> collect = filteredParticipants.stream().distinct().collect(Collectors.toList());
+            return ResultUtil.success(collect);
+//            }
 
-            return ResultUtil.success(participantVos);
+//            return ResultUtil.success(participantVos);
         } catch (Exception e) {
             e.printStackTrace();
             return ResultUtil.runErr();
@@ -120,38 +123,32 @@
             if (null == uid) {
                 return ResultUtil.tokenErr();
             }
-            int numDigits = String.valueOf(editParticipant.getId()).length();
-
-
-            if (numDigits == 9) {
+            if (null != editParticipant.getIsStudent() && 0 == editParticipant.getIsStudent()) {
                 Participant byId = participantService.getById(editParticipant.getId());
                 editParticipant.setName(byId.getName());
                 return participantService.editParticipant(uid, editParticipant);
             } else {
-
-
                 TStudent student = new TStudent();
                 student.setId(editParticipant.getId());
-
-                TStudent student1 = studentClient.queryById(editParticipant.getId());
-                student.setName(student1.getName());
+                student.setName(editParticipant.getName());
                 student.setIdCard(editParticipant.getIdcard());
+                student.setHeadImg(editParticipant.getHeadImg());
                 if (editParticipant.getHeight() != null) {
                     student.setHeight(Double.valueOf(editParticipant.getHeight()));
                 }
-
                 if (editParticipant.getWeight() != null) {
                     student.setWeight(editParticipant.getWeight());
                 }
-
-                if (ToolUtil.isNotEmpty(student.getName()) && ToolUtil.isNotEmpty(student.getIdCard())) {
+                if (ToolUtil.isNotEmpty(editParticipant.getName()) && ToolUtil.isNotEmpty(student.getIdCard())) {
                     Boolean aBoolean = JuHeUtil.idcardAuthentication(student.getIdCard(), student.getName());
                     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);
                 return ResultUtil.success();
@@ -161,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")
@@ -169,13 +191,13 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil delParticipant(Integer id) {
+    public ResultUtil delParticipant(Integer id, Integer isStudent) {
         try {
             Integer uid = tokenUtil.getUserIdFormRedis();
             if (null == uid) {
                 return ResultUtil.tokenErr();
             }
-            return participantService.delParticipant(id);
+            return participantService.delParticipant(id, isStudent);
         } catch (Exception e) {
             e.printStackTrace();
             return ResultUtil.runErr();

--
Gitblit v1.7.1