From 77c4055c72fc5d0e0becaf3c410ab700f26c220b Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期六, 04 十月 2025 18:57:09 +0800 Subject: [PATCH] fix(auth): 避免在 JWT 过滤器中消费原始 GraphQL 请求体,防止下游读取为空引发 400 --- 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