using Edu.Model.ViewModel.Customer;
using Edu.Repository.Customer;
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using VT.FW.DB;
using Edu.Common.Enum;
using Edu.Repository.Course;
using Edu.Model.ViewModel.Course;
namespace Edu.Module.Customer
{
///
/// 同行任务处理类
///
public class CustomerTaskModule
{
///
/// 任务仓储层对象
///
private readonly RB_TaskRepository customer_TaskRepository = new RB_TaskRepository();
///
/// 任务详情仓储层对象
///
private readonly RB_TaskDetailsRepository detailsRepository = new RB_TaskDetailsRepository();
///
/// 课程仓储层对象
///
private readonly RB_CourseRepository courseRepository = new RB_CourseRepository();
///
/// 课程系列仓储层对象
///
private readonly RB_Course_CategoryRepository course_CategoryRepository = new RB_Course_CategoryRepository();
///
/// 科目仓储层对象
///
private readonly RB_Course_SubjectRepository course_SubjectRepository = new RB_Course_SubjectRepository();
///
/// 客户完成任务仓储层对象
///
private readonly RB_Customer_FinishtaskRepository customer_FinishtaskRepository = new RB_Customer_FinishtaskRepository();
///
/// 客户任务完成详情仓储层对象
///
private readonly RB_Customer_FinishdetailsRepository customer_FinishdetailsRepository = new RB_Customer_FinishdetailsRepository();
///
/// 获取任务分页列表
///
///
///
///
///
///
public List GetTaskPageModule(int pageIndex, int pageSize, out long rowsCount, RB_Task_Extend query)
{
var list = customer_TaskRepository.GetTaskPageRepository(pageIndex, pageSize, out rowsCount, query);
if (list != null && list.Count > 0)
{
string Ids = string.Join(",", list.Select(qitem => qitem.Id));
var detailsList = new List();
if (!string.IsNullOrEmpty(Ids))
{
detailsList = detailsRepository.GetTaskDetailsListRepository(new RB_TaskDetails_Extend()
{
QTaskIds = Ids
});
ParsingSubTaskTarget(detailsList);
}
foreach (var item in list)
{
item.DetailsList = detailsList?.Where(qitem => qitem.TaskId == item.Id)?.ToList();
}
}
return list;
}
///
/// 处理子任务
///
///
private void ParsingSubTaskTarget(List detailsList)
{
if (detailsList != null && detailsList.Count > 0)
{
var groupList = detailsList.GroupBy(qitem => new { qitem.TaskType }).Select(qitem => new { qitem.Key.TaskType });
var courseList = new List();
var cateList = new List();
var subjectList = new List();
foreach (var item in groupList)
{
if (item.TaskType == Common.Enum.Customer.TaskTypeEnum.Course)
{
string courseIds = string.Join(",", detailsList.Where(qitem => qitem.TaskType == item.TaskType).Select(qitem => qitem.TargetId));
courseList = courseRepository.GetCourseListRepository(new RB_Course_ViewModel()
{
QCourseIds = courseIds
});
}
else if (item.TaskType == Common.Enum.Customer.TaskTypeEnum.CourseCate)
{
string catdIds = string.Join(",", detailsList.Where(qitem => qitem.TaskType == item.TaskType).Select(qitem => qitem.TargetId));
cateList = course_CategoryRepository.GetCourseCategoryListRepository(new RB_Course_Category_ViewModel() { QCateIds = catdIds });
}
else if (item.TaskType == Common.Enum.Customer.TaskTypeEnum.CourseSuject)
{
string subjectIds = string.Join(",", detailsList.Where(qitem => qitem.TaskType == item.TaskType).Select(qitem => qitem.TargetId));
subjectList = course_SubjectRepository.GetCourseSubjectListRepository(new RB_Course_Subject_ViewModel()
{
QIds = subjectIds
});
}
}
foreach (var item in detailsList)
{
item.TargetList = new List