ExamPatriarchQuestionnaireProgressSync.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using YBEE.EQM.Core;
  2. namespace YBEE.EQM.Application;
  3. /// <summary>
  4. /// 家长问卷填答进度管理服务
  5. /// </summary>
  6. public class ExamPatriarchQuestionnaireProgressSync(IRepository<ExamPatriarchQuestionnaireProgress> rep) : IExamPatriarchQuestionnaireProgressSync, IScoped
  7. {
  8. public async Task Sync()
  9. {
  10. // 目前已废弃
  11. if (DateTime.Now < new DateTime(2023, 1, 1))
  12. {
  13. return;
  14. }
  15. //Log.Information("开始同步学生家长问卷进度");
  16. //Dictionary<string, string> qs = new()
  17. //{
  18. // { "9am", "http://wenjuan.cqcet.edu.cn/question/applice/answer/answerData.action?code=9am&tokenId=ce789fc1044dd7b0d4ef2b42e4916b66" },
  19. // { "yyd", "http://wenjuan.cqcet.edu.cn/question/applice/answer/answerData.action?code=yyd&tokenId=d07e946b0d1d36666f68623a38fd26a7" },
  20. //};
  21. //foreach (var kvp in qs)
  22. //{
  23. // var maxSubmitTime = await rep.DetachedEntities.Where(t => t.QuestionnaireCode.ToLower() == kvp.Key.ToLower()).MaxAsync(t => t.SubmitTime);
  24. // string url = kvp.Value;
  25. // if (maxSubmitTime != null)
  26. // {
  27. // url = $"{url}&beginTime={maxSubmitTime:yyyy-MM-dd HH:mm:ss}";
  28. // }
  29. // var strRes = await url.GetAsStringAsync();
  30. // var res = (QuestionnaireProgressResponse)Clay.Parse(strRes);
  31. // if (res.code != "200")
  32. // {
  33. // Log.Error($"同步{kvp.Key}问卷错误");
  34. // continue;
  35. // }
  36. // var items = res.data.Where(t => maxSubmitTime == null || t.finishedTime > maxSubmitTime);
  37. // var dt = DateTime.Now;
  38. // List<ExamPatriarchQuestionnaireProgress> newItems = [];
  39. // foreach (var item in items)
  40. // {
  41. // newItems.Add(new()
  42. // {
  43. // QuestionnaireCode = kvp.Key,
  44. // ExamStudentId = item.id,
  45. // Mobile = item.phone,
  46. // SubmitTime = item.finishedTime,
  47. // IsCompleted = true,
  48. // CreateTime = dt,
  49. // });
  50. // }
  51. // if (items.Any())
  52. // {
  53. // await rep.InsertNowAsync(newItems);
  54. // }
  55. //}
  56. }
  57. }