Codex Assistant
昨天 58d9f460b2f8c34430285115e2557d18333c5cab
backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerDetailService.java
@@ -59,8 +59,9 @@
        String sql = """
            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.id as player_id, p.name as player_name, u.phone, p.description as player_desc,
                   p.gender, u.birthday, p.education, p.introduction, u.id as user_id,
                   u.name as user_name, u.phone as user_phone,
                   a.name as activity_name, a.rating_scheme_id,
                   r.id as region_id, r.name as region_name, r.full_path as region_path
            FROM t_activity_player ap
@@ -178,7 +179,7 @@
            log.info("找到区域信息: {}", regionInfo.getName());
        }
        // 查询用户头像(使用USER_AVATAR关联到用户)
        // 构建用户信息对象,包含头像
        Object userIdObj = row.get("user_id");
        log.info("调试:从查询结果中获取的user_id: {}", userIdObj);
        if (userIdObj != null) {
@@ -190,22 +191,34 @@
            }
            log.info("调试:解析后的userId: {}", 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());
                userInfo.setAvatarUrl(avatarUrl);
                userInfo.setAvatar(convertToMediaResponse(avatar));
                // 同步赋值到 playerInfo,便于前端直接使用 playerInfo.avatarUrl
                playerInfo.setAvatarUrl(avatarUrl);
                // 设置avatar对象
                playerInfo.setAvatar(convertToMediaResponse(avatar));
                log.info("找到用户头像: {}", avatarUrl);
            } else {
                log.info("调试:未找到用户头像,userId: {}, targetType: {}", userId, MediaTargetType.USER_AVATAR.getValue());
            }
            playerInfo.setUserInfo(userInfo);
        } else {
            log.warn("调试:user_id为null");
        }
        response.setPlayerInfo(playerInfo);
        // 查询提交的资料(使用枚举常量表示参赛报名资料类型)
@@ -235,7 +248,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());