using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Threading.Tasks;
using System.Web;
using Learun.Application.Organization;
using Learun.Application.TwoDevelopment.EducationalAdministration;
using Learun.Util;
using Nancy;
namespace Learun.Application.WebApi.Modules
{
public class TimeTable : BaseApi
{
public TimeTable()
: base("/learun/adms/timetable")
{
Get["/list"] = GetList;
Get["/StuList"] = GetStuInfo;
Get["/StuLessonInfo"] = GetStuLessonInfo;
}
private ArrangeLessonTermIBLL arrangeLessonTermIBLL = new ArrangeLessonTermBLL();
private ArrangeLessonTermOfElectiveIBLL arrangeLessonTermOfElectiveIBLL = new ArrangeLessonTermOfElectiveBLL();
private StuAttendanceLeaveIBLL stuAttendanceLeaveIBLL = new StuAttendanceLeaveBLL();
private StuAttendanceIBLL stuAttendanceIBLL = new StuAttendanceBLL();
///
/// 课程表【教师功能、学生功能】
///
///
///
public Response GetList(dynamic _)
{
var param = this.GetReqData();
var timeTableList = new List();
//课程表
var data = arrangeLessonTermIBLL.GetTimeTable(userInfo.account, userInfo.Description, param.StartDate, param.EndDate);
timeTableList.AddRange(data);
//选修课课程表
var dataOfElective = arrangeLessonTermOfElectiveIBLL.GetTimeTable(userInfo.account, userInfo.Description, param.StartDate, param.EndDate);
timeTableList.AddRange(dataOfElective);
var leaveList = stuAttendanceLeaveIBLL.GetList();
foreach (var item in timeTableList)
{
item.LeaveType = leaveList.Any(c => c.LessonNo == item.LessonNo && c.StuNo == userInfo.account && c.LessonDate == item.LessonDate && c.LessonTime == item.LessonTime) ? "1" : "0";
item.IsCheck = leaveList.FirstOrDefault(c => c.LessonNo == item.LessonNo && c.StuNo == userInfo.account && c.LessonDate == item.LessonDate && c.LessonTime == item.LessonTime)?.IsCheck;
}
return Success(timeTableList);
}
///
/// 获取本堂课的学生出勤信息
///
///
///
public Response GetStuInfo(dynamic _)
{
var param = this.GetReqData();
var result = stuAttendanceIBLL.GetStuInfo(param.AcademicYear, param.Semester, param.LessonNo, param.EmpNo, param.ClassRoomNo, param.LessonTime, param.LessonDate, param.TeachClassNo);
var date = Convert.ToDateTime(param.LessonDate).ToString("yyyy-MM-dd");
var time = NumberToChinese(param.LessonTime.Substring(1, 1));
if (result.Count > 0)
{
var shouldArrive = result.Count;
var turnTo = result.Count(a => a.AttendOrNo == "是");
var classRoomName = param.ClassroomName;
var className = result.FirstOrDefault().ClassName;
var lessonName = result.FirstOrDefault().LessonName;
return Success(new { result, date, time, shouldArrive, turnTo, classRoomName, className, lessonName });
}
else
{
return Success(new { result, date, time });
}
}
public Response GetStuLessonInfo(dynamic _)
{
var param = this.GetReqData();
var lessonInfos = stuAttendanceIBLL.GetStuLessonInfo(userInfo.account,param.StartDate,param.EndDate);
var empNos = lessonInfos.Select(a => a.EmpNo).ToList();
var lessonTerms = arrangeLessonTermIBLL.GetListByEmpNo(empNos);
var list = lessonInfos.Select(a => new
{
a.LessonName,
LessonDate = Convert.ToDateTime(a.LessonDate).ToString("yyyy-MM-dd"),
Teacher = lessonTerms.FirstOrDefault(b => b.EmpNo == a.EmpNo)?.EmpName,
a.LessonTime,
a.EmpNo,
a.ClassRoomName,
a.Sort
}).ToList();
var weeks = list.GroupBy(a => a.LessonDate).ToList();
List