Commit b46ae4ae authored by 罗超's avatar 罗超

新增章节管理

parent 19bf884c
using Edu.Common.Plugin;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Common.Enum.Course
{
/// <summary>
/// 日语等级枚举
/// </summary>
public enum CourseRateEnum
{
/// <summary>
/// 基础课程
/// </summary>
[EnumField("基础课程")]
BASE=1,
/// <summary>
/// N5课程
/// </summary>
[EnumField("N5课程")]
N5 = 2,
/// <summary>
/// N4课程
/// </summary>
[EnumField("N4课程")]
N4 = 3,
/// <summary>
/// N3课程
/// </summary>
[EnumField("N3课程")]
N3 = 4,
/// <summary>
/// N2课程
/// </summary>
[EnumField("N2课程")]
N2 = 5,
/// <summary>
/// N1课程
/// </summary>
[EnumField("N1课程")]
N1 = 6,
/// <summary>
/// 专业课程
/// </summary>
[EnumField("专业课程")]
MAJOR = 7,
/// <summary>
/// 其它
/// </summary>
[EnumField("其他")]
OTHER = 8,
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
......@@ -100,5 +101,25 @@ namespace Edu.Model.Entity.Course
/// 排序
/// </summary>
public int SortNum { get; set; }
/// <summary>
/// 学习课时
/// </summary>
public int StudyHours { get; set; }
/// <summary>
/// 教学重点
/// </summary>
public string Objectives { get; set; }
/// <summary>
/// 学生学习要求
/// </summary>
public string Requirement { get; set; }
/// <summary>
/// 对应专业
/// </summary>
public CourseRateEnum CourseRate { get; set; }
}
}
using System;
using Edu.Common.Enum.Course;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -51,5 +52,29 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public int Progress { get; set; }
}
/// <summary>
/// 学习课时
/// </summary>
public int StudyHours { get; set; }
/// <summary>
/// 教学重点
/// </summary>
public string Objectives { get; set; }
/// <summary>
/// 学生学习要求
/// </summary>
public string Requirement { get; set; }
/// <summary>
/// 对应专业
/// </summary>
public CourseRateEnum CourseRate { get; set; }
/// <summary>
/// 课程等级名称
/// </summary>
public string CourseRateName { get; set; }
}
}
......@@ -12,5 +12,6 @@ namespace Edu.Model.ViewModel.Course
/// 课程编号【逗号分隔】
/// </summary>
public string CourseIds { get; set; }
}
}
using Edu.AOP.CustomerAttribute;
using Edu.Common.Enum;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Question;
using Edu.Model.ViewModel.User;
......@@ -495,7 +496,12 @@ namespace Edu.Module.Course
CourseId = childItem.CourseId,
ChildList = new List<ChapterTree_ViewModel>(),
OpenStatus = childItem.OpenStatus,
Progress = childItem.Progress
Progress = childItem.Progress,
StudyHours = childItem.StudyHours,
Objectives = childItem.Objectives,
Requirement = childItem.Requirement,
CourseRate = childItem.CourseRate,
CourseRateName = EnumHelper.ToName(childItem.CourseRate)
};
childModel.ChildList.AddRange(GetChapterChild(sourceList, childItem.ChapterId));
resultList.Add(childModel);
......@@ -519,6 +525,10 @@ namespace Edu.Module.Course
{nameof(RB_Course_Chapter_ViewModel.ChapterName) ,model.ChapterName},
{nameof(RB_Course_Chapter_ViewModel.ChapterContent) ,model.ChapterContent},
{nameof(RB_Course_Chapter_ViewModel.ParentId) ,model.ParentId},
{nameof(RB_Course_Chapter_ViewModel.StudyHours) ,model.StudyHours},
{nameof(RB_Course_Chapter_ViewModel.Objectives) ,model.Objectives},
{nameof(RB_Course_Chapter_ViewModel.Requirement) ,model.Requirement},
{nameof(RB_Course_Chapter_ViewModel.CourseRate) ,model.CourseRate},
};
flag = chapterRepository.Update(fileds, new WhereHelper(nameof(RB_Course_Chapter_ViewModel.ChapterId), model.ChapterId));
}
......@@ -556,6 +566,26 @@ namespace Edu.Module.Course
return flag;
}
/// <summary>
/// 批量删除章节
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public bool BatchRemoveChapterModule(RB_Course_Chapter_ViewModel model)
{
return chapterRepository.DeleteBatchChpterRepository(model);
}
/// <summary>
/// 批量更新等级
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool BatchUpdateChapterRateModule(RB_Course_Chapter_ViewModel model)
{
return chapterRepository.SetBatchUpdateCourseRateRepository(model);
}
/// <summary>
/// 设置章节开发状态
/// </summary>
......@@ -573,6 +603,22 @@ namespace Edu.Module.Course
return flag;
}
public bool SetChapterNameModule(RB_Course_Chapter_ViewModel model)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Course_Chapter_ViewModel.ChapterName) ,model.ChapterName}
};
bool flag = chapterRepository.Update(fileds, new WhereHelper(nameof(RB_Course_Chapter_ViewModel.ChapterId), model.ChapterId));
return flag;
}
public bool SetBatchChapterNoModule(List<RB_Course_Chapter_ViewModel> chapters)
{
return chapterRepository.SetBatchUpdateChapterNoRepository(chapters);
}
/// <summary>
/// 设置章节进度
/// </summary>
......
using Edu.Model.ViewModel.Course;
using Edu.Common.Enum;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -22,10 +24,11 @@ namespace Edu.Repository.Course
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT *
FROM rb_course_chapter
WHERE 1=1
");
SELECT *
FROM rb_course_chapter
WHERE 1=1
");
builder.AppendFormat(" AND {0}={1}", nameof(RB_Course_Chapter_ViewModel.Status), EnumHelper.ToInt(DateStateEnum.Normal));
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Course_Chapter_ViewModel.Group_Id), query.Group_Id);
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Course_Chapter_ViewModel.School_Id), query.School_Id);
if (query != null)
......@@ -39,7 +42,57 @@ WHERE 1=1
builder.AppendFormat(" AND {0} IN({1}) ", nameof(RB_Course_Chapter_ViewModel.CourseId), query.CourseIds);
}
}
builder.AppendFormat(" ORDER BY {0}",nameof(RB_Course_Chapter_ViewModel.ChapterNo));
return Get<RB_Course_Chapter_ViewModel>(builder.ToString(), parameters).ToList();
}
/// <summary>
/// 批量更新编号
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public bool SetBatchUpdateChapterNoRepository(List<RB_Course_Chapter_ViewModel> param)
{
StringBuilder builder = new StringBuilder();
builder.Append("INSERT INTO rb_course_chapter (ChapterId, ChapterNo, ParentId) VALUES");
param.ForEach(x => {
builder.Append($"({x.ChapterId},'{x.ChapterNo}',{x.ParentId}),");
});
builder = builder.Remove(builder.Length - 1, 1);
builder.Append("ON DUPLICATE KEY UPDATE ChapterNo=VALUES(ChapterNo), ParentId=VALUES(ParentId);");
return Execute(builder.ToString()) > 0;
}
/// <summary>
/// 批量更新课程等级
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetBatchUpdateCourseRateRepository(RB_Course_Chapter_ViewModel model)
{
StringBuilder builder = new StringBuilder();
builder.Append("update rb_course_chapter ");
builder.AppendFormat("set {0}={1}",nameof(RB_Course_Chapter_ViewModel.CourseRate),EnumHelper.ToInt(model.CourseRate));
builder.AppendFormat(" where {0}={1}", nameof(RB_Course_Chapter_ViewModel.CourseId), model.CourseId);
builder.AppendFormat(" and {0} like '{1}%'", nameof(RB_Course_Chapter_ViewModel.ChapterNo), model.ChapterNo);
return Execute(builder.ToString()) > 0;
}
/// <summary>
/// 批量删除课程章节
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool DeleteBatchChpterRepository(RB_Course_Chapter_ViewModel model)
{
StringBuilder builder = new StringBuilder();
builder.Append("update rb_course_chapter ");
builder.AppendFormat("set {0}={1}", nameof(RB_Course_Chapter_ViewModel.Status), EnumHelper.ToInt(DateStateEnum.Delete));
builder.AppendFormat(" where {0}={1}", nameof(RB_Course_Chapter_ViewModel.CourseId), model.CourseId);
builder.AppendFormat(" and ({0} like '{1}%' or {2}={3})", nameof(RB_Course_Chapter_ViewModel.ChapterNo), model.ChapterNo, nameof(RB_Course_Chapter_ViewModel.ChapterId), model.ChapterId);
return Execute(builder.ToString()) > 0;
}
}
}
......@@ -428,7 +428,7 @@ namespace Edu.WebApi.Controllers.Course
extModel.Group_Id = this.UserInfo.Group_Id;
extModel.School_Id = this.UserInfo.School_Id;
bool flag = courseModule.SetChapterModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
return flag ? ApiResult.Success(data:extModel) : ApiResult.Failed();
}
/// <summary>
......@@ -459,6 +459,18 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Success(data: list);
}
/// <summary>
/// 获取课程等级列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetCourseRateEnumList()
{
var list = Common.Plugin.EnumHelper.EnumToList(typeof(CourseRateEnum));
return ApiResult.Success(data: list);
}
/// <summary>
/// 删除课程章节
/// </summary>
......@@ -471,6 +483,30 @@ namespace Edu.WebApi.Controllers.Course
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 删除课程章节
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult BatchRemoveChapter()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<RB_Course_Chapter_ViewModel>(RequestParm.Msg.ToString());
bool flag = courseModule.BatchRemoveChapterModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 批量更新课程等级
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult BatchSetChapterRate()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<RB_Course_Chapter_ViewModel>(RequestParm.Msg.ToString());
bool flag = courseModule.BatchUpdateChapterRateModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 获取课程章节详情
/// </summary>
......@@ -494,6 +530,31 @@ namespace Edu.WebApi.Controllers.Course
bool flag = courseModule.SetChapterOpenStatusModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 设置章节名称
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetChapterName()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<RB_Course_Chapter_ViewModel>(RequestParm.Msg.ToString());
bool flag = courseModule.SetChapterNameModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 批量设置章节编号
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowRepeatAttribute]
public ApiResult SetBatchChapterNo()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Course_Chapter_ViewModel>>(RequestParm.Msg.ToString());
bool flag = courseModule.SetBatchChapterNoModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 设置章节开发状态
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment