Commit f259a39a authored by liudong1993's avatar liudong1993

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents ce770182 af3df56e
This diff is collapsed.
......@@ -2659,7 +2659,7 @@ namespace Edu.Module.Course
};
//HK2021-07-19新增【有效课时大于完成课时修改学员状态为正常】
string LogContent = "";
if (gmodel.CompleteHours < validClassHours)
if (gmodel.CompleteHours <= validClassHours)
{
keyValues.Add(nameof(RB_Order_Guest.GuestState), 1);
keyValues.Add(nameof(RB_Order_Guest.DropOutRemark), "有效课时大于完成课时,恢复学员状态!");
......
......@@ -24,9 +24,10 @@ namespace Edu.Repository.Course
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon
SELECT A.*,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon,IFNULL(C.ClassName,'') AS ClassName
FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId
LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId
LEFT JOIN rb_class AS C ON A.ClassId=C.ClassId
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
......@@ -815,6 +816,105 @@ WHERE 1=1
}
return flag;
}
/// <summary>
/// 检查班级上课计划是否存在重复,有重复则更新冲突的编号
/// </summary>
/// <param name="ClassId"></param>
/// <param name="result"></param>
public void CheckClassPlanRepeatRepository(int ClassId, out bool result)
{
result = false;
List<TimeItem> timeItemList = new List<TimeItem>();
var newPlanList = GetClassPlanListExtRepository(new RB_Class_Plan_ViewModel()
{
ClassId = ClassId,
StartTime = Common.ConvertHelper.FormatDate(DateTime.Now)
});
foreach (var item in newPlanList)
{
timeItemList.Add(new TimeItem()
{
StartTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + item.StartTime + ":00",
EndTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + item.EndTime + ":00",
});
}
var repeatList = CheckClassPlanRepository(ClassId, timeItemList);
var updatePlanList = new List<RB_Class_Plan_ViewModel>();
foreach (var item in newPlanList)
{
var tempRepeatList = repeatList?.Where(qitem => qitem.ClassDate == item.ClassDate)?.ToList();
List<int> ids = new List<int>();
if (tempRepeatList != null && tempRepeatList.Count > 0)
{
if (item.TeacherId > 0)
{
var teacherList = tempRepeatList?.Where(qitem => qitem.TeacherId == item.TeacherId)?.ToList();
if (teacherList != null && teacherList.Count > 0)
{
var tempIds = Common.ConvertHelper.StringToList(string.Join(",", teacherList.GroupBy(qitem => qitem.ClassPlanId).Select(qitem => qitem.Key)));
if (tempIds != null && tempIds.Count > 0)
{
ids.AddRange(tempIds);
}
}
}
if (item.ClassRoomId > 0)
{
var classroomList = tempRepeatList?.Where(qitem => qitem.ClassRoomId == item.ClassRoomId)?.ToList();
if (classroomList != null && classroomList.Count > 0)
{
var tempIds = Common.ConvertHelper.StringToList(string.Join(",", classroomList.GroupBy(qitem => qitem.ClassPlanId).Select(qitem => qitem.Key)));
if (tempIds != null && tempIds.Count > 0)
{
ids.AddRange(tempIds);
}
}
}
}
string RepeatPlanIds = "";
if (ids != null && ids.Count > 0)
{
RepeatPlanIds = string.Join(",", ids);
if (!result)
{
result = true;
}
}
updatePlanList.Add(new RB_Class_Plan_ViewModel()
{
ClassPlanId = item.ClassPlanId,
RepeatPlanIds = RepeatPlanIds,
});
}
if (updatePlanList != null && updatePlanList.Count > 0)
{
BatchUpdateClassPlanRepository(updatePlanList);
}
}
/// <summary>
/// 批量修改教室或者老师
/// </summary>
/// <param name="TeacherId"></param>
/// <param name="ClassRoomId"></param>
/// <param name="planIds"></param>
/// <returns></returns>
public bool UpdateClassPlanTeacherOrClassRoomIdRepository(int TeacherId, int ClassRoomId, string planIds)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(" UPDATE rb_class_plan SET ");
if (TeacherId > 0)
{
builder.AppendFormat(" TeacherId={0} ", TeacherId);
}
if (ClassRoomId > 0)
{
builder.AppendFormat(" ClassRoomId={0} ", ClassRoomId);
}
builder.AppendFormat(" WHERE ClassPlanId IN({0}) ", planIds);
return base.Execute(builder.ToString()) > 0;
}
#endregion
}
}
......@@ -395,10 +395,8 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult BatchUpdateClassPlan()
{
var ClassId = base.ParmJObj.GetInt("ClassId");
//调动类型(1-课程,2-老师,3-教室,4-取消课程)
//调动类型(1-老师,2-教室,3-时段)
var ChangeType = base.ParmJObj.GetInt("ChangeType");
//调动选项(1-固定日期,2-全局调整)
int MoveType = base.ParmJObj.GetInt("MoveType");
var ClassRoomId = base.ParmJObj.GetInt("ClassRoomId");
var TeacherId = base.ParmJObj.GetInt("TeacherId");
var timeStr = base.ParmJObj.GetStringValue("TimeList");
......@@ -407,17 +405,105 @@ namespace Edu.WebApi.Controllers.Course
{
TimeList = Common.Plugin.JsonHelper.DeserializeObject<List<TimeItem>>(timeStr);
}
if (MoveType == 1)
var planIds = base.ParmJObj.GetStringValue("ClassPlanIdList");
var ClassPlanIdList = new List<int>();
if (!string.IsNullOrEmpty(planIds))
{
ClassPlanIdList = Common.Plugin.JsonHelper.DeserializeObject<List<int>>(planIds);
}
if (ClassPlanIdList == null || (ClassPlanIdList != null && ClassPlanIdList.Count <= 0))
{
return ApiResult.ParamIsNull(message: "请选择要调整的数据!");
}
if (ChangeType == 1 && TeacherId <= 0)
{
return ApiResult.ParamIsNull(message: "请选择教学老师!");
}
if (ChangeType == 2 && ClassRoomId <= 0)
{
return ApiResult.ParamIsNull(message: "请选择上课教室!");
}
if (ChangeType == 3 && (TimeList == null || (TimeList != null && TimeList.Count <= 0)))
{
return ApiResult.ParamIsNull(message: "请选择上课时间段!");
}
bool flag = classModule.BatchUpdateClassPlanModule(ClassId,ChangeType, ClassRoomId, TeacherId, ClassPlanIdList,TimeList, out bool result);
return flag ? ApiResult.Success(data: result) : ApiResult.Failed();
}
/// <summary>
/// 忽略调整上课计划
/// </summary>
/// <returns></returns>
public ApiResult IgnoreClassPlan()
{
var ClassId = base.ParmJObj.GetInt("ClassId");
var flag = classModule.IgnoreClassPlanModule(ClassId, base.UserInfo);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 批量调整上课计划多条数据修改
/// </summary>
public ApiResult UpdateClassPlanSingle()
{
List<RB_Class_Plan_ViewModel> list = new List<RB_Class_Plan_ViewModel>();
var planStr = base.ParmJObj.GetStringValue("PlanList");
if (!string.IsNullOrEmpty(planStr))
{
JArray jArray = JArray.Parse(planStr);
foreach (var jItem in jArray)
{
JObject jobj = JObject.Parse(jItem.ToString());
var extModel = new RB_Class_Plan_ViewModel()
{
ClassPlanId = jobj.GetInt("ClassPlanId"),
ClassId = jobj.GetInt("ClassId"),
ClassDate = jobj.GetDateTime("ClassDate"),
Status = Common.Enum.DateStateEnum.Normal,
ClassRoomId = jobj.GetInt("ClassRoomId"),
TeacherId = jobj.GetInt("TeacherId"),
};
try
{
extModel.PlanTimeList = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Class_Time_ViewModel>>(jobj.GetStringValue("PlanTimeList"));
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "UpdateClassPlanSingle_PlanTimeList");
}
if (extModel.PlanTimeList != null && extModel.PlanTimeList.Count > 0)
{
foreach (var item in extModel.PlanTimeList)
{
string message = "";
if (!Common.ConvertHelper.IsTime(item.StartTime + ":00"))
{
message = "【" + item.StartTime + "】格式不正确!(参考格式为 00:00)";
}
if (!Common.ConvertHelper.IsTime(item.EndTime + ":00"))
{
if (!string.IsNullOrEmpty(message))
{
message += ",";
}
message += "【" + item.EndTime + "】格式不正确!(参考格式为 00:00)";
}
if (!string.IsNullOrEmpty(message))
{
return ApiResult.ParamIsNull(message: message);
}
}
}
list.Add(extModel);
}
}
else
{
if (list == null || (list != null && list.Count <= 0))
{
return ApiResult.ParamIsNull(message: "请选择要调整的上课计划!");
}
bool flag = false;
return flag ? ApiResult.Success(data:false) : ApiResult.Failed();
var flag = classModule.UpdateClassPlanSingleModule(list, base.UserInfo.Id, out bool result);
return flag ? ApiResult.Success(data: result) : ApiResult.Failed();
}
/// <summary>
......@@ -427,8 +513,16 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult GetRepeatClassPlan()
{
var ClassId = base.ParmJObj.GetInt("ClassId");
var classModel = classModule.GetClassModule(ClassId);
var obj = classModule.GetRepeatClassPlanModule(ClassId);
return ApiResult.Success(data: obj);
var data = new
{
ClassId,
classModel?.ClassName,
classModel?.ClassNo,
RepeatList= obj,
};
return ApiResult.Success(data: data);
}
/// <summary>
......@@ -467,8 +561,8 @@ namespace Edu.WebApi.Controllers.Course
{
return ApiResult.ParamIsNull(message: "未找到此班级,请刷新页面重试!");
}
bool flag = classModule.SetClassStatusModule(extModel,out string message);
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
bool flag = classModule.SetClassStatusModule(extModel,out string message, out bool result);
return flag ? ApiResult.Success(message: message, data: result) : ApiResult.Failed(message: message, data: result);
}
/// <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