杨毅 9832eaebdb Revert "form转移"
This reverts commit 50d25d85cd8a969d8a660f42b4c28110c9d75890.
2024-11-24 00:09:38 +08:00

263 lines
10 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Manganese.Array;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using System.Security.Claims;
using Microsoft.EntityFrameworkCore;
using RestSharp.Extensions;
using System.Threading.Tasks;
using Flandre.Core.Common;
using Flandre.Core.Messaging.Segments;
using Flandre.Core.Messaging;
namespace asg_form.Controllers.Teamregistration
{
public class ComformDB
{
public int? id { get; set; }
public string chinaname { get; set; }
public int user_id { get; set; }
public int sex { get; set; }
public string introduction { get; set; }
public string game_id { get; set; }
public string history_rank { get; set; }
public string contact_number { get; set; }
public string create_time { get; set; }
//public string web_social_name { get; set; }
public string approval_person { get; set; }
public string approval_time { get; set; }
public string status { get; set; }
}
public class userMsg
{
public string chinaname { get; set; }
public int userId { get; set; }
public int sex { get; set; }
public string introduction { get; set; }
public string gameId { get; set; }
public string? historyRank { get; set; }
public string? contactNumber { get; set; }
public int? id { get; set; }
}
public class RegisterController : ControllerBase
{
private readonly RoleManager<Role> roleManager;
private readonly UserManager<User> userManager;
public RegisterController(
RoleManager<Role> roleManager, UserManager<User> userManager)
{
this.roleManager = roleManager;
this.userManager = userManager;
}
[Route("/api/v1/userRegister")]
[HttpPost]
[Authorize]
public async Task<ActionResult<object>> UserRgst([FromBody] userMsg msg)
{
using (TestDbContext sub = new TestDbContext())
{
if (msg.userId == null)
{
return Ok(new error_mb { code = 400, message = "用户ID为空" });
}
if (sub.T_Comform.Find(msg.userId) != null)
{
return Ok(new error_mb { code = 400, message = "你已经提交过表单了,请不要重复提交" });
}
var dateString = DateTime.Now.ToString();
if (msg.id == null)
{
var rgst = new ComformDB
{
chinaname = msg.chinaname,
user_id = msg.userId,
sex = msg.sex,
introduction = msg.introduction,
game_id = msg.gameId,
history_rank = msg.historyRank,
contact_number = msg.contactNumber,
create_time = dateString,
status = "1",
approval_person = "未审核",
approval_time = "未审核"
};
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);
return Ok(new error_mb { code = 200, message = "提交成功" });
}
var query = sub.T_Comform.Find(msg.id);
if (query == null)
{
return Ok(new error_mb { code = 404, message = "记录未找到" });
}
query.chinaname = msg.chinaname;
query.user_id = msg.userId;
query.sex = msg.sex;
query.introduction = msg.introduction;
query.game_id = msg.gameId;
query.history_rank = msg.historyRank;
query.contact_number = msg.contactNumber;
query.create_time = dateString;
query.status = "1";
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);
return Ok(new error_mb { code = 200, message = "成功修改" });
}
}
public class approveStatus
{
public string status { get; set; }
public int id { get; set; }
public string approvalPerson { get; set; }
}
[Route("/api/v1/admin/approval")]
[HttpPost]
[Authorize]
public async Task<ActionResult<object>> Approve([FromBody] approveStatus msg)
{
if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin")&& !this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
{
return Ok(new error_mb { code = 401, message = "无权访问" });
}
var dateString = DateTime.Now;
using (TestDbContext sub = new TestDbContext())
{
var form = sub.T_Comform.Find(msg.id);
if (form == null)
{
return Ok(new error_mb { code = 400, message = "不存在这个报名" });
}
form.status = msg.status;
form.approval_time = dateString.ToString();
form.approval_person = msg.approvalPerson;
var result = new
{
code = 200,
message = "",
chinaName = form.chinaname,
userId = form.user_id,
sex = form.sex,
introduction = form.introduction,
gameId = form.game_id,
historyRank = form.history_rank,
createTime = form.create_time,
approvalPerson = form.approval_person,
approvalTime = form.approval_time,
status = form.status
};
await sub.SaveChangesAsync();
return Ok(new { code = 200, message = "成功修改", data = result });
}
}
[Route("/api/v1/admin/findRegister")]
[HttpGet]
[Authorize]
public async Task<ActionResult<object>> GetLists([FromQuery] string chinaname = null, string status = null, short page = 1, short limit = 10)
{
if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin")&& !this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
{
return Ok(new error_mb { code = 401, message = "无权访问" });
}
using (TestDbContext sub = new TestDbContext())
{
var query = sub.T_Comform.AsQueryable();
if (!string.IsNullOrEmpty(chinaname))
{
query = query.Where(n => n.chinaname.Contains(chinaname));
}
if (!string.IsNullOrEmpty(status))
{
query = query.Where(n => n.status == status);
}
var TotalRecords = await query.CountAsync();
var Tasks = await query
.OrderBy(a => a.status)
.Skip((page - 1) * limit)
.Take(limit)
.ToListAsync();
var result = new
{
rows = Tasks,
total = TotalRecords,
};
return Ok(result);
}
}
[Route("/api/v1/userMsg")]
[HttpGet]
[Authorize]
public async Task<ActionResult<object>> Mymsgs([FromQuery] int userid)
{
using (TestDbContext sub = new TestDbContext())
{
var query = sub.T_Comform.AsQueryable()
.Where(n => n.user_id == userid)
.OrderByDescending(a => a.user_id);
var result = await query.ToListAsync();
return Ok(new { code=200,data = result });
}
}
[Route("api/v1/admin/refuseCom")]
[HttpGet]
[Authorize]
public async Task<ActionResult<string>> refuse_com(int userId)
{
if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
{
using (TestDbContext testDb = new TestDbContext())
{
try
{
var query = testDb.T_Comform.FirstOrDefault(c => c.user_id == userId);
var user = await userManager.Users.FirstOrDefaultAsync(u => u.Id == userId);
if (query == null ) return Ok(new { code = 404, message = "用户1未找到" });
if (user == null) return Ok(new { code = 404, message = "用户2未找到" });
query.status = "4";
user.officium = null;
await testDb.SaveChangesAsync();
await userManager.UpdateAsync(user);
return Ok(new { code = 200, message = "修改成功" });
}catch (Exception ex)
{
return Ok(new { code = 500, message = "服务器错误" });
}
}
}
return Ok(new error_mb { code = 401, message = "没有管理员,无法设置" });
}
}
}