Files
reader-star/apps/admin/src/service/api/game.ts
rjl 11fb5481d3 feat(competition): 支持决赛环节并添加加时赛管理功能
- 扩展竞赛环节类型,支持决赛环节(RoundType=3)
- 新增加时赛创建功能,支持多分组队伍选择
- 添加题目库禁用/启用功能,支持批量操作
- 优化用户端竞赛流程,区分常规赛和加时赛
- 重构操作按钮组件,提高代码复用性
2026-03-09 17:34:40 +08:00

115 lines
4.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { request } from '../request'
/**
* 游戏相关接口 步骤
* 1.GetQuestionByActivityIDAndStatus 抽题时候获取题目大纲信息
* 2.GetQuestionListDetailRound 获取抽题目详情
* 3.fetchSubmitQuestionResult点击开始答题后把基础信息数据传给service
*/
/** 根据活动id查询分组列表返回队伍分组id和名称是否已经参赛 */
export function fetchGetGroupListByActivityID(id: string, roundType: number = 0) {
return request<App.Service.Response<Api.Competition.ActivityTeamGroup[]>>({
url: `/Base/ActivityMain/GetActivity_TeamGroupByMainIDAndStatus?ActivityID=${id}&RoundType=${roundType}`,
method: 'get',
})
}
/** 抽题时候获取题目大纲信息 */
export function fetchGetQuestionOutline(ActivityID: number, status: number = 0) {
return request<App.Service.Response<Api.Competition.QuestionListRecord[]>>({
url: `/Base/ActivityMain/GetQuestionByActivityIDAndStatus/?ActivityID=${ActivityID}&status=${status}`,
method: 'post',
data: {
ActivityID,
status,
},
})
}
/** 抽题目详情 */
export function fetchGetQuestionDetail(ActivityID: string, questionID: number) {
return request<App.Service.Response<Api.Competition.QuestionListDetailRound>>({
url: `/Base/ActivityMain/GetQuestionListDetailRound/?MainID=${ActivityID}&questionID=${questionID}`,
method: 'post',
data: {
MainID: ActivityID,
questionID,
},
})
}
/** 提交抽题结果 */
export function fetchSubmitQuestionResult(data: Api.Competition.QuestionAddParams) {
return request<App.Service.Response<Api.Competition.QuestionListDetailRound>>({
url: `/Base/ActivityMain/AddActivity_TeamQuestionUse/?RoomID=${data.RoomID}&MainID=${data.MainID}&TeamGroupID=${data.TeamGroupID}&QuestionID=${data.QuestionID}&QuestionDetaiID=${data.QuestionDetaiID}&TeamGroupQuestionID=${data.TeamGroupQuestionID}`,
method: 'post',
data,
})
}
/** 获取游戏现场统计结果 */
export function fetchGetGameStatistics(data: { TeamGroupID: number, QuestionID: number }) {
return request<App.Service.Response<Api.Competition.TeamAnswerData[]>>({
url: `/Base/ActivityMain/GetTeamQuestionUseByTeamGroupIDAndQuestionID/?TeamGroupID=${data.TeamGroupID}&QuestionID=${data.QuestionID}`,
method: 'post',
data,
})
}
/** 获取游戏现场问题 */
export function fetchGetCurrentQuestion(data: Api.Competition.GetCurrentQuestionParams) {
return request<App.Service.Response<Api.Competition.CurrentQuestionResponse>>({
url: `/Base/ActivityMain/GetCurrentQuestion/?ActivityID=${data.ActivityID}&GroupID=${data.GroupID}&RoundType=${data.RoundType}`,
method: 'post',
data,
})
}
/** 定时刷,评委是否评完结果 判断是否可以下一步 */
export function fetchCheckNextStep(TeamGroup_QuestionID: number) {
return request<App.Service.Response<any>>({
url: `/Base/ActivityMain/GetCurrentQuestionUse/?TeamGroup_QuestionID=${TeamGroup_QuestionID}`,
method: 'post',
data: {
TeamGroup_QuestionID,
},
})
}
/** 根据活动id查询题目列表 */
export function fetchGetQuestionTableByActivityID(ActivityID: string, RoundType: number = 0) {
return request<App.Service.Response<Api.Competition.QuestionListDetailRound[]>>({
url: `/Base/ActivityMain/GetActivity_QuestionTableByActivityID/?ID=${ActivityID}&RoundType=${RoundType}`,
method: 'get',
})
}
/** 根据 roomid查询当前正在比赛的题目 */
export function fetchGetCurrentQuestionByRoomID(RoomID: number) {
return request<App.Service.Response<Api.Competition.GetCurrentQuestionInfo>>({
url: `/Base/ActivityMain/SelectTask?RoomID=${RoomID}`,
method: 'post',
data: {
RoomID,
},
})
}
/** 根据QuestionDetaiID查询题目详情 */
export function fetchGetQuestionDetailByID(QuestionDetailID: number) {
return request<App.Service.Response<Api.Competition.QuestionListDetailRound>>({
url: `/Base/ActivityMain/GetQuestionListDetailByID/?QuestionID=${QuestionDetailID}`,
method: 'get',
})
}
/** 加时赛选择组小队 */
export function fetchAddExtraTime(data: Api.Competition.AddExtraTimeParams) {
return request<App.Service.Response<any>>({
url: `/Base/ActivityMain/AddOverTimeTeamGroup`,
method: 'post',
data,
})
}