Commit 68870cf3 authored by 黄奎's avatar 黄奎

页面修改

parents e4357635 5e559969
......@@ -93,5 +93,16 @@ namespace Edu.Model.Entity.Course
/// 删除状态(0-正常,1-禁用)
/// </summary>
public DateStateEnum Status { get; set; }
/// <summary>
/// 课后总结
/// </summary>
public string Summary { get; set; }
/// <summary>
/// 教案图片
/// </summary>
public string ProjectPic { get; set; }
}
}
......@@ -49,5 +49,10 @@ namespace Edu.Model.Entity.Course
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 教案图片
/// </summary>
public string ProjectPic { get; set; }
}
}
......@@ -180,5 +180,9 @@ namespace Edu.Model.ViewModel.Course
return str;
}
}
/// <summary>
///上课时间ids
/// </summary>
public string ClassTimeIds { get; set; }
}
}
......@@ -16,5 +16,11 @@ namespace Edu.Model.ViewModel.Course
/// 结束时间
/// </summary>
public string DurationEndTime { get; set; }
/// <summary>
/// 教案图片
/// </summary>
public List<string> ProjectPicList { get; set; }
}
}
......@@ -26,5 +26,10 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public int Rest { get; set; }
/// <summary>
/// 总结图片
/// </summary>
public List<string> ProjectPicList { get; set; }
}
}
......@@ -98,6 +98,12 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public int LessonPlanNum { get; set; }
/// <summary>
/// 反馈情况》0已反馈
/// </summary>
public int LessonPlanSummaryNum { get; set; }
/// <summary>
/// 学生id
/// </summary>
......@@ -117,5 +123,10 @@ namespace Edu.Model.ViewModel.Course
/// 上课计划时间id
/// </summary>
public int ClassTimeId { get; set; }
/// <summary>
/// 第几次上课
/// </summary>
public object Ranks { get; set; }
}
}
......@@ -51,6 +51,9 @@ namespace Edu.Model.ViewModel.Course
public int ClassRoomId { get; set; }
/// <summary>
///班级学员
/// </summary>
public List<RB_Order_Guest_ViewModel> GuestList { get; set; }
/// 上课分钟数
/// </summary>
public int TimeMinute { get; set; }
......
......@@ -333,7 +333,8 @@ namespace Edu.Module.Course
{ nameof(RB_Class_ViewModel.StudentNumType),model.StudentNumType},
{ nameof(RB_Class_ViewModel.ClassHourMinute),model.ClassHourMinute},
};
if (oldModel.OpenTime != model.OpenTime || oldModel.ClassType != model.ClassType || string.IsNullOrEmpty(oldModel.ClassNo)) {
if (oldModel.OpenTime != model.OpenTime || oldModel.ClassType != model.ClassType || string.IsNullOrEmpty(oldModel.ClassNo))
{
if (oldModel.OpenTime != model.OpenTime || string.IsNullOrEmpty(oldModel.ClassNo))
{
#region 生成班级号
......@@ -360,7 +361,8 @@ namespace Edu.Module.Course
fileds.Add(nameof(RB_Class_ViewModel.ClassNo), model.ClassNo);
fileds.Add(nameof(RB_Class_ViewModel.ClassLetterNum), model.ClassLetterNum);
}
else if (oldModel.ClassType != model.ClassType) {
else if (oldModel.ClassType != model.ClassType)
{
var classTypeModel = class_TypeRepository.GetEntity(model.ClassType);
if (classTypeModel != null)
{
......@@ -377,7 +379,8 @@ namespace Edu.Module.Course
#region 生成班级号
model.ClassNo = "";
var classTypeModel = class_TypeRepository.GetEntity(model.ClassType);
if (classTypeModel != null) {
if (classTypeModel != null)
{
model.ClassNo = classTypeModel.ClassNoPrefix;
}
//查询最大的字母
......@@ -387,7 +390,8 @@ namespace Edu.Module.Course
model.ClassNo += model.OpenTime.ToString("yyyyMMdd") + "A";
model.ClassLetterNum = 1;
}
else {
else
{
string ClassNoLetterStr = Edu.Common.Config.ClassNoLetterStr;
model.ClassNo += model.OpenTime.ToString("yyyyMMdd") + ClassNoLetterStr.Substring(CNum, 1);
model.ClassLetterNum = CNum + 1;
......@@ -647,6 +651,9 @@ namespace Edu.Module.Course
if (model.ClassHours > 0)
{
var srartDate = model.OpenTime;
// var BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(model.Group_Id);
//按周排课和按月排课
if (model.ClassStyle == ClassStyleEnum.Week || model.ClassStyle == ClassStyleEnum.Month)
......@@ -751,7 +758,7 @@ namespace Edu.Module.Course
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model,BasicMinutes);
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
......@@ -766,7 +773,7 @@ namespace Edu.Module.Course
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model,BasicMinutes);
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
......@@ -816,7 +823,7 @@ namespace Edu.Module.Course
/// <param name="classTimeList"></param>
/// <param name="model"></param>
/// <returns></returns>
private double CalcDayClassHoursModule(List<TimeItem> timeList, List<RB_Class_Time_ViewModel> classTimeList, RB_Class_ViewModel model,int BasicMinutes)
private double CalcDayClassHoursModule(List<TimeItem> timeList, List<RB_Class_Time_ViewModel> classTimeList, RB_Class_ViewModel model, int BasicMinutes)
{
double dayClassHours = 0;
double dayMinutes = 0;
......@@ -1373,7 +1380,7 @@ namespace Edu.Module.Course
public virtual bool AddClassCheckModule(List<RB_Class_Check_ViewModel> list)
{
//基础课时分钟数
var BasicMinutes =0;
var BasicMinutes = 0;
//BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(list[0].Group_Id);
BasicMinutes = class_ConfigRepository.GetClassMinutesRepository(list[0].ClassId);
var timeModel =class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel()
......@@ -1440,7 +1447,7 @@ namespace Edu.Module.Course
{
List<RB_Class_Check_ViewModel> list = new List<RB_Class_Check_ViewModel>();
bool flag = true;
var checkList = classCheckRepository.GetClassCheckListRepository(new RB_Class_Check_ViewModel ());
var checkList = classCheckRepository.GetClassCheckListRepository(new RB_Class_Check_ViewModel());
var planList = class_PlanRepository.GetClassPlanListExtRepository(new RB_Class_Plan_ViewModel());
if (checkList != null && checkList.Count > 0)
{
......@@ -1448,7 +1455,7 @@ namespace Edu.Module.Course
.Select(qitem => new { qitem.Key.ClassId, qitem.Key.ClassDate, qitem.Key.OrderGuestId });
foreach (var item in groupList)
{
var tempCheckList = checkList.Where(qitem => qitem.ClassId == item.ClassId && qitem.ClassDate == item.ClassDate && qitem.OrderGuestId == item.OrderGuestId).OrderBy(qitem=>qitem.ClassTimeId).ToList();
var tempCheckList = checkList.Where(qitem => qitem.ClassId == item.ClassId && qitem.ClassDate == item.ClassDate && qitem.OrderGuestId == item.OrderGuestId).OrderBy(qitem => qitem.ClassTimeId).ToList();
var tempPlanList = planList.Where(qitem => qitem.ClassId == item.ClassId && qitem.ClassDate == item.ClassDate).OrderBy(qitem => qitem.ClassTimeId).ToList();
for (var i = 0; i < tempCheckList.Count; i++)
{
......@@ -1924,6 +1931,35 @@ namespace Edu.Module.Course
return flag;
}
/// <summary>
/// 新增/修改老师教案
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool GetUpdateClassLessPlanSummary(Class_LessonPlan_ViewModel model)
{
bool flag = true;
if (model.LessonPlanList != null && model.LessonPlanList.Any())
{
foreach (var item in model.LessonPlanList)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Class_LessonPlan_ViewModel.Summary),item.Summary},
{nameof(RB_Class_LessonPlan_ViewModel.ProjectPic),item.ProjectPic}
};
if (flag)
{
flag = ClassLessonPlanRepository.Update(fileds, new WhereHelper(nameof(RB_Class_LessonPlan_ViewModel.LessonPlanId), item.LessonPlanId));
}
}
}
return flag;
}
/// <summary>
/// 获取老师教案详情分页列表
/// </summary>
......@@ -2002,12 +2038,30 @@ namespace Edu.Module.Course
Group_Id = model.Group_Id,
School_Id = model.School_Id
}).Where(x => x.GuestState == 1).ToList();
string timeIds = string.Join(",", timeList.Select(x => x.ClassTimeId));
var checkList = classCheckRepository.GetClassCheckList(new RB_Class_Check_ViewModel
{
ClassTimeIds = timeIds,
Group_Id = model.Group_Id
});
foreach (var item in planList)
{
item.PlanTimeList = new List<RB_Class_Time_ViewModel>();
item.PlanTimeList = timeList.Where(x => x.ClassPlanId == item.ClassPlanId).ToList();
item.GuestList = new List<RB_Order_Guest_ViewModel>();
item.GuestList = orderStudentList.Where(x => x.ClassId == item.ClassId).ToList();
foreach (var itemTime in item.PlanTimeList)
{
itemTime.GuestList = new List<RB_Order_Guest_ViewModel>();
itemTime.GuestList = orderStudentList.Where(x => x.ClassId == itemTime.ClassId).ToList();
foreach (var itemCheck in itemTime.GuestList)
{
//0-正常,1-缺勤,2-未签到
itemCheck.IsCheck = (checkList != null && checkList.Any()) ? checkList.Where(y => y.OrderGuestId == itemCheck.Id && y.ClassTimeId == itemTime.ClassTimeId).FirstOrDefault()?.CheckStatus ?? 2 : 2;
}
}
}
}
return planList;
......@@ -2734,15 +2788,16 @@ namespace Edu.Module.Course
return class_PlanRepository.GetCurrentPlanStudyHoursRepository(planId);
}
/// <summary>
/// 更新历史班号
/// </summary>
/// <returns></returns>
public bool UpdateHistoryClassNo()
/// <summary>
/// 更新历史班号
/// </summary>
/// <returns></returns>
public bool UpdateHistoryClassNo()
{
var list = classRepository.GetClassListRepository(new RB_Class_ViewModel() { Group_Id = 100000 });
list = list.OrderBy(x => x.OpenTime).ThenBy(x => x.ClassId).ToList();
foreach (var model in list) {
foreach (var model in list)
{
#region 生成班级号
model.ClassNo = "";
var classTypeModel = class_TypeRepository.GetEntity(model.ClassType);
......@@ -2779,6 +2834,6 @@ namespace Edu.Module.Course
}
return true;
}
}
}
......@@ -245,6 +245,10 @@ GROUP BY A.ClassId
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.ClassTimeId), query.ClassTimeId);
}
if (!string.IsNullOrWhiteSpace(query.ClassTimeIds))
{
builder.AppendFormat(" AND A.{0} in ({1}) ", nameof(RB_Class_Check_ViewModel.ClassTimeId), query.ClassTimeIds);
}
}
return Get<RB_Class_Check_ViewModel>(builder.ToString()).ToList();
......
......@@ -369,15 +369,16 @@ WHERE p.`Status`=0 AND p.Group_Id={group_Id} AND p.ClassId ={classId}
public List<RB_Class_Plan_ViewModel> GetTeacherPlanListRepository(RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,class.ClassName,lp.LessonPlanNum,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon
FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId
LEFT JOIN rb_class as class on a.ClassId=class.ClassId
LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId
LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanNum from rb_class_lessonplan where `Status`=0 GROUP BY ClassPlanId)as lp on a.ClassPlanId=lp.ClassPlanId
WHERE 1=1 and class.ClassStatus=2 and t.`Status`=0
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
//builder.AppendFormat(@"
// SELECT A.*,class.ClassName,lp.LessonPlanNum,lps.LessonPlanSummaryNum,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon
// FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId
// LEFT JOIN rb_class as class on a.ClassId=class.ClassId
// LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId
// LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanNum from rb_class_lessonplan where `Status`=0 GROUP BY ClassPlanId)as lp on a.ClassPlanId=lp.ClassPlanId
//LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanSummaryNum from rb_class_lessonplan where `Status`=0 and ISNULL(Summary)=0 and LENGTH(trim(Summary))>0 GROUP BY ClassPlanId)as lps on a.ClassPlanId=lps.ClassPlanId
//WHERE 1=1 and class.ClassStatus=2 and t.`Status`=0
// ");
// builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.ClassId > 0)
......@@ -406,18 +407,42 @@ WHERE 1=1 and class.ClassStatus=2 and t.`Status`=0
}
if (!string.IsNullOrEmpty(query.QMonth))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m')= DATE_FORMAT('{1}-01','%y/%m') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.QMonth);
builder.AppendFormat(" AND DATE_FORMAT(A.{0},''%y/%m'')= DATE_FORMAT(''{1}-01'',''%y/%m'') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.QMonth);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')>=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
builder.AppendFormat(" AND DATE_FORMAT(A.{0},''%y-%m-%d'')>=DATE_FORMAT(''{1}'',''%y-%m-%d'') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')<=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
builder.AppendFormat(" AND DATE_FORMAT(A.{0},''%y-%m-%d'')<=DATE_FORMAT(''{1}'',''%y-%m-%d'') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
}
}
return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList();
// return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList();
//// string sql = $@"
////SELECT * from (SELECT IF
//// (
//// @class = a.ClassId,
//// IF
//// ( @score = a.ClassDate, @rank := @rank, @rank := @colum + 1 ),
//// @rank := 1
//// ) AS Ranks,
////IF
//// ( @class = a.ClassId, @colum := @colum + 1, @colum := 1 ) AS colums,
//// (@class := a.ClassId) as rr,
//// ( @score := a.ClassDate) as yy ,
////A.*,class.ClassName,lp.LessonPlanNum,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon
////FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId
////LEFT JOIN rb_class as class on a.ClassId=class.ClassId
//// LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId
////LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanNum from rb_class_lessonplan where `Status`=0 GROUP BY ClassPlanId)as lp on a.ClassPlanId=lp.ClassPlanId,
////( SELECT @rank := 0, @class := 0, @score := '2020-01-01', @colum := 0 ) r
////WHERE 1=1 and class.ClassStatus=2 and t.`Status`=0 and a.`Status`=0 ORDER BY a.ClassId,a.ClassDate) as a where 1=1 {builder.ToString()} ";
string sql = $@"CALL proc_GetClassPlanRank('{builder.ToString()}')";
return Get<RB_Class_Plan_ViewModel>(sql).ToList();
}
......@@ -541,7 +566,7 @@ GROUP BY A.ClassPlanId,A.ClassId ,A.ClassDate,A.ClassRoomId,A.CompleteProgress
/// </summary>
/// <param name="planId"></param>
/// <returns></returns>
public double GetCurrentPlanStudyHoursRepository(int planId)
public double GetCurrentPlanStudyHoursRepository(int planId)
{
string sql = @"select
(select SUM(timestampdiff(MINUTE, Concat(SUBSTRING_INDEX(d.ClassDate, ' ', 1), ' ', c.StartTime), Concat(SUBSTRING_INDEX(d.ClassDate, ' ', 1), ' ', c.EndTime))) / 45
......@@ -550,9 +575,9 @@ GROUP BY A.ClassPlanId,A.ClassId ,A.ClassDate,A.ClassRoomId,A.CompleteProgress
join rb_class_plan d on c.ClassPlanId = d.ClassPlanId
where d.ClassDate < b.ClassDate and c.ClassId = b.ClassId)
from rb_class_plan b where b.ClassPlanId = "+planId+" and b.`Status`= 0";
from rb_class_plan b where b.ClassPlanId = " + planId + " and b.`Status`= 0";
object obj = ExecuteScalar(sql);
return Convert.IsDBNull(obj)?-1:Convert.ToDouble(obj);
return Convert.IsDBNull(obj) ? -1 : Convert.ToDouble(obj);
}
}
}
\ No newline at end of file
......@@ -13,6 +13,7 @@ using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Edu.WebApi.Controllers.Course
......@@ -192,7 +193,7 @@ namespace Edu.WebApi.Controllers.Course
Point = base.ParmJObj.GetInt("Point"),
CourseClassType = (CourseClassTypeEnum)base.ParmJObj.GetInt("CourseClassType"),
StudentNumType = (StudentNumTypeEnum)base.ParmJObj.GetInt("StudentNumType"),
ClassHourMinute=base.ParmJObj.GetInt("ClassHourMinute"),
ClassHourMinute = base.ParmJObj.GetInt("ClassHourMinute"),
};
try
{
......@@ -755,7 +756,7 @@ namespace Edu.WebApi.Controllers.Course
var classPlanId = base.ParmJObj.GetInt("ClassPlanId");
var schoolId = base.ParmJObj.GetInt("School_Id");
var ClassTimeId = base.ParmJObj.GetInt("ClassTimeId");
if (classId == 0 || classPlanId == 0 )
if (classId == 0 || classPlanId == 0)
{
return ApiResult.ParamIsNull();
}
......@@ -1255,6 +1256,11 @@ namespace Edu.WebApi.Controllers.Course
{
return ApiResult.Failed("请填写教案详情");
}
else
{
item.LessonPlanDetailsList.ForEach(x => x.ProjectPic = (x.ProjectPicList != null && x.ProjectPicList.Any()) ? JsonConvert.SerializeObject(x.ProjectPicList) : "");
}
}
bool flag = classModule.SetClassLessPlan(query);
return flag ? ApiResult.Success() : ApiResult.Failed();
......@@ -1377,6 +1383,15 @@ namespace Edu.WebApi.Controllers.Course
int lessPlanDetailsId = model.LessonPlanList[0].LessonPlanId;
foreach (var item in model.LessonPlanList)
{
if (!string.IsNullOrWhiteSpace(item.ProjectPic))
{
item.ProjectPicList = JsonConvert.DeserializeObject<List<string>>(item.ProjectPic);
}
else
{
item.ProjectPicList = new List<string>();
}
item.LessonPlanDetailsList = new List<RB_Class_LessonPlanDetails_ViewModel>();
item.LessonPlanProjectsList = new List<RB_Class_LessonPlanProjects_ViewModel>();
item.LessonPlanDetailsList = detailsList.Where(x => x.LessonPlanId == item.LessonPlanId).ToList();
......@@ -1405,6 +1420,7 @@ namespace Edu.WebApi.Controllers.Course
}
item.LessonPlanProjectsList = projectList.Where(x => x.LessonPlanId == item.LessonPlanId).ToList();
// item.LessonPlanProjectsList.ForEach(x => x.ProjectContentList = (string.IsNullOrWhiteSpace(x.ProjectContent) ? new List<string>() : Common.Plugin.JsonHelper.DeserializeObject<List<string>>(x.ProjectContent)));
model.IsEditSummary += item.LessonPlanDetailsList.Where(x => !string.IsNullOrWhiteSpace(x.Summary)).Count();
......@@ -1418,22 +1434,22 @@ namespace Edu.WebApi.Controllers.Course
{
model.LessonPlanList = new List<RB_Class_LessonPlan_ViewModel>
{
new RB_Class_LessonPlan_ViewModel { CourseName = "活動篇", LessonPlanDetailsList = new List<RB_Class_LessonPlanDetails_ViewModel>(), LessonPlanProjectsList = new List<RB_Class_LessonPlanProjects_ViewModel>() },
new RB_Class_LessonPlan_ViewModel { CourseName = "理解篇", LessonPlanDetailsList = new List<RB_Class_LessonPlanDetails_ViewModel>(), LessonPlanProjectsList = new List<RB_Class_LessonPlanProjects_ViewModel>() }
new RB_Class_LessonPlan_ViewModel { CourseName = "备课信息", LessonPlanDetailsList = new List<RB_Class_LessonPlanDetails_ViewModel>(), LessonPlanProjectsList = new List<RB_Class_LessonPlanProjects_ViewModel>() },
//new RB_Class_LessonPlan_ViewModel { CourseName = "理解篇", LessonPlanDetailsList = new List<RB_Class_LessonPlanDetails_ViewModel>(), LessonPlanProjectsList = new List<RB_Class_LessonPlanProjects_ViewModel>() }
};
}
#region 追加章节信息
var hours = classModule.GetCurrentPlanStudyHoursRepository(model.ClassPlanId);
if (hours != -1)
if (hours != -1)
{
var classObj=classModule.GetClassModule(model.ClassId);
var classObj = classModule.GetClassModule(model.ClassId);
var courseOjb = new CourseModule().GetCourseModule(classObj.CouseId);
var chapter = new CourseModule().GetMatchHoursChapterModule(classObj.CouseId,hours);
if (chapter != null && chapter.ChapterId > 0)
var chapter = new CourseModule().GetMatchHoursChapterModule(classObj.CouseId, hours);
if (chapter != null && chapter.ChapterId > 0)
{
chapter.CourseName = courseOjb.CourseName;
model.Chapter = chapter;
......@@ -1487,6 +1503,10 @@ namespace Edu.WebApi.Controllers.Course
item.LessonPlanDetailsList = new List<RB_Class_LessonPlanDetails_ViewModel>();
item.LessonPlanProjectsList = new List<RB_Class_LessonPlanProjects_ViewModel>();
item.LessonPlanDetailsList = detailsList.Where(x => x.LessonPlanId == item.LessonPlanId).ToList();
if (item.LessonPlanDetailsList != null && item.LessonPlanDetailsList.Any())
{
item.LessonPlanDetailsList.ForEach(x => x.ProjectPicList = (string.IsNullOrWhiteSpace(x.ProjectPic) ? new List<string>() : JsonConvert.DeserializeObject<List<string>>(x.ProjectPic)));
}
item.LessonPlanProjectsList = projectList.Where(x => x.LessonPlanId == item.LessonPlanId).ToList();
// item.LessonPlanProjectsList.ForEach(x => x.ProjectContentList = (string.IsNullOrWhiteSpace(x.ProjectContent) ? new List<string>() : Common.Plugin.JsonHelper.DeserializeObject<List<string>>(x.ProjectContent)));
}
......@@ -1639,6 +1659,201 @@ namespace Edu.WebApi.Controllers.Course
}
/// <summary>
/// 客户反馈
/// </summary>
/// <returns></returns>
public ApiResult GetUpdateClassLessPlanSummary()
{
var query = Common.Plugin.JsonHelper.DeserializeObject<Class_LessonPlan_ViewModel>(RequestParm.Msg.ToString());
query.Group_Id = base.UserInfo.Group_Id;
query.CreateBy = base.UserInfo.Id;
query.UpdateBy = base.UserInfo.Id;
query.UpdateTime = System.DateTime.Now;
query.CreateTime = System.DateTime.Now;
if (!string.IsNullOrWhiteSpace(query.ClassEndTime))
{
if (Convert.ToDateTime(query.ClassEndTime) > System.DateTime.Now)
{
return ApiResult.Failed("当前还未下课不能填写课后总结");
}
}
int totalInfo = 0;
if (query.LessonPlanList != null && query.LessonPlanList.Any())
{
totalInfo += query.LessonPlanList.Where(x => !string.IsNullOrWhiteSpace(x.Summary)).Count();
}
if (totalInfo == 0)
{
return ApiResult.Failed("课后总结请至少填写一项");
}
query.LessonPlanList.ForEach(x => x.ProjectPic = (x.ProjectPicList != null && x.ProjectPicList.Any()) ? JsonConvert.SerializeObject(x.ProjectPicList) : "");
bool flag = classModule.GetUpdateClassLessPlanSummary(query);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 获取上课计划
/// </summary>
/// <returns></returns>
public ApiResult GetNewTeacherPlan()
{
var query = new RB_Class_ViewModel()
{
Group_Id = base.UserInfo.Group_Id,
Teacher_Id = base.ParmJObj.GetInt("Teacher_Id", 0),
StartTime = base.ParmJObj.GetStringValue("StartTime"),
EndTime = base.ParmJObj.GetStringValue("EndTime"),
};
if (query.Teacher_Id == 0)
{
if (base.UserInfo.AccountType == Common.Enum.User.AccountTypeEnum.Teacher)
{
query.Teacher_Id = base.UserInfo.AccountId;
if (query.Teacher_Id == 0)
{
return ApiResult.Failed("请传入老师id");
}
}
}
var data = classModule.GetTeacherPlanModule(query);
List<object> result = new List<object>();
DateTime startTime = Convert.ToDateTime(query.StartTime);
DateTime endTime = Convert.ToDateTime(query.EndTime);
TimeSpan sp = endTime.Subtract(startTime);
for (int i = 0; i <= sp.Days; i++)
{
int IsLessonStatus = 0;//0-未备课,1-部分,2-全部
List<object> planList = new List<object>();
List<object> planListResult = new List<object>();
var plan = data.Where(x => x.ClassDate.ToString("yyyy-MM-dd") == startTime.AddDays(i).ToString("yyyy-MM-dd"));
string DayTime = string.Empty;
foreach (var itemGroup in plan.GroupBy(x => new { x.TeacherId, x.ClassId }))
{
List<object> planListTeacher = new List<object>();
foreach (var item in plan.Where(x => x.TeacherId == itemGroup.Key.TeacherId && x.ClassId == itemGroup.Key.ClassId))
{
if (plan.Where(x => x.LessonPlanNum > 0).Count() < plan.Count() && plan.Where(x => x.LessonPlanNum > 0).Count() > 0)
{
IsLessonStatus = 1;
}
else if (plan.Where(x => x.LessonPlanNum > 0).Count() == plan.Count())
{
IsLessonStatus = 2;
}
else
{
IsLessonStatus = 0;
}
foreach (var itemTime in item.PlanTimeList)
{
int IsPlanLessonStatus = 0;//0-未备课,1-部分,2-全部
if (plan.Where(x => x.LessonPlanNum > 0 && x.ClassPlanId == itemTime.ClassPlanId).Count() < plan.Where(x => x.ClassPlanId == itemTime.ClassPlanId).Count() && plan.Where(x => x.LessonPlanNum > 0 && x.ClassPlanId == itemTime.ClassPlanId).Count() > 0)
{
IsPlanLessonStatus = 1;
}
else if (plan.Where(x => x.LessonPlanNum > 0 && x.ClassPlanId == itemTime.ClassPlanId).Count() == plan.Where(x => x.ClassPlanId == itemTime.ClassPlanId).Count())
{
IsPlanLessonStatus = 2;
}
else
{
IsPlanLessonStatus = 0;
}
planList.Add(new
{
IsPlanLessonStatus,
item.ClassPlanId,
item.ClassId,
item.TeacherId,
item.LessonPlanNum,
item.School_Id,
item.ClassName,
itemTime.StartTime,
itemTime.EndTime,
item.TeacherName,
item.UserIcon,
item.Ranks,
GuestStr = (itemTime.GuestList != null && itemTime.GuestList.Any()) ? string.Join(",", itemTime.GuestList.Where(x => x.IsCheck == 0).Select(x => x.GuestName)) : "",
AllGuestStr = (itemTime.GuestList != null && itemTime.GuestList.Any()) ? string.Join(",", itemTime.GuestList.Select(x => x.GuestName)) : ""
});
planListTeacher.Add(new
{
IsPlanLessonStatus,
item.ClassPlanId,
item.ClassId,
item.TeacherId,
item.LessonPlanNum,
item.School_Id,
item.ClassName,
itemTime.StartTime,
itemTime.EndTime,
item.TeacherName,
item.UserIcon,
GuestStr = (itemTime.GuestList != null && itemTime.GuestList.Any()) ? string.Join(",", itemTime.GuestList.Where(x => x.IsCheck == 0).Select(x => x.GuestName)) : "",
AllGuestStr = (itemTime.GuestList != null && itemTime.GuestList.Any()) ? string.Join(",", itemTime.GuestList.Select(x => x.GuestName)) : ""
});
}
if (item.PlanTimeList != null && item.PlanTimeList.Any())
{
item.PlanTimeList.ForEach(x => x.NewPlanDateTime = item.ClassDate.ToString("yyyy-MM-dd") + " " + x.StartTime);
DayTime = item.PlanTimeList.Min(x => Convert.ToDateTime(x.NewPlanDateTime)).ToString("HH:ss");
item.PlanTimeList.ForEach(x => x.NewPlanDateTime = item.ClassDate.ToString("yyyy-MM-dd") + " " + x.EndTime);
DayTime = DayTime + "~" + item.PlanTimeList.Max(x => Convert.ToDateTime(x.NewPlanDateTime)).ToString("HH:ss");
}
}
planListResult.Add(new
{
LessonPlanNum = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.LessonPlanNum ?? 0,
LessonPlanSummaryNum = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.LessonPlanSummaryNum ?? 0,
Ranks = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.Ranks ?? -1,
School_Id = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.School_Id ?? -1,
ClassPlanId = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.ClassPlanId ?? -1,
itemGroup.Key.TeacherId,
itemGroup.Key.ClassId,
ClassName = plan.Where(x => x.ClassId == itemGroup.Key.ClassId).FirstOrDefault()?.ClassName ?? "",
TeacherName = plan.Where(x => x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.TeacherName ?? "",
planListTeacher
});
}
result.Add(new
{
planListResult,
IsLessonStatus = (planList != null && planList.Any()) ? IsLessonStatus : -1,
DayTime,
DateYear = startTime.AddDays(i).ToString("yyyy"),
DateMonth = startTime.AddDays(i).ToString("MM"),
DateDay = startTime.AddDays(i).ToString("dd"),
WeekStr = StringHelper.GetJapanWeekChar(startTime.AddDays(i)),
PlanList = planList
});
}
return ApiResult.Success(data: result);
}
/// <summary>
/// 获取老师教案评论
/// </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