diff --git a/asg_form/Controllers/AssignmentController.cs b/asg_form/Controllers/AssignmentController.cs new file mode 100644 index 0000000..263a5d5 --- /dev/null +++ b/asg_form/Controllers/AssignmentController.cs @@ -0,0 +1,125 @@ +using AngleSharp.Text; +using asg_form.Controllers.Hubs; +using asg_form.Controllers.Store; +using Manganese.Array; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.SignalR; +using NPOI.HPSF; +using System.Security.Claims; + +namespace asg_form.Controllers +{ + public class TaskDB + { + public long id { get; set; } + public string userId { get; set; } + public string taskName { get; set; } + public string taskDescription { get; set; } + public string status { get; set; } + public long money { get; set; } + } + public class TaskCreate + { + public string UserId { get; set; } + public string TaskName { get; set; } + public string TaskDescription { get; set; } + public long Money { get; set; } + } + public class AssignmentController : ControllerBase + { + private readonly RoleManager roleManager; + private readonly UserManager userManager; + public AssignmentController( + RoleManager roleManager, UserManager userManager) + { + this.roleManager = roleManager; + this.userManager = userManager; + } + [Route("api/v1/admin/Task")] + [HttpPost] + [Authorize] + public async Task> PubTask([FromBody] TaskCreate taskinfo) + { + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + return Ok(new error_mb { code = 401, message = "无权访问" }); + } + using (TestDbContext sub = new TestDbContext()) + { + var task = new TaskDB + { + userId = taskinfo.UserId, + taskName = taskinfo.TaskName, + taskDescription = taskinfo.TaskDescription, + money = taskinfo.Money, + status = "0", + }; + sub.T_Task.Add(task); + await sub.SaveChangesAsync(); + return Ok(taskinfo); + } + } + + + [Route("api/v1/admin/Task")] + [HttpDelete] + [Authorize] + public async Task> DelTask([FromQuery]long id) + { + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + return Ok(new error_mb { code = 401, message = "无权访问" }); + } + using (TestDbContext sub = new TestDbContext()) + { + sub.T_Task.Remove(sub.T_Task.Find(id)); + await sub.SaveChangesAsync(); + return Ok("ok"); + } + } + public class Click_done + { + public string userId { get; set; } + public long id { get; set; } + } + + [Route("api/v1/Task")] + [HttpGet] + [Authorize] + public async Task> CekTask([FromBody] Click_done msg) + { + string userId = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value; + var user = await userManager.FindByIdAsync(userId); + + using (TestDbContext sub = new TestDbContext()) + { + var task = sub.T_Task.Find(msg.id); + task.status = "1"; + await sub.SaveChangesAsync(); + return Ok(task); + } + } + + [Route("api/v1/admin/Task/Done")] + [HttpGet] + [Authorize] + public async Task> FinishTask([FromBody] Click_done msg) + { + string userId = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value; + var user = await userManager.FindByIdAsync(userId); + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + return Ok(new error_mb { code = 401, message = "无权访问" }); + } + using (TestDbContext sub = new TestDbContext()) + { + var task = sub.T_Task.Find(msg.id); + task.status = "1"; + await sub.SaveChangesAsync(); + return Ok(task); + } + } + } +} diff --git a/asg_form/Controllers/Dbset.cs b/asg_form/Controllers/Dbset.cs index ddeed1e..5407572 100644 --- a/asg_form/Controllers/Dbset.cs +++ b/asg_form/Controllers/Dbset.cs @@ -204,7 +204,7 @@ namespace asg_form.Controllers public DbSet T_Store { get; set; } public DbSet T_Storeinfo { get; set; } public DbSet T_config { get; set; } - + public DbSet T_Task { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {