StudentCommonController.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using Microsoft.AspNetCore.Authorization;
  2. using Microsoft.AspNetCore.Http;
  3. using Microsoft.AspNetCore.Mvc;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text.Json;
  8. using System.Threading.Tasks;
  9. using TEAMModelOS.Filter;
  10. using TEAMModelOS.SDK.DI;
  11. using TEAMModelOS.SDK.Extension;
  12. using TEAMModelOS.SDK.Models.Cosmos;
  13. using TEAMModelOS.Services.Common;
  14. namespace TEAMModelOS.Controllers
  15. {
  16. [ProducesResponseType(StatusCodes.Status200OK)]
  17. [ProducesResponseType(StatusCodes.Status400BadRequest)]
  18. //[Authorize(Roles = "IES5")]
  19. [Route("student")]
  20. [ApiController]
  21. public class StudentCommonController :ControllerBase
  22. {
  23. private readonly AzureCosmosFactory _azureCosmos;
  24. private readonly AzureRedisFactory _azureRedis;
  25. public StudentCommonController(AzureCosmosFactory azureCosmos, AzureRedisFactory azureRedis)
  26. {
  27. _azureCosmos = azureCosmos;
  28. _azureRedis = azureRedis;
  29. }
  30. /// <summary>
  31. /// 查询活动所有活动类型的列表,学生端
  32. /// </summary>
  33. /// <param name="request">
  34. ///加入的班级信息 ?classes:[{"classid":"S-C-00001","scope":"school"},{"classid":"P-C-00004","scope":"private"}]
  35. ///活动类型 ?"type":"vote"/"exam"/"homework"/"learn"/"survey"" // vote投票 survey问卷 exam评测 learn学习活动 homework作业活动
  36. ///时间筛选范围开始时间 默认30天之前 ?"stime":1608274766154
  37. ///时间筛选范围结束时间 默认当前时间 ?"etime":1608274766666
  38. ///是否展示列表的 Tips ? "tips":true/false
  39. ///每页大小 ?"count":10/null/Undefined
  40. ///分页Token ?"continuationToken":Undefined/null/"[{\"token\":\"+RID:~omxMAP3ipcSEEwAAAAAAAA==#RT:2#TRC:20#ISV:2#IEO:65551#QCF:1#FPC:AYQTAAAAAAAAiRMAAAAAAAA=\",\"range\":{\"min\":\"\",\"max\":\"FF\"}}]"
  41. /// 当前状态 ?"progress":Undefined/null/"" 表示两种状态都要查询/ "going"/"finish" 表示查询进行中/ 或者已完成 学生端只能查询正在进行或已经结束 going 已发布|finish 已结束
  42. /// </param>
  43. /// <returns></returns>
  44. [ProducesDefaultResponseType]
  45. [HttpPost("stu-find-activity")]
  46. // [AuthToken(Roles = "student")]
  47. public async Task<IActionResult> FindStu(JsonElement request)
  48. {
  49. var (id, name, pic,school) = HttpContext.GetAuthTokenInfo();
  50. (List<ActivityData> datas, string continuationTokenSchool,string continuationTokenTeacher) = await ActivityStudentService.FindAsStu( request, id, school, _azureCosmos,_azureRedis);
  51. return Ok(new { datas, continuationTokenSchool,continuationTokenTeacher });
  52. }
  53. }
  54. }