|
@@ -29,6 +29,7 @@ using Azure.Core;
|
|
|
using static TEAMModelOS.SDK.Services.ActivityStudentService;
|
|
|
using static TEAMModelOS.SDK.GroupListService;
|
|
|
using DocumentFormat.OpenXml.Bibliography;
|
|
|
+using DocumentFormat.OpenXml.Spreadsheet;
|
|
|
|
|
|
namespace TEAMModelOS.Controllers
|
|
|
{
|
|
@@ -940,13 +941,13 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
GroupListService.JoinList(list, t.userid, t.type, t.school, t.year);
|
|
|
string stuKey = !string.IsNullOrWhiteSpace(school) ? $"GroupList:StudentWaitinglist:{school}_{t.userid}" : $"GroupList:StudentWaitinglist:{t.userid}";
|
|
|
- string sutFiled = $"{list.scope}:{list.id}";
|
|
|
- var data = await _azureRedis.GetRedisClient(8).HashGetAsync(stuKey, sutFiled);
|
|
|
+ string stuFiled = $"{list.scope}:{list.id}";
|
|
|
+ var data = await _azureRedis.GetRedisClient(8).HashGetAsync(stuKey, stuFiled);
|
|
|
if (data != default && !data.IsNullOrEmpty)
|
|
|
{
|
|
|
var value = data.ToString().ToObject<GroupWaitingList>();
|
|
|
value.status=0;
|
|
|
- await _azureRedis.GetRedisClient(8).HashSetAsync(stuKey, sutFiled, value.ToJsonString());
|
|
|
+ await _azureRedis.GetRedisClient(8).HashSetAsync(stuKey, stuFiled, value.ToJsonString());
|
|
|
}
|
|
|
}
|
|
|
//未自动加入的,直接拒绝
|
|
@@ -956,13 +957,13 @@ namespace TEAMModelOS.Controllers
|
|
|
foreach (var t in takes)
|
|
|
{
|
|
|
string stuKey = !string.IsNullOrWhiteSpace(school) ? $"GroupList:StudentWaitinglist:{school}_{t.userid}" : $"GroupList:StudentWaitinglist:{t.userid}";
|
|
|
- string sutFiled = $"{list.scope}:{list.id}";
|
|
|
- var data = await _azureRedis.GetRedisClient(8).HashGetAsync(stuKey, sutFiled);
|
|
|
+ string stuFiled = $"{list.scope}:{list.id}";
|
|
|
+ var data = await _azureRedis.GetRedisClient(8).HashGetAsync(stuKey, stuFiled);
|
|
|
if (data != default && !data.IsNullOrEmpty)
|
|
|
{
|
|
|
var value = data.ToString().ToObject<GroupWaitingList>();
|
|
|
value.status=1;
|
|
|
- await _azureRedis.GetRedisClient(8).HashSetAsync(stuKey, sutFiled, value.ToJsonString());
|
|
|
+ await _azureRedis.GetRedisClient(8).HashSetAsync(stuKey, stuFiled, value.ToJsonString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -974,13 +975,13 @@ namespace TEAMModelOS.Controllers
|
|
|
foreach (var t in groupWaitingLists)
|
|
|
{
|
|
|
string stuKey = !string.IsNullOrWhiteSpace(school) ? $"GroupList:StudentWaitinglist:{school}_{t.userid}" : $"GroupList:StudentWaitinglist:{t.userid}";
|
|
|
- string sutFiled = $"{list.scope}:{list.id}";
|
|
|
- var data = await _azureRedis.GetRedisClient(8).HashGetAsync(stuKey, sutFiled);
|
|
|
+ string stuFiled = $"{list.scope}:{list.id}";
|
|
|
+ var data = await _azureRedis.GetRedisClient(8).HashGetAsync(stuKey, stuFiled);
|
|
|
if (data != default && !data.IsNullOrEmpty)
|
|
|
{
|
|
|
var value = data.ToString().ToObject<GroupWaitingList>();
|
|
|
value.status=1;
|
|
|
- await _azureRedis.GetRedisClient(8).HashSetAsync(stuKey, sutFiled, value.ToJsonString());
|
|
|
+ await _azureRedis.GetRedisClient(8).HashSetAsync(stuKey, stuFiled, value.ToJsonString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1152,27 +1153,86 @@ namespace TEAMModelOS.Controllers
|
|
|
/// <param name="json"></param>
|
|
|
/// <returns></returns>
|
|
|
[ProducesDefaultResponseType]
|
|
|
- [AuthToken(Roles = "teacher,admin")]
|
|
|
+ [AuthToken(Roles = "teacher,admin,student")]
|
|
|
[HttpPost("review")]
|
|
|
#if DEBUG
|
|
|
[Authorize(Roles = "IES")]
|
|
|
#endif
|
|
|
public async Task<IActionResult> review(JsonElement request)
|
|
|
{
|
|
|
- (string tmdid, _, _, string school) = HttpContext.GetAuthTokenInfo();
|
|
|
+ (string userId, _, _, string school) = HttpContext.GetAuthTokenInfo();
|
|
|
if (!request.TryGetProperty("grant_type", out JsonElement grant_type)) return BadRequest();
|
|
|
|
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
|
+
|
|
|
switch (true)
|
|
|
{
|
|
|
//待加入列表
|
|
|
case bool when $"{grant_type}".Equals("waitlist", StringComparison.OrdinalIgnoreCase):
|
|
|
-
|
|
|
- break;
|
|
|
+ {
|
|
|
+ if (!request.TryGetProperty("id", out JsonElement _id)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("scope", out JsonElement _scope)) return BadRequest();
|
|
|
+ //string tbname = ($"{_scope}".Equals("school")) ? Constant.School : Constant.Teacher;
|
|
|
+ //string code = $"";
|
|
|
+ string key = $"GroupList:GroupWaitingList:{_scope}:{_id}";
|
|
|
+ var datas = await _azureRedis.GetRedisClient(8).HashGetAllAsync(key);
|
|
|
+ List<GroupWaitingList> waitingLists = new List<GroupWaitingList>();
|
|
|
+ if (datas!=null && datas.Length>0)
|
|
|
+ {
|
|
|
+ foreach (var data in datas)
|
|
|
+ {
|
|
|
+ var group = data.ToString().ToObject<GroupWaitingList>();
|
|
|
+ if (group!=null)
|
|
|
+ {
|
|
|
+ waitingLists.Add(group);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Ok(waitingLists);
|
|
|
+ }
|
|
|
//处理审核
|
|
|
case bool when $"{grant_type}".Equals("process", StringComparison.OrdinalIgnoreCase):
|
|
|
- await _azureRedis.GetRedisClient(8).KeyExpireTimeAsync("");
|
|
|
- break;
|
|
|
+ {
|
|
|
+ if (!request.TryGetProperty("id", out JsonElement _id)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("scope", out JsonElement _scope)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("type", out JsonElement _type)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("userid", out JsonElement _userid)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("pass", out JsonElement _pass)) return BadRequest();
|
|
|
+ string tbname = $"{_scope}".Equals("school") ? Constant.School : Constant.Teacher;
|
|
|
+ string code = $"{_scope}".Equals("school") ?$"GroupList-{school}" : "GroupList";
|
|
|
+ string key = $"GroupList:GroupWaitingList:{_scope}:{_id}";
|
|
|
+ string filed = $"{_type}".Equals("1") ? $"{school}_{_userid}" : _userid.ToString();
|
|
|
+ var data = await _azureRedis.GetRedisClient(8).HashGetAsync(key, filed);
|
|
|
+ if (data != default && !data.IsNullOrEmpty)
|
|
|
+ {
|
|
|
+ var value = data.ToString().ToObject<GroupWaitingList>();
|
|
|
+ if ($"{_pass}".Equals("0"))
|
|
|
+ {
|
|
|
+ //通过
|
|
|
+ value.status=0;
|
|
|
+ await _azureRedis.GetRedisClient(8).HashDeleteAsync(key, filed);
|
|
|
+
|
|
|
+ string stuKey = !string.IsNullOrWhiteSpace(school) ? $"GroupList:StudentWaitinglist:{school}_{userid}" : $"GroupList:StudentWaitinglist:{userid}";
|
|
|
+ string sutFiled = $"{item.scope}:{item.id}";
|
|
|
+ await _azureRedis.GetRedisClient(8).HashSetAsync(stuKey, sutFiled, waitingList.ToJsonString());
|
|
|
+ }
|
|
|
+ else if ($"{_pass}".Equals("1"))
|
|
|
+ {
|
|
|
+ //拒绝
|
|
|
+ value.status=1;
|
|
|
+ await _azureRedis.GetRedisClient(8).HashDeleteAsync(key, filed);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return BadRequest(new { code = 1, msg = "参数错误" });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return Ok(new { code = 0, msg = "未找到申请人" }) ;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
//审核结果,学生端获取到被拒绝的,或者过期的自动删除,未被审核的保存
|
|
|
case bool when $"{grant_type}".Equals("result", StringComparison.OrdinalIgnoreCase):
|
|
|
break;
|