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
}
}