From cacf02681bfdda7926379d37d58ad1a21e398e1a Mon Sep 17 00:00:00 2001
From: lrj <owen.stl@gmail.com>
Date: 星期六, 04 十月 2025 19:08:12 +0800
Subject: [PATCH] fix(auth): 对无 Authorization 的 GraphQL 请求默认匿名放行到解析层,避免 400/403;公开查询仍优先识别后放行

---
 backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerDetailService.java |   35 ++++++++++++++++++++++++++++++-----
 1 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerDetailService.java b/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerDetailService.java
index 5f56ef0..1433984 100644
--- a/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerDetailService.java
+++ b/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerDetailService.java
@@ -57,7 +57,7 @@
 
         // 鏌ヨ鍩烘湰淇℃伅锛屽寘鍚尯鍩熶俊鎭�
         String sql = """
-            SELECT ap.id as ap_id, ap.description as ap_description, ap.activity_id, ap.region_id,
+            SELECT ap.id as ap_id, ap.description as ap_description, ap.activity_id, ap.region_id, ap.stage_id,
                    ap.project_name, ap.feedback, ap.state as ap_state,
                    p.id as player_id, p.name as player_name, p.phone, p.description as player_desc,
                    p.gender, u.birthday, p.education, p.introduction, u.id as user_id,
@@ -113,6 +113,19 @@
             response.setState(0);
         }
         response.setActivityName(row.get("activity_name") != null ? row.get("activity_name").toString() : "");
+        
+        // 璁剧疆闃舵ID
+        Object stageIdObj = row.get("stage_id");
+        if (stageIdObj != null) {
+            if (stageIdObj instanceof Number) {
+                response.setStageId(((Number) stageIdObj).longValue());
+            } else {
+                log.warn("闃舵ID绫诲瀷涓嶅尮閰�: {}, 绫诲瀷: {}", stageIdObj, stageIdObj.getClass().getName());
+                response.setStageId(Long.valueOf(stageIdObj.toString()));
+            }
+        } else {
+            response.setStageId(null);
+        }
 
         // 鏋勫缓瀛﹀憳淇℃伅
         PlayerInfoResponse playerInfo = new PlayerInfoResponse();
@@ -165,7 +178,7 @@
             log.info("鎵惧埌鍖哄煙淇℃伅: {}", regionInfo.getName());
         }
 
-        // 鏌ヨ鐢ㄦ埛澶村儚锛堜娇鐢║SER_AVATAR鍏宠仈鍒扮敤鎴凤級
+        // 鏋勫缓鐢ㄦ埛淇℃伅瀵硅薄锛屽寘鍚ご鍍�
         Object userIdObj = row.get("user_id");
         log.info("璋冭瘯锛氫粠鏌ヨ缁撴灉涓幏鍙栫殑user_id: {}", userIdObj);
         if (userIdObj != null) {
@@ -177,22 +190,31 @@
             }
             log.info("璋冭瘯锛氳В鏋愬悗鐨剈serId: {}", userId);
             
+            // 鍒涘缓PlayerUserInfo瀵硅薄
+            PlayerUserInfoResponse userInfo = new PlayerUserInfoResponse();
+            userInfo.setUserId(userId);
+            userInfo.setName(row.get("user_name") != null ? row.get("user_name").toString() : "");
+            userInfo.setPhone(row.get("user_phone") != null ? row.get("user_phone").toString() : "");
+            
+            // 鏌ヨ鐢ㄦ埛澶村儚
             List<Media> avatarMedias = mediaRepository.findByTargetTypeAndTargetIdAndState(
                 MediaTargetType.USER_AVATAR.getValue(), userId, 1);
             log.info("璋冭瘯锛氭煡璇㈠埌鐨勫ご鍍忓獟浣撴暟閲�: {}", avatarMedias.size());
             if (!avatarMedias.isEmpty()) {
                 Media avatar = avatarMedias.get(0);
                 String avatarUrl = buildFullMediaUrl(avatar.getPath());
-                playerInfo.setAvatarUrl(avatarUrl);
-                // 璁剧疆avatar瀵硅薄
-                playerInfo.setAvatar(convertToMediaResponse(avatar));
+                userInfo.setAvatarUrl(avatarUrl);
+                userInfo.setAvatar(convertToMediaResponse(avatar));
                 log.info("鎵惧埌鐢ㄦ埛澶村儚: {}", avatarUrl);
             } else {
                 log.info("璋冭瘯锛氭湭鎵惧埌鐢ㄦ埛澶村儚锛寀serId: {}, targetType: {}", userId, MediaTargetType.USER_AVATAR.getValue());
             }
+            
+            playerInfo.setUserInfo(userInfo);
         } else {
             log.warn("璋冭瘯锛歶ser_id涓簄ull");
         }
+        
         response.setPlayerInfo(playerInfo);
 
         // 鏌ヨ鎻愪氦鐨勮祫鏂欙紙浣跨敤鏋氫妇甯搁噺琛ㄧず鍙傝禌鎶ュ悕璧勬枡绫诲瀷锛�
@@ -222,7 +244,10 @@
         SubmissionMediaResponse response = new SubmissionMediaResponse();
         response.setId(media.getId());
         response.setName(media.getName());
+        response.setPath(media.getPath());
         response.setUrl(buildFullMediaUrl(media.getPath()));
+        response.setFullUrl(buildFullMediaUrl(media.getPath()));
+        response.setFullThumbUrl(buildFullMediaUrl(media.getThumbPath()));
         response.setFileExt(media.getFileExt());
         response.setFileSize(media.getFileSize() != null ? media.getFileSize().longValue() : null);
         response.setMediaType(media.getMediaType());

--
Gitblit v1.8.0