update timeselect message sending
continuous-integration/drone/push Build is passing Details

master
ceruIean 2021-11-22 19:45:19 +08:00
parent 98d51d1417
commit b427969501
8 changed files with 75 additions and 3 deletions

View File

@ -79,4 +79,48 @@ namespace _2021_backend.Controllers
//return Ok(ApiResponse.Success("报名结束了"));
}
}
[ApiController]
[Route("api/postsession")]
public class PostsessionController : Controller
{
private readonly BackendContext Context;
public PostsessionController(BackendContext context)
{
Context = context;
}
[HttpPost]
public async Task<IActionResult> Post([FromQuery] string stuid, [FromQuery] string selection)
{
Student stu = Context.Students.FirstOrDefault(r => r.Stuid == stuid);
if (stu == null)
{
return StatusCode(400, ApiResponse.Error("INVALID_STUDENT_GUID"));
}
List<SessionDto> timelist;
try
{
timelist = JsonSerializer.Deserialize<List<SessionDto>>(selection);
}
catch (Exception ex)
{
Console.WriteLine(ex);
return StatusCode(400, ApiResponse.Error("MALFORMED_DATA"));
};
//get the selected session guids;
List<Guid> targetSessions;
var sessions = Context.Sessions.ToList();
targetSessions = sessions.FindAll((Session s) =>
{
return timelist.Any(it => it.Day == s.Day && it.BeginTime == s.BeginTime);
}).Select(it => it.Guid).ToList();
stu.Timelist = targetSessions;
stu.Status = status.;
await Context.SaveChangesAsync();
return Ok(ApiResponse.Success("success"));
//return Ok(ApiResponse.Success("报名结束了"));
}
}
}

View File

@ -14,6 +14,7 @@
<input type="submit" value="拉取5天内的回复短信" class="btn btn-primary" asp-page-handler="Pull" />
<input type="submit" value="发送报名确认短信" class="btn btn-primary" asp-page-handler="Sign" />
<input type="submit" value="发送确认短信" class="btn btn-primary" asp-page-handler="ResultAccept" />
<input type="submit" value="发送时间选择短信" class="btn btn-primary" asp-page-handler="TimeSelect" />
<input type="submit" value="发送拒绝短信" class="btn btn-primary" asp-page-handler="ResultReject" />
</form>
<br />

View File

@ -114,6 +114,20 @@ namespace _2021_backend.Pages.Message
return Construct(PageId);
}
public async Task<IActionResult> OnPostTimeSelectAsync(int PageId)
{
var stu = Context.Students.ToList();
foreach (var e in stu)
{
if (e.Status != status.)
{
await Utils.TencentSMS.Send(Context, SMSType.TimeSelect, e, Context.Users.Find(Guid.Parse(User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value)).Name);
}
}
Context.SaveChanges();
return Construct(PageId);
}
public async Task<IActionResult> OnPostResultAccpetAsync(int PageId)
{
var stu = Context.Students.ToList();

View File

@ -34,6 +34,7 @@
</select>
</div>
<button type="submit" class="btn btn-outline-primary m-2">搜索</button>
<input type="submit" value="finalize" class="btn btn-primary" asp-page-handler="Finalize" />
</form>
<table class="table">
<thead>

View File

@ -93,5 +93,17 @@ namespace _2021_backend.Pages.Students
if (pageId == null) pageId = 0;
return Construct((int)pageId, errInfo);
}
public async Task<IActionResult> OnPostFinalizeAsync(int? pageId, string errInfo)
{
if (pageId == null) pageId = 0;
foreach(var s in Context.Students)
{
if (s.RegisterTime.CompareTo(new DateTime(2021, 11, 11)) < 0) s.Status = status.;
}
Context.SaveChanges();
return Construct((int)pageId, errInfo);
}
}
}

View File

@ -131,7 +131,7 @@ namespace _2021_backend.Utils
case SMSType.TimeSelect:
sms.Type = SMSType.TimeSelect;
req.TemplateId = SMSID_timeSelect;
req.TemplateParamSet = new string[] { stu.Name, stu.Stuid };
req.TemplateParamSet = new string[] { stu.Name };
break;
case SMSType.TimeSet:
sms.Type = SMSType.TimeSet;

View File

@ -14,7 +14,7 @@
"SMS_ID_REJECT": "1089595",
"SMS_ID_SUBMITTED": "1163892",
"SMS_ID_TIMESET": "1131089",
"SMS_ID_TIMESELECT": "1131090",
"SMS_ID_TIMESELECT": "1210823",
"TENCENT_ID": "AKIDYv5JGwKSJtCE0VjhOpyqSotgDTSaYIsF",
"TENCENT_KEY": "mPzSimdGenpdCWcT5TcWBboreAQQ9bmh",
"SMSBOT_NAME": "msgbot",

View File

@ -1 +1 @@
build
张峻瑜 6 180 27-09:00-204 27-13:00-204 27-15:30-204 28-13:00-204 28-15:30-204 28-18:30-204