package com.rongyichuang.media.api; import com.rongyichuang.media.dto.MediaSaveInput; import com.rongyichuang.media.dto.MediaSaveResponse; import com.rongyichuang.media.service.MediaV2Service; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.graphql.data.method.annotation.Argument; import org.springframework.graphql.data.method.annotation.MutationMapping; import org.springframework.stereotype.Controller; /** * 媒体GraphQL API */ @Controller @Slf4j public class MediaV2GraphqlApi { @Autowired private MediaV2Service mediaService; /** * 保存媒体文件(新版本) * @param input 媒体保存输入 * @return 保存结果 */ @MutationMapping public MediaSaveResponse saveMediaV2(@Argument MediaSaveInput input) { log.info("收到保存媒体文件请求,目标类型: {}, 目标ID: {}", input.getTargetType(), input.getTargetId()); return mediaService.saveMedia(input); } /** * 保存选手头像 * @param playerId 选手ID * @param url 头像URL * @param fileName 文件名 * @param fileSize 文件大小 * @return 保存结果 */ @MutationMapping public MediaSaveResponse savePlayerAvatar(@Argument Long playerId, @Argument String url, @Argument String fileName, @Argument Long fileSize) { log.info("收到保存选手头像请求,选手ID: {}", playerId); MediaSaveInput input = new MediaSaveInput(); input.setTargetType("player"); input.setTargetId(playerId); input.setPath(url); input.setName(fileName); input.setFileSize(fileSize); input.setMediaType(1); // 头像类型 return mediaService.saveMedia(input); } /** * 保存活动报名附件 * @param activityPlayerId 活动报名ID * @param url 附件URL * @param fileName 文件名 * @param fileSize 文件大小 * @param mediaType 媒体类型 * @return 保存结果 */ @MutationMapping public MediaSaveResponse saveActivityPlayerAttachment(@Argument Long activityPlayerId, @Argument String url, @Argument String fileName, @Argument Long fileSize, @Argument Integer mediaType) { log.info("收到保存活动报名附件请求,活动报名ID: {}", activityPlayerId); MediaSaveInput input = new MediaSaveInput(); input.setTargetType("activity_player"); input.setTargetId(activityPlayerId); input.setPath(url); input.setName(fileName); input.setFileSize(fileSize); input.setMediaType(mediaType); return mediaService.saveMedia(input); } }