using Learun.Util; using System.Data; using Learun.Application.TwoDevelopment.EducationalAdministration; using System.Web.Mvc; using System.Collections.Generic; using System.Linq; namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers { /// /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 /// 创 建:超级管理员 /// 日 期:2023-05-29 14:28 /// 描 述:线上课程 /// public class LessonInfoOfElectiveOnlineController : MvcControllerBase { private LessonInfoOfElectiveOnlineIBLL lessonInfoOfElectiveOnlineIBLL = new LessonInfoOfElectiveOnlineBLL(); private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL(); CdMajorIBLL CdMajorIBLL = new CdMajorBLL(); private StuSelectLessonListOfElectiveOnlineIBLL stuSelectLessonListOfElectiveOnlineIBLL = new StuSelectLessonListOfElectiveOnlineBLL(); #region 视图功能 /// /// 主页面 /// /// [HttpGet] public ActionResult Index() { return View(); } /// /// 表单页 /// /// [HttpGet] public ActionResult Form() { return View(); } /// /// 主页面-设置 /// /// [HttpGet] public ActionResult SetIndex() { return View(); } /// /// 表单页-人数 /// /// [HttpGet] public ActionResult FormNum() { return View(); } /// /// 学子在线-线上课程选课 /// /// [HttpGet] public ActionResult StudentIndex() { var loginuser = LoginUserInfo.Get(); var studentinfo = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(loginuser.account); if (studentinfo != null) { ViewBag.StuMajorNo = CdMajorIBLL.GetCdMajorEntityByMajorNo(studentinfo.MajorNo)?.ID; ViewBag.StuGrade = studentinfo.Grade; } ViewBag.WebApiUrl = Config.GetValue("WebApi"); return View(); } #endregion #region 获取数据 /// /// 获取页面显示列表数据 /// /// 分页参数 /// 查询参数 /// [HttpGet] [AjaxOnly] public ActionResult GetPageList(string pagination, string queryJson) { Pagination paginationobj = pagination.ToObject(); var data = lessonInfoOfElectiveOnlineIBLL.GetPageList(paginationobj, queryJson); var jsonData = new { rows = data, total = paginationobj.total, page = paginationobj.page, records = paginationobj.records }; return Success(jsonData); } /// /// 获取表单数据 /// /// 主键 /// [HttpGet] [AjaxOnly] public ActionResult GetFormData(string keyValue) { var LessonInfoOfElectiveOnlineData = lessonInfoOfElectiveOnlineIBLL.GetLessonInfoOfElectiveOnlineEntity(keyValue); var jsonData = new { LessonInfoOfElectiveOnline = LessonInfoOfElectiveOnlineData, }; return Success(jsonData); } /// /// 获取页面显示列表数据【学子在线-线上课程选课】 /// /// 查询参数 /// [HttpGet] [AjaxOnly] public ActionResult GetPageListOfStudent(string pagination, string queryJson) { Pagination paginationobj = pagination.ToObject(); var data = lessonInfoOfElectiveOnlineIBLL.GetPageListOfStudent(paginationobj, queryJson).OrderByDescending(x => x.AcademicYearNo).ThenByDescending(x => x.Semester).ThenBy(x => x.LessonNo).ThenBy(x => x.EmpNo); var jsonData = new { rows = data, total = paginationobj.total, page = paginationobj.page, records = paginationobj.records }; return Success(jsonData); } #endregion #region 提交数据 /// /// 删除实体数据 /// /// 主键 /// [HttpPost] [AjaxOnly] public ActionResult DeleteForm(string keyValue) { lessonInfoOfElectiveOnlineIBLL.DeleteEntity(keyValue); return Success("删除成功!"); } /// /// 保存实体数据(新增、修改) /// /// 主键 /// 实体 /// [HttpPost] [ValidateAntiForgeryToken] [AjaxOnly] public ActionResult SaveForm(string keyValue, string strEntity) { LessonInfoOfElectiveOnlineEntity entity = strEntity.ToObject(); var model = lessonInfoOfElectiveOnlineIBLL.GetLessonInfoOfElectiveOnlineEntityByLessonNo(entity.LessonNo); if (string.IsNullOrEmpty(keyValue)) { if (model != null) { return Fail("课程编号已存在!"); } } else { if (model != null && model.Id != keyValue) { return Fail("课程编号已存在!"); } } lessonInfoOfElectiveOnlineIBLL.SaveEntity(keyValue, entity); return Success("保存成功!"); } #endregion #region 扩展数据 /// /// 启用/停用实体数据 /// /// 主键 /// [HttpPost] [AjaxOnly] public ActionResult DoLock(string keyValue, string status) { lessonInfoOfElectiveOnlineIBLL.DoLock(keyValue, status); return Success("操作成功!"); } /// /// 设置可选/取消可选 /// /// 主键 /// [HttpPost] [AjaxOnly] public ActionResult SetUpIsAllowSelect(string keyValue, int IsAllowSelect) { lessonInfoOfElectiveOnlineIBLL.SetUpIsAllowSelect(keyValue, IsAllowSelect); return Success("操作成功!"); } /// /// 批量设置管理专业 /// /// [HttpPost] public ActionResult SaveStuNumMax(string keyValue, int StuNumMax) { lessonInfoOfElectiveOnlineIBLL.SaveStuNumMax(keyValue, StuNumMax); return Success("保存成功!"); } /// /// 判断选课是否开始 /// /// public ActionResult IsSelectElectiveLesson() { var entity = lessonInfoOfElectiveOnlineIBLL.GetEADateArrangeEntityAboutElective(); if (entity != null) { return Fail("线上选课已经开始!"); } return Success("线上选课还未开始!"); } /// /// 判断队列结果 /// /// public ActionResult GetApplyResult(string keyvalue) { var loginUserInfo = LoginUserInfo.Get(); //学员信息 var stuInfoBasicEntity = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(loginUserInfo.enCode); if (stuInfoBasicEntity == null) { return Success("当前学员不存在!"); } //课程信息 var olpeEntity = lessonInfoOfElectiveOnlineIBLL.GetLessonInfoOfElectiveOnlineEntity(keyvalue); if (olpeEntity == null) { return Success("当前课程不存在!"); } //当前学员本学期是否有报名课程:每学期一门 //var sslleEntity = stuSelectLessonListOfElectiveOnlineIBLL.GetStuSelectLessonListOfElectiveOnlineEntityByStuNo(loginUserInfo.enCode, ""); //if (sslleEntity != null) //{ // if (sslleEntity.OLPEId != keyvalue && sslleEntity.Status != 3) // { // return Success("已存在报名课程,每学期只能选择一门选修课!如需报名其他课程请先取消。"); // } // if (sslleEntity.Status == 1) // { // return Success("报名审核中,请耐心等待!"); // } // else if (sslleEntity.Status == 2) // { // return Success("已存在报名成功的课程,只能选择一门选修课!"); // } //} //else //{ // //所选课程的报名人数是否已满 // var aa = stuSelectLessonListOfElectiveOnlineIBLL.GetStuSelectLessonListOfElectiveOnlineListByOLPEId(keyvalue); // var aaa = aa.Count(x => x.Status == 1 || x.Status == 2); // if (aaa >= olpeEntity.StuNumMax) // { // return Success("当前课程报名人数已满,请选择其他课程!"); // } //} //每学期两门(几门根据系统配置文件值确定) var sslleEntity = stuSelectLessonListOfElectiveOnlineIBLL.GetStuSelectLessonListOfElectiveOnlineEntityByStuNo(loginUserInfo.enCode, keyvalue); if (sslleEntity != null) { if (sslleEntity.Status == 1) { return Success("当前课程报名审核中,请耐心等待!"); } else if (sslleEntity.Status == 2) { return Success("当前课程已报名成功!"); } } else { //所选课程的报名人数是否已满 var aa = stuSelectLessonListOfElectiveOnlineIBLL.GetStuSelectLessonListOfElectiveOnlineListByOLPEId(keyvalue); var aaa = aa.Count(x => x.Status == 1 || x.Status == 2); if (aaa >= olpeEntity.StuNumMax) { return Success("当前课程报名人数已满,请选择其他课程!"); } //每学期最多两门 var sslleList = stuSelectLessonListOfElectiveOnlineIBLL.GetStuSelectLessonListOfElectiveOnlineListByStuNo(loginUserInfo.enCode); var sslleListOfNow = sslleList.Where(x => x.AcademicYearNo == olpeEntity.AcademicYearNo && x.Semester == olpeEntity.Semester); var sslleListOfNow1 = sslleListOfNow.Where(x => x.Status == 1 || x.Status == 2); //if (sslleListOfNow1.Count() >= 2) if (sslleListOfNow1.Count() >= Config.GetValue("OnlineElectiveLessonApplyMax").ToInt()) { return Success("每学期最多选择" + Config.GetValue("OnlineElectiveLessonApplyMax").ToInt() + "门线上选修课!"); } //相同时间不能报名 if (!string.IsNullOrEmpty(olpeEntity.LessonSection) && sslleListOfNow1.Where(x => x.LessonSection == olpeEntity.LessonSection).Any()) { //相同时间不能报名 return Success("本学期此时间段已有报名的选修课!"); } } return Fail("正在提交,请等待!"); } /// /// 取消报名 /// /// /// public ActionResult CancelApply(string keyvalue) { var loginUserInfo = LoginUserInfo.Get(); //学员信息 var stuInfoBasicEntity = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(loginUserInfo.enCode); if (stuInfoBasicEntity == null) { return Fail("当前学员不存在!"); } //课程信息 var olpeEntity = lessonInfoOfElectiveOnlineIBLL.GetLessonInfoOfElectiveOnlineEntity(keyvalue); if (olpeEntity == null) { return Fail("当前课程不存在!"); } //当前学员是否已经报名该课程 var sslleEntity = stuSelectLessonListOfElectiveOnlineIBLL.GetStuSelectLessonListOfElectiveOnlineEntityByStuNo(loginUserInfo.enCode, keyvalue); if (sslleEntity != null) { if (sslleEntity.Status != 2) { stuSelectLessonListOfElectiveOnlineIBLL.DeleteEntity(sslleEntity.Id); return Success("取消成功"); } else { return Fail("取消失败,当前课程已报名成功!"); } } else { return Fail("当前课程未报名,无需取消!"); } } #endregion } }