3
This commit is contained in:
parent
f878d849f8
commit
3fd3bf346b
@ -4,7 +4,9 @@ using Microsoft.AspNetCore.Authorization;
|
|||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System;
|
||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace asg_form.Controllers
|
namespace asg_form.Controllers
|
||||||
{
|
{
|
||||||
@ -20,11 +22,16 @@ namespace asg_form.Controllers
|
|||||||
this.userManager = userManager;
|
this.userManager = userManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class idRequest
|
||||||
|
{
|
||||||
|
public int invited_id { get; set; }
|
||||||
|
public int match_id { get; set; }
|
||||||
|
}
|
||||||
public class InviteBg
|
public class InviteBg
|
||||||
{
|
{
|
||||||
public int id { get; set; }
|
public int id { get; set; }
|
||||||
public int user_id { get; set; }
|
public int user_id { get; set; }
|
||||||
public List<(int invitor_id, int match_id)>? my_request { get; set; } = new List<(int, int)>();
|
public string? my_request { get; set; }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -34,6 +41,8 @@ namespace asg_form.Controllers
|
|||||||
public int invitedId { get; set; }
|
public int invitedId { get; set; }
|
||||||
public int matchId { get; set; }
|
public int matchId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[Route("api/v1/Invite")]
|
[Route("api/v1/Invite")]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Authorize]
|
[Authorize]
|
||||||
@ -45,44 +54,65 @@ namespace asg_form.Controllers
|
|||||||
|
|
||||||
using (TestDbContext sb = new TestDbContext())
|
using (TestDbContext sb = new TestDbContext())
|
||||||
{
|
{
|
||||||
|
int wrong_part = -1;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var userInvited = await userManager.Users.FirstOrDefaultAsync(x => x.Id == msg.invitedId);
|
var userInvited = await userManager.Users.FirstOrDefaultAsync(x => x.Id == msg.invitedId);
|
||||||
if (userInvited == null) return Ok(new { code = 404, message = "用户未找到" });
|
if (userInvited == null) return Ok(new { code = 404, message = "用户未找到" });
|
||||||
|
|
||||||
|
|
||||||
var invitationRecord = sb.T_Invitation.FirstOrDefault(c => c.user_id == msg.invitedId);
|
var invitationRecord = sb.T_Invitation.FirstOrDefault(c => c.user_id == msg.invitedId);
|
||||||
|
wrong_part = 0;
|
||||||
|
|
||||||
|
string updatedJson;
|
||||||
|
|
||||||
|
|
||||||
if (invitationRecord != null)
|
if (invitationRecord != null)
|
||||||
{
|
{
|
||||||
if (invitationRecord.my_request.Any(req => req.invitor_id == userId && req.match_id == msg.matchId))
|
List<idRequest> existingPairs = JsonSerializer.Deserialize<List<idRequest>>(json: invitationRecord.my_request);
|
||||||
|
wrong_part = 1;
|
||||||
|
//if (!string.IsNullOrEmpty(invitationRecord.my_request))
|
||||||
|
//{
|
||||||
|
// existingPairs = JsonSerializer.Deserialize<List<idRequest>>(invitationRecord.my_request) ?? new List<idRequest>();
|
||||||
|
//}
|
||||||
|
if (existingPairs.Any(req => req.invited_id == userId && req.match_id == msg.matchId))
|
||||||
{
|
{
|
||||||
return Ok(new { code = 409, message = "邀请已存在" });
|
return Ok(new { code = 409, message = "邀请已存在" });
|
||||||
}
|
}
|
||||||
invitationRecord.my_request.Add((invitor_id: (int)userId, match_id: msg.matchId));
|
wrong_part=2;
|
||||||
await sb.SaveChangesAsync();
|
existingPairs.Add(new idRequest { invited_id=(int)userId,match_id=msg.matchId });
|
||||||
|
updatedJson = JsonSerializer.Serialize(existingPairs);
|
||||||
|
invitationRecord.my_request = updatedJson;
|
||||||
|
//sb.T_Invitation.Update(invitationRecord);
|
||||||
|
wrong_part =3;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
|
wrong_part = 4;
|
||||||
|
updatedJson = "["+JsonSerializer.Serialize(new idRequest { invited_id = (int)userId, match_id = msg.matchId })+"]";
|
||||||
|
wrong_part = 5;
|
||||||
invitationRecord = new InviteBg
|
invitationRecord = new InviteBg
|
||||||
{
|
{
|
||||||
user_id = msg.invitedId,
|
user_id = msg.invitedId,
|
||||||
my_request = new List<(int, int)>()
|
my_request = updatedJson
|
||||||
};
|
};
|
||||||
invitationRecord.my_request.Add((invitor_id: (int)userId, match_id: msg.matchId));
|
|
||||||
sb.T_Invitation.Add(invitationRecord);
|
sb.T_Invitation.Add(invitationRecord);
|
||||||
await sb.SaveChangesAsync();
|
|
||||||
}
|
}
|
||||||
|
wrong_part = 6;
|
||||||
|
await sb.SaveChangesAsync();
|
||||||
var data = new
|
var data = new
|
||||||
{
|
{
|
||||||
invitedId = (int)userId,
|
invitedId = (int)userId,
|
||||||
matchId = msg.matchId,
|
matchId = msg.matchId,
|
||||||
|
jsonId = updatedJson
|
||||||
};
|
};
|
||||||
return Ok(new { code = 200, message = "邀请成功", data });
|
return Ok(new { code = 200, message = "邀请成功", data });
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
return Ok(new { code = 500, message = "服务器错误", details = ex.Message });
|
return Ok(new { code = 500, message = "服务器错误", details = ex.Message ,wrong_part});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user