diff --git a/asg_form/Controllers/Teamregistration/RegisterController.cs b/asg_form/Controllers/Teamregistration/RegisterController.cs index 80804c9..532e4cd 100644 --- a/asg_form/Controllers/Teamregistration/RegisterController.cs +++ b/asg_form/Controllers/Teamregistration/RegisterController.cs @@ -9,6 +9,7 @@ using System.Threading.Tasks; using Flandre.Core.Common; using Flandre.Core.Messaging.Segments; using Flandre.Core.Messaging; +using static asg_form.Controllers.InviteReferee; namespace asg_form.Controllers.Teamregistration { @@ -27,6 +28,7 @@ namespace asg_form.Controllers.Teamregistration public string approval_person { get; set; } public string approval_time { get; set; } public string status { get; set; } + public string biz_type { get; set; } } public class userMsg { @@ -39,6 +41,7 @@ namespace asg_form.Controllers.Teamregistration public string? historyRank { get; set; } public string? contactNumber { get; set; } public int? id { get; set; } + public string bizType { get; set; } } public class RegisterController : ControllerBase { @@ -85,15 +88,23 @@ namespace asg_form.Controllers.Teamregistration create_time = dateString, status = "1", approval_person = "未审核", - approval_time = "未审核" + approval_time = "未审核", + biz_type = msg.bizType, }; sub.T_Comform.Add(rgst); await sub.SaveChangesAsync(); string mesg1 = $"[ASG管理系统]有新解说申请,请及时上后台系统审批。"; string qqgroup1 = "925510646"; var atuserqq1 = "235593230"; - var message1 = new MessageBuilder().Add(new AtSegment(atuserqq1)).Text(mesg1).Build(); - await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, qqgroup1, null, message1, qqgroup1); + try + { + var message1 = new MessageBuilder().Add(new AtSegment(atuserqq1)).Text(mesg1).Build(); + await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, qqgroup1, null, message1, qqgroup1); + }catch (Exception e) + { + return Ok(new error_mb { code = 200, message = "提交成功但是信息没有成功发出" }); + } + return Ok(new error_mb { code = 200, message = "提交成功" }); } @@ -113,12 +124,20 @@ namespace asg_form.Controllers.Teamregistration query.contact_number = msg.contactNumber; query.create_time = dateString; query.status = "1"; + query.biz_type = msg.bizType; await sub.SaveChangesAsync(); string mesg = $"[ASG管理系统]有新解说申请,请及时上后台系统审批。"; string qqgroup = "925510646"; var atuserqq = "235593230"; - var message = new MessageBuilder().Add(new AtSegment(atuserqq)).Text(mesg).Build(); - await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, qqgroup, null, message, qqgroup); + try + { + var message = new MessageBuilder().Add(new AtSegment(atuserqq)).Text(mesg).Build(); + await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, qqgroup, null, message, qqgroup); + } + catch (Exception e) + { + return Ok(new error_mb { code = 200, message = "提交成功但是信息没有成功发出" }); + } return Ok(new error_mb { code = 200, message = "成功修改" }); } } diff --git a/asg_form/Controllers/form_cs.cs b/asg_form/Controllers/form_cs.cs index 7d506ee..9f082da 100644 --- a/asg_form/Controllers/form_cs.cs +++ b/asg_form/Controllers/form_cs.cs @@ -25,12 +25,154 @@ using static using Manganese.Array; using Microsoft.AspNetCore.Identity; using Flurl.Http; +using System.Security.Claims; namespace asg_form.Controllers { + public class form_cs : ControllerBase + { + [Route("api/v3/form/all")] + [HttpGet] + public async Task> GetFormById(short page, short limit, int sort, int eventId) + { + using (var db = new TestDbContext()) + { + try + { + var query = db.Forms.Where(f => f.events.Id == eventId); + query = sort switch + { + 0 => query.OrderByDescending(m => m.piaoshu).ThenByDescending(m => m.time), + 1 => query.OrderBy(m => m.piaoshu), + 2 => query.OrderByDescending(m => m.piaoshu), + 3 => query.OrderBy(m => m.time), + 4 => query.OrderByDescending(m => m.time), + _ => query + }; + if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin") || this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + try + { + var results = await query + .Skip((page - 1) * limit) + .Take(limit) + .Select(f => new AdminTeamFind + { + form = f, + roles = findRolesByFormId(f.Id, 0) + }) + .ToListAsync(); + int total = await query.CountAsync(); + return Ok(new { code = 200, message = "ɹ", data = results, total }); + } + catch (Exception ex) + { + return Ok(new { code = 500, message = "", error = ex.Message }); + } + } + else + { + var results = await query + .Skip((page - 1) * limit) + .Take(limit) + .Select(f => new AdminTeamFind + { + form = new form + { + Id = f.Id, + team_name = f.team_name, + piaoshu = f.piaoshu, + }, + roles = findRolesByFormId(f.Id, 1) + }) + .ToListAsync(); + int total = await query.CountAsync(); + return Ok(new { code = 200, message = "ɹ", data = results, total }); + } + } + catch (Exception ex) + { + return Ok(new { code = 500, message = "", ex = ex.Message }); + } + } + } + public class tmpRole + { + public string? roleName { get; set; } + public int? roleRank { get; set; } + public string? commonRoles { get; set; } + public string? roleLin { get; set; } + public string? roleId { get; set; } + public string? gameName { get; set; } + public string? idCard { get; set; } + public string? phoneNumber { get; set; } + public string? idCardName { get; set; } + + } + public class TeamFind + { + + public long formId { get; set; } + public string teamName { get; set; } + public int voteOfLikes { get; set; } + public List roles { get; set; } = new List(); + + } + public class AdminTeamFind + { + public form? form { get; set; } + public List? roles { get; set; } = new List(); + } + + private static List findRolesByFormId(long formId, int y) + { + var roles = new List(); + var db = new TestDbContext(); + try + { + var query = db.Roles.Where(x => x.form.Id == formId); + if (y == 1) + { + roles = query + .Select(f => new tmpRole + { + roleName = f.role_name, + roleRank = f.Historical_Ranks, + commonRoles = f.Common_Roles, + roleLin = f.role_lin + }) + .ToList(); + } + else + { + roles = query + .Select(f => new tmpRole + { + roleName = f.role_name, + roleRank = f.Historical_Ranks, + commonRoles = f.Common_Roles, + roleLin = f.role_lin, + roleId = f.role_id, + gameName = f.Game_Name, + idCard = f.Id_Card, + phoneNumber = f.Phone_Number, + idCardName = f.Id_Card_Name + }) + .ToList(); + } + + } + catch (Exception ex) + { + Console.WriteLine($"Error in BuildTree: {ex.Message}"); + throw; + } + return roles; + } + } [ApiController] [Route("[controller]")] @@ -497,8 +639,8 @@ namespace asg_form.Controllers } } - + public class role {