裁判选班
This commit is contained in:
		
							parent
							
								
									1e1fad25a2
								
							
						
					
					
						commit
						40adf9f126
					
				@ -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
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 导播选定场次
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        [Route("api/v1/judge")]
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        [Authorize]
 | 
			
		||||
        public async Task<ActionResult<object>> 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 = "报名成功" }); ;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 删除导播选择的比赛
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        [Route("api/v1/judge")]
 | 
			
		||||
        [HttpDelete]
 | 
			
		||||
        [Authorize]
 | 
			
		||||
        public async Task<ActionResult<object>> 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
 | 
			
		||||
        {
 | 
			
		||||
            /// <summary>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user