using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using Learun.Application.Base.SystemModule;
using Learun.Application.Organization;
using Learun.Application.TwoDevelopment.EducationalAdministration;
using Learun.Util;
using Nancy;
using static Learun.Application.WebApi.Until.MyEnum;
namespace Learun.Application.WebApi.Modules
{
public class Arrangelesson : BaseNoAuthenticationNoLogin
{
public Arrangelesson()
: base("/arrangelesson/")
{
Get["/gettoken"] = GetToken;
Get["/lessontype"] = GetLessonTypes;
Get["/classtype"] = GetClassType;
Get["/student"] = GetStudents;
Get["/lessonsortdetail"] = GetLessonSortDetails;
Get["/lessonsort"] = GetLessonSorts;
Get["/classlesson"] = GetClassLessons;
Get["/bukaolist"] = GetBuKaoList;
//以下接口需要传值学年学期
Get["/school"] = GetSchools;
Get["/dept"] = GetDepts;
Get["/major"] = GetMajors;
Get["/classroom"] = GetClassrooms;
Get["/lesson"] = GetLessons;
Get["/teacher"] = GetTeachers;
Get["/class"] = GetClasses;
Get["/stu"] = GetStus;
//以下返回全部
Get["/department"] = GetDepartment;
Get["/allteacher"] = GetAllTeachers;
Get["/allstudent"] = GetAllStudents;
Get["/alldept"] = GetAllDept;
Get["/allmajor"] = GetAllMajor;
Get["/alllesson"] = GetAllLesson;
Get["/allclass"] = GetAllClass;
Get["/alluser"] = GetAllUsers;
Get["/allschool"] = GetAllSchools;
Get["/allclasslesson"] = GetAllClassLesson;
Get["/allelelectivelesson"] = GetAllElectiveLesson;
//以下接口不往ArrangeLessonSync里记录已传数据
Get["/schoolNotRecord"] = GetSchoolsNotRecord;
Get["/deptNotRecord"] = GetDeptsNotRecord;
Get["/majorNotRecord"] = GetMajorsNotRecord;
Get["/classroomNotRecord"] = GetClassroomsNotRecord;
Get["/lessonNotRecord"] = GetLessonsNotRecord;
Get["/teacherNotRecord"] = GetTeachersNotRecord;
Get["/classNotRecord"] = GetClassesNotRecord;
Get["/stuNotRecord"] = GetStusNotRecord;
Get["trantest"] = TranTest;
//按条件重置基础数据同步状态
Get["/initbasicdata"] = InitBasicData;
Get["/getnewstudentlist"] = GetNewStudentList;
Post["/newstudentcompare"] = NewStudentCompare;
}
private readonly ArrangeLessonTermIBLL arrangeLessonTermIBLL = new ArrangeLessonTermBLL();
private readonly StuScoreIBLL stuScoreIBLL = new StuScoreBLL();
private DepartmentIBLL departmentIBLL = new DepartmentBLL();
EmpInfoIBLL empInfoIbll = new EmpInfoBLL();
private StuInfoBasicIBLL stuInfoBasicIbll = new StuInfoBasicBLL();
CdDeptIBLL cdDeptIbll = new CdDeptBLL();
CdMajorIBLL cdMajorIbll = new CdMajorBLL();
private LessonInfoIBLL lessonInfoIbll = new LessonInfoBLL();
ClassInfoIBLL classInfoIbll = new ClassInfoBLL();
UserIBLL userIbll = new UserBLL();
private CompanyIBLL companyIbll = new CompanyBLL();
private StuSelectLessonListOfElectiveIBLL stuSelectLessonListOfElectiveIbll =
new StuSelectLessonListOfElectiveBLL();
private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL();
private StuInfoFreshIBLL stuInfoFreshIBLL = new StuInfoFreshBLL();
private Response TranTest(dynamic _)
{
return Success("ok");
}
private Response GetToken(dynamic _)
{
string sid = Request.Query["sysid"];
var sys = EnumAttribute.GetVal(typeof(ThrSys), sid.ToInt());
if (sys.IsEmpty()) return Fail("参数错误!");
var token = DESEncrypt.Encrypt(sys);
return Success(token);
}
private Response GetAllLesson(dynamic _)
{
var result = lessonInfoIbll.GetAllLesson();
return Success(result);
}
private Response GetAllClass(dynamic _)
{
var result = classInfoIbll.GetAllClass();
return Success(result);
}
private Response GetAllTeachers(dynamic _)
{
var result = empInfoIbll.GetAllList().Where(m => m.CheckMark == true).ToList();
return Success(result);
}
private Response GetAllSchools(dynamic _)
{
var result = companyIbll.GetList();
return Success(result);
}
private Response GetAllClassLesson(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetAllClassLesson(AcademicYearNo, Semester);
return Success(result);
}
private Response InitBasicData(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
string BaseTable = Request.Query["BaseTable"];
if (string.IsNullOrEmpty(AcademicYearNo) || string.IsNullOrEmpty(Semester))
{
return Fail("学年学期参数不能为空");
}
if (string.IsNullOrEmpty(BaseTable))
{
return Fail("基础表参数不能为空");
}
ArrangeLessonTermEntity arrangeLessonTermEntity = new ArrangeLessonTermEntity();
arrangeLessonTermEntity.AcademicYearNo = AcademicYearNo;
arrangeLessonTermEntity.Semester = Semester;
arrangeLessonTermEntity.SyncBasicTable = BaseTable;
arrangeLessonTermIBLL.InitAsyncDataByCondition(arrangeLessonTermEntity);
return Success("操作成功");
}
private Response GetAllElectiveLesson(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = stuSelectLessonListOfElectiveIbll.GetAllElectiveLesson(AcademicYearNo, Semester);
return Success(result);
}
private Response GetAllUsers(dynamic _)
{
var result = userIbll.GetAllList().Where(m => !m.F_Account.Contains("System") && m.F_DeleteMark == 0 && m.F_EnabledMark == 1).Select(m => new
{
m.F_UserId,
m.F_CompanyId,
m.F_DepartmentId,
F_Description = m.F_Description == "教师" ? "2" : "3",
ClassNo = stuInfoBasicIbll.GetStuInfoBasicEntityByStuNo(m.F_Account)?.ClassNo,
m.F_RealName,
m.F_Account,
Year = "20" + stuInfoBasicIbll.GetStuInfoBasicEntityByStuNo(m.F_Account)?.Grade,
});
return Success(result);
}
private Response GetAllStudents(dynamic _)
{
var result = stuInfoBasicIbll.GetAllList();
return Success(result);
}
private Response GetDepartment(dynamic _)
{
var result = departmentIBLL.GetAllList();
return Success(result);
}
private Response GetAllDept(dynamic _)
{
var result = cdDeptIbll.GetAllList();
return Success(result);
}
private Response GetAllMajor(dynamic _)
{
var result = cdMajorIbll.GetAllList();
return Success(result);
}
private Response GetLessonTypes(dynamic _)
{
var result = arrangeLessonTermIBLL.GetLessonTypes();
return Success(result);
}
private Response GetDepts(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetDepts(AcademicYearNo, Semester);
return Success(result);
}
private Response GetDeptsNotRecord(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetDeptsNotRecord(AcademicYearNo, Semester);
return Success(result);
}
private Response GetSchools(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetSchools(AcademicYearNo, Semester);
return Success(result);
}
private Response GetSchoolsNotRecord(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetSchoolsNotRecord(AcademicYearNo, Semester);
return Success(result);
}
private Response GetClassLessons(dynamic _)
{
var result = arrangeLessonTermIBLL.GetClassLessons().Select(m => new
{
m.AcademicYearNo,
m.Semester,
m.DeptNo,
m.MajorNo,
m.LessonNo,
m.TeachClassNo,
m.EmpNo,
m.LessonSortNo
});
return Success(result);
}
public Response GetStudents(dynamic _)
{
var result = arrangeLessonTermIBLL.GetStudents();
return Success(result);
}
public Response GetMajors(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetMajors(AcademicYearNo, Semester);
return Success(result);
}
public Response GetMajorsNotRecord(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetMajorsNotRecord(AcademicYearNo, Semester);
return Success(result);
}
public Response GetClassrooms(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetClassrooms(AcademicYearNo, Semester);
return Success(result);
}
public Response GetClassroomsNotRecord(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetClassroomsNotRecord(AcademicYearNo, Semester);
return Success(result);
}
public Response GetClassType(dynamic _)
{
var result = arrangeLessonTermIBLL.GetClassType();
return Success(result);
}
public Response GetLessons(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetLessons(AcademicYearNo, Semester);
return Success(result);
}
public Response GetLessonsNotRecord(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetLessonsNotRecord(AcademicYearNo, Semester);
return Success(result);
}
public Response GetLessonSortDetails(dynamic _)
{
var result = arrangeLessonTermIBLL.GetLessonSortDetails();
return Success(result);
}
public Response GetLessonSorts(dynamic _)
{
var result = arrangeLessonTermIBLL.GetLessonSorts();
return Success(result);
}
public Response GetTeachers(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetTeachers(AcademicYearNo, Semester);
return Success(result);
}
public Response GetTeachersNotRecord(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetTeachersNotRecord(AcademicYearNo, Semester);
return Success(result);
}
public Response GetClasses(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetClasses(AcademicYearNo, Semester);
return Success(result);
}
public Response GetClassesNotRecord(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetClassesNotRecord(AcademicYearNo, Semester);
return Success(result);
}
public Response GetStus(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetStus(AcademicYearNo, Semester);
return Success(result);
}
public Response GetStusNotRecord(dynamic _)
{
string AcademicYearNo = Request.Query["AcademicYearNo"];
string Semester = Request.Query["Semester"];
var result = arrangeLessonTermIBLL.GetStusNotRecord(AcademicYearNo, Semester);
return Success(result);
}
///
/// 补考名单数据
///
///
///
private Response GetBuKaoList(dynamic _)
{
var allList = new List();
var notPassList = stuScoreIBLL.GetStuScoreNotPassList();
allList.AddRange(notPassList);
var notPassTwoList = stuScoreIBLL.GetStuScoreNotPassTwoList();
allList.AddRange(notPassTwoList);
var result = allList.Select(x => new { x.BuKaoFlag, x.AcademicYearNo, x.Semester, x.StuId, x.StuName, x.LessonId, x.LessonName, x.ClassId, x.ClassName, x.EmpId, x.EmpName }).OrderBy(x => x.BuKaoFlag).ThenByDescending(x => x.AcademicYearNo).ThenByDescending(x => x.Semester).ThenBy(x => x.StuId);
return Success(result);
}
///
/// 新生对接人脸平台接口
///
///
///
public Response GetNewStudentList(dynamic _)
{
string webrootpath = ConfigurationManager.AppSettings["webrootpath"];
string grade = Request.Query["Grade"];
if (string.IsNullOrEmpty(grade))
{
return Fail("缺少参数:Grade");
}
string query = "{\"Grade\":\"" + grade + "\"}";
var list = stuInfoFreshIBLL.GetList2(query);
foreach (var item in list)
{
if (!string.IsNullOrEmpty(item.ExamPhoto))
{
var annexesFileEntity = annexesFileIBLL.GetEntityByFolderId(item.ExamPhoto);
if (annexesFileEntity != null && annexesFileEntity.F_FilePath.IndexOf("Resource") != -1)
{
item.ExamPhoto = webrootpath + "/" + annexesFileEntity.F_FilePath.Substring(annexesFileEntity.F_FilePath.IndexOf("Resource"));
}
}
}
return Success(list.Select(m => new
{
m.StuNo,
m.IdentityCardNo,
m.ksh,
m.StuName,
m.GenderNo,
m.ProvinceNo,
m.MajorName,
m.ClassName,
m.ExamPhoto
}));
}
public class StudentCompareEntity
{
///
/// 身份号码
///
public string IdentityCardNo { get; set; }
///
/// 核验结果
///
public int PhotoCheckStatus { get; set; }
///
/// 身份证照片URL
///
public string IdentPhoto { get; set; }
///
/// 现场照片URL
///
public string ScenePhoto { get; set; }
}
///
/// 身份核验结果
///
///
///
public Response NewStudentCompare(dynamic _)
{
StudentCompareEntity studentCompareEntity = this.GetReq();
if (studentCompareEntity==null)
{
return Fail("传入参数有误");
}
if (string.IsNullOrEmpty(studentCompareEntity.IdentityCardNo))
{
return Fail("传入参数:身份证号不能为空");
}
if (string.IsNullOrEmpty(studentCompareEntity.ScenePhoto))
{
return Fail("传入参数:现场照片URL不能为空");
}
if (string.IsNullOrEmpty(studentCompareEntity.IdentPhoto))
{
return Fail("传入参数:身份证照片URL不能为空");
}
stuInfoFreshIBLL.SaveStudentCompare(studentCompareEntity.IdentityCardNo, studentCompareEntity.PhotoCheckStatus, studentCompareEntity.IdentPhoto, studentCompareEntity.ScenePhoto);
return Success("ok");
}
}
}