using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Learun.Application.TwoDevelopment.EducationalAdministration;
using Learun.Util;
using Nancy;
using Newtonsoft.Json;
namespace Learun.Application.WebApi.Modules
{
public class StuScoreApi : BaseNoLoginApi
{
public StuScoreApi()
: base("/Learun/adms/EducationalAdministration/StuScore")
{
Get["/scoreListByStuInfo"] = GetScoreListByStuInfo;
}
private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL();
private StuScoreIBLL stuScoreIBLL = new StuScoreBLL();
private CdMajorIBLL cdMajorIBLL = new CdMajorBLL();
private ClassInfoIBLL classInfoIBLL = new ClassInfoBLL();
///
/// 获取成绩列表
///
///
///
private Response GetScoreListByStuInfo(dynamic _)
{
var param = this.GetReq();
ScoreListByStuInfo result = new ScoreListByStuInfo();
var stuInfoBasicEntity = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(param.StuNo);
if (stuInfoBasicEntity != null)
{
result.StuNo = stuInfoBasicEntity.StuNo;
result.StuName = stuInfoBasicEntity.StuName;
result.MajorNo = stuInfoBasicEntity.MajorNo;
result.ClassNo = stuInfoBasicEntity.ClassNo;
if (!string.IsNullOrEmpty(stuInfoBasicEntity.MajorNo))
{
result.MajorName = cdMajorIBLL.GetCdMajorEntityByMajorNo(stuInfoBasicEntity.MajorNo)?.MajorName;
}
if (!string.IsNullOrEmpty(stuInfoBasicEntity.ClassNo))
{
result.ClassName = classInfoIBLL.GetClassInfoEntityByClassNo(stuInfoBasicEntity.ClassNo)?.ClassName;
}
}
var queryJson = JsonConvert.SerializeObject(param);
var data = stuScoreIBLL.GetScoreListByStuInfo(queryJson);
var dataTemp = data.GroupBy(x => new { x.AcademicYearNo, x.Semester }).Select(x => new ScoreList()
{
AcademicYearNo = x.Key.AcademicYearNo,
Semester = x.Key.Semester,
StuScoreEntityList = x.Select(y => new StuScoreEntity()
{
AcademicYearNo = y.AcademicYearNo,
Semester = y.Semester,
LessonSortNo = y.LessonSortNo,
LessonSortName = y.LessonSortName,
LessonNo = y.LessonNo,
LessonName = y.LessonName,
StudyScore = y.StudyScore,
Score = y.Score,
ScoreOfNotPass = y.ScoreOfNotPass,
ScoreOfNotPassTwo = y.ScoreOfNotPassTwo
}).OrderBy(a=>a.LessonSortNo).ThenBy(a=>a.LessonNo).ToList()
}).ToList().OrderByDescending(x=>x.AcademicYearNo).ThenByDescending(x=>x.Semester);
result.ScoreList = dataTemp.ToList();
return Success(result);
}
public class Model
{
///
/// 学年(18-19)
///
public string AcademicYearNo { get; set; }
///
/// 学期(1)
///
public string Semester { get; set; }
///
/// 学号
///
public string StuNo { get; set; }
}
public class ScoreListByStuInfo {
public string StuNo { get; set; }
public string StuName { get; set; }
public string MajorNo { get; set; }
public string MajorName { get; set; }
public string ClassNo { get; set; }
public string ClassName { get; set; }
public List ScoreList { get; set; }
}
public class ScoreList {
public string AcademicYearNo { get; set; }
public string Semester { get; set; }
public List StuScoreEntityList { get; set; }
}
}
}