You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

143 lines
5.3 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using Learun.Application.TwoDevelopment.EducationalAdministration;
  6. using Learun.Util;
  7. using Nancy;
  8. using Newtonsoft.Json;
  9. namespace Learun.Application.WebApi.Modules
  10. {
  11. public class StuScoreApi : BaseNoLoginApi
  12. {
  13. public StuScoreApi()
  14. : base("/Learun/adms/EducationalAdministration/StuScore")
  15. {
  16. Get["/scoreListByStuInfo"] = GetScoreListByStuInfo;
  17. }
  18. private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL();
  19. private StuScoreIBLL stuScoreIBLL = new StuScoreBLL();
  20. private CdMajorIBLL cdMajorIBLL = new CdMajorBLL();
  21. private ClassInfoIBLL classInfoIBLL = new ClassInfoBLL();
  22. /// <summary>
  23. /// 全院学生成绩查看-打印成绩单
  24. /// </summary>
  25. /// <param name="_"></param>
  26. /// <returns></returns>
  27. private Response GetScoreListByStuInfo(dynamic _)
  28. {
  29. var param = this.GetReq<Model>();
  30. ScoreListByStuInfo result = new ScoreListByStuInfo();
  31. var stuInfoBasicEntity = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(param.StuNo);
  32. if (stuInfoBasicEntity != null)
  33. {
  34. result.StuNo = stuInfoBasicEntity.StuNo;
  35. result.StuName = stuInfoBasicEntity.StuName;
  36. result.MajorNo = stuInfoBasicEntity.MajorNo;
  37. result.ClassNo = stuInfoBasicEntity.ClassNo;
  38. if (!string.IsNullOrEmpty(stuInfoBasicEntity.MajorNo))
  39. {
  40. result.MajorName = cdMajorIBLL.GetCdMajorEntityByMajorNo(stuInfoBasicEntity.MajorNo)?.MajorName;
  41. }
  42. if (!string.IsNullOrEmpty(stuInfoBasicEntity.ClassNo))
  43. {
  44. result.ClassName = classInfoIBLL.GetClassInfoEntityByClassNo(stuInfoBasicEntity.ClassNo)?.ClassName;
  45. }
  46. }
  47. var queryJson = JsonConvert.SerializeObject(param);
  48. var data = stuScoreIBLL.GetScoreListByStuInfo(queryJson);
  49. var dataTemp = data.GroupBy(x => new { x.AcademicYearNo, x.Semester }).Select(x => new ScoreList()
  50. {
  51. AcademicYearNo = x.Key.AcademicYearNo,
  52. Semester = x.Key.Semester,
  53. StuScoreEntityList = x.Select(y => new StuScoreModel()
  54. {
  55. AcademicYearNo = y.AcademicYearNo,
  56. Semester = y.Semester,
  57. LessonSortNo = y.LessonSortNo,
  58. LessonSortName = y.LessonSortName,
  59. LessonNo = y.LessonNo,
  60. LessonName = y.LessonName,
  61. StudyScore = y.StudyScore,
  62. Score = y.Score,
  63. ScoreOfNotPass = y.ScoreOfNotPass,
  64. ScoreOfNotPassTwo = y.ScoreOfNotPassTwo
  65. }).OrderBy(a=>a.LessonSortNo).ThenBy(a=>a.LessonNo).ToList()
  66. }).ToList().OrderByDescending(x=>x.AcademicYearNo).ThenByDescending(x=>x.Semester);
  67. result.ScoreList = dataTemp.ToList();
  68. return Success(result);
  69. }
  70. public class Model
  71. {
  72. /// <summary>
  73. /// 学年(18-19)
  74. /// </summary>
  75. public string AcademicYearNo { get; set; }
  76. /// <summary>
  77. /// 学期(1)
  78. /// </summary>
  79. public string Semester { get; set; }
  80. /// <summary>
  81. /// 学号
  82. /// </summary>
  83. public string StuNo { get; set; }
  84. }
  85. public class ScoreListByStuInfo {
  86. public string StuNo { get; set; }
  87. public string StuName { get; set; }
  88. public string MajorNo { get; set; }
  89. public string MajorName { get; set; }
  90. public string ClassNo { get; set; }
  91. public string ClassName { get; set; }
  92. public List<ScoreList> ScoreList { get; set; }
  93. }
  94. public class ScoreList {
  95. public string AcademicYearNo { get; set; }
  96. public string Semester { get; set; }
  97. public List<StuScoreModel> StuScoreEntityList { get; set; }
  98. }
  99. public class StuScoreModel {
  100. public string AcademicYearNo { get; set; }
  101. public string Semester { get; set; }
  102. /// <summary>
  103. /// 课程类别码
  104. /// </summary>
  105. public string LessonSortNo { get; set; }
  106. /// <summary>
  107. /// 课程类别名称
  108. /// </summary>
  109. public string LessonSortName { get; set; }
  110. public string LessonNo { get; set; }
  111. public string LessonName { get; set; }
  112. /// <summary>
  113. /// 学分
  114. /// </summary>
  115. public decimal? StudyScore { get; set; }
  116. /// <summary>
  117. /// 成绩
  118. /// </summary>
  119. public decimal? Score { get; set; }
  120. /// <summary>
  121. /// 第一次补考成绩
  122. /// </summary>
  123. public string ScoreOfNotPass { get; set; }
  124. /// <summary>
  125. /// 第二次补考成绩
  126. /// </summary>
  127. public string ScoreOfNotPassTwo { get; set; }
  128. }
  129. }
  130. }