Commit 62317a6f authored by 罗超's avatar 罗超

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

parents dfe5e88c edba8fbe
......@@ -436,6 +436,43 @@ namespace Edu.Common
return OrderSplitClassFlowId;
}
}
/// <summary>
/// 学生请假流程编号
/// </summary>
public static int StudentLeaveFlowId
{
get
{
int.TryParse(ReadConfigKey("StudentLeaveFlowId"), out int StudentLeaveFlowId);
return StudentLeaveFlowId;
}
}
/// <summary>
/// 组卷审批流程编号
/// </summary>
public static int ZuJuanFlowId
{
get
{
int.TryParse(ReadConfigKey("ZuJuanFlowId"), out int ZuJuanFlowId);
return ZuJuanFlowId;
}
}
/// <summary>
/// 考试申请流程编号
/// </summary>
public static int ExamApplyFlowId
{
get
{
int.TryParse(ReadConfigKey("ExamApplyFlowId"), out int ExamApplyFlowId);
return ExamApplyFlowId;
}
}
/// <summary>
......
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Common.Plugin;
namespace Edu.Common.Enum.Exam
{
/// <summary>
/// 考试单据审核流程
/// </summary>
public enum ExamineStatusEnum
{
/// <summary>
/// 未审核
/// </summary>
[EnumField("未审核")]
NotAudit = 0,
/// <summary>
/// 审核中
/// </summary>
[EnumField("审核中")]
AuditIng = 1,
/// <summary>
/// 通过
/// </summary>
[EnumField("审核通过")]
AuditThrough = 2,
/// <summary>
/// 不通过
/// </summary>
[EnumField("审核不通过")]
AuditNotThrough = 3,
/// <summary>
/// 驳回
/// </summary>
[EnumField("驳回")]
Rejected = 4,
/// <summary>
/// 作废
/// </summary>
[EnumField("作废")]
Invalid = 5,
}
}
......@@ -43,5 +43,20 @@ namespace Edu.Common.Enum.Finance
/// </summary>
[EnumField("订单分拆")]
OrderSplitClass = 6,
/// <summary>
/// 学生请假
/// </summary>
[EnumField("学生请假")]
LeaveClass = 7,
/// <summary>
/// 组卷审批
/// </summary>
[EnumField("组卷审批")]
ZuJuan = 8,
/// <summary>
/// 考试申请
/// </summary>
[EnumField("考试申请")]
ExamApply = 9
}
}
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.EduTask
{
/// <summary>
/// 学生请假申请实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Student_Leave
{
/// <summary>
/// 主键(请假编号)
/// </summary>
public int Id { get; set; }
/// <summary>
/// 请假类型 1-事假,2-病假
/// </summary>
public int LeaveType { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public int ClassId { get; set; }
/// <summary>
/// 课程编号
/// </summary>
public int CourseId { get; set; }
/// <summary>
/// 计划时间id
/// </summary>
public string ClassTimeIds { get; set; }
/// <summary>
/// 学生id
/// </summary>
public int OrderGuestId { get; set; }
/// <summary>
/// 请假信息
/// </summary>
public string LeaveInfo { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 申请备注
/// </summary>
public string Remarks { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Common.Enum;
using VT.FW.DB;
namespace Edu.Model.Entity.Exam
{
/// <summary>
/// 试卷考试配置
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Examination_Configure
{
/// <summary>
/// 试卷考试配置编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 是否开启组卷审批 0-否,1-是
/// </summary>
public int IsOpenZuJuan { get; set; }
/// <summary>
/// 组卷审核人
/// </summary>
public int ZuJuanReviewer { get; set; }
/// <summary>
/// 是否开启考试申请 0-否,1-是
/// </summary>
public int IsOpenExamApply { get; set; }
/// <summary>
/// 考试申请审核人
/// </summary>
public int ExamApplyReviewer { get; set; }
/// <summary>
/// 是否开启自动阅卷 0-否,1-是
/// </summary>
public int IsOpenAutoMarking { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public DateStateEnum Status { get; set; }
}
}
......@@ -41,5 +41,10 @@ namespace Edu.Model.Entity.Exam
/// 排序
/// </summary>
public int GSortNum { get; set; }
/// <summary>
/// 分数
/// </summary>
public decimal GScore { get; set; }
}
}
......@@ -13,74 +13,86 @@ namespace Edu.Model.Entity.Exam
[DB(ConnectionName = "DefaultConnection")]
public class RB_Examination_Paper
{
/// <summary>
/// 试卷编号
/// </summary>
public int PaperId { get; set; }
/// <summary>
/// 试卷名称
/// </summary>
public string PaperName { get; set; }
/// <summary>
/// 关联题库编号
/// </summary>
public string QuestionBandIds { get; set; }
/// <summary>
/// 难易程度(1-易,2-中,3-难)
/// </summary>
public DifficultyTypeEnum DifficultyType { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 发布次数
/// </summary>
public int PublishCount { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 组卷类型(1-智能组卷,2-手动组卷,3-智能导入)
/// </summary>
public int GenerateType { get; set; }
/// <summary>
/// 生成试卷套数
/// </summary>
public int CreateNum { get; set; }
/// <summary>
/// 试卷类型(1-文件夹,2-试卷)
/// </summary>
public int PaperType { get; set; }
/// <summary>
/// 父节点编号
/// </summary>
public int ParentId { get; set; }
}
/// <summary>
/// 试卷编号
/// </summary>
public int PaperId { get; set; }
/// <summary>
/// 试卷名称
/// </summary>
public string PaperName { get; set; }
/// <summary>
/// 关联题库编号
/// </summary>
public string QuestionBandIds { get; set; }
/// <summary>
/// 难易程度(1-易,2-中,3-难)
/// </summary>
public DifficultyTypeEnum DifficultyType { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 发布次数
/// </summary>
public int PublishCount { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 组卷类型(1-智能组卷,2-手动组卷,3-智能导入)
/// </summary>
public int GenerateType { get; set; }
/// <summary>
/// 生成试卷套数
/// </summary>
public int CreateNum { get; set; }
/// <summary>
/// 试卷类型(1-文件夹,2-试卷)
/// </summary>
public int PaperType { get; set; }
/// <summary>
/// 父节点编号
/// </summary>
public int ParentId { get; set; }
/// <summary>
/// 审核状态
/// </summary>
public Common.Enum.EduTask.EduTaskRrocessStatus ExamineStatus { get; set; }
/// <summary>
/// 审核人
/// </summary>
public int Reviewer { get; set; }
}
}
......@@ -10,134 +10,149 @@ namespace Edu.Model.Entity.Exam
[DB(ConnectionName = "DefaultConnection")]
public class RB_Examination_Publish
{
/// <summary>
/// 发布考试主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 试卷编号
/// </summary>
public int PaperId { get; set; }
/// <summary>
/// 发放类型(1-按班级发放,2-指定学生发放)
/// </summary>
public int PublishType { get; set; }
/// <summary>
/// 考试开始时间
/// </summary>
public DateTime ExamStartTime { get; set; }
/// <summary>
/// 考试结束时间
/// </summary>
public DateTime ExamEndTime { get; set; }
/// <summary>
/// 考试限时
/// </summary>
public int ExamTimes { get; set; }
/// <summary>
/// 限时提交(多少分钟内不允许提交)
/// </summary>
public int SubmitTimes { get; set; }
/// <summary>
/// 限时进入(多少分钟后不允许参加考试)
/// </summary>
public int EnterTimes { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 题目乱序(1-是)
/// </summary>
public int IsQuestionRandom { get; set; }
/// <summary>
/// 选项乱序(1-是)
/// </summary>
public int IsOptionRandom { get; set; }
/// <summary>
/// 学生离开作答页面(1-是)
/// </summary>
public int IsLeaveAnswer { get; set; }
/// <summary>
/// 离开次数
/// </summary>
public int LeaveTimes { get; set; }
/// <summary>
/// 是否禁用多终端(1-是)
/// </summary>
public int IsDisableMultiTerminal { get; set; }
/// <summary>
/// 是否只允许(App、PC)考试(1-是)
/// </summary>
public int IsExamType { get; set; }
/// <summary>
/// 考试终端类型(1-App,2-PC)
/// </summary>
public int ExamTypeValue { get; set; }
/// <summary>
/// 考试须知
/// </summary>
public string ExamNotice { get; set; }
/// <summary>
/// 及格分数
/// </summary>
public decimal PassScore { get; set; }
/// <summary>
/// 考试到达截止时间后自动提交(1-是)
/// </summary>
public int IsAutoSubmit { get; set; }
/// <summary>
/// 填空类型的题目设为主观题(1-是)
/// </summary>
public int FillInIsSubject { get; set; }
/// <summary>
/// 填空题答案不区分大小写(1-是)
/// </summary>
public int FillInIsIgnore { get; set; }
/// <summary>
/// 多选题未选全给一半分(1-是)
/// </summary>
public int IsHalfScore { get; set; }
}
/// <summary>
/// 发布考试主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 试卷编号
/// </summary>
public int PaperId { get; set; }
/// <summary>
/// 发放类型(1-按班级发放,2-指定学生发放)
/// </summary>
public int PublishType { get; set; }
/// <summary>
/// 考试开始时间
/// </summary>
public DateTime ExamStartTime { get; set; }
/// <summary>
/// 考试结束时间
/// </summary>
public DateTime ExamEndTime { get; set; }
/// <summary>
/// 考试限时
/// </summary>
public int ExamTimes { get; set; }
/// <summary>
/// 限时提交(多少分钟内不允许提交)
/// </summary>
public int SubmitTimes { get; set; }
/// <summary>
/// 限时进入(多少分钟后不允许参加考试)
/// </summary>
public int EnterTimes { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 题目乱序(1-是)
/// </summary>
public int IsQuestionRandom { get; set; }
/// <summary>
/// 选项乱序(1-是)
/// </summary>
public int IsOptionRandom { get; set; }
/// <summary>
/// 学生离开作答页面(1-是)
/// </summary>
public int IsLeaveAnswer { get; set; }
/// <summary>
/// 离开次数
/// </summary>
public int LeaveTimes { get; set; }
/// <summary>
/// 是否禁用多终端(1-是)
/// </summary>
public int IsDisableMultiTerminal { get; set; }
/// <summary>
/// 是否只允许(App、PC)考试(1-是)
/// </summary>
public int IsExamType { get; set; }
/// <summary>
/// 考试终端类型(1-App,2-PC)
/// </summary>
public int ExamTypeValue { get; set; }
/// <summary>
/// 考试须知
/// </summary>
public string ExamNotice { get; set; }
/// <summary>
/// 及格分数
/// </summary>
public decimal PassScore { get; set; }
/// <summary>
/// 考试到达截止时间后自动提交(1-是)
/// </summary>
public int IsAutoSubmit { get; set; }
/// <summary>
/// 填空类型的题目设为主观题(1-是)
/// </summary>
public int FillInIsSubject { get; set; }
/// <summary>
/// 填空题答案不区分大小写(1-是)
/// </summary>
public int FillInIsIgnore { get; set; }
/// <summary>
/// 多选题未选全给一半分(1-是)
/// </summary>
public int IsHalfScore { get; set; }
/// <summary>
/// 审核状态
/// </summary>
public Common.Enum.EduTask.EduTaskRrocessStatus ExamineStatus { get; set; }
/// <summary>
/// 审核人
/// </summary>
public int Reviewer { get; set; }
/// <summary>
/// 封面图片
/// </summary>
public string PublishPic { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Exam
{
/// <summary>
/// 试卷考试学员实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Examination_Student
{
/// <summary>
/// 考试学员管理主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 发布考试编号
/// </summary>
public int PublishId { get; set; }
/// <summary>
/// 试卷编号
/// </summary>
public int PaperId { get; set; }
/// <summary>
/// 学员编号
/// </summary>
public int GuestId { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public int ClassId { get; set; }
/// <summary>
/// 订单编号
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 课程编号
/// </summary>
public int CourseId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 校区编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 考试状态,0-没考,1-已考
/// </summary>
public int ExamStatus { get; set; }
/// <summary>
/// 考试结束时间
/// </summary>
public DateTime? ExamEndTime { get; set; }
/// <summary>
/// 总得分
/// </summary>
public decimal TotalScore { get; set; }
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using Edu.Common.Enum.Question;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Exam
{
/// <summary>
/// 学员答题实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Examination_StudentDetails
{
/// <summary>
/// 学员答题详情编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 试卷编号
/// </summary>
public int PaperId { get; set; }
/// <summary>
/// 发布考试编号
/// </summary>
public int PublishId { get; set; }
/// <summary>
/// 试卷题目编号
/// </summary>
public int DetailsId { get; set; }
/// <summary>
/// 试卷考试学员编号
/// </summary>
public int ExaminationStuId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public DateStateEnum Status { get; set; }
/// <summary>
/// 问题答案【JSON字符串】
/// </summary>
public string StundetAnswer { get; set; }
/// <summary>
/// 题目得分
/// </summary>
public decimal StundetScore { get; set; }
/// <summary>
/// 是否阅卷0-否,1-是
/// </summary>
public int IsMarking { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Model.Entity.EduTask;
using Edu.Model.ViewModel.Sell;
namespace Edu.Model.ViewModel.EduTask
{
/// <summary>
/// 学员请假申请实体扩展表
/// </summary>
public class RB_Student_Leave_ViewModel : RB_Student_Leave
{
/// <summary>
/// 请假时间信息
/// </summary>
public List<LeaveInfoModel> LeaveInfoList { get; set; }
/// <summary>
/// 班级名称
/// </summary>
public string ClassName { get; set; }
/// <summary>
/// 多个ids
/// </summary>
public string Q_Student_Leave_Ids { get; set; }
/// <summary>
/// 学员信息
/// </summary>
public RB_Order_Guest_ViewModel Order_Guest_ViewModel { get; set; }
}
public class LeaveInfoModel
{
/// <summary>
/// 计划id
/// </summary>
public int ClassPlanId { get; set; }
/// <summary>
/// 上课时间id
/// </summary>
public int ClassTimeId { get; set; }
/// <summary>
/// 上课日期
/// </summary>
public string ClassDate { get; set; }
/// <summary>
/// 上课开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 上课结束时间
/// </summary>
public string EndTime { get; set; }
/// <summary>
/// 上课课时
/// </summary>
public decimal TimeHour { get; set; }
/// <summary>
/// 老师名称
/// </summary>
public string TeacherName { get; set; }
/// <summary>
/// 教室名称
/// </summary>*
public string RoomName { get; set; }
}
}
......@@ -74,5 +74,27 @@ namespace Edu.Model.ViewModel.Exam
/// 下级节点
/// </summary>
public List<ExaminationPaperTreeModel> ChildList { get; set; }
/// <summary>
/// 审核状态
/// </summary>
public Common.Enum.EduTask.EduTaskRrocessStatus ExamineStatus { get; set; }
/// <summary>
/// 审核状态
/// </summary>
public string ExamineStatusStr { get; set; }
/// <summary>
/// 审核人
/// </summary>
public int Reviewer { get; set; }
/// <summary>
/// 审核人
/// </summary>
public string ReviewerName { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Model.Entity.Exam;
namespace Edu.Model.ViewModel.Exam
{
/// <summary>
/// 考试配置扩展表
/// </summary>
public class RB_Examination_Configure_ViewModel : RB_Examination_Configure
{
/// <summary>
/// 审核人名称
/// </summary>
public string ZuJuanReviewerName { get; set; }
/// <summary>
/// 考试申请审核人名称
/// </summary>
public string ExamApplyReviewerName { get; set; }
}
}
using Edu.Model.Entity.Exam;
using Edu.Model.ViewModel.Question;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -29,5 +30,25 @@ namespace Edu.Model.ViewModel.Exam
/// 问题数量
/// </summary>
public int QuestionCount { get; set; }
/// <summary>
/// 学生答案
/// </summary>
public string StundetAnswer { get; set; }
/// <summary>
/// 学生答案详情id
/// </summary>
public int StundetDetailsId { get; set; }
/// <summary>
/// 学生得分
/// </summary>
public string StundetScore { get; set; }
/// <summary>
/// 知识点
/// </summary>
public List<RB_Question_Point_ViewModel> QuestionPointList { get; set; }
}
}
......@@ -10,8 +10,10 @@ namespace Edu.Model.ViewModel.Exam
/// </summary>
public class RB_Examination_Paper_ViewModel : RB_Examination_Paper
{
/// <summary>
/// 是否从新发起审核0-否,1-是
/// </summary>
public int IsExamine { get; set; }
/// <summary>
/// 试卷题目分组列表
/// </summary>
......@@ -31,5 +33,15 @@ namespace Edu.Model.ViewModel.Exam
/// 是否查询文件夹
/// </summary>
public int IsQueryFolder { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateByName { get; set; }
/// <summary>
/// 学生id
/// </summary>
public int GuestId { get; set; }
}
}
......@@ -10,6 +10,45 @@ namespace Edu.Model.ViewModel.Exam
/// </summary>
public class RB_Examination_Publish_ViewModel : RB_Examination_Publish
{
/// <summary>
/// 考试学员列表
/// </summary>
public List<RB_Examination_Student_ViewModel> StudentList { get; set; }
/// <summary>
/// 试卷名称
/// </summary>
public string PaperName { get; set; }
/// <summary>
/// 考生人数
/// </summary>
public int StudentCount { get; set; }
/// <summary>
/// 重新发起审核
/// </summary>
public int IsExamine { get; set; }
/// <summary>
/// 查询id
/// </summary>
public string QPublishIds { get; set; }
/// <summary>
/// 学生id
/// </summary>
public int GuestId { get; set; }
/// <summary>
/// 考试状态,0-没考,1-已考(查询条件的时候,1-未开始,2-已开始,3-已缺考,4-已完成)
/// </summary>
public int ExamStatus { get; set; }
/// <summary>
/// 考试状态
/// </summary>
public string ExamStatusStr { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Exam
{
/// <summary>
/// 学生答题详情扩展表
/// </summary>
public class RB_Examination_StudentDetails_ViewModel : Entity.Exam.RB_Examination_StudentDetails
{
/// <summary>
/// 学生姓名
/// </summary>
public string GuestName { get; set; }
/// <summary>
/// 学员编号
/// </summary>
public int GuestId { get; set; }
}
}
using Edu.Model.Entity.Exam;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Exam
{
/// <summary>
/// 试卷考试学员视图实体类
/// </summary>
public class RB_Examination_Student_ViewModel : RB_Examination_Student
{
/// <summary>
/// 试卷发布编号
/// </summary>
public string QPublishIds { get; set; }
/// <summary>
/// 学员名称
/// </summary>
public string GuestName { get; set; }
/// <summary>
/// 班级名称
/// </summary>
public string ClassName { get; set; }
/// <summary>
/// 联系电话
/// </summary>
public string Mobile { get; set; }
/// <summary>
/// 学员头像
/// </summary>
public string StuIcon { get; set; }
}
}
\ No newline at end of file
......@@ -49,7 +49,10 @@ namespace Edu.Model.ViewModel.Grade
}
}
}
/// <summary>
/// ids
/// </summary>
public string Q_ClassTimeIds { get; set; }
/// <summary>
/// ids
/// </summary>
......
......@@ -115,5 +115,10 @@ namespace Edu.Model.ViewModel.User
/// 剩余课时
/// </summary>
public int SurplusHours { get; set; }
/// <summary>
/// 学生id(rb_order_guest的id)
/// </summary>
public int GuestId { get; set; }
}
}
\ No newline at end of file
This diff is collapsed.
......@@ -144,6 +144,7 @@ namespace Edu.Module.Course
/// 商品规格价格
/// </summary>
private readonly Repository.Mall.RB_Goods_SpecificationPriceRepository goods_SpecificationPriceRepository = new Repository.Mall.RB_Goods_SpecificationPriceRepository();
#region 课程管理
public List<RB_Course_ViewModel> GetAllCourseChapterCountModule(int groupId, int courseId)
......@@ -377,6 +378,7 @@ namespace Edu.Module.Course
}
}
#endregion
return flag;
}
......
using Edu.Model.Entity.Course;
using Edu.Model.Entity.EduTask;
using Edu.Model.Entity.Sell;
using Edu.Model.ViewModel.EduTask;
using Edu.Model.ViewModel.Sell;
using Edu.Repository.Course;
using Edu.Repository.EduTask;
using Edu.Repository.Sell;
using System.Collections.Generic;
using System.Linq;
using VT.FW.AOP.CustomerAttribute;
using VT.FW.DB;
namespace Edu.Module.EduTask
{
/// <summary>
/// 调课计划处理类
/// </summary>
public class LeaveStudentModule
{
/// <summary>
/// 教务单据仓储层对象
/// </summary>
private readonly RB_Education_ReceiptRepository education_ReceiptRepository = new RB_Education_ReceiptRepository();
/// <summary>
/// 请假计划仓储层对象
/// </summary>
private readonly RB_Student_LeaveRepository RB_Student_LeaveRepository = new RB_Student_LeaveRepository();
/// <summary>
/// 订单学员仓储层对象
/// </summary>
private readonly RB_Order_GuestRepository order_GuestRepository = new RB_Order_GuestRepository();
/// <summary>
/// 获取请假列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Leave_ViewModel> GetStudentLeaveListRepository(RB_Student_Leave_ViewModel query)
{
return RB_Student_LeaveRepository.GetStudentLeaveListRepository(query);
}
/// <summary>
/// 新增修改请假申请
/// </summary>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool SetStudentLeaveModule(RB_Student_Leave_ViewModel extModel, string receiptFile)
{
bool flag = false;
if (extModel.Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Student_Leave_ViewModel.OrderGuestId),extModel.OrderGuestId },
{nameof(RB_Student_Leave_ViewModel.ClassId),extModel.ClassId },
{nameof(RB_Student_Leave_ViewModel.CourseId),extModel.CourseId },
{nameof(RB_Student_Leave_ViewModel.LeaveInfo),extModel.LeaveInfo },
{nameof(RB_Student_Leave_ViewModel.UpdateBy),extModel.UpdateBy },
{nameof(RB_Student_Leave_ViewModel.UpdateTime),extModel.UpdateTime },
};
flag = RB_Student_LeaveRepository.Update(fileds, new WhereHelper(nameof(RB_Student_Leave_ViewModel.Id), extModel.Id));
}
else
{
var newId = RB_Student_LeaveRepository.Insert(extModel);
extModel.Id = newId;
flag = newId > 0;
if (flag)
{
var educationReceipt = new RB_Education_Receipt()
{
Id = 0,
Title = "学生请假申请",
ReceiptType = Common.Enum.Finance.ReceiptTypeEnum.LeaveClass,
RelationId = newId,
ClassId = extModel.ClassId,
Group_Id = extModel.Group_Id,
School_Id = extModel.School_Id,
CreateBy = extModel.CreateBy,
CreateTime = extModel.CreateTime,
UpdateBy = extModel.UpdateBy,
UpdateTime = extModel.UpdateTime,
VerifyStatus = Common.Enum.EduTask.EduTaskRrocessStatus.NotAudit,
ReceiptFile = receiptFile
};
flag = education_ReceiptRepository.SetEducationReceiptRepository(educationReceipt, out string message);
}
}
return flag;
}
public bool UpdateChangeClassPlan(int id)
{
return RB_Student_LeaveRepository.UpdateStundetLeave(id,1);
}
}
}
......@@ -121,5 +121,9 @@ namespace Edu.Module.EduTask
}
return flag;
}
}
}
This diff is collapsed.
using Edu.Model.ViewModel.Exam;
using Edu.Repository.Exam;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Module.Exam
{
/// <summary>
/// 处理阅卷
/// </summary>
public partial class PaperModule
{
/// <summary>
/// 学员答案仓储层对象
/// </summary>
private readonly RB_Examination_StudentDetailsRepository examination_StudentDetailsRepository = new RB_Examination_StudentDetailsRepository();
/// <summary>
/// 自动阅卷处理类
/// </summary>
/// <param name="PaperId">试卷编号</param>
/// <param name="PublishId">发布编号</param>
/// <param name="GuestId">学员编号</param>
/// <returns></returns>
public bool AutoReviewPaperModule(int PaperId,int PublishId,int GuestId)
{
bool flag = false;
//试卷题目
var sourceQuestionList = examination_DetailsRepository.GetExaminationDetailsListRepository(new RB_Examination_Details_ViewModel() { PaperId = PaperId });
//学员提交答案列表
var stuQuesList = examination_StudentDetailsRepository.GetExaminationStudentListRepository(new RB_Examination_StudentDetails_ViewModel()
{
GuestId = GuestId,
PaperId = PaperId,
PublishId = PublishId,
});
if (sourceQuestionList != null && sourceQuestionList.Count > 0)
{
foreach (var sItem in sourceQuestionList)
{
switch (sItem.QuestionTypeKey)
{
//单选题
case "single":
break;
//多选题
case "multiple":
break;
//填空题
case "fill-in":
break;
//判断题
case "judge":
break;
//简答题
case "short-answer":
break;
//名词解释
case "noun-explanation":
break;
//论述题
case "essay-question":
break;
//计算题
case "calculation":
break;
//分录题
case "entry-problem":
break;
//资料题
case "data-question":
break;
//连线题
case "matching":
break;
//排序题
case "sorting-problem":
break;
//完型填空
case "cloze":
break;
//阅读理解
case "reading-comprehensio":
break;
//口语题
case "spoken":
break;
//听力题
case "listening":
break;
//公用选项题
case "sharing-choose":
break;
//其它题
case "other":
break;
//单选题-数字
case "single-number":
break;
}
}
}
return flag;
}
}
}
......@@ -153,7 +153,7 @@ WHERE 1=1
public List<RB_Education_Receipt_ViewModel> GetEducationReceiptListRepository(EducationReceiptQuery query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,IFNULL(C.TeacherName,'') AS TeacherName
......@@ -174,7 +174,7 @@ WHERE 1=1
{
builder.AppendFormat(@" AND A.{0} IN ({1}) ", nameof(RB_Education_Receipt_ViewModel.Id), query.QIds);
}
if (query.RelationId>0)
if (query.RelationId > 0)
{
builder.AppendFormat(@" AND A.{0} IN ({1}) ", nameof(RB_Education_Receipt_ViewModel.RelationId), query.RelationId);
}
......@@ -277,6 +277,33 @@ WHERE 1=1
return false;
}
}
else if (model.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.LeaveClass)
{
flowModel = flowRepository.GetFlowRepository(Common.Config.StudentLeaveFlowId);
if (flowModel == null)
{
message = "未配置学生请假流程!";
return false;
}
}
else if (model.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.ZuJuan)
{
flowModel = flowRepository.GetFlowRepository(Common.Config.ZuJuanFlowId);
if (flowModel == null)
{
message = "未配置组卷审批流程!";
return false;
}
}
else if (model.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.ExamApply)
{
flowModel = flowRepository.GetFlowRepository(Common.Config.ExamApplyFlowId);
if (flowModel == null)
{
message = "未配置考试申请审批流程!";
return false;
}
}
if (flowModel?.FlowNodeList?.Count == 0)
{
message = "未配置审核流程!";
......@@ -415,7 +442,7 @@ WHERE 1=1
flag = student_BackRecordRepository.Insert(recordModel) > 0;
#region 审核通知
var account = new RB_AccountRepository().GetEmployeeInfo(tItem);
if (account!=null && !string.IsNullOrEmpty(account.WorkUserId))
if (account != null && !string.IsNullOrEmpty(account.WorkUserId))
{
var recipientPath = HttpUtility.UrlEncode($"/teacher/change-class-manager?tab=3&id={model.Id}");
var content = $"待审通知 你有一张业务单据等待审核\n>**概要信息** \n>单据信息:<font color='comment'>{EnumHelper.ToName(model.ReceiptType)}单据 ({model.Id})</font>\n>创 建 人:<font color='comment'>{account.EmployeeName}</font>\n>创建时间:<font color='comment'>{DateTime.Now.ToString("MM-dd HH-mm")}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={tItem}&target={recipientPath})";
......
This diff is collapsed.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Edu.Model.Entity.Exam;
using Edu.Model.ViewModel.Exam;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Exam
{
/// <summary>
/// 考试配置仓储类
/// </summary>
public class RB_Examination_ConfigureRepository : BaseRepository<RB_Examination_Configure>
{
/// <summary>
/// 获取配置列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Examination_Configure_ViewModel> GetExaminationConfigureListRepository(RB_Examination_Configure_ViewModel query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Examination_Configure AS A
WHERE 1=1
");
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Configure_ViewModel.Status), 0);
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Configure_ViewModel.Group_Id), query.Group_Id);
}
}
return Get<RB_Examination_Configure_ViewModel>(builder.ToString(), parameters).ToList();
}
}
}
......@@ -31,7 +31,7 @@ SELECT A.*
FROM RB_Examination_Paper AS A
WHERE 1=1
");
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.ParentId), 0);
if (query != null)
{
if (query.Group_Id > 0)
......@@ -47,6 +47,10 @@ WHERE 1=1
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.ParentId), query.ParentId);
}
else
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.ParentId), 0);
}
if (query.PaperId > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.PaperId), query.PaperId);
......@@ -74,7 +78,6 @@ SELECT A.*
FROM RB_Examination_Paper AS A
WHERE 1=1
");
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.ParentId), 0);
if (query != null)
{
if (query.Group_Id > 0)
......@@ -109,7 +112,6 @@ WHERE 1=1
}
/// <summary>
/// 获取试卷所有下级列表
/// </summary>
......@@ -122,5 +124,30 @@ WHERE 1=1
parameters.Add("QPaperIds", QPaperIds, direction: ParameterDirection.Input);
return Get<RB_Examination_Paper_ViewModel>(procName, parameters, commandType: CommandType.StoredProcedure).ToList();
}
/// <summary>
/// 获取当前节点的所有父级节点
/// </summary>
/// <param name="QPaperIds"></param>
/// <returns></returns>
public List<RB_Examination_Paper_ViewModel> GetExaminationPaperParentRepository(string QPaperIds)
{
var parameters = new DynamicParameters();
string procName = "proc_getparentpaper";
parameters.Add("QPaperIds", QPaperIds, direction: ParameterDirection.Input);
return Get<RB_Examination_Paper_ViewModel>(procName, parameters, commandType: CommandType.StoredProcedure).ToList();
}
/// <summary>
/// 修改试卷发布次数
/// </summary>
/// <param name="PaperId"></param>
/// <returns></returns>
public int UpdateExaminationPaperPublishCountRepository(int PaperId)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(" UPDATE RB_Examination_Paper SET PublishCount=PublishCount+1 WHERE PaperId={0} ", PaperId);
return base.Execute(builder.ToString());
}
}
}
......@@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Exam
{
......@@ -22,10 +23,11 @@ namespace Edu.Repository.Exam
/// <returns></returns>
public List<RB_Examination_Publish_ViewModel> GetExaminationPublishPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Examination_Publish_ViewModel query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Examination_Publish AS A
SELECT A.*,IFNULL(B.PaperName,'') AS PaperName
FROM RB_Examination_Publish AS A LEFT JOIN rb_examination_paper AS B ON A.PaperId=B.PaperId
WHERE 1=1
");
if (query != null)
......@@ -34,8 +36,107 @@ WHERE 1=1
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.Group_Id), query.Group_Id);
}
if (!string.IsNullOrEmpty(query.PaperName))
{
builder.AppendFormat(" AND B.{0} LIKE @PaperName ", nameof(RB_Examination_Publish_ViewModel.PaperName));
parameters.Add("PaperName", "%" + query.PaperName.Trim() + "%");
}
}
return GetPage<RB_Examination_Publish_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
/// <summary>
/// 获取发布试卷列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Examination_Publish_ViewModel> GetExaminationPublishListRepository(RB_Examination_Publish_ViewModel query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.PaperName,'') AS PaperName
FROM RB_Examination_Publish AS A LEFT JOIN rb_examination_paper AS B ON A.PaperId=B.PaperId
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.Group_Id), query.Group_Id);
}
if (!string.IsNullOrEmpty(query.PaperName))
{
builder.AppendFormat(" AND B.{0} LIKE @PaperName ", nameof(RB_Examination_Publish_ViewModel.PaperName));
parameters.Add("PaperName", "%" + query.PaperName.Trim() + "%");
}
if (!string.IsNullOrEmpty(query.QPublishIds))
{
builder.AppendFormat(" AND A.{0} in ({1}) ", nameof(RB_Examination_Publish_ViewModel.Id), query.QPublishIds);
}
}
return Get<RB_Examination_Publish_ViewModel>(builder.ToString(), parameters).ToList();
}
/// <summary>
/// 获取学生发布试卷分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Examination_Publish_ViewModel> GetGuestExaminationPublishPage(int pageIndex, int pageSize, out long rowsCount, RB_Examination_Publish_ViewModel query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.PaperName,'') AS PaperName,c.ExamStatus
FROM RB_Examination_Publish AS A LEFT JOIN rb_examination_paper AS B ON A.PaperId=B.PaperId
LEFT JOIN rb_examination_student as c on c.PublishId=a.Id
WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.Group_Id), query.Group_Id);
}
if (query.GuestId > 0)
{
builder.AppendFormat(" AND c.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.GuestId), query.GuestId);
}
if (!string.IsNullOrEmpty(query.PaperName))
{
builder.AppendFormat(" AND B.{0} LIKE @PaperName ", nameof(RB_Examination_Publish_ViewModel.PaperName));
parameters.Add("PaperName", "%" + query.PaperName.Trim() + "%");
}
if (query.ExamStatus > 0)
{
if (query.ExamStatus == 1)
{
builder.AppendFormat(" AND a.{0} > '{1}' ", nameof(RB_Examination_Publish_ViewModel.ExamStartTime), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
else if (query.ExamStatus == 2)
{
builder.AppendFormat(" AND a.{0} < '{1}' and a.{2} > '{1}' ", nameof(RB_Examination_Publish_ViewModel.ExamStartTime), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), nameof(RB_Examination_Publish_ViewModel.ExamEndTime));
}
else if (query.ExamStatus == 3)
{
builder.AppendFormat(" AND a.{0} > '{1}' and c.{2}=0 ", nameof(RB_Examination_Publish_ViewModel.ExamEndTime), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), nameof(RB_Examination_Publish_ViewModel.ExamStatus));
}
else if (query.ExamStatus == 4)
{
builder.AppendFormat(" AND a.{0} > '{1}' and c.{2}=1 ", nameof(RB_Examination_Publish_ViewModel.ExamEndTime), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), nameof(RB_Examination_Publish_ViewModel.ExamStatus));
}
}
}
builder.AppendFormat(" order by a.{0} desc ", nameof(RB_Examination_Publish_ViewModel.ExamStartTime));
return GetPage<RB_Examination_Publish_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Edu.Model.Entity.Exam;
using Edu.Model.ViewModel.Exam;
namespace Edu.Repository.Exam
{
/// <summary>
/// 学生答题详情仓储类
/// </summary>
public class RB_Examination_StudentDetailsRepository : BaseRepository<RB_Examination_StudentDetails>
{
/// <summary>
/// 获取考试学生列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Examination_StudentDetails_ViewModel> GetExaminationStudentListRepository(RB_Examination_StudentDetails_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName
FROM RB_Examination_StudentDetails AS A
LEFT JOIN RB_Examination_Student AS c ON C.Id=a.ExaminationStuId
LEFT JOIN rb_order_guest AS B ON c.GuestId=B.Id
WHERE 1=1
");
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_StudentDetails_ViewModel.Status), 0);
if (query != null)
{
if (query.ExaminationStuId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_StudentDetails_ViewModel.ExaminationStuId), query.ExaminationStuId);
}
if (query.GuestId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Student.GuestId), query.GuestId);
}
if (query.PublishId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_StudentDetails_ViewModel.PublishId), query.PublishId);
}
if (query.PaperId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_StudentDetails_ViewModel.PaperId), query.PaperId);
}
}
return Get<RB_Examination_StudentDetails_ViewModel>(builder.ToString()).ToList();
}
}
}
using Edu.Model.Entity.Exam;
using Edu.Model.ViewModel.Exam;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.Exam
{
/// <summary>
/// 试卷考试学员仓储层
/// </summary>
public class RB_Examination_StudentRepository:BaseRepository<RB_Examination_Student>
{
/// <summary>
/// 获取考试学生分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Examination_Student_ViewModel> GetExaminationStudentPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Examination_Student_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName,c.ClassName,b.Mobile,s.StuIcon
FROM RB_Examination_Student AS A LEFT JOIN rb_order_guest AS B ON A.GuestId=B.Id
LEFT JOIN rb_class as c on c.ClassId=a.ClassId
LEFT JOIN rb_student_orderguest as sog on sog.GuestId=a.GuestId
LEFT JOIN rb_student as s on s.StuId = sog.Student_Id
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Student_ViewModel.Group_Id), query.Group_Id);
}
if (query.PublishId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Student_ViewModel.PublishId), query.PublishId);
}
if (!string.IsNullOrWhiteSpace(query.GuestName))
{
builder.AppendFormat(" AND B.{0} like '%{1}%' ", nameof(RB_Examination_Student_ViewModel.GuestName), query.GuestName);
}
}
return GetPage<RB_Examination_Student_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
/// <summary>
/// 获取考试学生列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Examination_Student_ViewModel> GetExaminationStudentListRepository(RB_Examination_Student_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName
FROM RB_Examination_Student AS A LEFT JOIN rb_order_guest AS B ON A.GuestId=B.Id
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Student_ViewModel.Group_Id), query.Group_Id);
}
if (query.PublishId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Student_ViewModel.PublishId), query.PublishId);
}
if (!string.IsNullOrEmpty(query.QPublishIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Examination_Student_ViewModel.PublishId), query.QPublishIds);
}
}
return Get<RB_Examination_Student_ViewModel>(builder.ToString()).ToList();
}
}
}
\ No newline at end of file
......@@ -233,6 +233,12 @@ GROUP BY A.ClassId
{
builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_Check_ViewModel.ClassId), query.Q_ClassIds);
}
if (!string.IsNullOrEmpty(query.Q_ClassTimeIds))
{
builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_Check_ViewModel.ClassTimeId), query.Q_ClassTimeIds);
}
if (!string.IsNullOrWhiteSpace(query.StartDate))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.ClassDate), query.StartDate);
......
......@@ -4,6 +4,7 @@ using Edu.Model.ViewModel.Sell;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Sell
{
......@@ -65,10 +66,10 @@ namespace Edu.Repository.Sell
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <param name="orderIds"></param>
/// <returns></returns>
public List<RB_Order_Guest_ViewModel> GetCommonOrderGuestListRepository(RB_Order_Guest_ViewModel demodel)
{
var parameters = new DynamicParameters();
string where = "";
if (demodel.Group_Id > 0)
{
......@@ -100,7 +101,18 @@ namespace Edu.Repository.Sell
}
if (!string.IsNullOrEmpty(demodel.GuestName))
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.GuestName)} like '%{demodel.GuestName}%'";
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.GuestName)} LIKE @GuestName ";
parameters.Add("GuestName", "%" + demodel.GuestName.Trim() + "%");
}
if (!string.IsNullOrEmpty(demodel.ClassName))
{
where += $@" and cs.{nameof(RB_Order_Guest_ViewModel.ClassName)} LIKE @ClassName ";
parameters.Add("ClassName", "%" + demodel.ClassName.Trim() + "%");
}
if (!string.IsNullOrEmpty(demodel.ClassNo))
{
where += $@" and cs.{nameof(RB_Order_Guest_ViewModel.ClassNo)} LIKE @ClassNo ";
parameters.Add("ClassNo", "%" + demodel.ClassNo.Trim() + "%");
}
if (demodel.GuestState > 0)
{
......@@ -112,16 +124,17 @@ namespace Edu.Repository.Sell
}
string sql = $@"
SELECT sog.Student_Id as StudentId,A.*,IFNULL(B.JoinType,0) AS JoinType,IFNULL(B.TargetJoinType,0) AS TargetJoinType,IFNULL(B.StartClassHours,0) AS StartClassHours
SELECT sog.Student_Id as StudentId,A.*,cs.ClassName,cs.ClassNo,IFNULL(B.JoinType,0) AS JoinType,IFNULL(B.TargetJoinType,0) AS TargetJoinType,IFNULL(B.StartClassHours,0) AS StartClassHours
,IFNULL(C.CourseName,'') AS CourseName,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId,B.IsRenewOrder,B.RenewOrderId,B.EnterID
,sc.StopClassEffectTime,B.SourceOrderId,B.TargetOrderId,IFNULL(D.FirstClassHours,0)+IFNULL(D.SecondClassHours,0)+IFNULL(D.ThirdClassHours,0) AS ContractTotalHours
FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId
LEFT JOIN rb_student_orderguest as sog on sog.GuestId=a.Id
LEFT JOIN rb_class AS cs ON B.ClassId=cs.ClassId
LEFT JOIN rb_student_orderguest as sog on sog.GuestId=a.Id
LEFT JOIN rb_course AS C ON (B.CourseId=C.CourseId AND B.CourseId>0 AND B.OrderType=1)
LEFT JOIN (SELECT OrderGuestId,MAX(TakeEffectTime) as StopClassEffectTime from rb_student_stopclass where IsAuditThrough=1 GROUP BY OrderGuestId) as sc on sc.OrderGuestId=a.Id
LEFT JOIN rb_education_contract AS D ON A.OrderId=D.OrderId AND A.Id=D.GuestId AND D.IsSystemUse=1
WHERE 1=1 and A.Status=0 {where}";
return Get<RB_Order_Guest_ViewModel>(sql).ToList();
WHERE 1=1 and A.Status=0 {where}";
return Get<RB_Order_Guest_ViewModel>(sql, parameters).ToList();
}
......@@ -226,8 +239,6 @@ WHERE 1=1 AND A.Status=0
}
}
/// <summary>
/// 获取列表
/// </summary>
......@@ -359,11 +370,7 @@ WHERE 1=1 and A.Status=0 and class.Status=0 and b.OrderState<>3
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="demodel"></param>
/// <param name="orderIds"></param>
/// <returns></returns>
public List<RB_Order_Guest_ViewModel> GetStopingStudentPage(RB_Order_Guest_ViewModel demodel)
{
......
......@@ -164,7 +164,7 @@ where b.`Status`=0 and b.ClassStatus in(1,2) and a.status=0 and a.Account_Id={
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat($@"SELECT s.*,o.OrderState,cou.CourseName,cou.CourseId,c.ClassName,c.ClassId,c.ClassStatus,sch.SName,sch.SId,t.TeacherName,o.EnterID,(og.TotalHours-og.CompleteHours) as SurplusHours from rb_student as s LEFT JOIN rb_student_orderguest as sog on s.StuId=sog.Student_Id
builder.AppendFormat($@"SELECT s.*,sog.GuestId,o.OrderState,cou.CourseName,cou.CourseId,c.ClassName,c.ClassId,c.ClassStatus,sch.SName,sch.SId,t.TeacherName,o.EnterID,(og.TotalHours-og.CompleteHours) as SurplusHours from rb_student as s LEFT JOIN rb_student_orderguest as sog on s.StuId=sog.Student_Id
LEFT JOIN rb_order_guest as og on og.Id=sog.GuestId
LEFT JOIN rb_order as o on og.OrderId=o.OrderId
LEFT JOIN rb_course as cou on o.CourseId=cou.CourseId
......
using Edu.Common.API;
using Edu.Common.Enum.Course;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.EduTask;
using Edu.Module.Course;
using Edu.Module.EduTask;
using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Edu.WebApi.Controllers.Applet
{
/// <summary>
/// 改变流程相关申请
/// </summary>
[Route("api/[controller]/[action]")]
[ApiExceptionFilter]
[ApiController]
[EnableCors("AllowCors")]
public class LeaveStudentController : AppletBaseController
{
/// <summary>
/// 学生请假处理类对象
/// </summary>
private readonly LeaveStudentModule leaveStudentModule = AOP.AOPHelper.CreateAOPObject<LeaveStudentModule>();
/// <summary>
/// 班级处理类对象
/// </summary>
private readonly ClassModule classModule = AOP.AOPHelper.CreateAOPObject<ClassModule>();
/// <summary>
/// 新增修改学生请假
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetStudentLeave()
{
var model = new RB_Student_Leave_ViewModel()
{
Id = base.ParmJObj.GetInt("Id"),
ClassId = base.ParmJObj.GetInt("ClassId"),
CourseId = base.ParmJObj.GetInt("CourseId"),
OrderGuestId = base.ParmJObj.GetInt("OrderGuestId"),
Remarks = base.ParmJObj.GetStringValue("Remarks"),
LeaveType = base.ParmJObj.GetInt("LeaveType")
};
var classModel = classModule.GetClassModule(model.ClassId);
string receiptFile = string.Empty;
try
{
List<LeaveInfoModel> LeaveInfoList = Common.Plugin.JsonHelper.DeserializeObject<List<LeaveInfoModel>>(base.ParmJObj.GetStringValue("LeaveInfoList"));
if (LeaveInfoList == null || !LeaveInfoList.Any())
{
return ApiResult.Failed("请选择请假时间");
}
else
{
model.LeaveInfo = JsonHelper.Serialize(LeaveInfoList);
model.ClassTimeIds = string.Join(",", LeaveInfoList.Select(x => x.ClassTimeId));
}
List<string> receiptFileList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(base.ParmJObj.GetStringValue("ReceiptFileList"));
if (receiptFileList == null || !receiptFileList.Any())
{
receiptFile = "";
// return ApiResult.Failed("附件必须上传");
}
else
{
receiptFile = JsonHelper.Serialize(receiptFileList);
}
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "SetStudentLeave");
}
if (model.Id == 0)
{
model.CreateBy = base.AppletUserInfo.Id;
model.CreateTime = DateTime.Now;
model.Group_Id = base.AppletUserInfo.Group_Id;
model.School_Id = classModel.School_Id;
}
model.UpdateBy = base.AppletUserInfo.Id;
model.UpdateTime = DateTime.Now;
bool flag = leaveStudentModule.SetStudentLeaveModule(model, receiptFile);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
public ApiResult TestUpdateClassPlan()
{
int id = base.ParmJObj.GetInt("Id");
var result = leaveStudentModule.UpdateChangeClassPlan(id);
return ApiResult.Success("");
}
}
}
......@@ -1272,6 +1272,24 @@ namespace Edu.WebApi.Controllers.Course
return result ? ApiResult.Success() : ApiResult.Failed("签到失败");
}
/// <summary>
/// 获取班级学生树形列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetClassStudentTree()
{
var query = new RB_Order_Guest_ViewModel()
{
GuestName = base.ParmJObj.GetStringValue("GuestName"),
ClassName = base.ParmJObj.GetStringValue("ClassName"),
ClassNo = ParmJObj.GetStringValue("ClassNo"),
};
query.Group_Id = base.UserInfo.Group_Id;
var obj = classModule.GetClassStudentTreeModule(query);
return ApiResult.Success(data: obj);
}
/// <summary>
/// 签到
/// </summary>
......
......@@ -354,6 +354,20 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Failed(message: message);
}
}
//判断题
else if (extModel.QuestionTypeKey == "judge")
{
var optionItems = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(extModel.QuestionContent);
string message = CheckChoose(optionItems);
if (!string.IsNullOrEmpty(message))
{
return ApiResult.Failed(message: message);
}
if (string.IsNullOrEmpty(extModel.Answer))
{
extModel.Answer = optionItems.Where(qitem => qitem.IsAnswer == true)?.FirstOrDefault()?.Name;
}
}
//填空题
else if (extModel.QuestionTypeKey == "fill-in")
{
......@@ -364,6 +378,7 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Failed(message: fillMessage);
}
}
//简答题
else if (extModel.QuestionTypeKey == "short-answer")
{
......
......@@ -95,11 +95,17 @@
"OrderTransClassFlowId": 5,
//订单分拆流程编号
"OrderSplitClassFlowId": 6,
"ErpUrl": "http://localhost:8181/#",
//是否开启调课数据验证
"IsOpenChangeClassVerify": 1,
//是否是本地服务
"IsLocal": "1",
//临时Token
"TempToken": "47_oXN2xrKRE9InhFMtcCuFx_8Psl2i9TgCYhdHIsvuii5TweFkXvM1J0miUS1sLiRO5GggPOSQqCL1mfVK_ZR9HzV0JAn12TUKctzrBf2p6cFN0gzSUP88Q-iEA3yNgVkL9-DtNpzPL2stAfD7GTRaAIAANL"
//学生请假流程编号
"StudentLeaveFlowId": 7,
//组卷审批流程编号
"ZuJuanFlowId": 8,
//考试申请流程编号
"ExamApplyFlowId": 9,
"ErpUrl": "http://localhost:8181/#",
//是否开启调课数据验证
"IsOpenChangeClassVerify": 1,
//是否是本地服务
"IsLocal": "1",
//临时Token
"TempToken": "47_oXN2xrKRE9InhFMtcCuFx_8Psl2i9TgCYhdHIsvuii5TweFkXvM1J0miUS1sLiRO5GggPOSQqCL1mfVK_ZR9HzV0JAn12TUKctzrBf2p6cFN0gzSUP88Q-iEA3yNgVkL9-DtNpzPL2stAfD7GTRaAIAANL"
}
\ No newline at end of file
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