diff --git a/asg_form/Controllers/Com.cs b/asg_form/Controllers/Com.cs
index 92d3a43..0fe95d7 100644
--- a/asg_form/Controllers/Com.cs
+++ b/asg_form/Controllers/Com.cs
@@ -178,6 +178,7 @@ namespace asg_form.Controllers
if (teamgame.isAllowChoose == 0) return Ok(new error_mb { code = 401, message = "存在无法选择的比赛" });
if (teamgame != null)
{
+
teamgame.referee = chinaname;
teamgame.referee_Id = (int)(user.Id);
await testDb.SaveChangesAsync();
@@ -250,6 +251,119 @@ namespace asg_form.Controllers
}
+ ///
+ /// 导播选定场次
+ ///
+ [Route("api/v1/judge")]
+ [HttpPost]
+ [Authorize]
+ public async Task> judgePost(string gameIds)
+ {
+ string id = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value;
+ var user = await userManager.FindByIdAsync(id);
+
+ if (user.officium != "Judge")
+ {
+ return Ok(new error_mb { code = 401, message = $"你是{user.officium},你不是裁判,无法操作" });
+ }
+
+ else
+ {
+ if (user.Integral == null)
+ {
+ user.Integral = 0;
+ await userManager.UpdateAsync(user);
+ }
+
+ TestDbContext testDb = new TestDbContext();
+ string chinaname = user.chinaname;
+ int[] gameIdArray = ConvertStringToIntArray(gameIds);
+
+ var message = $"导播:\r\n{chinaname}\r\n选择了比赛:";
+
+ foreach (var gameId in gameIdArray)
+ {
+ var teamgame = await testDb.team_Games.FirstOrDefaultAsync(a => a.id == gameId);
+ if (teamgame.isAllowChoose == 0) return Ok(new error_mb { code = 401, message = "存在无法选择的比赛" });
+ if (teamgame != null)
+ {
+
+ teamgame.judge = chinaname;
+ teamgame.judge_Id = (int)(user.Id);
+ await testDb.SaveChangesAsync();
+ user.Integral += 5;
+ await userManager.UpdateAsync(user);
+ message += $"\r\n{teamgame.team1_name} VS {teamgame.team2_name}";
+ }
+ }
+ try
+ {
+ var msg = new MessageBuilder().Add(new AtSegment(user.qqnumber ?? "2667210109")).Text(message).Build();
+ await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, "925510646", null, msg, "925510646");
+
+ }
+ catch (Exception ex)
+ {
+ return Ok(new { code = 500, message = "服务器错误", ex });
+ }
+
+ return Ok(new { code = 200, message = "报名成功" }); ;
+ }
+
+ }
+
+ ///
+ /// 删除导播选择的比赛
+ ///
+ [Route("api/v1/judge")]
+ [HttpDelete]
+ [Authorize]
+ public async Task> DeletejudgeSelectedGame(int gameId, string reason)
+ {
+ string userId = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value;
+ var user = await userManager.FindByIdAsync(userId);
+
+ if (user.officium != "Judge")
+ {
+ return Ok(new error_mb { code = 401, message = $"你是{user.officium},你不是裁判,无法操作" });
+ }
+
+ TestDbContext testDb = new TestDbContext();
+
+ var teamGame = await testDb.team_Games.FirstOrDefaultAsync(a => a.id == gameId);
+ if (teamGame == null)
+ {
+ return NotFound(new { code = 404, message = "比赛未找到" });
+ }
+
+ teamGame.judge = null;
+ teamGame.judge_Id = null;
+ await testDb.SaveChangesAsync();
+
+ user.Integral = user.Integral - 5 > 0 ? user.Integral - 5 : 0; // 确保积分不会减少到负数
+ await userManager.UpdateAsync(user);
+
+ try
+ {
+ var message = new MessageBuilder()
+ .Add(new AtSegment(user.qqnumber ?? "2667210109"))
+ .Text($"裁判 {user.chinaname} 已取消比赛 {teamGame.team1_name} VS {teamGame.team2_name} 的选择,\n原因是{reason}")
+ .Build();
+
+ await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, "925510646", null, message, "925510646");
+ }
+ catch (Exception ex)
+ {
+ return StatusCode(500, new { code = 500, message = "服务器错误", ex });
+ }
+ return Ok(new { code = 200, message = "删除成功" });
+ }
+
+
+
+
+
+
public class com_json
{
///