using Edu.AOP.CustomerAttribute; using Edu.Common.Enum.Sale; using Edu.Model.CacheModel; using Edu.Model.ViewModel.Sell; using Edu.Model.ViewModel.StudyAbroad; using Edu.Repository.Course; using Edu.Repository.Sell; using Edu.Repository.StudyAbroad; using System; using System.Collections.Generic; using System.Linq; using System.Text; using VT.FW.DB; namespace Edu.Module.StudyAbroad { /// /// 留学就业处理类 /// public class StudyAbroadModule { /// /// 留学就业仓储层对象 /// private readonly RB_StudyAbroadRepository studyAbroadRepository = new RB_StudyAbroadRepository(); /// /// 留学就业优惠信息仓储层对象 /// private readonly RB_StudyaBroad_PreferentialRepository studyaBroad_PreferentialRepository = new RB_StudyaBroad_PreferentialRepository(); /// /// 订单仓储层对象 /// private readonly RB_OrderRepository orderRepository = new RB_OrderRepository(); /// /// 获取留学就业分页列表 /// /// /// /// /// /// public List GetStudyAbroadPageModule(int pageIndex, int pageSize, out long rowsCount, RB_StudyAbroad_ViewModel query) { var list= studyAbroadRepository.GetStudyAbroadPageRepository(pageIndex, pageSize, out rowsCount, query); if (list != null && list.Count > 0) { string ids = string.Join(",", list.Select(qitem => qitem.Id)); List preferentialList = new List(); if (query.IsQPrice == 1) { preferentialList= GetStudyaBroadPreferentialListModule(new RB_StudyaBroad_Preferential_ViewModel() { QStudyabroadIds = ids }); } foreach (var item in list) { item.PreferentialList = preferentialList?.Where(qitem => qitem.StudyabroadId == item.Id)?.ToList() ?? new List(); } } return list; } /// /// 获取留学就业审核分页列表 /// /// /// /// /// /// public List GetStudyAbroadAuditPageModule(int pageIndex, int pageSize, out long rowsCount, RB_StudyAbroad_ViewModel query) { var list = studyAbroadRepository.GetStudyAbroadAuditPageRepository(pageIndex, pageSize, out rowsCount, query); if (list != null && list.Count > 0) { string ids = string.Join(",", list.Select(qitem => qitem.Id)); List preferentialList = new List(); if (query.IsQPrice == 1) { preferentialList = GetStudyaBroadPreferentialListModule(new RB_StudyaBroad_Preferential_ViewModel() { QStudyabroadIds = ids }); } foreach (var item in list) { item.PreferentialList = preferentialList?.Where(qitem => qitem.StudyabroadId == item.Id)?.ToList() ?? new List(); } } return list; } /// /// 获取留学就业列表 /// /// /// public List GetStudyAbroadListModule(RB_StudyAbroad_ViewModel query) { var list= studyAbroadRepository.GetStudyAbroadListRepository(query); if (list != null && list.Count > 0) { string ids = string.Join(",", list.Select(qitem => qitem.Id)); List preferentialList = new List(); if (query.IsQPrice == 1) { preferentialList = GetStudyaBroadPreferentialListModule(new RB_StudyaBroad_Preferential_ViewModel() { QStudyabroadIds = ids }); } foreach (var item in list) { item.PreferentialList = preferentialList?.Where(qitem => qitem.StudyabroadId == item.Id)?.ToList() ?? new List(); } } return list; } /// /// 获取留学就业优惠列表 /// /// /// public List GetStudyaBroadPreferentialListModule(RB_StudyaBroad_Preferential_ViewModel query) { return studyaBroad_PreferentialRepository.GetStudyaBroadPreferentialListRepostory(query); } /// /// 新增修改留学就业产品 /// /// /// public bool SetStudyAbroadModule(RB_StudyAbroad_ViewModel model) { bool flag = false; if (model.Id > 0) { Dictionary fileds = new Dictionary() { { nameof(RB_StudyAbroad_ViewModel.Type),model.Type}, { nameof(RB_StudyAbroad_ViewModel.Name),model.Name.Trim()}, { nameof(RB_StudyAbroad_ViewModel.SupplierId),model.SupplierId}, { nameof(RB_StudyAbroad_ViewModel.SupplierContract),model.SupplierContract}, { nameof(RB_StudyAbroad_ViewModel.Remark),model.Remark}, { nameof(RB_StudyAbroad_ViewModel.School_Id),model.School_Id}, { nameof(RB_StudyAbroad_ViewModel.ImgCover),model.ImgCover}, }; flag = studyAbroadRepository.Update(fileds, new WhereHelper(nameof(RB_StudyAbroad_ViewModel.Id), model.Id)); } else { var newId = studyAbroadRepository.Insert(model); model.Id = newId; flag = newId > 0; } return flag; } /// /// 批量新增修改留学就业优惠信息 /// /// /// [TransactionCallHandler] public virtual bool SetStudyAbroadPreferentialListModule(RB_StudyAbroad_ViewModel model, List list) { bool flag = false; if (model.Id > 0) { Dictionary fileds = new Dictionary() { {nameof(RB_StudyAbroad_ViewModel.SuggestPrice),model.SuggestPrice }, {nameof(RB_StudyAbroad_ViewModel.SellPrice),model.SellPrice }, }; flag = studyAbroadRepository.Update(fileds, new WhereHelper(nameof(RB_StudyAbroad_ViewModel.Id), model.Id)); } var oldList = GetStudyaBroadPreferentialListModule(new RB_StudyaBroad_Preferential_ViewModel() { StudyabroadId=model.Id }); //原来没有优惠数据 if (oldList == null || (oldList != null && oldList.Count == 0)) { foreach (var item in list) { flag = studyaBroad_PreferentialRepository.Insert(item) > 0; } } //原来有优惠数据 else { if (list == null || (list != null && list.Count == 0)) { flag = studyaBroad_PreferentialRepository.DeleteStudyaBroadPreferentialRepostory(model.Id); } else { //找出差异的数据 var deleteList = oldList.Where(qitem => !list.Any(oldItem => qitem.Id == oldItem.Id)).ToList(); foreach (var dItem in deleteList) { if (dItem.Id > 0) { flag = studyaBroad_PreferentialRepository.Delete(dItem.Id) > 0; } } foreach (var priceItem in list) { if (priceItem.Id == 0) { flag = studyaBroad_PreferentialRepository.Insert(priceItem) > 0; } else { flag = studyaBroad_PreferentialRepository.Update(priceItem); } } } } return flag; } /// /// 根据编号获取留学就业产品信息 /// /// /// public RB_StudyAbroad_ViewModel GetStudyAbroadModule(int Id,int IsGetPrice=0) { var model = studyAbroadRepository.GetStudyAbroadListExtRepository(new RB_StudyAbroad_ViewModel() { Id = Id, School_Id = -1 })?.FirstOrDefault(); if (model != null && IsGetPrice == 1) { model.PreferentialList = GetStudyaBroadPreferentialListModule(new RB_StudyaBroad_Preferential_ViewModel() { StudyabroadId = model.Id }); } return model; } /// /// 更新留学就业产品状态 /// /// 供应商编号 /// 状态(0-正常,1-删除) /// public bool RemoveStudyAbroadModule(int Id, int Status,out string message) { message = ""; var orderList = orderRepository.GetStudyOrderPageListRepository(1, 1, out _, new RB_Order_ViewModel() { SourceId = Id, Q_OrderState = 1 }); if (orderList != null && orderList.Count > 0) { message = "此产品下存在正常订单!不能删除!"; return false; } Dictionary fileds = new Dictionary() { { nameof(RB_StudyAbroad_ViewModel.Status),Status}, }; bool flag = studyAbroadRepository.Update(fileds, new WhereHelper(nameof(RB_StudyAbroad_ViewModel.Id), Id)); return flag; } /// /// 更新留学就业产品提交审核 /// /// /// public bool SetSaleStateModule(int Id,int SaleState) { Dictionary fileds = new Dictionary() { { nameof(RB_StudyAbroad_ViewModel.SaleState),SaleState}, }; if (SaleState == 2) { fileds.Add(nameof(RB_StudyAbroad_ViewModel.DirectorAuditTime), null); fileds.Add(nameof(RB_StudyAbroad_ViewModel.DirectorId), Common.Config.StudyAbroadDirectorId); fileds.Add(nameof(RB_StudyAbroad_ViewModel.DirectorOpinion), ""); fileds.Add(nameof(RB_StudyAbroad_ViewModel.DirectorStatus), 0); } bool flag = studyAbroadRepository.Update(fileds, new WhereHelper(nameof(RB_StudyAbroad_ViewModel.Id), Id)); return flag; } /// /// 部门主管审核 /// /// /// /// [TransactionCallHandler] public virtual bool SetDirectorAuditModule(RB_StudyAbroad_ViewModel model, UserInfo userInfo) { Dictionary fileds = new Dictionary() { { nameof(RB_StudyAbroad_ViewModel.DirectorId),userInfo.Id}, { nameof(RB_StudyAbroad_ViewModel.DirectorOpinion),model.DirectorOpinion}, { nameof(RB_StudyAbroad_ViewModel.DirectorStatus),model.DirectorStatus}, { nameof(RB_StudyAbroad_ViewModel.DirectorAuditTime),model.DirectorAuditTime}, }; //拒绝 if (model.DirectorStatus == 2) { fileds.Add(nameof(RB_StudyAbroad_ViewModel.SaleState), (int)SaleStateEnum.Fail); } else if (model.DirectorStatus == 1) { fileds.Add(nameof(RB_StudyAbroad_ViewModel.ManagerId), Common.Config.StudyAbroadManagerId); fileds.Add(nameof(RB_StudyAbroad_ViewModel.ManagerOpinion), ""); fileds.Add(nameof(RB_StudyAbroad_ViewModel.ManagerStatus),0 ); fileds.Add(nameof(RB_StudyAbroad_ViewModel.ManagerAuditTime), null); } bool flag = studyAbroadRepository.Update(fileds, new WhereHelper(nameof(RB_StudyAbroad_ViewModel.Id), model.Id)); return flag; } /// /// 部门负责人审核 /// /// /// /// [TransactionCallHandler] public virtual bool SetManagerAuditModule(RB_StudyAbroad_ViewModel model, UserInfo userInfo) { Dictionary fileds = new Dictionary() { { nameof(RB_StudyAbroad_ViewModel.ManagerId),userInfo.Id}, { nameof(RB_StudyAbroad_ViewModel.ManagerOpinion),model.ManagerOpinion}, { nameof(RB_StudyAbroad_ViewModel.ManagerStatus),model.ManagerStatus}, { nameof(RB_StudyAbroad_ViewModel.ManagerAuditTime),model.ManagerAuditTime}, }; //拒绝 if (model.DirectorStatus == 2) { fileds.Add(nameof(RB_StudyAbroad_ViewModel.SaleState), (int)SaleStateEnum.Fail); } //通过 else { fileds.Add(nameof(RB_StudyAbroad_ViewModel.SaleState), (int)SaleStateEnum.Sell); } bool flag = studyAbroadRepository.Update(fileds, new WhereHelper(nameof(RB_StudyAbroad_ViewModel.Id), model.Id)); return flag; } } }