111
This commit is contained in:
parent
9f8d579e8e
commit
8bac48a736
@ -44,8 +44,10 @@ namespace asg_form.Controllers
|
|||||||
|
|
||||||
public class InviteForUsers
|
public class InviteForUsers
|
||||||
{
|
{
|
||||||
|
public int id { get; set; }
|
||||||
public string invitedChinaname { get; set; }
|
public string invitedChinaname { get; set; }
|
||||||
public schedule.team_game match { get; set; }
|
public schedule.team_game match { get; set; }
|
||||||
|
public int status { get; set; }
|
||||||
|
|
||||||
public string? create_time { get; set; }
|
public string? create_time { get; set; }
|
||||||
}
|
}
|
||||||
@ -56,16 +58,23 @@ namespace asg_form.Controllers
|
|||||||
public int matchId { get; set; }
|
public int matchId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool outOfTime(DateTime d)
|
||||||
|
{
|
||||||
|
DateTime currentTime = DateTime.Now;
|
||||||
|
|
||||||
|
if (currentTime > d.AddDays(1)) return true; else return false;
|
||||||
|
}
|
||||||
|
|
||||||
[Route("api/v1/Invite")]
|
[Route("api/v1/Invite")]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Authorize]
|
[Authorize]
|
||||||
public async Task<ActionResult<object>> Toinvite([FromBody] inv msg)
|
public async Task<ActionResult<object>> Toinvite([FromBody] inv msg)
|
||||||
{
|
{
|
||||||
|
|
||||||
string Invitorid = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value;
|
string Invitorid = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value;
|
||||||
var user = await userManager.FindByIdAsync(Invitorid);
|
var user = await userManager.FindByIdAsync(Invitorid);
|
||||||
long userId = user.Id;
|
long userId = user.Id;
|
||||||
|
if (user.officium != "Commentator" || !this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin")) return Ok(new error_mb { code = 401, message = "您不是解说无法完成邀请" });
|
||||||
using (TestDbContext sb = new TestDbContext())
|
using (TestDbContext sb = new TestDbContext())
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -122,7 +131,7 @@ namespace asg_form.Controllers
|
|||||||
{
|
{
|
||||||
var query = sub.T_Invitation
|
var query = sub.T_Invitation
|
||||||
.AsQueryable();
|
.AsQueryable();
|
||||||
var TotalRecords = await query.CountAsync();
|
var TotalRecords = 0;
|
||||||
var invitationRecordId = query
|
var invitationRecordId = query
|
||||||
.Where(x => x.user_id == userId)
|
.Where(x => x.user_id == userId)
|
||||||
.OrderByDescending(t => t.status)
|
.OrderByDescending(t => t.status)
|
||||||
@ -134,14 +143,25 @@ namespace asg_form.Controllers
|
|||||||
List<InviteForUsers> invitationRecord = new List<InviteForUsers>();
|
List<InviteForUsers> invitationRecord = new List<InviteForUsers>();
|
||||||
foreach (var record in invitationRecordId)
|
foreach (var record in invitationRecordId)
|
||||||
{
|
{
|
||||||
|
|
||||||
var invited = await userManager.Users.FirstOrDefaultAsync(u => u.Id == record.invited_id);
|
var invited = await userManager.Users.FirstOrDefaultAsync(u => u.Id == record.invited_id);
|
||||||
|
var theGame = sub.team_Games.FirstOrDefault(i => i.id == record.match_id);
|
||||||
|
if (outOfTime(theGame.opentime))
|
||||||
|
{
|
||||||
|
sub.team_Games.Remove(theGame);
|
||||||
|
sub.SaveChanges();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
var addData = new InviteForUsers
|
var addData = new InviteForUsers
|
||||||
{
|
{
|
||||||
|
id = record.id,
|
||||||
invitedChinaname = invited.chinaname,
|
invitedChinaname = invited.chinaname,
|
||||||
match = sub.team_Games.FirstOrDefault(i => i.id == record.match_id),
|
match = theGame,
|
||||||
create_time = record.create_time,
|
create_time = record.create_time,
|
||||||
|
status = record.status,
|
||||||
};
|
};
|
||||||
invitationRecord.Add(addData);
|
invitationRecord.Add(addData);
|
||||||
|
TotalRecords++;
|
||||||
}
|
}
|
||||||
var data = new
|
var data = new
|
||||||
{
|
{
|
||||||
@ -159,6 +179,7 @@ namespace asg_form.Controllers
|
|||||||
|
|
||||||
public class BeInviteForUsers
|
public class BeInviteForUsers
|
||||||
{
|
{
|
||||||
|
public int id { get; set; }
|
||||||
public string invitorChinaname { get; set; }
|
public string invitorChinaname { get; set; }
|
||||||
public schedule.team_game match { get; set; }
|
public schedule.team_game match { get; set; }
|
||||||
|
|
||||||
@ -180,7 +201,7 @@ namespace asg_form.Controllers
|
|||||||
{
|
{
|
||||||
var query = sub.T_Invitation
|
var query = sub.T_Invitation
|
||||||
.AsQueryable();
|
.AsQueryable();
|
||||||
var TotalRecords = await query.CountAsync();
|
var TotalRecords = 0;
|
||||||
var invitationRecordId = query
|
var invitationRecordId = query
|
||||||
.Where(x => x.invited_id == userId && x.status==0)
|
.Where(x => x.invited_id == userId && x.status==0)
|
||||||
.OrderBy(t => t.create_time)
|
.OrderBy(t => t.create_time)
|
||||||
@ -189,15 +210,24 @@ namespace asg_form.Controllers
|
|||||||
.ToList();
|
.ToList();
|
||||||
List<BeInviteForUsers> invitationRecord = new List<BeInviteForUsers>();
|
List<BeInviteForUsers> invitationRecord = new List<BeInviteForUsers>();
|
||||||
foreach (var record in invitationRecordId)
|
foreach (var record in invitationRecordId)
|
||||||
{
|
{
|
||||||
var invitor = await userManager.Users.FirstOrDefaultAsync(u => u.Id == record.user_id);
|
var invitor = await userManager.Users.FirstOrDefaultAsync(u => u.Id == record.user_id);
|
||||||
|
var theGame = sub.team_Games.FirstOrDefault(i => i.id == record.match_id);
|
||||||
|
if (outOfTime(theGame.opentime))
|
||||||
|
{
|
||||||
|
sub.team_Games.Remove(theGame);
|
||||||
|
sub.SaveChanges();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
var addData = new BeInviteForUsers
|
var addData = new BeInviteForUsers
|
||||||
{
|
{
|
||||||
|
id = record.id,
|
||||||
invitorChinaname = invitor.chinaname,
|
invitorChinaname = invitor.chinaname,
|
||||||
match = sub.team_Games.FirstOrDefault(i => i.id == record.match_id),
|
match = theGame,
|
||||||
create_time = record.create_time,
|
create_time = record.create_time,
|
||||||
};
|
};
|
||||||
invitationRecord.Add(addData);
|
invitationRecord.Add(addData);
|
||||||
|
TotalRecords++;
|
||||||
}
|
}
|
||||||
var data = new
|
var data = new
|
||||||
{
|
{
|
||||||
@ -250,5 +280,30 @@ namespace asg_form.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Route("api/v1/delRecord")]
|
||||||
|
[HttpDelete]
|
||||||
|
[Authorize]
|
||||||
|
public async Task<ActionResult<object>> DelAssign([FromQuery] int id)
|
||||||
|
{
|
||||||
|
using (TestDbContext sub = new TestDbContext())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string Myid = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value;
|
||||||
|
var user = await userManager.FindByIdAsync(Myid);
|
||||||
|
long userId = user.Id;
|
||||||
|
var query = sub.T_Invitation.Where(n => n.id == id).FirstOrDefault();
|
||||||
|
if(query.user_id != (int)userId) return Ok(new error_mb { code = 200, message = "非法操作!" });
|
||||||
|
sub.T_Invitation.Remove(query);
|
||||||
|
await sub.SaveChangesAsync();
|
||||||
|
return Ok(new error_mb { code = 200, message = "成功删除" });
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return Ok(new { code = 500, message = "服务器错误", details = ex });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user