|
- 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
- {
- /// <summary>
- /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
- /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
- /// 创 建:超级管理员
- /// 日 期:2023-05-29 14:28
- /// 描 述:线上课程
- /// </summary>
- public class LessonInfoOfElectiveOnlineController : MvcControllerBase
- {
- private LessonInfoOfElectiveOnlineIBLL lessonInfoOfElectiveOnlineIBLL = new LessonInfoOfElectiveOnlineBLL();
- private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL();
- CdMajorIBLL CdMajorIBLL = new CdMajorBLL();
- private StuSelectLessonListOfElectiveOnlineIBLL stuSelectLessonListOfElectiveOnlineIBLL = new StuSelectLessonListOfElectiveOnlineBLL();
-
-
- #region 视图功能
-
- /// <summary>
- /// 主页面
- /// <summary>
- /// <returns></returns>
- [HttpGet]
- public ActionResult Index()
- {
- return View();
- }
- /// <summary>
- /// 表单页
- /// <summary>
- /// <returns></returns>
- [HttpGet]
- public ActionResult Form()
- {
- return View();
- }
-
- /// <summary>
- /// 主页面-设置
- /// <summary>
- /// <returns></returns>
- [HttpGet]
- public ActionResult SetIndex()
- {
- return View();
- }
- /// <summary>
- /// 表单页-人数
- /// <summary>
- /// <returns></returns>
- [HttpGet]
- public ActionResult FormNum()
- {
- return View();
- }
- /// <summary>
- /// 学子在线-线上课程选课
- /// <summary>
- /// <returns></returns>
- [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 获取数据
-
- /// <summary>
- /// 获取页面显示列表数据
- /// </summary>
- /// <param name="pagination">分页参数</param>
- /// <param name="queryJson">查询参数</param>
- /// <returns></returns>
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetPageList(string pagination, string queryJson)
- {
- Pagination paginationobj = pagination.ToObject<Pagination>();
- var data = lessonInfoOfElectiveOnlineIBLL.GetPageList(paginationobj, queryJson);
- var jsonData = new
- {
- rows = data,
- total = paginationobj.total,
- page = paginationobj.page,
- records = paginationobj.records
- };
- return Success(jsonData);
- }
- /// <summary>
- /// 获取表单数据
- /// </summary>
- /// <param name="keyValue">主键</param>
- /// <returns></returns>
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetFormData(string keyValue)
- {
- var LessonInfoOfElectiveOnlineData = lessonInfoOfElectiveOnlineIBLL.GetLessonInfoOfElectiveOnlineEntity(keyValue);
- var jsonData = new
- {
- LessonInfoOfElectiveOnline = LessonInfoOfElectiveOnlineData,
- };
- return Success(jsonData);
- }
- /// <summary>
- /// 获取页面显示列表数据【学子在线-线上课程选课】
- /// <summary>
- /// <param name="queryJson">查询参数</param>
- /// <returns></returns>
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetPageListOfStudent(string pagination, string queryJson)
- {
- Pagination paginationobj = pagination.ToObject<Pagination>();
- 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 提交数据
-
- /// <summary>
- /// 删除实体数据
- /// </summary>
- /// <param name="keyValue">主键</param>
- /// <returns></returns>
- [HttpPost]
- [AjaxOnly]
- public ActionResult DeleteForm(string keyValue)
- {
- lessonInfoOfElectiveOnlineIBLL.DeleteEntity(keyValue);
- return Success("删除成功!");
- }
- /// <summary>
- /// 保存实体数据(新增、修改)
- /// </summary>
- /// <param name="keyValue">主键</param>
- /// <param name="strEntity">实体</param>
- /// <returns></returns>
- [HttpPost]
- [ValidateAntiForgeryToken]
- [AjaxOnly]
- public ActionResult SaveForm(string keyValue, string strEntity)
- {
- LessonInfoOfElectiveOnlineEntity entity = strEntity.ToObject<LessonInfoOfElectiveOnlineEntity>();
-
- 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 扩展数据
-
- /// <summary>
- /// 启用/停用实体数据
- /// </summary>
- /// <param name="keyValue">主键</param>
- /// <returns></returns>
- [HttpPost]
- [AjaxOnly]
- public ActionResult DoLock(string keyValue, string status)
- {
- lessonInfoOfElectiveOnlineIBLL.DoLock(keyValue, status);
- return Success("操作成功!");
- }
-
- /// <summary>
- /// 设置可选/取消可选
- /// </summary>
- /// <param name="keyValue">主键</param>
- /// <returns></returns>
- [HttpPost]
- [AjaxOnly]
- public ActionResult SetUpIsAllowSelect(string keyValue, int IsAllowSelect)
- {
- lessonInfoOfElectiveOnlineIBLL.SetUpIsAllowSelect(keyValue, IsAllowSelect);
- return Success("操作成功!");
- }
-
- /// <summary>
- /// 批量设置管理专业
- /// <summary>
- /// <returns></returns>
- [HttpPost]
- public ActionResult SaveStuNumMax(string keyValue, int StuNumMax)
- {
- lessonInfoOfElectiveOnlineIBLL.SaveStuNumMax(keyValue, StuNumMax);
- return Success("保存成功!");
- }
-
- /// <summary>
- /// 判断选课是否开始
- /// </summary>
- /// <returns></returns>
- public ActionResult IsSelectElectiveLesson()
- {
- var entity = lessonInfoOfElectiveOnlineIBLL.GetEADateArrangeEntityAboutElective();
- if (entity != null)
- {
- return Fail("线上选课已经开始!");
- }
-
- return Success("线上选课还未开始!");
- }
-
- /// <summary>
- /// 判断队列结果
- /// </summary>
- /// <returns></returns>
- 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("正在提交,请等待!");
- }
-
- /// <summary>
- /// 取消报名
- /// </summary>
- /// <param name="keyvalue"></param>
- /// <returns></returns>
- 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
-
- }
- }
|