qiangdanxitong/backend/src/main/java/com/designhub/mapper/ContestParticipantMapper.java

29 lines
1.0 KiB
Java

package com.designhub.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.designhub.entity.ContestParticipant;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* 竞赛参与者Mapper
*/
@Mapper
public interface ContestParticipantMapper extends BaseMapper<ContestParticipant> {
/**
* 获取竞赛排行榜
*/
@Select("SELECT * FROM contest_participant WHERE contest_id = #{contestId} ORDER BY total_score DESC, task_completed DESC")
List<ContestParticipant> getLeaderboard(@Param("contestId") Long contestId);
/**
* 获取用户在竞赛中的排名
*/
@Select("SELECT COUNT(*) + 1 FROM contest_participant WHERE contest_id = #{contestId} AND total_score > (SELECT total_score FROM contest_participant WHERE contest_id = #{contestId} AND user_id = #{userId})")
Integer getUserRank(@Param("contestId") Long contestId, @Param("userId") Long userId);
}