平安校园
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

66 linhas
2.3 KiB

  1. using MoYu.FriendlyException;
  2. using MoYu.RemoteRequest.Extensions;
  3. using Newtonsoft.Json.Linq;
  4. using SafeCampus.Application.Manager.DeepelephManager;
  5. using SafeCampus.Web.Core.Controllers.Application.Business.Dto;
  6. namespace SafeCampus.Web.Core.Controllers.Application.Business;
  7. /// <summary>
  8. /// 考勤事件管理接口
  9. /// </summary>
  10. [Route("/business/[controller]")]
  11. [ApiDescriptionSettings(ApiGroupConsts.SYSTEM_Business, Order = 94)]
  12. public class AttendanceApi : IDynamicApiController
  13. {
  14. private readonly IDeepelephManager _deepelephManager;
  15. public AttendanceApi(IDeepelephManager deepelephManager)
  16. {
  17. _deepelephManager = deepelephManager;
  18. }
  19. /// <summary>
  20. /// 考勤查询
  21. /// </summary>
  22. /// <param name="search">查询参数</param>
  23. /// <returns></returns>
  24. public async Task<dynamic> GetPassengerFlow(ClassRoomCallSearch search)
  25. {
  26. var appSettings = App.GetOptionsMonitor<AppInfoOptions>();
  27. var str = await $"{appSettings.SXAPIURL}/dfield-api/ecology/attendance/data/query"
  28. .SetBody(new
  29. {
  30. token = _deepelephManager.GetToken(),
  31. tenantCode = appSettings.TenantCode,
  32. poiId = appSettings.PoiId,
  33. startTime = new DateTimeOffset(search.startTime).ToUnixTimeMilliseconds(),
  34. endTime = new DateTimeOffset(search.endTime).ToUnixTimeMilliseconds(),
  35. cameraId = search.cameraId,
  36. pageIndex = search.PageNum,
  37. pageSize = search.PageSize,
  38. })
  39. .SetContentType("application/json")
  40. .PostAsAsync<string>();
  41. var model = JsonConvert.DeserializeObject<JObject>(str);
  42. if (!(bool)model["success"]) throw Oops.Oh(model["message"].ToString());
  43. if (model["data"] != null)
  44. {
  45. return new
  46. {
  47. pageNum = search.PageNum,
  48. pageSize = model["data"]["size"],
  49. total = model["data"]["total"],
  50. pages = model["data"]["pages"],
  51. list = model["data"]["items"]
  52. };
  53. }
  54. return new
  55. {
  56. pageNum = search.PageNum,
  57. pageSize = 0,
  58. total = 0,
  59. pages = 0,
  60. list = new List<string>()
  61. };
  62. }
  63. }