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;
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,6 +81,8 @@ namespace asg_form.Controllers
int wp = -2;
try
{
var user = await userManager.Users.FirstOrDefaultAsync(u => u.Id == taskinfo.UserId);
var task = new TaskDB
{
chinaname = taskinfo.Chinaname,
@ -94,14 +98,17 @@ namespace asg_form.Controllers
approvalPerson = "未审核"
};
sub.T_Task.Add(task);
await sub.SaveChangesAsync();
wp = -1;
string msg = $"<ASG机器人通知> 尊敬的 {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<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 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 = "已经在本场次邀请过这个人" });