using Edu.Common.Enum; using Edu.Model.ViewModel.Course; using Edu.Repository.Course; using System.Collections.Generic; using System.Linq; using VT.FW.DB; namespace Edu.Module.Course { /// <summary> /// 课程分类处理类 /// </summary> public class CourseCategoryModule { /// <summary> /// 科目仓储层对象 /// </summary> private readonly RB_Course_SubjectRepository course_SubjectRepository = new RB_Course_SubjectRepository(); /// <summary> /// 课程分类仓储对象 /// </summary> private readonly RB_Course_CategoryRepository categoryRepository = new RB_Course_CategoryRepository(); #region 课程分类 /// <summary> /// 获取课程分类列表 /// </summary> /// <param name="query"></param> /// <returns></returns> public List<RB_Course_Category_ViewModel> GetCourseCategoryListModule(RB_Course_Category_ViewModel query) { return categoryRepository.GetCourseCategoryListRepository(query); } /// <summary> /// 获取课程分类分页列表 /// </summary> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <param name="rowsCount"></param> /// <param name="query"></param> /// <returns></returns> public List<RB_Course_Category_ViewModel> GetCourseCategoryPageListModule(int pageIndex, int pageSize, out long rowsCount, RB_Course_Category_ViewModel query) { return categoryRepository.GetCourseCategoryPageListRepository(pageIndex, pageSize, out rowsCount, query); } /// <summary> /// 获取当前和当前所有下级分类列表 /// </summary> /// <param name="cateIds">事例(1,5)</param> /// <returns></returns> public List<RB_Course_Category_ViewModel> GetChildCategoryListModule(string cateIds) { return categoryRepository.GetChildCategoryListRepository(cateIds); } /// <summary> /// 获取当前和当前所有下级分类编号 /// </summary> /// <param name="cateIds">事例(1,5)</param> /// <returns></returns> public string GetChildCategoryStringModule(string cateIds) { string result = ""; var list = GetChildCategoryListModule(cateIds); if (list != null && list.Count > 0) { result = string.Join(",", list.Select(qitem => qitem.CateId)); } return result; } /// <summary> /// 根据分类编号获取课程分类实体 /// </summary> /// <param name="CateId"></param> /// <returns></returns> public RB_Course_Category_ViewModel GetCourseCategoryModule(object CateId) { return categoryRepository.GetEntity<RB_Course_Category_ViewModel>(CateId); } /// <summary> /// 获取课程分类树形列表 /// </summary> /// <param name="query"></param> /// <returns></returns> public List<CourseCategoryTree_ViewModel> GetCourseCategoryTreeListModule(RB_Course_Category_ViewModel query) { List<CourseCategoryTree_ViewModel> treeList = new List<CourseCategoryTree_ViewModel>(); var list = GetCourseCategoryListModule(query); if (list != null && list.Count > 0) { var firstList = list.Where(qitem => qitem.ParentId == 0).ToList(); if (firstList != null && firstList.Count > 0) { foreach (var fItem in firstList) { CourseCategoryTree_ViewModel tModel = new CourseCategoryTree_ViewModel() { CateId = fItem.CateId, CateName = fItem.CateName, ParentId = fItem.ParentId, CourseSubject = fItem.CourseSubject, ChildList = new List<CourseCategoryTree_ViewModel>() }; tModel.ChildList = GetCategoryTreeList(fItem.CateId, list); treeList.Add(tModel); } } } return treeList; } /// <summary> /// 递归生成树形结构 /// </summary> /// <param name="parentId">父节点编号</param> /// <param name="sourceList">数据源列表</param> private List<CourseCategoryTree_ViewModel> GetCategoryTreeList(int parentId, List<RB_Course_Category_ViewModel> sourceList) { List<CourseCategoryTree_ViewModel> treeList = new List<CourseCategoryTree_ViewModel>(); foreach (var item in sourceList.Where(qitem => qitem.ParentId == parentId)) { CourseCategoryTree_ViewModel model = new CourseCategoryTree_ViewModel() { CateId = item.CateId, CateName = item.CateName, ParentId = item.ParentId, CourseSubject = item.CourseSubject, ChildList = new List<CourseCategoryTree_ViewModel>(), }; model.ChildList = GetCategoryTreeList(item.CateId, sourceList); treeList.Add(model); } return treeList; } /// <summary> /// 新增修改课程分类 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool SetCourseCategoryModule(RB_Course_Category_ViewModel model) { bool flag; if (model.CateId > 0) { Dictionary<string, object> fileds = new Dictionary<string, object>() { {nameof(RB_Course_Category_ViewModel.ParentId),model.ParentId }, {nameof(RB_Course_Category_ViewModel.CateName),model.CateName.Trim() }, {nameof(RB_Course_Category_ViewModel.SortNum),model.SortNum }, {nameof(RB_Course_Category_ViewModel.UpdateBy),model.UpdateBy }, {nameof(RB_Course_Category_ViewModel.UpdateTime),model.UpdateTime }, {nameof(RB_Course_Category_ViewModel.CourseSubject),model.CourseSubject }, }; flag = categoryRepository.Update(fileds, new WhereHelper(nameof(RB_Course_Category_ViewModel.CateId), model.CateId)); } else { var newId = categoryRepository.Insert(model); model.CateId = newId; flag = newId > 0; } return flag; } /// <summary> /// 根据分类编号删除课程分类 /// </summary> /// <param name="CateId"></param> /// <returns></returns> public bool RemoveCourseCategoryModule(int CateId) { Dictionary<string, object> fileds = new Dictionary<string, object>() { {nameof(RB_Course_Category_ViewModel.Status),(int)DateStateEnum.Delete }, }; bool flag = categoryRepository.Update(fileds, new WhereHelper(nameof(RB_Course_Category_ViewModel.CateId), CateId)); return flag; } #endregion #region 科目管理 /// <summary> /// 获取科目分页列表 /// </summary> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <param name="rowsCount"></param> /// <param name="query"></param> /// <returns></returns> public List<RB_Course_Subject_ViewModel> GetCourseSubjectPageModule(int pageIndex, int pageSize, out long rowsCount, RB_Course_Subject_ViewModel query) { var list = course_SubjectRepository.GetCourseSubjectPageRepository(pageIndex, pageSize, out rowsCount, query); return list; } /// <summary> /// 获取科目列表 /// </summary> /// <param name="query"></param> /// <returns></returns> public List<RB_Course_Subject_ViewModel> GetCourseSubjectListModule(RB_Course_Subject_ViewModel query) { return course_SubjectRepository.GetCourseSubjectListRepository(query); } /// <summary> /// 新增修改科目 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool SetCourseSubjectModule(RB_Course_Subject_ViewModel model) { bool flag = false; if (model.Id > 0) { Dictionary<string, object> fileds = new Dictionary<string, object>() { { nameof(RB_Course_Subject_ViewModel.SubjectName),model.SubjectName}, { nameof(RB_Course_Subject_ViewModel.SubjectIcon),model.SubjectIcon}, { nameof(RB_Course_Subject_ViewModel.UpdateBy),model.UpdateBy}, { nameof(RB_Course_Subject_ViewModel.UpdateTime),model.UpdateTime}, }; flag = course_SubjectRepository.Update(fileds, new WhereHelper(nameof(RB_Course_Subject_ViewModel.Id), model.Id)); } else { var newId = course_SubjectRepository.Insert(model); model.Id = newId; flag = newId > 0; } return flag; } /// <summary> /// 根据编号获取科目详情 /// </summary> /// <param name="Id"></param> /// <returns></returns> public RB_Course_Subject_ViewModel GetCourseSubjectModule(object Id) { var extModel = course_SubjectRepository.GetEntity<RB_Course_Subject_ViewModel>(Id); return extModel; } /// <summary> /// 根据编号删除科目 /// </summary> /// <param name="Id"></param> /// <returns></returns> public bool RemoveCourseSubjectModule(object Id) { Dictionary<string, object> fileds = new Dictionary<string, object>() { { nameof(RB_Course_Subject_ViewModel.Status),(int)DateStateEnum.Delete}, }; var flag = course_SubjectRepository.Update(fileds, new WhereHelper(nameof(RB_Course_Subject_ViewModel.Id), Id)); return flag; } #endregion } }