asg_form
This commit is contained in:
parent
9c12fcb612
commit
0476e13241
@ -19,6 +19,8 @@ using NPOI.OpenXmlFormats.Spreadsheet;
|
||||
using Mirai.Net.Data.Shared;
|
||||
using MimeKit;
|
||||
using MailKit.Net.Smtp;
|
||||
using Mirai.Net.Utils.Scaffolds;
|
||||
using Mirai.Net.Sessions.Http.Managers;
|
||||
|
||||
namespace asg_form.Controllers
|
||||
{
|
||||
@ -89,32 +91,6 @@ namespace asg_form.Controllers
|
||||
|
||||
}
|
||||
|
||||
[Route("api/v1/admin/qianyi")]
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<object>> qianyi()
|
||||
{
|
||||
using (TestDbContext db = new TestDbContext())
|
||||
{
|
||||
await db.Database.MigrateAsync();
|
||||
db.RemoveRange(delform);
|
||||
await db.SaveChangesAsync();
|
||||
}
|
||||
return Ok();
|
||||
}
|
||||
[Route("api/v1/admin/deljunk")]
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<object>> deljunk()
|
||||
{
|
||||
using(TestDbContext db=new TestDbContext())
|
||||
{
|
||||
db.Database.SetCommandTimeout(2000);
|
||||
var delform = db.Forms.Include(a => a.role).Where(a => a.team_name.Length >= 25);
|
||||
db.RemoveRange(delform);
|
||||
await db.SaveChangesAsync();
|
||||
}
|
||||
return Ok();
|
||||
}
|
||||
|
||||
|
||||
[Route("api/v1/admin/Privacy_Policy")]
|
||||
[HttpPost]
|
||||
@ -135,6 +111,42 @@ namespace asg_form.Controllers
|
||||
}
|
||||
|
||||
|
||||
[Route("api/v1/admin/post_qqbotmsg")]
|
||||
[HttpPost]
|
||||
[Authorize]
|
||||
|
||||
public async Task<ActionResult<object>> post_qqbotmsg([FromBody] string msg,string qqgrope,bool is_atall)
|
||||
{
|
||||
|
||||
if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
||||
{
|
||||
return BadRequest(new error_mb { code = 400, message = "无权访问" });
|
||||
}
|
||||
if(is_atall){
|
||||
var messageChain = new MessageChainBuilder()
|
||||
.AtAll()
|
||||
.Plain(msg)
|
||||
.Build();
|
||||
await MessageManager.SendGroupMessageAsync(qqgrope, messageChain);
|
||||
|
||||
}
|
||||
else{
|
||||
var messageChain = new MessageChainBuilder()
|
||||
.Plain(msg)
|
||||
.Build();
|
||||
await MessageManager.SendGroupMessageAsync(qqgrope, messageChain);
|
||||
|
||||
}
|
||||
|
||||
|
||||
return Ok("成功!");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Route("api/v1/admin/allschedle_c")]
|
||||
[HttpGet]
|
||||
[Authorize]
|
||||
@ -192,6 +204,95 @@ namespace asg_form.Controllers
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取所有用户-支持分页(整合api:allperson_c)
|
||||
/// </summary>
|
||||
/// <param name="page"></param>
|
||||
/// <param name="page_long"></param>
|
||||
/// <param name="keyword"></param>
|
||||
/// <returns></returns>
|
||||
[Route("api/v2/admin/allperson")]
|
||||
[HttpGet]
|
||||
[Authorize]
|
||||
public async Task<ActionResult<post_user_v2>> getalladmin_v2(string? keyword, short page, short page_long = 10)
|
||||
{
|
||||
if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
||||
{
|
||||
List<User> users = new List<User>();
|
||||
post_user_v2 user = new post_user_v2();
|
||||
if (keyword == null)
|
||||
{
|
||||
int a = userManager.Users.Count();
|
||||
user.Count = a;
|
||||
int b = page_long * page;
|
||||
if (page_long * page > a)
|
||||
{
|
||||
b = a;
|
||||
}
|
||||
users = userManager.Users.Skip(page_long * page - page_long).Take(page_long).ToList();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
int a = userManager.Users.Where(a => a.UserName.IndexOf(keyword) >= 0 || a.chinaname.IndexOf(keyword) >= 0 || a.Email.IndexOf(keyword) >= 0).Count();
|
||||
user.Count = a;
|
||||
int b = page_long * page;
|
||||
if (page_long * page > a)
|
||||
{
|
||||
b = a;
|
||||
}
|
||||
users = userManager.Users.Where(a => a.UserName.IndexOf(keyword) >= 0 || a.chinaname.IndexOf(keyword) >= 0 || a.Email.IndexOf(keyword) >= 0).Skip(page_long * page - page_long).Take(page_long).ToList();
|
||||
|
||||
}
|
||||
|
||||
|
||||
foreach (var auser in users)
|
||||
{
|
||||
bool isadmin = await userManager.IsInRoleAsync(auser, "admin");
|
||||
var roles = await userManager.GetRolesAsync(auser);
|
||||
try
|
||||
{
|
||||
// user.user.Add(new post_user { id = auser.Id, chinaname = auser.chinaname, name = auser.UserName, isadmin = isadmin, email = auser.Email, Roles = (List<string>)roles, officium = auser.officium, Integral = auser.Integral });
|
||||
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return user;
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest(new error_mb { code = 400, message = "无权访问" });
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class post_user_v2
|
||||
{
|
||||
|
||||
|
||||
public int Count { get; set; }
|
||||
public List<post_user> user { get; set; } = new List<post_user>();
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置管理员,需要superadmin
|
||||
/// </summary>
|
||||
@ -207,7 +308,8 @@ namespace asg_form.Controllers
|
||||
var ouser = await userManager.FindByIdAsync(userid);
|
||||
|
||||
await userManager.AddToRoleAsync(ouser, "admin");
|
||||
return "成功!";
|
||||
|
||||
return Ok(new { message = "用户成功设置为管理员" });
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -525,16 +627,29 @@ namespace asg_form.Controllers
|
||||
/// <returns></returns>
|
||||
[Route("api/v1/admin/form/")]
|
||||
[HttpDelete]
|
||||
public async Task<ActionResult<string>> delform(string formname)
|
||||
public async Task<ActionResult<string>> delform(int formid)
|
||||
{
|
||||
|
||||
if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
||||
{
|
||||
TestDbContext ctx = new TestDbContext();
|
||||
var form = await ctx.Forms.Include(a=>a.role).FirstOrDefaultAsync(a => a.team_name == formname);
|
||||
var form = await ctx.Forms.Include(a => a.role).FirstOrDefaultAsync(a => a.Id == formid);
|
||||
var users = await userManager.Users.Include(a => a.haveform).Where(a => a.haveform == form).ToListAsync();
|
||||
try
|
||||
{
|
||||
foreach (var user in users)
|
||||
{
|
||||
user.haveform = null;
|
||||
await userManager.UpdateAsync(user);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
ctx.Forms.Remove(form); ;
|
||||
await ctx.SaveChangesAsync();
|
||||
logger.Warn($"管理员删除了表单{formname},参赛选手:{string.Join(',',form.role.Select(a=>a.role_name))}");
|
||||
logger.Warn($"管理员删除了表单{formid},参赛选手:{string.Join(',', form.role.Select(a => a.role_name))}");
|
||||
return Ok("删除成功!");
|
||||
}
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user