Commit 1257b2e8 authored by 黄奎's avatar 黄奎

页面修改

parent c04d9a6b
......@@ -69,5 +69,10 @@ namespace Edu.Model.Entity.Exam
/// 学生选项内容
/// </summary>
public string StudentContent { get; set; }
/// <summary>
/// 问题分组编号(关联rb_examination_group表中的GId)
/// </summary>
public int StuPaperGroupId { get; set; }
}
}
......@@ -37,14 +37,14 @@ namespace Edu.Model.ViewModel.Exam
public string StundetAnswer { get; set; }
/// <summary>
/// 学生答案详情id
/// 学生答案详情id(关联RB_Examination_StudentDetails表中的Id)
/// </summary>
public int StundetDetailsId { get; set; }
/// <summary>
/// 学生得分
/// 题目类型分组编号(关联rb_examination_group表中的GId)
/// </summary>
public decimal StundetScore { get; set; }
public int StuPaperGroupId { get; set; }
/// <summary>
/// 知识点
......
......@@ -2025,7 +2025,7 @@ namespace Edu.Module.Course
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
var path = $"/sale/myOrder?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`停课通知` 学员欠费停课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>当前状态:<font color='warning'>停课</font>\n>关联单号:{guestModel.OrderId}\n>\n>待收金额:<font color='warning'>¥{shengyuMoney.ToString("0.00")}</font>\n>停课理由:费用不足,系统自动触发停课限制\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={orderModel.EnterID}&target={path})";
string markdownContent = $"`停课通知` 学员欠费停课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>当前状态:<font color='warning'>停课</font>\n>关联单号:{guestModel.OrderId}\n>\n>待收金额:<font color='warning'>¥{shengyuMoney:0.00}</font>\n>停课理由:费用不足,系统自动触发停课限制\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={orderModel.EnterID}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
......@@ -2054,7 +2054,7 @@ namespace Edu.Module.Course
var path = $"/sale/orderStatistics?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`停课通知` 学员欠费停课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>当前状态:<font color='warning'>停课</font>\n>关联单号:{guestModel.OrderId}({sellerInfo.AccountName})\n>\n>待收金额:<font color='warning'>¥{shengyuMoney.ToString("0.00")}</font>\n>停课理由:费用不足,系统自动触发停课限制\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
string markdownContent = $"`停课通知` 学员欠费停课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>当前状态:<font color='warning'>停课</font>\n>关联单号:{guestModel.OrderId}({sellerInfo.AccountName})\n>\n>待收金额:<font color='warning'>¥{shengyuMoney:0.00}</font>\n>停课理由:费用不足,系统自动触发停课限制\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
......@@ -2087,7 +2087,7 @@ namespace Edu.Module.Course
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
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>关联单号:{guestModel.OrderId}\n>\n>待收金额:<font color='warning'>¥{shengyuMoney.ToString("0.00")}</font>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={orderModel.EnterID}&target={path})";
string markdownContent = $"`欠费预警` 学员即将欠费通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>剩余课时:<font color='warning'>{shenyuHours}</font>\n>关联单号:{guestModel.OrderId}\n>\n>待收金额:<font color='warning'>¥{shengyuMoney:0.00}</font>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={orderModel.EnterID}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
......@@ -2115,7 +2115,7 @@ namespace Edu.Module.Course
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>关联单号:{guestModel.OrderId}({sellerInfo.AccountName})\n>\n>待收金额:<font color='warning'>¥{shengyuMoney.ToString("0.00")}</font>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
string markdownContent = $"`欠费预警` 学员即将欠费通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>剩余课时:<font color='warning'>{shenyuHours}</font>\n>关联单号:{guestModel.OrderId}({sellerInfo.AccountName})\n>\n>待收金额:<font color='warning'>¥{shengyuMoney:0.00}</font>\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
......@@ -2418,7 +2418,7 @@ namespace Edu.Module.Course
// 学员名称(名称+电话),剩余课时,关联单号,待收金额,班级老师,班级名称
var path = $"/sale/myOrder?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`停课通知` 学员欠费停课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>当前状态:<font color='warning'>停课</font>\n>关联单号:{guestModel.OrderId}\n>\n>待收金额:<font color='warning'>¥{shengyuMoney.ToString("0.00")}</font>\n>停课理由:连续缺课超过{Config.AbsentHours}课时,系统自动停课\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={orderModel.EnterID}&target={path})";
string markdownContent = $"`停课通知` 学员欠费停课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>当前状态:<font color='warning'>停课</font>\n>关联单号:{guestModel.OrderId}\n>\n>待收金额:<font color='warning'>¥{shengyuMoney:0.00}</font>\n>停课理由:连续缺课超过{Config.AbsentHours}课时,系统自动停课\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={orderModel.EnterID}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
......@@ -2447,7 +2447,7 @@ namespace Edu.Module.Course
var path = $"/sale/orderStatistics?OrderId={guestModel.OrderId}";
path = HttpUtility.UrlEncode(path);
string markdownContent = $"`停课通知` 学员欠费停课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>当前状态:<font color='warning'>停课</font>\n>关联单号:{guestModel.OrderId}({sellerInfo.AccountName})\n>\n>待收金额:<font color='warning'>¥{shengyuMoney.ToString("0.00")}</font>\n>停课理由:连续缺课超过{Config.AbsentHours}课时,系统自动停课\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
string markdownContent = $"`停课通知` 学员欠费停课通知\n>**概要信息** \n>学员名称:{guestModel.GuestName}({guestModel.Mobile})\n>当前状态:<font color='warning'>停课</font>\n>关联单号:{guestModel.OrderId}({sellerInfo.AccountName})\n>\n>待收金额:<font color='warning'>¥{shengyuMoney:0.00}</font>\n>停课理由:连续缺课超过{Config.AbsentHours}课时,系统自动停课\n>班级名称:<font>{classModel.ClassName}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
......@@ -2915,7 +2915,7 @@ namespace Edu.Module.Course
{
notifyObjs.ForEach(x =>
{
var content = $"<font color='info'>修改备课通知</font> 有老师对备课内容进行了修改调整\n>**概要信息** \n>备课老师:<font color='comment'>{user.AccountName}</font>\n>备课标题:<font color='comment'>{item.LessonPlan}(第{item.CourseNum}课)</font>\n>目标班级:<font color='comment'>{classInfo.ClassName}</font> \n>上课日期:<font color='warning'>{item.ClassDate.Value.ToString("yyyy年MM月dd日")}</font>\n>请点击:[查看备课内容]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
string content = $"<font color='info'>修改备课通知</font> 有老师对备课内容进行了修改调整\n>**概要信息** \n>备课老师:<font color='comment'>{user.AccountName}</font>\n>备课标题:<font color='comment'>{item.LessonPlan}(第{item.CourseNum}课)</font>\n>目标班级:<font color='comment'>{classInfo.ClassName}</font> \n>上课日期:<font color='warning'>{item.ClassDate.Value:yyyyMMdd}</font>\n>请点击:[查看备课内容]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, x.WorkUserId, "修改备课通知");
});
}
......@@ -2935,7 +2935,7 @@ namespace Edu.Module.Course
{
notifyObjs.ForEach(x =>
{
var content = $"<font color='info'>备课通知</font> 有老师完成了备课工作\n>**概要信息** \n>备课老师:<font color='comment'>{user.AccountName}</font>\n>备课标题:<font color='comment'>{item.LessonPlan}(第{item.CourseNum}课)</font>\n>目标班级:<font color='comment'>{classInfo.ClassName}</font> \n>上课日期:<font color='warning'>{item.ClassDate.Value.ToString("yyyy年MM月dd日")}</font>\n>请点击:[查看备课内容]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
var content = $"<font color='info'>备课通知</font> 有老师完成了备课工作\n>**概要信息** \n>备课老师:<font color='comment'>{user.AccountName}</font>\n>备课标题:<font color='comment'>{item.LessonPlan}(第{item.CourseNum}课)</font>\n>目标班级:<font color='comment'>{classInfo.ClassName}</font> \n>上课日期:<font color='warning'>{item.ClassDate.Value:yyyyMMdd}</font>\n>请点击:[查看备课内容]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, x.WorkUserId, "新增备课通知");
});
}
......@@ -3046,7 +3046,7 @@ namespace Edu.Module.Course
{
notifyObjs.ForEach(x =>
{
var content = $"<font color='info'>课后反馈通知</font> 有老师完成了课后反馈工作\n>**概要信息** \n>反馈老师:<font color='comment'>{user.AccountName}</font>\n>备课标题:<font color='comment'>{item.LessonPlan}(第{item.CourseNum}课)</font>\n>目标班级:<font color='comment'>{classInfo.ClassName}</font> \n>上课日期:<font color='warning'>{item.ClassDate.Value.ToString("yyyy年MM月dd日")}</font>\n>请点击:[查看反馈内容]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
var content = $"<font color='info'>课后反馈通知</font> 有老师完成了课后反馈工作\n>**概要信息** \n>反馈老师:<font color='comment'>{user.AccountName}</font>\n>备课标题:<font color='comment'>{item.LessonPlan}(第{item.CourseNum}课)</font>\n>目标班级:<font color='comment'>{classInfo.ClassName}</font> \n>上课日期:<font color='warning'>{item.ClassDate.Value:yyyyMMdd}</font>\n>请点击:[查看反馈内容]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, x.WorkUserId, "课后反馈通知");
});
}
......
......@@ -558,7 +558,7 @@ namespace Edu.Module.Course
notifyList.ForEach(x =>
{
var recipientPath = HttpUtility.UrlEncode($"/sale/contractAudit?no={model.ContractNo}");
var content = $"合同通知 你收到了一份需要审批的合同\n>**概要信息** \n>申 领 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money.ToString("C")}</font>\n>请点击:[查看合同详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
var content = $"合同通知 你收到了一份需要审批的合同\n>**概要信息** \n>申 领 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money:C}</font>\n>请点击:[查看合同详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, x.WorkUserId, "合同审批通知");
});
}
......@@ -569,7 +569,7 @@ namespace Edu.Module.Course
if (notifyObj != null && !string.IsNullOrEmpty(notifyObj.WorkUserId))
{
var recipientPath = HttpUtility.UrlEncode($"/sale/contractManage?no={model.ContractNo}");
var content = $"{((state == 2 || state == 6) ? "<font color='info'>合同审核通过</font>" : "`合同审核驳回`")} 你收到了一份合同审批结果通知\n>**概要信息** \n>审 批 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money.ToString("C")}</font>\n>请点击:[查看合同]({Config.ErpUrl}/autologin?loginId={notifyObj.Id}&target={recipientPath})";
var content = $"{((state == 2 || state == 6) ? "<font color='info'>合同审核通过</font>" : "`合同审核驳回`")} 你收到了一份合同审批结果通知\n>**概要信息** \n>审 批 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money:C}</font>\n>请点击:[查看合同]({Config.ErpUrl}/autologin?loginId={notifyObj.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, notifyObj.WorkUserId, "合同审批通知");
}
}
......@@ -579,7 +579,7 @@ namespace Edu.Module.Course
if (notifyObj != null && !string.IsNullOrEmpty(notifyObj.WorkUserId))
{
var recipientPath = HttpUtility.UrlEncode($"/sale/contractManage?no={model.ContractNo}");
var content = $"<font color='info'>合同已盖章</font> 你收到了一份合同加盖公章通知\n>**概要信息** \n>盖 章 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money.ToString("C")}</font>\n>请点击:[查看合同]({Config.ErpUrl}/autologin?loginId={notifyObj.Id}&target={recipientPath})";
var content = $"<font color='info'>合同已盖章</font> 你收到了一份合同加盖公章通知\n>**概要信息** \n>盖 章 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money:C}</font>\n>请点击:[查看合同]({Config.ErpUrl}/autologin?loginId={notifyObj.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, notifyObj.WorkUserId, "合同审批通知");
}
}
......@@ -636,7 +636,7 @@ namespace Edu.Module.Course
notifyList.ForEach(x =>
{
var recipientPath = HttpUtility.UrlEncode($"/sale/contractAudit?no={model.ContractNo}");
var content = $"合同通知 你收到了一份需要审批的合同\n>**概要信息** \n>申 领 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money.ToString("C")}</font>\n>请点击:[查看合同详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
var content = $"合同通知 你收到了一份需要审批的合同\n>**概要信息** \n>申 领 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money:C}</font>\n>请点击:[查看合同详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, x.WorkUserId, "合同审批通知");
});
}
......@@ -647,7 +647,7 @@ namespace Edu.Module.Course
if (notifyObj != null && !string.IsNullOrEmpty(notifyObj.WorkUserId))
{
var recipientPath = HttpUtility.UrlEncode($"/sale/contractManage?no={model.ContractNo}");
var content = $"{((state == 2||state==6) ? "<font color='info'>合同审核通过</font>" : "`合同审核驳回`")} 你收到了一份合同审批结果通知\n>**概要信息** \n>审 批 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money.ToString("C")}</font>\n>请点击:[查看合同]({Config.ErpUrl}/autologin?loginId={notifyObj.Id}&target={recipientPath})";
var content = $"{((state == 2||state==6) ? "<font color='info'>合同审核通过</font>" : "`合同审核驳回`")} 你收到了一份合同审批结果通知\n>**概要信息** \n>审 批 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money:C}</font>\n>请点击:[查看合同]({Config.ErpUrl}/autologin?loginId={notifyObj.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, notifyObj.WorkUserId, "合同审批通知");
}
}
......@@ -657,7 +657,7 @@ namespace Edu.Module.Course
if (notifyObj != null && !string.IsNullOrEmpty(notifyObj.WorkUserId))
{
var recipientPath = HttpUtility.UrlEncode($"/sale/contractManage?no={model.ContractNo}");
var content = $"<font color='info'>合同已盖章</font> 你收到了一份合同加盖公章通知\n>**概要信息** \n>盖 章 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money.ToString("C")}</font>\n>请点击:[查看合同]({Config.ErpUrl}/autologin?loginId={notifyObj.Id}&target={recipientPath})";
var content = $"<font color='info'>合同已盖章</font> 你收到了一份合同加盖公章通知\n>**概要信息** \n>盖 章 人:<font color='comment'>{userInfo.AccountName}</font>\n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money:C}</font>\n>请点击:[查看合同]({Config.ErpUrl}/autologin?loginId={notifyObj.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, notifyObj.WorkUserId, "合同审批通知");
}
}
......@@ -685,7 +685,7 @@ namespace Edu.Module.Course
if (notifyObj != null && !string.IsNullOrEmpty(notifyObj.WorkUserId))
{
var recipientPath = HttpUtility.UrlEncode($"/sale/contractManage?no={model.ContractNo}");
var content = $"<font color='info'>合同签字确认</font> 你的一份合同用户已签字确认\n>**概要信息** \n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money.ToString("C")}</font>\n>请点击:[查看合同]({Config.ErpUrl}/autologin?loginId={notifyObj.Id}&target={recipientPath})";
var content = $"<font color='info'>合同签字确认</font> 你的一份合同用户已签字确认\n>**概要信息** \n>合同编号:<font color='comment'>{model.ContractNo}</font>\n>合同类型:<font color='warning'>{EnumHelper.ToName(model.CType)}合同</font> \n>订单编号:<font color='comment'>{model.OrderId}</font>\n>合同金额:<font color='info'>{model.Money:C}</font>\n>请点击:[查看合同]({Config.ErpUrl}/autologin?loginId={notifyObj.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, notifyObj.WorkUserId, "合同审批通知");
}
return education_ContractRepository.Update(keyValues, new WhereHelper(nameof(RB_Education_Contract_ViewModel.Id), contractId));
......
......@@ -1248,24 +1248,25 @@ namespace Edu.Module.Exam
//学生答题详问题列表
if (studentDetailsList != null && studentDetailsList.Count > 0)
{
foreach (var sItem in gItem.DetailsList)
var stuTempList = studentDetailsList.Where(qitem => qitem.StuPaperGroupId == gItem.GId);
foreach (var sItem in stuTempList)
{
var tempModel = studentDetailsList.Where(qitem => qitem.DetailsId == sItem.Id)?.FirstOrDefault();
var QuestionContentObj = analysisQuestion.ParsingQuestion(sItem.QuestionTypeKey, tempModel.StudentContent);
var questionModel = gItem.DetailsList.Where(qitem => qitem.Id == sItem.DetailsId)?.FirstOrDefault();
var QuestionContentObj = analysisQuestion.ParsingQuestion(questionModel.QuestionTypeKey, sItem.StudentContent,isEdit:true);
var qObj = new
{
PaperDetailsId= sItem.Id,//试卷问题编号
StundetDetailsId = tempModel.Id,//考生答题编号
PaperDetailsId= sItem.DetailsId,//试卷问题编号
StundetDetailsId = sItem.Id,//考生答题编号
sItem.PaperId,
sItem.Title,
sItem.ShowTitle,
questionModel.Title,
questionModel.ShowTitle,
QuestionContentObj,
sItem.QuestionTypeId,
sItem.QuestionTypeKey,
sItem.DifficultyType,
sItem.Score,
Answer =tempModel.StundetAnswer,
tempModel.StundetAnswer,
questionModel.QuestionTypeId,
questionModel.QuestionTypeKey,
questionModel.DifficultyType,
questionModel.Score,
Answer =sItem.StundetAnswer,
sItem.StundetAnswer,
AnswerParse = "",
StundetScore = 0,
};
......@@ -1384,6 +1385,7 @@ namespace Edu.Module.Exam
StundetScore = 0,
IsMarking = 0,
StudentContent = item.QuestionContent,
StuPaperGroupId=item.StuPaperGroupId,
};
if (model.Id > 0)
{
......
......@@ -15,7 +15,7 @@ namespace Edu.Module.Question
/// 字母选项数组
/// </summary>
private static readonly string [] LetterArray= new string[26] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
/// <summary>
/// 问题解析
/// </summary>
......@@ -23,19 +23,20 @@ namespace Edu.Module.Question
/// <param name="data">选项内容</param>
/// <param name="isNoAnswer">是否去掉答案</param>
/// <param name="isOptionRandom">是否选项随机(1-随机选项)</param>
/// <param name="isEdit">是否选项随机(编辑状态)</param>
/// <returns></returns>
public object ParsingQuestion(string key, string data,bool isNoAnswer=false,int isOptionRandom=0)
public object ParsingQuestion(string key, string data,bool isNoAnswer=false,int isOptionRandom=0,bool isEdit=false)
{
var obj = new object();
switch (key)
{
//单选题
case "single":
obj = GetChooseOptionList(data, isOptionRandom, isNoAnswer);
obj = GetChooseOptionList(data, isOptionRandom, isNoAnswer, isEdit: isEdit);
break;
//多选题
case "multiple":
obj= GetChooseOptionList(data, isOptionRandom, isNoAnswer);
obj= GetChooseOptionList(data, isOptionRandom, isNoAnswer, isEdit: isEdit);
break;
//填空题
case "fill-in":
......@@ -171,7 +172,7 @@ namespace Edu.Module.Question
break;
//单选题(数字)
case "single-number":
obj = GetChooseOptionList(data, isOptionRandom, isNoAnswer,isSingleNum:true);
obj = GetChooseOptionList(data, isOptionRandom, isNoAnswer,isSingleNum:true,isEdit:isEdit);
break;
}
return obj;
......@@ -184,15 +185,18 @@ namespace Edu.Module.Question
/// <param name="isOptionRandom"></param>
/// <param name="isNoAnswer"></param>
/// <returns></returns>
private object GetChooseOptionList(string data,int isOptionRandom,bool isNoAnswer,bool isSingleNum=false)
private object GetChooseOptionList(string data,int isOptionRandom,bool isNoAnswer,bool isSingleNum=false,bool isEdit=false)
{
var obj = new object();
var singleList = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(data);
var newList = new List<optionItem>();
singleList.ForEach(item =>
if (!isEdit)
{
item.ShowName = item.Name;
});
singleList.ForEach(item =>
{
item.ShowName = item.Name;
});
}
//选项随机
if (isOptionRandom == 1)
{
......
......@@ -608,6 +608,7 @@ namespace Edu.WebApi.Controllers.Applet
StundetDetailsId = sObj.GetInt("StundetDetailsId"),
LevelType = (LevelTypeEnum)sObj.GetInt("LevelType"),
Answer=sObj.GetStringValue("Answer"),
StuPaperGroupId= jobj.GetInt("GId"),
};
paperDetailsList.Add(detailModel);
}
......
......@@ -100,7 +100,7 @@ namespace Edu.WebApi.Timers
finishGuest = new System.Timers.Timer()
{
Interval = (1000 * 60) * (60 * 23) //23小时执行一次
Interval = (1000 * 60) * (60 * 2) //2小时执行一次
};
finishGuest.Elapsed += new System.Timers.ElapsedEventHandler(DealGuestFinish);
finishGuest.Enabled = true;
......
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