using Edu.AOP.CustomerAttribute;
using Edu.Cache.User;
using Edu.Common;
using Edu.Common.API;
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using Edu.Common.Enum.Sale;
using Edu.Common.Enum.System;
using Edu.Common.Plugin;
using Edu.Model.CacheModel;
using Edu.Model.Entity.Contract;
using Edu.Model.Entity.Course;
using Edu.Model.Entity.Sell;
using Edu.Model.ViewModel.Contract;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Customer;
using Edu.Model.ViewModel.EduTask;
using Edu.Model.ViewModel.Grade;
using Edu.Model.ViewModel.Log;
using Edu.Model.ViewModel.Mall;
using Edu.Model.ViewModel.Reserve;
using Edu.Model.ViewModel.Sell;
using Edu.Model.ViewModel.StudyAbroad;
using Edu.Model.ViewModel.User;
using Edu.Repository.Contract;
using Edu.Repository.Course;
using Edu.Repository.Customer;
using Edu.Repository.EduTask;
using Edu.Repository.Finance;
using Edu.Repository.Grade;
using Edu.Repository.Log;
using Edu.Repository.Reserve;
using Edu.Repository.Sell;
using Edu.Repository.StudyAbroad;
using Edu.Repository.User;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VT.FW.DB;
namespace Edu.Module.Course
{
///
/// 订单处理类
///
public partial class OrderModule
{
///
/// 订单
///
private readonly RB_OrderRepository orderRepository = new RB_OrderRepository();
///
/// 订单备注
///
private readonly RB_Order_RemarkRepository order_RemarkRepository = new RB_Order_RemarkRepository();
///
/// 客人
///
private readonly RB_Order_GuestRepository order_GuestRepository = new RB_Order_GuestRepository();
///
/// 用户日志
///
private readonly RB_User_ChangeLogRepository changeLogRepository = new RB_User_ChangeLogRepository();
///
/// 班级
///
private readonly RB_ClassRepository classRepository = new RB_ClassRepository();
///
/// 阶梯价格
///
private readonly RB_Class_StepPriceRepository class_StepPriceRepository = new RB_Class_StepPriceRepository();
///
/// 订单阶梯价格
///
private readonly RB_Order_StepPriceRepository order_StepPriceRepository = new RB_Order_StepPriceRepository();
///
/// 课程计划
///
private readonly RB_Class_PlanRepository class_PlanRepository = new RB_Class_PlanRepository();
///
/// 班级上课时间仓储层对象
///
private readonly RB_Class_TimeRepository class_TimeRepository = new RB_Class_TimeRepository();
///
/// 课程仓储层对象
///
private readonly RB_CourseRepository courseRepository = new RB_CourseRepository();
///
/// 课程优惠仓储层对象
///
private readonly RB_Course_PreferentialRepository course_PreferentialRepository = new RB_Course_PreferentialRepository();
///
/// 教师
///
private readonly RB_TeacherRepository teacherRepository = new RB_TeacherRepository();
///
/// 助教
///
private readonly RB_AssistRepository assistRepository = new RB_AssistRepository();
///
/// 学生
///
private readonly RB_StudentRepository studentRepository = new RB_StudentRepository();
///
/// 学生日志
///
private readonly RB_Student_LogRepository student_LogRepository = new RB_Student_LogRepository();
///
/// 同行
///
private readonly RB_CustomerRepository customerRepository = new RB_CustomerRepository();
///
/// 同业返佣
///
private readonly RB_Customer_BalanceDetailRepository customer_BalanceDetailRepository = new RB_Customer_BalanceDetailRepository();
///
/// 学生关联
///
private readonly RB_Student_OrderGuestRepository student_OrderGuestRepository = new RB_Student_OrderGuestRepository();
///
/// 账号
///
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
///
/// 合同
///
private readonly RB_Education_ContractRepository education_ContractRepository = new RB_Education_ContractRepository();
///
/// 合同协调金额
///
private readonly RB_Education_ContractAdjustRepository education_ContractAdjustRepository = new RB_Education_ContractAdjustRepository();
///
/// 留学就业仓储层对象
///
private readonly RB_StudyAbroadRepository studyAbroadRepository = new RB_StudyAbroadRepository();
///
/// 报价单仓储层对象
///
private readonly RB_Course_OfferRepository course_OfferRepository = new RB_Course_OfferRepository();
///
/// 财务单据
///
private readonly RB_FinanceRepository financeRepository = new RB_FinanceRepository();
///
/// 财务单据详情
///
private readonly RB_FinanceDetailRepository financeDetailRepository = new RB_FinanceDetailRepository();
///
/// 交易方式
///
private readonly RB_TradeWayRepository tradeWayRepository = new RB_TradeWayRepository();
///
/// 币种
///
private readonly RB_CurrencyRepository currencyRepository = new RB_CurrencyRepository();
///
/// 银行账户
///
private readonly RB_BackAccountRepository backAccountRepository = new RB_BackAccountRepository();
///
/// 现金账户
///
private readonly RB_CashPoolAccountRepository cashPoolAccountRepository = new RB_CashPoolAccountRepository();
///
/// 平台账户
///
private readonly RB_PlatformAccountRepository platformAccountRepository = new RB_PlatformAccountRepository();
///
/// 班级关联课程仓储层对象
///
private readonly RB_Class_CourseRepository class_CourseRepository = new RB_Class_CourseRepository();
///
/// 访客预约仓储层对象
///
private readonly RB_Visitor_ReserveRepository visitor_ReserveRepository = new RB_Visitor_ReserveRepository();
///
/// 订单拆分仓储层对象
///
private readonly RB_Order_SplitDetailsRepository splitDetailsRepository = new RB_Order_SplitDetailsRepository();
///
/// 商品规格值
///
private readonly Repository.Mall.RB_Goods_SpecificationValueRepository goods_SpecificationValueRepository = new Repository.Mall.RB_Goods_SpecificationValueRepository();
///
/// 商品规格价格
///
private readonly Repository.Mall.RB_Goods_SpecificationPriceRepository goods_SpecificationPriceRepository = new Repository.Mall.RB_Goods_SpecificationPriceRepository();
///
/// 财务配置
///
private readonly RB_Finance_ConfigRepository finance_ConfigRepository = new RB_Finance_ConfigRepository();
#region 日语培训
///
/// 获取日语培训
///
///
///
///
///
///
public List GetClassPruductListModule(int pageIndex, int pageSize, out long count, RB_Class_ViewModel dmodel)
{
var list = classRepository.GetClassProductPageList(pageIndex, pageSize, out count, dmodel);
if (list.Any())
{
string classIds = string.Join(",", list.Select(x => x.ClassId));
string courseIds = string.Join(",", list.Select(qitem => qitem.CouseId));
//查询阶梯价格
var stepList = class_StepPriceRepository.GetClassStepPriceListRepository(new RB_Class_StepPrice_ViewModel() { QClassIds = classIds });
var otherCourseList = class_CourseRepository.GetClassCourseListRepository(new RB_Class_Course_Extend() { QClassIds = classIds });
List PlanFixed = new List();
string k2classIds = string.Join(",", list.Where(x => x.ClassStyle == Common.Enum.Course.ClassStyleEnum.FixedDate).Select(x => x.ClassId));
if (!string.IsNullOrEmpty(k2classIds))
{
PlanFixed = class_PlanRepository.GetClassPlanListRepository(new RB_Class_Plan_ViewModel() { QClassIds = k2classIds });
}
foreach (var item in list)
{
item.ClassStepPriceList = stepList.Where(x => x.ClassId == item.ClassId).OrderBy(x => x.PersionNum).ToList();
item.OtherCourseList = otherCourseList?.Where(qitem => qitem.ClassId == item.ClassId)?.ToList() ?? new List();
item.DefaultTimeList = new List();
if (item.ClassStyle != Common.Enum.Course.ClassStyleEnum.OnLine)
{
if (!string.IsNullOrEmpty(item.DefaultTimeJson))
{
item.DefaultTimeList = JsonHelper.DeserializeObject>(item.DefaultTimeJson);
}
}
item.ClassPlanList = new List();
if (item.ClassStyle == Common.Enum.Course.ClassStyleEnum.Week || item.ClassStyle == Common.Enum.Course.ClassStyleEnum.Month)
{
if (!string.IsNullOrEmpty(item.DateJson))
{
List DayList = JsonHelper.DeserializeObject>(item.DateJson);
foreach (var qitem in DayList)
{
item.ClassPlanList.Add(new RB_Class_Plan_ViewModel()
{
WeekDay = qitem
});
}
}
}
else if (item.ClassStyle == Common.Enum.Course.ClassStyleEnum.FixedDate)
{
item.ClassPlanList = PlanFixed.Where(x => x.ClassId == item.ClassId).ToList();
}
}
}
return list;
}
///
/// 获取班级课程信息
///
/// 班级编号
/// 集团编号
///
public Dictionary GetClassCourseListModule(int classId)
{
List