using Edu.AOP.CustomerAttribute;
using Edu.Model.ViewModel.Exam;
using Edu.Repository.Exam;
using System;
using System.Collections.Generic;
using VT.FW.DB;
using System.Linq;
using Edu.Cache.User;
using Edu.Common.Plugin;
using Edu.Module.Question;
using Edu.Repository.Question;
using Edu.Model.ViewModel.Question;
using System.Text.RegularExpressions;
using Edu.Model.CacheModel;
using Edu.Common.Enum;
using Edu.Common.Enum.EduTask;
using Edu.Model.ViewModel.EduTask;
using Edu.Common.Enum.Finance;
using Edu.Repository.EduTask;
using Edu.Common.Enum.Exam;
using Edu.Common.Enum.Course;
namespace Edu.Module.Exam
{
///
/// 试卷处理类
///
public partial class PaperModule
{
///
/// 试卷题目仓储层对象
///
private readonly RB_Examination_DetailsRepository examination_DetailsRepository = new RB_Examination_DetailsRepository();
///
/// 试卷仓储层对象
///
private readonly RB_Examination_PaperRepository examination_PaperRepository = new RB_Examination_PaperRepository();
///
/// 试卷分组仓储层对象
///
private readonly RB_Examination_GroupRepository examination_GroupRepository = new RB_Examination_GroupRepository();
///
/// 问题解析处理类
///
private readonly AnalysisQuestionTypeModule analysisQuestion = new AnalysisQuestionTypeModule();
///
/// 试卷模板仓储层对象
///
private readonly RB_Examination_TemplateRepository examination_TemplateRepository = new RB_Examination_TemplateRepository();
///
/// 题库仓储层对象
///
private readonly RB_QuestionRepository questionRepository = new RB_QuestionRepository();
///
/// 考试发布仓储层对象
///
private readonly RB_Examination_PublishRepository examination_PublishRepository = new RB_Examination_PublishRepository();
///
/// 考试配置仓储层对象
///
private readonly RB_Examination_ConfigureRepository examination_ConfigureRepository = new RB_Examination_ConfigureRepository();
/// 试卷考试学员仓储层对象
///
private readonly RB_Examination_StudentRepository examination_StudentRepository = new RB_Examination_StudentRepository();
///
/// 教务单据仓储层对象
///
private readonly RB_Education_ReceiptRepository education_ReceiptRepository = new RB_Education_ReceiptRepository();
///
/// 知识点仓储层对象
///
private readonly RB_Question_PointRepository question_PointRepository = new RB_Question_PointRepository();
///
/// 获取试卷分页列表
///
///
///
///
///
///
public List GetExaminationPaperPageModule(int pageIndex, int pageSize, out long rowsCount, RB_Examination_Paper_ViewModel query)
{
List treeList = new List();
var data = examination_PaperRepository.GetExaminationPaperPageRepository(pageIndex, pageSize, out rowsCount, query);
if (data != null && data.Count > 0)
{
var childList = new List();
string ids = string.Join(",", data.Select(qitem => qitem.PaperId));
if (!string.IsNullOrEmpty(ids))
{
childList = examination_PaperRepository.GetExaminationPaperChildRepository(ids);
}
List qIdList = new List();
if (childList != null && childList.Count > 0)
{
var childIds = Common.ConvertHelper.StringToList(string.Join(",", childList.Select(qitem => qitem.PaperId)));
if (childIds != null && childIds.Count > 0)
{
qIdList.AddRange(childIds);
}
}
var idList = Common.ConvertHelper.StringToList(ids);
if (idList != null && idList.Count > 0)
{
qIdList.AddRange(idList);
}
var detailsList = new List();
if (qIdList != null && qIdList.Count > 0)
{
detailsList = examination_DetailsRepository.GetExaminationDetailsStaticListRepository(new RB_Examination_Details_ViewModel()
{
QPaperIds = string.Join(",", qIdList)
});
}
foreach (var item in data)
{
ExaminationPaperTreeModel model = new ExaminationPaperTreeModel()
{
PaperId = item.PaperId,
PaperName = item.PaperName,
QuestionBandIds = item.QuestionBandIds,
DifficultyTypeName = item.DifficultyType.ToName(),
CreateTimeStr = Common.ConvertHelper.FormatTime(item.CreateTime),
CreateBy = item.CreateBy,
CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "",
PublishCount = item.PublishCount,
GenerateType = item.GenerateType,
CreateNum = item.CreateNum,
PaperType = item.PaperType,
ParentId = item.ParentId,
QuestionCount = detailsList?.Where(qitem => qitem.PaperId == item.PaperId)?.FirstOrDefault()?.QuestionCount ?? 0,
ChildList = new List(),
ExamineStatus = item.ExamineStatus,
Reviewer = item.Reviewer,
IsOpen = item.IsOpen,
ExamineRemark = item.ExamineRemark,
ReviewerName = item.Reviewer > 0 ? (UserReidsCache.GetUserLoginInfo(item.Reviewer)?.AccountName ?? "") : ""
};
//model.ChildList = GetPaperChild(childList, detailsList, item.PaperId);
treeList.Add(model);
}
}
return treeList;
}
///
/// 获取当前节点的所有父级节点
///
///
///
public List