Commit c23a3c6b authored by 黄奎's avatar 黄奎

新增班级类型

parent e80a6c6f
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Common.Plugin;
using Edu.Common.Plugin;
namespace Edu.Common.Enum.Course
{
public enum CourseClassTypeEnum
{
/// <summary>
/// 一对一外教
/// </summary>
......
......@@ -18,4 +18,28 @@ namespace Edu.Common.Enum.Course
[EnumField("多人")]
OneToMany = 2
}
/// <summary>
/// 班级分类
/// </summary>
public enum ClassCategoryEnum
{
/// <summary>
/// 常规
/// </summary>
[EnumField("常规")]
Normal = 1,
/// <summary>
/// 宣讲
/// </summary>
[EnumField("宣讲")]
Lecture = 2,
/// <summary>
/// 日语角
/// </summary>
[EnumField("日语角")]
JapaneseCorner = 3,
}
}
......@@ -234,5 +234,10 @@ namespace Edu.Model.Entity.Grade
/// 滚动开班月份
/// </summary>
public string ScrollMonth { get; set; }
/// <summary>
/// 班级分类
/// </summary>
public ClassCategoryEnum ClassCategory { get; set; }
}
}
......@@ -406,7 +406,7 @@ namespace Edu.Module.Course
/// <param name="rowsCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Class_Log_ViewModel> GetClassLogPageListRepository(int pageIndex, int pageSize, out long rowsCount, RB_Class_Log_ViewModel query)
public List<RB_Class_Log_ViewModel> GetClassLogPageListModule(int pageIndex, int pageSize, out long rowsCount, RB_Class_Log_ViewModel query)
{
return classLogRepository.GetClassLogPageListRepository(pageIndex, pageSize, out rowsCount, query);
}
......@@ -457,6 +457,7 @@ namespace Edu.Module.Course
{ nameof(RB_Class_ViewModel.CourseClassType),model.CourseClassType},
{ nameof(RB_Class_ViewModel.StudentNumType),model.StudentNumType},
{ nameof(RB_Class_ViewModel.ClassHourMinute),model.ClassHourMinute},
{ nameof(RB_Class_ViewModel.ClassCategory),model.ClassCategory},
};
if (oldModel.OpenTime != model.OpenTime || oldModel.ClassType != model.ClassType || string.IsNullOrEmpty(oldModel.ClassNo))
{
......
......@@ -383,7 +383,8 @@ WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Status), 0);
builder.AppendFormat(" AND A.{0} in(1,2) ", nameof(RB_Class_ViewModel.ClassStatus));
builder.AppendFormat(" AND B.Saleplat<>'' AND B.SaleState=1 AND B.Status=0 ");
//显示的课程
builder.AppendFormat(" AND B.SaleState=1 AND B.Status=0 ");
if (query != null)
{
if (query.Group_Id > 0)
......
using Edu.Common.Enum.System;
using Edu.Common.Plugin;
using Edu.Model.CacheModel;
using Edu.Model.Entity.Grade;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Grade;
using Edu.Model.ViewModel.Scroll;
using Edu.Model.ViewModel.Sell;
using Edu.Model.ViewModel.User;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -966,7 +968,7 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
List<RB_Employee_Extend> empList = new List<RB_Employee_Extend>();
if (list != null && list.Count > 0)
{
string orderGuestIds = string.Join(",", list.Select(qitem => qitem.OrderGuestId).Distinct());
string orderGuestIds = string.Join(",", list.Where(qitem=>qitem.OrderGuestId>0).Select(qitem => qitem.OrderGuestId).Distinct());
if (!string.IsNullOrEmpty(orderGuestIds))
{
guestList = GetOrderGuestListRepository(orderGuestIds);
......@@ -999,7 +1001,7 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
classList = GetClassListRepository(classIds);
}
}
string classLogStr = "";
foreach (var item in list)
{
var guestModel = guestList?.FirstOrDefault(qitem => qitem.Id == item.OrderGuestId) ?? new RB_Order_Guest_Extend();
......@@ -1025,6 +1027,10 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
}
else
{
if (!string.IsNullOrEmpty(guestModel?.GuestName ?? ""))
{
classLogStr += string.Format(",新增{0}签到", guestModel?.GuestName ?? "");
}
item.AttendanceMethod = Common.Enum.User.AttendanceMethodEnum.Offline;
item.CheckRemark = "班课签到";
item.IsCalcTeacFee = 1;
......@@ -1042,62 +1048,35 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
}
if (flag)
{
//更新学员完成课时
var completeHours = guestOldFinishHours + currentDeductionHours;
Dictionary<string, object> orderFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.CompleteHours),completeHours }
};
var orderModel = orderList?.FirstOrDefault(qitem => qitem.OrderId == guestModel.OrderId);
string LogContent = "";
var shenyuHours = guestModel.TotalHours - completeHours;
var classModel = classList?.FirstOrDefault(qitem => qitem.ClassId == guestModel.ClassId);
var sellerInfo = empList?.FirstOrDefault(qitem => qitem.EmployeeId == orderModel.EnterID);
if (shenyuHours > 0 && shenyuHours <= 12)
string LogContent = "";
var orderModel = orderList?.FirstOrDefault(qitem => qitem.OrderId == guestModel.OrderId);
if (orderModel != null && orderModel.OrderId > 0 && guestModel != null && guestModel.Id > 0)
{
var shengyuMoney = orderModel.PreferPrice - orderModel.Income + orderModel.Refund - orderModel.PlatformTax - orderModel.DiscountMoney - orderModel.LessPrice;
#region 即将结课提醒 (销售端)
//更新学员完成课时
Dictionary<string, object> orderFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.CompleteHours),completeHours }
};
var classModel = classList?.FirstOrDefault(qitem => qitem.ClassId == guestModel.ClassId);
var sellerInfo = empList?.FirstOrDefault(qitem => qitem.EmployeeId == orderModel.EnterID);
if (sellerInfo != null && !string.IsNullOrEmpty(sellerInfo?.WorkUserId ?? ""))
if (shenyuHours > 0 && shenyuHours <= 12)
{
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
var path = $"/sale/myOrder?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
var shengyuMoney = orderModel.PreferPrice - orderModel.Income + orderModel.Refund - orderModel.PlatformTax - orderModel.DiscountMoney - orderModel.LessPrice;
string markdownContent = $"`结课预警` 学员即将结课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>剩余课时:<font color='warning'>{shenyuHours}</font>\n>是否续班:<font color='{(orderModel.RenewOrderId > 0 ? "info" : "warning")}'>{(orderModel.RenewOrderId > 0 ? "已续班(" + orderModel.RenewOrderId + ")" : "未续班")}</font>\n>关联单号:{guestModel.OrderId}\n>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Common.Config.ErpUrl}/autologin?loginId={orderModel.EnterID}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
Content = markdownContent,
CoverImg = "",
CreateByName = "系统",
JumpUrl = "",
WorkMsgType = "markdown",
SendTime = DateTime.Now,
SendType = 0,
Title = "学员即将结课通知",
Platform = 5,
ReceiveId = sellerInfo?.WorkUserId
};
pushList.Add(modelWork);
}
#endregion
#region 即将结课提醒 (管理端)
var queryNotifyManager = GetWorkUserIdByDictRepository("Push_EndClass");
if (queryNotifyManager != null && queryNotifyManager.Count > 0)
{
queryNotifyManager.ForEach(x =>
#region 即将结课提醒 (销售端)
if (sellerInfo != null && !string.IsNullOrEmpty(sellerInfo?.WorkUserId ?? ""))
{
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
var path = $"/sale/orderStatistics?OrderId={guestModel.OrderId}";
var path = $"/sale/myOrder?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`结课预警` 学员即将结课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>剩余课时:<font color='warning'>{shenyuHours}</font>\n>是否续班:<font color='{(orderModel.RenewOrderId > 0 ? "info" : "warning")}'>{(orderModel.RenewOrderId > 0 ? "已续班(" + orderModel.RenewOrderId + ")" : "未续班")}</font>\n>关联单号:{guestModel.OrderId} ({sellerInfo?.EmName ?? ""})\n>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Common.Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
string markdownContent = $"`结课预警` 学员即将结课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>剩余课时:<font color='warning'>{shenyuHours}</font>\n>是否续班:<font color='{(orderModel.RenewOrderId > 0 ? "info" : "warning")}'>{(orderModel.RenewOrderId > 0 ? "已续班(" + orderModel.RenewOrderId + ")" : "未续班")}</font>\n>关联单号:{guestModel.OrderId}\n>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Common.Config.ErpUrl}/autologin?loginId={orderModel.EnterID}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
......@@ -1110,52 +1089,52 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
SendType = 0,
Title = "学员即将结课通知",
Platform = 5,
ReceiveId = x.WorkUserId
ReceiveId = sellerInfo?.WorkUserId
};
pushList.Add(modelWork);
});
}
#endregion
}
else if (shenyuHours <= 0)
{
var shengyuMoney = orderModel.PreferPrice - orderModel.Income + orderModel.Refund - orderModel.PlatformTax - orderModel.DiscountMoney - orderModel.LessPrice;
#region 即将结课提醒 (销售端)
if (sellerInfo != null && !string.IsNullOrEmpty(sellerInfo?.WorkUserId ?? ""))
{
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
var path = $"/sale/myOrder?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`结课通知` 学员已结课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>剩余课时:<font color='warning'>{shenyuHours}</font>\n>是否续班:<font color='{(orderModel.RenewOrderId > 0 ? "info" : "warning")}'>{(orderModel.RenewOrderId > 0 ? "已续班(" + orderModel.RenewOrderId + ")" : "未续班")}</font>\n>关联单号:{guestModel.OrderId}\n>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Common.Config.ErpUrl}/autologin?loginId={orderModel.EnterID}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
}
#endregion
#region 即将结课提醒 (管理端)
var queryNotifyManager = GetWorkUserIdByDictRepository("Push_EndClass");
if (queryNotifyManager != null && queryNotifyManager.Count > 0)
{
CategoryId = PushMessageCategoryEnum.SalePeople,
Content = markdownContent,
CoverImg = "",
CreateByName = "系统",
JumpUrl = "",
WorkMsgType = "markdown",
SendTime = DateTime.Now,
SendType = 0,
Title = "学员已结课通知",
Platform = 5,
ReceiveId = sellerInfo?.WorkUserId ?? ""
};
pushList.Add(modelWork);
queryNotifyManager.ForEach(x =>
{
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
var path = $"/sale/orderStatistics?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`结课预警` 学员即将结课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>剩余课时:<font color='warning'>{shenyuHours}</font>\n>是否续班:<font color='{(orderModel.RenewOrderId > 0 ? "info" : "warning")}'>{(orderModel.RenewOrderId > 0 ? "已续班(" + orderModel.RenewOrderId + ")" : "未续班")}</font>\n>关联单号:{guestModel.OrderId} ({sellerInfo?.EmName ?? ""})\n>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Common.Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
Content = markdownContent,
CoverImg = "",
CreateByName = "系统",
JumpUrl = "",
WorkMsgType = "markdown",
SendTime = DateTime.Now,
SendType = 0,
Title = "学员即将结课通知",
Platform = 5,
ReceiveId = x.WorkUserId
};
pushList.Add(modelWork);
});
}
#endregion
}
#endregion
#region 即将结课提醒 (销售端)
var queryNotifyManager = GetWorkUserIdByDictRepository("Push_EndClass");
if (queryNotifyManager != null && queryNotifyManager.Count > 0)
else if (shenyuHours <= 0)
{
queryNotifyManager.ForEach(x =>
var shengyuMoney = orderModel.PreferPrice - orderModel.Income + orderModel.Refund - orderModel.PlatformTax - orderModel.DiscountMoney - orderModel.LessPrice;
#region 即将结课提醒 (销售端)
if (sellerInfo != null && !string.IsNullOrEmpty(sellerInfo?.WorkUserId ?? ""))
{
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
var path = $"/sale/orderStatistics?OrderId={guestModel.OrderId}";
var path = $"/sale/myOrder?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`结课通知` 学员已结课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>剩余课时:<font color='warning'>{shenyuHours}</font>\n>是否续班:<font color='{(orderModel.RenewOrderId > 0 ? "info" : "warning")}'>{(orderModel.RenewOrderId > 0 ? "已续班(" + orderModel.RenewOrderId + ")" : "未续班")}</font>\n>关联单号:{guestModel.OrderId} ({sellerInfo?.EmName ?? ""})\n>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Common.Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
string markdownContent = $"`结课通知` 学员已结课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>剩余课时:<font color='warning'>{shenyuHours}</font>\n>是否续班:<font color='{(orderModel.RenewOrderId > 0 ? "info" : "warning")}'>{(orderModel.RenewOrderId > 0 ? "已续班(" + orderModel.RenewOrderId + ")" : "未续班")}</font>\n>关联单号:{guestModel.OrderId}\n>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Common.Config.ErpUrl}/autologin?loginId={orderModel.EnterID}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
......@@ -1168,68 +1147,95 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
SendType = 0,
Title = "学员已结课通知",
Platform = 5,
ReceiveId = x.WorkUserId
ReceiveId = sellerInfo?.WorkUserId ?? ""
};
pushList.Add(modelWork);
});
}
#endregion
}
}
#endregion
if (item.CheckStatus == 1)
{
#region 通知缺勤信息
#region 即将结课提醒 (销售端)
var queryNotifyManager = GetWorkUserIdByDictRepository("Push_EndClass");
if (queryNotifyManager != null && queryNotifyManager.Count > 0)
{
queryNotifyManager.ForEach(x =>
{
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
var path = $"/sale/orderStatistics?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`结课通知` 学员已结课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>剩余课时:<font color='warning'>{shenyuHours}</font>\n>是否续班:<font color='{(orderModel.RenewOrderId > 0 ? "info" : "warning")}'>{(orderModel.RenewOrderId > 0 ? "已续班(" + orderModel.RenewOrderId + ")" : "未续班")}</font>\n>关联单号:{guestModel.OrderId} ({sellerInfo?.EmName ?? ""})\n>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Common.Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
Content = markdownContent,
CoverImg = "",
CreateByName = "系统",
JumpUrl = "",
WorkMsgType = "markdown",
SendTime = DateTime.Now,
SendType = 0,
Title = "学员已结课通知",
Platform = 5,
ReceiveId = x.WorkUserId
};
pushList.Add(modelWork);
});
}
#endregion
}
var queryNotifyManager = GetWorkUserIdByDictRepository("Push_Absence");
if (queryNotifyManager != null && queryNotifyManager.Count > 0)
if (item.CheckStatus == 1)
{
queryNotifyManager.ForEach(x =>
#region 通知缺勤信息
var queryNotifyManager = GetWorkUserIdByDictRepository("Push_Absence");
if (queryNotifyManager != null && queryNotifyManager.Count > 0)
{
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
var path = $"/stuMan/studentManage?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`缺勤通知` 学员缺勤信息告知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>缺勤时间:<font color='warning'>{Common.ConvertHelper.FormatDate(item.ClassDate)}</font>\n>关联单号:{guestModel.OrderId}\n>班级名称:<font>{classModel?.ClassName ?? ""}</font>\n>请点击:[查看详情]({Common.Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
queryNotifyManager.ForEach(x =>
{
CategoryId = PushMessageCategoryEnum.SalePeople,
Content = markdownContent,
CoverImg = "",
CreateByName = "系统",
JumpUrl = "",
WorkMsgType = "markdown",
SendTime = DateTime.Now,
SendType = 0,
Title = "学员缺勤通知",
Platform = 5,
ReceiveId = x.WorkUserId
};
pushList.Add(modelWork);
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
var path = $"/stuMan/studentManage?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`缺勤通知` 学员缺勤信息告知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>缺勤时间:<font color='warning'>{Common.ConvertHelper.FormatDate(item.ClassDate)}</font>\n>关联单号:{guestModel.OrderId}\n>班级名称:<font>{classModel?.ClassName ?? ""}</font>\n>请点击:[查看详情]({Common.Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
Content = markdownContent,
CoverImg = "",
CreateByName = "系统",
JumpUrl = "",
WorkMsgType = "markdown",
SendTime = DateTime.Now,
SendType = 0,
Title = "学员缺勤通知",
Platform = 5,
ReceiveId = x.WorkUserId
};
pushList.Add(modelWork);
});
}
});
}
#endregion
}
DynamicParameters guestParamters = new DynamicParameters();
string guestSql = "UPDATE RB_Order_Guest SET ";
int guestIndex = 0;
foreach (var gItem in orderFileds)
{
if (guestIndex > 0)
#endregion
}
DynamicParameters guestParamters = new DynamicParameters();
string guestSql = "UPDATE RB_Order_Guest SET ";
int guestIndex = 0;
foreach (var gItem in orderFileds)
{
guestSql += ",";
if (guestIndex > 0)
{
guestSql += ",";
}
guestSql += string.Format("{0}=@{0} ", gItem.Key);
guestParamters.Add(string.Format("@{0}", gItem.Key), gItem.Value);
guestIndex++;
}
guestSql += string.Format("{0}=@{0} ", gItem.Key);
guestParamters.Add(string.Format("@{0}", gItem.Key), gItem.Value);
guestIndex++;
}
guestSql += string.Format(" WHERE 1=1 AND Id=@Id ");
guestParamters.Add("@Id", item.OrderGuestId);
flag = base.Execute(guestSql, guestParamters) > 0;
guestSql += string.Format(" WHERE 1=1 AND Id=@Id ");
guestParamters.Add("@Id", item.OrderGuestId);
flag = base.Execute(guestSql, guestParamters) > 0;
}
if (flag && !string.IsNullOrEmpty(LogContent))
{
AddUserChangeLogRepository(new Model.Entity.Log.RB_User_ChangeLog()
......@@ -1335,6 +1341,20 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
new Common.Message.MessageHelper().SendMessage(pushList);
}
if (flag && !string.IsNullOrEmpty(classLogStr))
{
AddClassLogRepository(new Model.Entity.Log.RB_Class_Log()
{
LogType = Common.Enum.Course.ClassLogTypeEnum.Class,
LogContent = classLogStr,
ClassId = list.FirstOrDefault().ClassId,
CreateBy = list.FirstOrDefault().CreateBy,
CreateTime= DateTime.Now,
Group_Id = list.FirstOrDefault().Group_Id,
School_Id = list.FirstOrDefault().School_Id,
});
}
return flag;
}
......@@ -1530,6 +1550,18 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
return flag;
}
/// <summary>
/// 添加班级日志
/// </summary>
/// <param name="model"></param>
private void AddClassLogRepository(Model.Entity.Log.RB_Class_Log model)
{
string sql = " INSERT INTO RB_Class_Log(LogType,LogContent,ClassId,CreateBy,CreateTime,Group_Id,School_Id) ";
sql += " VALUES(@LogType,@LogContent,@ClassId,@CreateBy,@CreateTime,@Group_Id,@School_Id) ";
base.Execute(sql, model);
}
/// <summary>
/// 新增日志
/// </summary>
......
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.Entity.Grade;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Grade;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
......
......@@ -22,6 +22,7 @@ using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Spire.Pdf.Exporting.XPS.Schema;
namespace Edu.WebApi.Controllers.Course
{
......@@ -102,6 +103,8 @@ namespace Edu.WebApi.Controllers.Course
item.TotalPlanNum,
item.CourseSubject,
item.CourseSubjectName,
item.ClassCategory,
ClassCategoryName = item.ClassCategory.ToName(),
});
}
pageModel.Count = rowsCount;
......@@ -244,6 +247,7 @@ namespace Edu.WebApi.Controllers.Course
CourseClassType = (CourseClassTypeEnum)base.ParmJObj.GetInt("CourseClassType"),
StudentNumType = (StudentNumTypeEnum)base.ParmJObj.GetInt("StudentNumType"),
ClassHourMinute = base.ParmJObj.GetInt("ClassHourMinute"),
ClassCategory=(ClassCategoryEnum)base.ParmJObj.GetInt("ClassCategory"),
};
extModel.ClassDateList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(base.ParmJObj.GetStringValue("ClassDateList"));
......@@ -672,6 +676,7 @@ namespace Edu.WebApi.Controllers.Course
ClassDateList = extModel?.ClassDateList ?? new List<string>(),
TotalPlanNum = extModel?.TotalPlanNum ?? 0,
UsePlanNum = extModel?.UsePlanNum ?? 0,
ClassCategory= extModel?.ClassCategory??0,
};
return ApiResult.Success(data: obj);
}
......@@ -1296,6 +1301,70 @@ namespace Edu.WebApi.Controllers.Course
return result ? ApiResult.Success(message: "check_success") : ApiResult.Failed("签到失败");
}
/// <summary>
/// 讲座和日语角签到
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult AddClassCheckOtherType()
{
int ClassId = base.ParmJObj.GetInt("ClassId");
int ClassPlanId = base.ParmJObj.GetInt("ClassPlanId");
int ClassTimeId = base.ParmJObj.GetInt("ClassTimeId");
if (ClassId <= 0 || ClassPlanId <= 0 || ClassTimeId <= 0)
{
return ApiResult.ParamIsNull(message: "参数不能为空!");
}
var userInfo = base.UserInfo;
var planModel = classModule.GetClassPlanListModule(new RB_Class_Plan_ViewModel() { ClassPlanId = ClassPlanId }).FirstOrDefault();
//判断当天是否有已签到数据
var checkLogList = classModule.GetClassCheckList(new RB_Class_Check_ViewModel
{
Group_Id = userInfo.Group_Id,
ClassId = ClassId,
ClassTimeId = ClassTimeId,
StartDate = planModel.ClassDate.ToString("yyyy-MM-dd HH:mm:ss"),
EndDate = planModel.ClassDate.ToString("yyyy-MM-dd HH:mm:ss"),
});
var classTime = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel() { ClassId = ClassId, ClassPlanId = ClassPlanId, ClassTimeId = ClassTimeId })?.FirstOrDefault();
List<RB_Class_Check_ViewModel> list = new List<RB_Class_Check_ViewModel>();
list.Add(new RB_Class_Check_ViewModel()
{
CheckStatus = 0,
ClassDate = planModel.ClassDate,
ClassRoomId = planModel.ClassRoomId,
OrderGuestId = 0,
School_Id = 0,
StudyNum = (classTime?.TimeMinute ?? 0),
TeacherId = planModel.TeacherId,
ClassId = ClassId,
ClassTimeId = ClassTimeId,
StuId = 0
});
foreach (var item in list)
{
var signModel = checkLogList?.Where(qitem => qitem.ClassDate.ToString("yyyy-MM-dd") == item.ClassDate.ToString("yyyy-MM-dd") && qitem.ClassId == item.ClassId
&& qitem.ClassTimeId == item.ClassTimeId)?.FirstOrDefault();
if (signModel != null && signModel.ClassCheckId > 0)
{
item.ClassCheckId = signModel.ClassCheckId;
item.Group_Id = signModel.Group_Id;
item.CreateTime = signModel.CreateTime;
item.CreateBy = userInfo.Id;
item.Status = 0;
}
else
{
item.Group_Id = userInfo.Group_Id;
item.CreateTime = System.DateTime.Now;
item.CreateBy = userInfo.Id;
item.Status = 0;
}
}
bool result = classModule.AddClassCheckModule(list).Result;
return result ? ApiResult.Success() : ApiResult.Failed("签到失败");
}
///// <summary>
///// 视频转码回调
///// </summary>
......@@ -1502,7 +1571,7 @@ namespace Edu.WebApi.Controllers.Course
ClassId = base.ParmJObj.GetInt("ClassId"),
};
query.Group_Id = base.UserInfo.Group_Id;
var list = classModule.GetClassLogPageListRepository(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
var list = classModule.GetClassLogPageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list)
{
if (item.CreateBy > 0)
......@@ -1555,6 +1624,25 @@ namespace Edu.WebApi.Controllers.Course
}
return ApiResult.Success(data: list.OrderBy(qitem => qitem.Id));
}
/// <summary>
/// 获取班级分类枚举列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetClassCategoryList()
{
var list = Common.Plugin.EnumHelper.EnumToList(typeof(ClassCategoryEnum));
if (list != null)
{
list.Insert(0, new EnumItem()
{
Id = 0,
Name = "不限"
});
}
return ApiResult.Success(data: list.OrderBy(qitem => qitem.Id));
}
#endregion
#region 老师教案
......
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