using System; using System.Collections.Generic; using Edu.Cache.User; using Edu.Common.API; using Edu.Common.Enum; using Edu.Common.Enum.Course; using Edu.Common.Plugin; using Edu.Model.ViewModel.Course; using Edu.Module.Course; using Edu.WebApi.Filter; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Mvc; using System.Linq; using Newtonsoft.Json.Linq; namespace Edu.WebApi.Controllers.Course { [Route("api/[controller]/[action]")] [ApiExceptionFilter] [ApiController] [EnableCors("AllowCors")] public class CourseController : BaseController { /// /// 课程分类处理类 /// private readonly CourseCategoryModule categoryModule = new CourseCategoryModule(); /// /// 课程处理类对象 /// private readonly CourseModule courseModule = AOP.AOPHelper.CreateAOPObject(); #region 课程分类管理 /// /// 获取课程分类分页列表 /// /// [HttpPost] public ApiResult GetCourseCategoryPageList() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = new RB_Course_Category_ViewModel() { CateName = base.ParmJObj.GetStringValue("CateName"), }; query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = categoryModule.GetCourseCategoryPageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); foreach (var item in list) { if (item.CreateBy > 0) { item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? ""; } if (item.UpdateBy > 0) { item.UpdateByName = UserReidsCache.GetUserLoginInfo(item.UpdateBy)?.AccountName ?? ""; } } pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 获取课程分类列表 /// /// [HttpPost] public ApiResult GetCourseCategoryList() { var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = categoryModule.GetCourseCategoryListModule(query); return ApiResult.Success(data: list); } /// /// 获取课程分类树形列表 /// /// [HttpPost] public ApiResult GetChildCategoryList() { var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var cateIds = base.ParmJObj.GetStringValue("cateIds"); var list = categoryModule.GetChildCategoryStringModule(cateIds); return ApiResult.Success(data: list); } /// /// 获取课程分类树形列表 /// /// [HttpPost] public ApiResult GetCourseCategoryTree() { var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = categoryModule.GetCourseCategoryTreeListModule(query); return ApiResult.Success(data: list); } /// /// 添加修改课程分类 /// /// [HttpPost] public ApiResult SetCourseCategory() { var extModel = new RB_Course_Category_ViewModel() { CateId = base.ParmJObj.GetInt("CateId"), CateName = base.ParmJObj.GetStringValue("CateName"), ParentId = base.ParmJObj.GetInt("ParentId"), SortNum = base.ParmJObj.GetInt("SortNum"), Status = (DateStateEnum)base.ParmJObj.GetInt("Status") }; extModel.CreateTime = DateTime.Now; extModel.CreateBy = UserInfo.Id; extModel.UpdateBy = UserInfo.Id; extModel.UpdateTime = DateTime.Now; extModel.Group_Id = this.UserInfo.Group_Id; extModel.School_Id = this.UserInfo.School_Id; bool flag = categoryModule.SetCourseCategoryModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取课程分类 /// /// [HttpPost] public ApiResult GetCourseCategory() { var CateId = base.ParmJObj.GetInt("CateId", 0); var extModel = categoryModule.GetCourseCategoryModule(CateId); return ApiResult.Success(data: extModel); } /// /// 删除课程分类 /// /// [HttpPost] public ApiResult RemoveCourseCategory() { var CateId = base.ParmJObj.GetInt("CateId", 0); var flag = categoryModule.RemoveCourseCategoryModule(CateId); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 课程管理 [HttpPost] public ApiResult GetAllCourseChapterCount() { int groupId = base.UserInfo.Group_Id; int courseId = base.ParmJObj.GetInt("CourseId", 0); var list = courseModule.GetAllCourseChapterCountModule(groupId, courseId); return ApiResult.Success(data: list.Where(x=>x.UnitCount>0).Select(x => new { x.CourseId, x.CourseName, x.UnitCount, x.ChapterCount })); } /// /// 获取课程分页列表 /// /// [HttpPost] public ApiResult GetCoursePageList() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = new RB_Course_ViewModel() { CourseName = base.ParmJObj.GetStringValue("CourseName"), QCateIds = base.ParmJObj.GetStringValue("QCateIds"), Status = (DateStateEnum)base.ParmJObj.GetInt("Status"), IsQPrice = base.ParmJObj.GetInt("IsQPrice"), IsQTeacher = base.ParmJObj.GetInt("IsQTeacher"), }; query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseModule.GetCoursePageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); foreach (var item in list) { if (item.CreateBy > 0) { item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? ""; } if (item.UpdateBy > 0) { item.UpdateByName = UserReidsCache.GetUserLoginInfo(item.UpdateBy)?.AccountName ?? ""; } } pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 获取课程列表 /// /// [HttpPost] public ApiResult GetCourseList() { var query = new RB_Course_ViewModel() { IsQPrice = base.ParmJObj.GetInt("IsQPrice", 0), }; query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseModule.GetCourseListModule(query); return ApiResult.Success(data: list.Select(qitem => new { qitem.CourseId, qitem.CourseName, qitem.CateId, qitem.CateName, qitem.CoverImg, qitem.TeacherIdList, qitem.OriginalPrice, qitem.SellPrice, qitem.SalePlatList, qitem.SalePlatArr, qitem.ClassHours, PreferentialList = qitem?.PreferentialList?.Select(sItem => new { sItem.Id, sItem.PriceDiscountType, sItem.PriceDiscountTypeStr, sItem.CourseId, sItem.SaleCommissionType, sItem.SaleCommissionMoney, sItem.B2BCommissionType, sItem.B2BCommissionMoney, sItem.BuyNum, sItem.SendNum, sItem.PriceType, sItem.PriceMoney }) })); } /// /// 添加修改课程 /// /// [HttpPost] public ApiResult SetCourse() { var extModel = new RB_Course_ViewModel() { CourseId = base.ParmJObj.GetInt("CourseId"), CoverImg = base.ParmJObj.GetStringValue("CoverImg"), CourseName = base.ParmJObj.GetStringValue("CourseName"), CourseIntro = base.ParmJObj.GetStringValue("CourseIntro"), CateId = base.ParmJObj.GetInt("CateId"), Teacher_Ids = base.ParmJObj.GetStringValue("Teacher_Ids"), CourseFeature = base.ParmJObj.GetStringValue("CourseFeature"), IsOpenStepPrice = base.ParmJObj.GetInt("IsOpenStepPrice"), IsRenew = base.ParmJObj.GetInt("IsRenew"), RenewOgPrice = base.ParmJObj.GetDecimal("RenewOgPrice"), RenewSlPrice = base.ParmJObj.GetDecimal("RenewSlPrice"), Saleplat = base.ParmJObj.GetStringValue("Saleplat"), IsKCourse = base.ParmJObj.GetInt("IsKCourse"), ClassHours = base.ParmJObj.GetDecimal("ClassHours") }; extModel.CreateTime = DateTime.Now; extModel.CreateBy = base.UserInfo.Id; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; extModel.Group_Id = this.UserInfo.Group_Id; extModel.School_Id = this.UserInfo.School_Id; bool flag = courseModule.SetCourseModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取课程 /// /// [HttpPost] public ApiResult GetCourse() { var CourseId = base.ParmJObj.GetInt("CourseId", 0); var IsGetDiscount = base.ParmJObj.GetInt("IsGetDiscount", 0); var extModel = courseModule.GetCourseModule(CourseId, IsGetDiscount: IsGetDiscount); return ApiResult.Success(data: extModel); } /// /// 获取销售端口 /// /// [HttpPost] public ApiResult GetSaleplatList() { var list = Common.Plugin.EnumHelper.EnumToList(typeof(SaleplatEnum)); return ApiResult.Success(data: list); } /// /// 修改课程状态 /// /// [HttpPost] public ApiResult RemoveCourse() { var CourseId = base.ParmJObj.GetInt("CourseId", 0); int Status = base.ParmJObj.GetInt("Status", 1); var flag = courseModule.RemoveCourseModule(CourseId, Status,out string message); return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message); } /// /// 是否显示章节编号 /// /// [HttpPost] public ApiResult SetCourseIsShowChapterNo() { var CourseId = base.ParmJObj.GetInt("CourseId", 0); int IsShowChapterNo = base.ParmJObj.GetInt("IsShowChapterNo", 0); var flag = courseModule.SetCourseIsShowChapterNoModule(CourseId, IsShowChapterNo); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 设置课程教师 /// /// [HttpPost] public ApiResult SetCourseTeacher() { var CourseId = base.ParmJObj.GetInt("CourseId", 0); int Teacher_Id = base.ParmJObj.GetInt("Teacher_Id", 0); var flag = courseModule.SetCourseTeacherModule(CourseId, Teacher_Id); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 教案管理 /// /// 获取课程教案分页列表 /// /// [HttpPost] public ApiResult GetCourseTeachPlanPage() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseModule.GetCourseTeachPlanPageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); foreach (var item in list) { if (item.CreateBy > 0) { item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? ""; } if (item.UpdateBy > 0) { item.UpdateByName = UserReidsCache.GetUserLoginInfo(item.UpdateBy)?.AccountName ?? ""; } } pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 添加修改课程教案 /// /// [HttpPost] public ApiResult SetTeachPlan() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); extModel.CreateTime = DateTime.Now; extModel.CreateBy = base.UserInfo.Id; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; extModel.Group_Id = this.UserInfo.Group_Id; extModel.School_Id = this.UserInfo.School_Id; bool flag = courseModule.SetTeachPlanModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取课程教案 /// /// [HttpPost] public ApiResult GetTeachPlan() { var PlanId = base.ParmJObj.GetInt("PlanId", 0); var extModel = courseModule.GetTeachPlanModule(PlanId); return ApiResult.Success(data: extModel); } /// /// 删除课程教案 /// /// [HttpPost] public ApiResult RemoveTeachPlan() { var PlanId = base.ParmJObj.GetInt("PlanId", 0); var flag = courseModule.RemoveTeachPlanModule(PlanId); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 课程章节管理 [HttpPost] public ApiResult SetImportCourseChapter() { var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; query.CreateBy = base.UserInfo.Id; var q=courseModule.SetImportChapterModule(query); if (q!=null && q.Count > 0) { return ApiResult.Success(); } return ApiResult.Failed(); } /// /// 添加修改课程章节 /// /// [HttpPost] public ApiResult SetChapter() { var extModel = new RB_Course_Chapter_ViewModel() { ChapterId = base.ParmJObj.GetInt("ChapterId"), CourseId = base.ParmJObj.GetInt("CourseId"), ChapterNo = base.ParmJObj.GetStringValue("ChapterNo"), ChapterName = base.ParmJObj.GetStringValue("ChapterName"), ChapterContent = base.ParmJObj.GetStringValue("ChapterContent"), ParentId=base.ParmJObj.GetInt("ParentId"), OpenStatus=base.ParmJObj.GetInt("OpenStatus"), Progress=base.ParmJObj.GetInt("Progress"), StudyHours=base.ParmJObj.GetInt("StudyHours"), StudyMinutes=base.ParmJObj.GetInt("StudyMinutes"), Objectives=base.ParmJObj.GetStringValue("Objectives"), Requirement=base.ParmJObj.GetStringValue("Requirement"), CourseRate=(CourseRateEnum)base.ParmJObj.GetInt("CourseRate"), //CurrentHours=base.ParmJObj.GetInt("CurrentHours"), }; extModel.Status = DateStateEnum.Normal; extModel.CreateTime = DateTime.Now; extModel.CreateBy = base.UserInfo.Id; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; extModel.Group_Id = this.UserInfo.Group_Id; extModel.School_Id = this.UserInfo.School_Id; bool flag = courseModule.SetChapterModule(extModel); return flag ? ApiResult.Success(data:extModel) : ApiResult.Failed(); } /// /// 获取课程章节列表 /// /// [HttpPost] public ApiResult GetChapterList() { var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseModule.GetChapterListModule(query); return ApiResult.Success(data: list); } /// /// 计算当前课时数 /// /// [HttpPost] public ApiResult BatchUpdateChapterCurrentHours() { var CourseId = base.ParmJObj.GetInt("CourseId", 0); var list = courseModule.BatchUpdateChapterCurrentHoursModule(CourseId); return ApiResult.Success(data: list.Select(qitem => new { qitem.ChapterId, qitem.ChapterNo, qitem.ChapterName, qitem.CurrentHours, })); } /// /// 获取章节树形列表 /// /// [HttpPost] public ApiResult GetChapterTree() { var query = new RB_Course_Chapter_ViewModel() { CourseId = base.ParmJObj.GetInt("CourseId"), }; if (query.CourseId <= 0) { return ApiResult.ParamIsNull(message: "请传递课程编号!"); } query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseModule.GetChapterTreeListModule(query); return ApiResult.Success(data: list); } /// /// 获取课程等级列表 /// /// [HttpPost] public ApiResult GetCourseRateEnumList() { var list = Common.Plugin.EnumHelper.EnumToList(typeof(CourseRateEnum)); return ApiResult.Success(data: list); } /// /// 删除课程章节 /// /// [HttpPost] public ApiResult RemoveChapter() { var ChapterId = base.ParmJObj.GetInt("ChapterId", 0); var flag = courseModule.RemoveChapterModule(ChapterId); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 删除课程章节 /// /// [HttpPost] public ApiResult BatchRemoveChapter() { var extModel = new RB_Course_Chapter_ViewModel() { CourseId=base.ParmJObj.GetInt("CourseId"), ChapterNo=base.ParmJObj.GetStringValue("ChapterNo"), ChapterId=base.ParmJObj.GetInt("ChapterId"), }; bool flag = courseModule.BatchRemoveChapterModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 批量更新课程等级 /// /// [HttpPost] public ApiResult BatchSetChapterRate() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); bool flag = courseModule.BatchUpdateChapterRateModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取课程章节详情 /// /// [HttpPost] public ApiResult GetChapter() { var ChapterId = base.ParmJObj.GetInt("ChapterId", 0); var extModel = courseModule.GetChapterModule(ChapterId); return ApiResult.Success(data: extModel); } /// /// 设置章节开发状态 /// /// [HttpPost] public ApiResult SetChapterOpenStatus() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); bool flag = courseModule.SetChapterOpenStatusModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 设置章节名称 /// /// [HttpPost] public ApiResult SetChapterName() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); bool flag = courseModule.SetChapterNameModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 批量设置章节编号 /// /// [HttpPost] [AllowRepeatAttribute] public ApiResult SetBatchChapterNo() { var extModel = Common.Plugin.JsonHelper.DeserializeObject>(RequestParm.Msg.ToString()); bool flag = courseModule.SetBatchChapterNoModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 设置章节开发状态 /// /// [HttpPost] public ApiResult SetChapterProgress() { var ChapterId = base.ParmJObj.GetInt("ChapterId", 0); var Progress = base.ParmJObj.GetInt("Progress", 0); bool flag = courseModule.SetChapterProgressModule(ChapterId, Progress); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 课程通知管理 /// /// 获取课程通知分页列表 /// /// [HttpPost] public ApiResult GetNoticePageList() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseModule.GetNoticePageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); foreach (var item in list) { if (item.CreateBy > 0) { item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? ""; } if (item.UpdateBy > 0) { item.UpdateByName = UserReidsCache.GetUserLoginInfo(item.UpdateBy)?.AccountName ?? ""; } } pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 添加修改课程通知 /// /// [HttpPost] public ApiResult SetNotice() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); extModel.CreateTime = DateTime.Now; extModel.CreateBy = base.UserInfo.Id; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; extModel.Group_Id = this.UserInfo.Group_Id; extModel.School_Id = this.UserInfo.School_Id; bool flag = courseModule.SetNoticeModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取课程通知 /// /// [HttpPost] public ApiResult GetNotice() { var NoticeId = base.ParmJObj.GetInt("NoticeId", 0); var extModel = courseModule.GetNoticeModule(NoticeId); return ApiResult.Success(data: extModel); } /// /// 删除课程通知 /// /// [HttpPost] public ApiResult RemoveNotice() { var NoticeId = base.ParmJObj.GetInt("NoticeId", 0); var flag = courseModule.RemoveNoticeModule(NoticeId); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 新增通知阅读 /// /// [HttpPost] public ApiResult AddNoticeRevice() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var flag = courseModule.AddNoticeReviceModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 课程讨论管理 /// /// 获取课程讨论分页列表 /// /// [HttpPost] public ApiResult GetDiscussPageList() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseModule.GetDiscussPageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); foreach (var item in list) { if (item.CreateBy > 0) { item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? ""; } if (item.UpdateBy > 0) { item.UpdateByName = UserReidsCache.GetUserLoginInfo(item.UpdateBy)?.AccountName ?? ""; } } pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 添加修改课程讨论 /// /// [HttpPost] public ApiResult SetDiscuss() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); extModel.CreateTime = DateTime.Now; extModel.CreateBy = base.UserInfo.Id; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; extModel.Group_Id = this.UserInfo.Group_Id; extModel.School_Id = this.UserInfo.School_Id; bool flag = courseModule.SetDiscussModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取课程讨论 /// /// [HttpPost] public ApiResult GetDiscuss() { var DiscussId = base.ParmJObj.GetInt("DiscussId", 0); var extModel = courseModule.GetDiscussModule(DiscussId); return ApiResult.Success(data: extModel); } /// /// 删除课程讨论 /// /// [HttpPost] public ApiResult RemoveDiscuss() { var DiscussId = base.ParmJObj.GetInt("DiscussId", 0); var flag = courseModule.RemoveDiscussModule(DiscussId); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 课程配置管理 /// /// 添加修改课程配置 /// /// [HttpPost] public ApiResult SetCourseSetting() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); extModel.CreateTime = DateTime.Now; extModel.CreateBy = base.UserInfo.Id; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; extModel.Group_Id = this.UserInfo.Group_Id; extModel.School_Id = this.UserInfo.School_Id; bool flag = courseModule.SetCourseSettingModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 课程资料管理 /// /// 获取课程资料分页列表 /// /// [HttpPost] public ApiResult GetSourcePageList() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseModule.GetSourcePageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); foreach (var item in list) { if (item.CreateBy > 0) { item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? ""; } if (item.UpdateBy > 0) { item.UpdateByName = UserReidsCache.GetUserLoginInfo(item.UpdateBy)?.AccountName ?? ""; } } pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 添加修改课程资料 /// /// [HttpPost] public ApiResult SetCourseSource() { var extModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); extModel.CreateTime = DateTime.Now; extModel.CreateBy = base.UserInfo.Id; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; extModel.Group_Id = this.UserInfo.Group_Id; extModel.School_Id = this.UserInfo.School_Id; bool flag = courseModule.SetCourseSourceModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 获取课程资料 /// /// [HttpPost] public ApiResult GetCourseSource() { var SourceId = base.ParmJObj.GetInt("SourceId", 0); var extModel = courseModule.GetCourseSourceModule(SourceId); return ApiResult.Success(data: extModel); } /// /// 更新资料共享类型 /// /// [HttpPost] public ApiResult SetCourseSourceShareType() { var SourceId = base.ParmJObj.GetInt("SourceId", 0); var ShareType = base.ParmJObj.GetInt("ShareType", 0); var flag = courseModule.SetCourseSourceShareTypeModule(SourceId, ShareType); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 删除课程资料 /// /// [HttpPost] public ApiResult RemoveCourseSource() { var SourceId = base.ParmJObj.GetInt("SourceId", 0); var flag = courseModule.RemoveCourseSourceModule(SourceId); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 课程作业管理 /// /// 获取课程分页列表 /// /// [HttpPost] public ApiResult GetCourseJobPageList() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject(RequestParm.Msg.ToString()); var query = new RB_Course_Job_ViewModel() { JobName = base.ParmJObj.GetStringValue("JobName") }; query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseModule.GetCourseJobPageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); foreach (var item in list) { if (item.CreateBy > 0) { item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? ""; } } pageModel.Count = rowsCount; pageModel.PageData = list; return ApiResult.Success(data: pageModel); } /// /// 添加修改课程作业 /// /// [HttpPost] public ApiResult SetCourseJob() { var extModel = new RB_Course_Job_ViewModel() { JobId = base.ParmJObj.GetInt("JobId"), JobName = base.ParmJObj.GetStringValue("JobName"), JobType = base.ParmJObj.GetInt("JobType"), ScoreType = base.ParmJObj.GetInt("ScoreType"), TopicType = base.ParmJObj.GetInt("TopicType") }; try { extModel.JobDetailsList = Common.Plugin.JsonHelper.DeserializeObject>(base.ParmJObj.GetStringValue("JobDetailsList")); } catch (Exception ex) { Common.Plugin.LogHelper.Write(ex, "SetCourseJob"); } extModel.Group_Id = base.UserInfo.Group_Id; extModel.School_Id = base.UserInfo.School_Id; extModel.CreateTime = DateTime.Now; extModel.CreateBy = base.UserInfo.Id; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; extModel.Status = DateStateEnum.Normal; bool flag = courseModule.SetCourseJobModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 修改作业其他设置 /// /// [HttpPost] public ApiResult SetCourseJobOtherConfig() { var extModel = new RB_Course_Job_ViewModel() { JobId = base.ParmJObj.GetInt("JobId"), ReciveClass = base.ParmJObj.GetStringValue("ReciveClass"), StartTime = base.ParmJObj.GetDateTime("StartTime"), EndTime = base.ParmJObj.GetDateTime("EndTime"), IsAllowDelay = base.ParmJObj.GetInt("IsAllowDelay"), PassBasicScore = base.ParmJObj.GetInt("PassBasicScore"), IsAgain = base.ParmJObj.GetInt("IsAgain"), AgainTimes = base.ParmJObj.GetInt("AgainTimes"), IsGetHighScore = base.ParmJObj.GetInt("IsGetHighScore"), IsLookAnswer = base.ParmJObj.GetInt("IsLookAnswer"), LookAnswerType = base.ParmJObj.GetInt("LookAnswerType"), IsLookScore = base.ParmJObj.GetInt("IsLookScore"), IsLookQTypeScore = base.ParmJObj.GetInt("IsLookQTypeScore"), IsPaste = base.ParmJObj.GetInt("IsPaste"), IsAgainShowTrueFalse = base.ParmJObj.GetInt("IsAgainShowTrueFalse"), IsOutOrder = base.ParmJObj.GetInt("IsOutOrder"), IsRandom = base.ParmJObj.GetInt("IsRandom"), RandomNum = base.ParmJObj.GetInt("RandomNum"), IsSendMsg = base.ParmJObj.GetInt("IsSendMsg"), SendMsgHour = base.ParmJObj.GetInt("SendMsgHour"), IsWork = base.ParmJObj.GetInt("IsWork"), WorkProcess = base.ParmJObj.GetInt("WorkProcess"), IsBlankobj = base.ParmJObj.GetInt("IsBlankobj"), IsCompletionIngoreCase = base.ParmJObj.GetInt("IsCompletionIngoreCase"), IsBlankIgnoreComma = base.ParmJObj.GetInt("IsBlankIgnoreComma"), IsMultiHalfScore = base.ParmJObj.GetInt("IsMultiHalfScore"), }; extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateTime = DateTime.Now; bool flag = courseModule.SetCourseJobOtherConfigModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// /// 删除课程作业 /// /// [HttpPost] public ApiResult RemoveCourseJob() { int JobId = base.ParmJObj.GetInt("JobId"); int Status = base.ParmJObj.GetInt("Status"); bool flag = courseModule.RemoveCourseJobModule(JobId, Status); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion #region 课程优惠价格设置 /// /// 获取课程优惠类型列表 /// /// public ApiResult GetCoursePreferentialType() { var list = Common.Plugin.EnumHelper.EnumToList(typeof(CoursePriceDiscountEnum)); if (list != null && list.Count > 0) { list.Insert(0, new EnumItem() { Id = 0, Name = "请选择" }); } return ApiResult.Success(data: list.OrderBy(qitem => qitem.Id)); } /// /// 获取课程优惠价格列表 /// /// public ApiResult GetCoursePreferentialList() { var CourseId = base.ParmJObj.GetInt("CourseId", 0); var list = courseModule.GetCoursePreferentialListModule(new RB_Course_Preferential_Extend() { CourseId = CourseId }); return ApiResult.Success(data: list.OrderBy(qitem => qitem.PriceDiscountType)); } /// /// 批量设置课程优惠价格 /// /// public ApiResult SetBeatchCoursePreferential() { var courseObj = JObject.Parse(base.ParmJObj.GetStringValue("courseObj")); var courseModel = new RB_Course_ViewModel() { CourseId = courseObj.GetInt("CourseId"), OriginalPrice = courseObj.GetDecimal("OriginalPrice"), SellPrice = courseObj.GetDecimal("SellPrice"), }; var priceObj = base.ParmJObj.GetStringValue("priceList"); var list = new List(); JArray jArray = JArray.Parse(priceObj); if (jArray != null && jArray.Count > 0) { foreach (var item in jArray) { JObject param = JObject.Parse(item.ToString()); int priceDiscountType=param.GetInt("PriceDiscountType"); if (priceDiscountType <= 0) { return ApiResult.ParamIsNull(message: "请选择【优惠类型】"); } RB_Course_Preferential_Extend model = new RB_Course_Preferential_Extend() { Id = param.GetInt("Id"), B2BCommissionMoney = param.GetDecimal("B2BCommissionMoney"), B2BCommissionType = param.GetInt("B2BCommissionType"), BuyNum = param.GetInt("BuyNum"), EduCommissionMoney = param.GetDecimal("EduCommissionMoney"), EduCommissionType = param.GetInt("EduCommissionType"), PreferentialTerms = param.GetStringValue("PreferentialTerms"), PriceDiscountType = (CoursePriceDiscountEnum)priceDiscountType, PriceMoney = param.GetDecimal("PriceMoney"), PriceType = param.GetInt("PriceType"), SaleCommissionMoney = param.GetDecimal("SaleCommissionMoney"), SaleCommissionType = param.GetInt("SaleCommissionType"), SendNum = param.GetInt("SendNum"), CreateTime = DateTime.Now, CreateBy = base.UserInfo.Id, UpdateBy = base.UserInfo.Id, UpdateTime = DateTime.Now, Group_Id = this.UserInfo.Group_Id, School_Id = this.UserInfo.School_Id, CourseId = courseModel.CourseId, Status = DateStateEnum.Normal }; list.Add(model); } } if (list != null && list.Count > 0) { var groupList = list.GroupBy(qitem => new { qitem.PriceDiscountType, qitem.PriceDiscountTypeStr }); foreach (var item in groupList) { var tempCount = list?.Where(qitem => qitem.PriceDiscountType == item.Key.PriceDiscountType)?.Count()??0; if (tempCount > 1) { return ApiResult.ParamIsNull(message: string.Format("已存在【{0}】的优惠类型,请重新选择!", item.Key.PriceDiscountTypeStr)); } } } var flag = courseModule.SetCoursePreferentialListModule(courseModel, list); return flag ? ApiResult.Success() : ApiResult.Failed(); } #endregion } }