This commit is contained in:
王炜翔 2024-10-21 18:39:25 +08:00
parent 0c04933135
commit c3c6609f60
2 changed files with 71 additions and 9 deletions

View File

@ -20,6 +20,9 @@ using Mirai.Net.Utils.Scaffolds;
using Flandre.Core.Messaging.Segments; using Flandre.Core.Messaging.Segments;
using Flandre.Core.Messaging; using Flandre.Core.Messaging;
using Flandre.Core.Common; using Flandre.Core.Common;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using static asg_form.Controllers.InviteReferee;
namespace asg_form.Controllers namespace asg_form.Controllers
{ {
@ -50,7 +53,6 @@ namespace asg_form.Controllers
public string TaskName { get; set; } public string TaskName { get; set; }
public string TaskDescription { get; set; } public string TaskDescription { get; set; }
public long Money { get; set; } public long Money { get; set; }
public string? atuserqq { get; set; }
} }
public class AssignmentController : ControllerBase public class AssignmentController : ControllerBase
@ -79,7 +81,9 @@ namespace asg_form.Controllers
int wp = -2; int wp = -2;
try try
{ {
var task = new TaskDB
var user = await userManager.Users.FirstOrDefaultAsync(u => u.Id == taskinfo.UserId);
var task = new TaskDB
{ {
chinaname = taskinfo.Chinaname, chinaname = taskinfo.Chinaname,
createPerson = taskinfo.CreatePerson, createPerson = taskinfo.CreatePerson,
@ -94,14 +98,17 @@ namespace asg_form.Controllers
approvalPerson = "未审核" approvalPerson = "未审核"
}; };
sub.T_Task.Add(task); sub.T_Task.Add(task);
await sub.SaveChangesAsync();
wp = -1; wp = -1;
string msg = $"<ASG机器人通知> 尊敬的 {taskinfo.Chinaname}{taskinfo.CreatePerson}为您下了一个任务,请及时上后台查看!"; string msg = $"ASG管理系统{taskinfo.Chinaname} 同学,您有新的待办任务,请您登录后台管理系统查看任务详情,并及时完成任务。--{taskinfo.CreatePerson}";
string qqgroup = "925510646"; string qqgroup = "925510646";
wp = 0; 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 runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel, qqgroup, null, message, qqgroup);
await sub.SaveChangesAsync();
return Ok(new error_mb { code = 200, message = "新建任务成功" }); return Ok(new error_mb { code = 200, message = "新建任务成功" });
} }
catch (Exception ex) catch (Exception ex)
@ -169,11 +176,12 @@ namespace asg_form.Controllers
{ {
var task = sub.T_Task.Find(msg.taskid); var task = sub.T_Task.Find(msg.taskid);
long isPassed = long.Parse(msg.status); long isPassed = long.Parse(msg.status);
var user_done = await userManager.FindByIdAsync(task.userId.ToString());
if(isPassed == 2) if(isPassed == 2)
{ {
task.status = "2"; task.status = "2";
//user.Integral += task.money; //user.Integral += task.money;
var user_done = await userManager.FindByIdAsync(task.userId.ToString());
user_done.Integral += task.money; user_done.Integral += task.money;
} }
if (isPassed == 3) if (isPassed == 3)
@ -192,7 +200,22 @@ namespace asg_form.Controllers
code = 200, code = 200,
message = "成功修改" 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 == "0" ? 2 :
t.status == "3" ? 1 : t.status == "3" ? 1 :
t.status == "2" ? 0 : t.status == "2" ? 0 :
int.MaxValue) 10)
.Skip((page - 1) * limit) .Skip((page - 1) * limit)
.Take(limit) .Take(limit)
.ToListAsync(); .ToListAsync();
@ -265,6 +288,34 @@ namespace asg_form.Controllers
} }
} }
[Route("api/v1/admin/RemindTasks")]
[HttpGet]
[Authorize]
public async Task<ActionResult<object>> 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});
}
}
} }
} }

View File

@ -1,4 +1,7 @@
using AngleSharp.Text; using AngleSharp.Text;
using Flandre.Core.Common;
using Flandre.Core.Messaging.Segments;
using Flandre.Core.Messaging;
using Manganese.Array; using Manganese.Array;
using Masuit.Tools; using Masuit.Tools;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
@ -89,12 +92,20 @@ namespace asg_form.Controllers
sb.Add(invitation); sb.Add(invitation);
sb.SaveChanges(); sb.SaveChanges();
var match = sb.team_Games.FirstOrDefault(n => n.id == msg.matchId); var match = sb.team_Games.FirstOrDefault(n => n.id == msg.matchId);
if(match == null) return Ok(new { code = 200, message = "未找到比赛" });
var data = new var data = new
{ {
userName = user.chinaname, userName = user.chinaname,
invitedName = invited.chinaname, invitedName = invited.chinaname,
match 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 = "成功发送邀请" ,data});
} }
return Ok(new { code = 200, message = "已经在本场次邀请过这个人" }); return Ok(new { code = 200, message = "已经在本场次邀请过这个人" });