From c3c6609f60c6770e455fba1c7c1081dfba3b3417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=82=9C=E7=BF=94?= <2307953404@qq.com> Date: Mon, 21 Oct 2024 18:39:25 +0800 Subject: [PATCH] 1 --- asg_form/Controllers/AssignmentController.cs | 69 +++++++++++++++++--- asg_form/Controllers/InviteReferee.cs | 11 ++++ 2 files changed, 71 insertions(+), 9 deletions(-) diff --git a/asg_form/Controllers/AssignmentController.cs b/asg_form/Controllers/AssignmentController.cs index 6bf8c89..5142f13 100644 --- a/asg_form/Controllers/AssignmentController.cs +++ b/asg_form/Controllers/AssignmentController.cs @@ -20,6 +20,9 @@ using Mirai.Net.Utils.Scaffolds; using Flandre.Core.Messaging.Segments; using Flandre.Core.Messaging; using Flandre.Core.Common; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using static asg_form.Controllers.InviteReferee; namespace asg_form.Controllers { @@ -50,7 +53,6 @@ namespace asg_form.Controllers public string TaskName { get; set; } public string TaskDescription { get; set; } public long Money { get; set; } - public string? atuserqq { get; set; } } public class AssignmentController : ControllerBase @@ -79,7 +81,9 @@ namespace asg_form.Controllers int wp = -2; try { - var task = new TaskDB + + var user = await userManager.Users.FirstOrDefaultAsync(u => u.Id == taskinfo.UserId); + var task = new TaskDB { chinaname = taskinfo.Chinaname, createPerson = taskinfo.CreatePerson, @@ -94,14 +98,17 @@ namespace asg_form.Controllers approvalPerson = "未审核" }; sub.T_Task.Add(task); - await sub.SaveChangesAsync(); + wp = -1; - string msg = $" 尊敬的 {taskinfo.Chinaname},{taskinfo.CreatePerson}为您下了一个任务,请及时上后台查看!"; + string msg = $"[ASG管理系统]{taskinfo.Chinaname} 同学,您有新的待办任务,请您登录后台管理系统查看任务详情,并及时完成任务。--{taskinfo.CreatePerson}"; string qqgroup = "925510646"; wp = 0; - var message = new MessageBuilder().Add(new AtSegment(taskinfo.atuserqq)).Text(msg).Build(); + var atuserqq = user.qqnumber; + if(atuserqq == null) return Ok(new { code = 500, message = "服务器错误" }); + var message = new MessageBuilder().Add(new AtSegment(atuserqq)).Text(msg).Build(); await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, qqgroup, null, message, qqgroup); + await sub.SaveChangesAsync(); return Ok(new error_mb { code = 200, message = "新建任务成功" }); } catch (Exception ex) @@ -169,11 +176,12 @@ namespace asg_form.Controllers { var task = sub.T_Task.Find(msg.taskid); long isPassed = long.Parse(msg.status); + var user_done = await userManager.FindByIdAsync(task.userId.ToString()); if(isPassed == 2) { task.status = "2"; //user.Integral += task.money; - var user_done = await userManager.FindByIdAsync(task.userId.ToString()); + user_done.Integral += task.money; } if (isPassed == 3) @@ -192,7 +200,22 @@ namespace asg_form.Controllers code = 200, message = "成功修改" }; - return Ok(result); + string mesg = "未知错误"; + if(task.status == "2") + { + mesg = $"[ASG管理系统]{user_done.officium}{user_done.chinaname}同学,您的任务{task.taskName}完成已被通过。积分奖励已经发放,感谢您的付出!"; + }else if(task.status == "3") + { + mesg = $"[ASG管理系统]{user_done.officium}{user_done.chinaname}同学,您的任务{task.taskName}完成未被通过。请您登录后台管理系统查看详情,并于完成后再次提交。"; + } + string qqgroup = "925510646"; + var atuserqq = user_done.qqnumber; + if (atuserqq == null) return Ok(new { code = 500, message = "服务器错误" }); + var message = new MessageBuilder().Add(new AtSegment(atuserqq)).Text(mesg).Build(); + + await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, qqgroup, null, message, qqgroup); + return Ok(new { code = 200, message = "成功提交修改", result }); + } } @@ -251,7 +274,7 @@ namespace asg_form.Controllers t.status == "0" ? 2 : t.status == "3" ? 1 : t.status == "2" ? 0 : - int.MaxValue) + 10) .Skip((page - 1) * limit) .Take(limit) .ToListAsync(); @@ -265,6 +288,34 @@ namespace asg_form.Controllers } } - + [Route("api/v1/admin/RemindTasks")] + [HttpGet] + [Authorize] + public async Task> RemindTasks([FromQuery] long taskId) + { + try + { + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin")) + { + return Ok(new error_mb { code = 401, message = "无权访问" }); + } + using (var db = new TestDbContext()) + { + var task = db.T_Task.Find(taskId); + if (task == null) return Ok(new { code = 404, message = "任务未找到" }); + var user = await userManager.FindByIdAsync(task.userId.ToString()); + string mesg = $"[ASG管理系统]{user.officium}{user.chinaname}同学,您的{task.taskName}任务尚未完成,请登录后台管理系统查看任务详情。"; + string qqgroup = "925510646"; + var atuserqq = user.qqnumber; + var message = new MessageBuilder().Add(new AtSegment(atuserqq)).Text(mesg).Build(); + await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, qqgroup, null, message, qqgroup); + return Ok(new { code = 200, message = "已通知" }); + } + }catch (Exception ex) + { + return Ok(new { code = 500, message = "服务器错误" ,ex}); + } + + } } } diff --git a/asg_form/Controllers/InviteReferee.cs b/asg_form/Controllers/InviteReferee.cs index d90ffc3..132d285 100644 --- a/asg_form/Controllers/InviteReferee.cs +++ b/asg_form/Controllers/InviteReferee.cs @@ -1,4 +1,7 @@ using AngleSharp.Text; +using Flandre.Core.Common; +using Flandre.Core.Messaging.Segments; +using Flandre.Core.Messaging; using Manganese.Array; using Masuit.Tools; using Microsoft.AspNetCore.Authorization; @@ -89,12 +92,20 @@ namespace asg_form.Controllers sb.Add(invitation); sb.SaveChanges(); var match = sb.team_Games.FirstOrDefault(n => n.id == msg.matchId); + if(match == null) return Ok(new { code = 200, message = "未找到比赛" }); var data = new { userName = user.chinaname, invitedName = invited.chinaname, match }; + string mesg = $"[ASG管理系统]解说{invited.chinaname}同学,您收到一条来自解说{user.chinaname}同学的解说邀约,时间为{match.opentime},请您根据自身时间安排,前往解说端确认是否接受邀请。"; + string qqgroup = "925510646"; + var atuserqq = invited.qqnumber; + if (atuserqq == null) return Ok(new { code = 500, message = "服务器错误" }); + var message = new MessageBuilder().Add(new AtSegment(atuserqq)).Text(mesg).Build(); + + await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, qqgroup, null, message, qqgroup); return Ok(new { code = 200, message = "成功发送邀请" ,data}); } return Ok(new { code = 200, message = "已经在本场次邀请过这个人" });