using Edu.Model.ViewModel.Sell; using Edu.Repository.Sell; using System; using System.Collections.Generic; using System.Text; using System.Linq; using VT.FW.DB; using Edu.Common.Enum; using Edu.Repository.User; using Edu.Model.ViewModel.User; using Edu.Repository.Course; using Edu.Model.ViewModel.Course; namespace Edu.Module.Course { /// /// 获取课程顾问、市场达标奖金配置处理类 /// public class BonusConfigModule { /// /// 获取课程顾问、市场达标奖金配置仓储层 /// private readonly RB_Bonus_PlanRepository bonus_PlanRepository = new RB_Bonus_PlanRepository(); /// /// 获取课程顾问、市场达标奖金配置阶梯仓储层 /// private readonly RB_Bouns_PlanDetailRepository bouns_PlanDetailRepository = new RB_Bouns_PlanDetailRepository(); /// /// 员工账号仓储层对象 /// private readonly RB_AccountRepository accountRepository = new RB_AccountRepository(); /// /// 课程仓储层对象 /// private readonly RB_CourseRepository courseRepository = new RB_CourseRepository(); /// /// 获取课程顾问、市场达标奖金配置分页列表 /// /// /// /// /// /// public List GetBounsPlanPageModule(int pageIndex, int pageSize, out long rowsCount, RB_Bonus_PlanExtend query) { var list = bonus_PlanRepository.GetBounsPlanPageRepository(pageIndex, pageSize, out rowsCount, query); if (list != null && list.Count>0) { string Ids = string.Join(",", list.Select(qitem => qitem.Id)); var detailsList = bouns_PlanDetailRepository.GetBounsPlanDetailListRepository(new RB_Bouns_PlanDetail_Extend() { QPlanIds = Ids }); //适用人员 string saleIds = string.Join(",", list.Where(qitem=>!string.IsNullOrEmpty(qitem.SaleIds)).Select(qitem => qitem.SaleIds)); List empList = new List(); if (!string.IsNullOrEmpty(saleIds)) { empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { QIds = saleIds }); } List courseIdList = new List(); var useCourseList = Common.ConvertHelper.StringToList(string.Join(",", list.Where(qitem => !string.IsNullOrEmpty(qitem.UseCourseIds)).Select(qitem => qitem.UseCourseIds))); if (useCourseList != null) { courseIdList.AddRange(useCourseList); } var notUseCourseList= Common.ConvertHelper.StringToList(string.Join(",", list.Where(qitem => !string.IsNullOrEmpty(qitem.NotUseCourseIds)).Select(qitem => qitem.NotUseCourseIds))); if (notUseCourseList != null) { courseIdList.AddRange(notUseCourseList); } List courseList = new List(); if (courseIdList != null && courseIdList.Count > 0) { courseList= courseRepository.GetCourseListRepository(new RB_Course_ViewModel() { QCourseIds = string.Join(",", courseIdList) }); } foreach (var item in list) { item.SaleList = new List(); item.UseCourseList = new List(); item.NotUseCourseList = new List(); var saleList = Common.ConvertHelper.StringToList(item.SaleIds); foreach (var sItem in saleList) { var tempEmp = empList?.FirstOrDefault(qitem => qitem.Id == sItem); if (tempEmp != null) { item.SaleList.Add(new SaleManItem() { SaleId = tempEmp.Id, SaleManName = tempEmp.EmployeeName }); } } var useList= Common.ConvertHelper.StringToList(item.UseCourseIds); foreach (var cItem in useList) { var tempCourse = courseList?.FirstOrDefault(qitem => qitem.CourseId == cItem); if (tempCourse != null) { item.UseCourseList.Add(new CourseItem() { CourseId = tempCourse.CourseId, CourseName = tempCourse.CourseName }); } } var notuseList = Common.ConvertHelper.StringToList(item.NotUseCourseIds); foreach (var cItem in notuseList) { var tempCourse = courseList?.FirstOrDefault(qitem => qitem.CourseId == cItem); if (tempCourse != null) { item.NotUseCourseList.Add(new CourseItem() { CourseId = tempCourse.CourseId, CourseName = tempCourse.CourseName }); } } item.DetailList = detailsList?.Where(qitem => qitem.PlanId == item.Id)?.ToList(); } } return list; } /// /// 新增修改课程顾问、市场达标奖金配置 /// /// /// public bool SetBonusPlanModule(RB_Bonus_PlanExtend model) { bool flag = false; if (model.Id > 0) { Dictionary fileds = new Dictionary() { {nameof(RB_Bonus_PlanExtend.PlanType),model.PlanType }, {nameof(RB_Bonus_PlanExtend.PlanName),model.PlanName }, {nameof(RB_Bonus_PlanExtend.BasicSalary),model.BasicSalary }, {nameof(RB_Bonus_PlanExtend.OpenBonus),model.OpenBonus }, {nameof(RB_Bonus_PlanExtend.WorkAgeSalary),model.WorkAgeSalary }, {nameof(RB_Bonus_PlanExtend.ClueNumSalary),model.ClueNumSalary }, {nameof(RB_Bonus_PlanExtend.SaleIds),model.SaleIds }, {nameof(RB_Bonus_PlanExtend.UseCourseIds),model.UseCourseIds }, {nameof(RB_Bonus_PlanExtend.NotUseCourseIds),model.NotUseCourseIds }, {nameof(RB_Bonus_PlanExtend.UpdateBy),model.UpdateBy }, {nameof(RB_Bonus_PlanExtend.UpdateTime),model.UpdateTime }, {nameof(RB_Bonus_PlanExtend.School_Id),model.School_Id }, {nameof(RB_Bonus_PlanExtend.MonthGoalMoney),model.MonthGoalMoney }, }; flag = bonus_PlanRepository.Update(fileds, new WhereHelper(nameof(RB_Bonus_PlanExtend.Id), model.Id)); } else { var newId = bonus_PlanRepository.Insert(model); model.Id = newId; flag = newId > 0; } var oldList = bouns_PlanDetailRepository.GetBounsPlanDetailListRepository(new RB_Bouns_PlanDetail_Extend() { PlanId = model.Id }); //以前没有阶梯人员信息【直接新增】 if (oldList == null || (oldList != null && oldList.Count == 0)) { if (model.DetailList != null && model.DetailList.Count > 0) { foreach (var item in model.DetailList) { item.Status = DateStateEnum.Normal; item.DetailId = 0; item.PlanId = model.Id; bouns_PlanDetailRepository.Insert(item); } } } else//以前有阶梯人员信息 { //现在没有阶梯人员信息了【直接删除以前的阶梯人员】 if (model.DetailList == null || (model.DetailList != null && model.DetailList.Count == 0)) { bouns_PlanDetailRepository.RemoveBounsPlanDetailByPlanIdRepository(model.Id); } //找出差异的数据 var deleteList = oldList.Where(qitem => !model.DetailList.Any(oldItem => qitem.DetailId == oldItem.DetailId)).ToList(); foreach (var dItem in deleteList) { if (dItem.DetailId > 0) { bouns_PlanDetailRepository.RemoveBounsPlanDetailByPlanIdRepository(dItem.PlanId, dItem.DetailId); } } foreach (var priceItem in model.DetailList) { priceItem.PlanId = model.Id; if (priceItem.DetailId == 0) { bouns_PlanDetailRepository.Insert(priceItem); } else { bouns_PlanDetailRepository.Update(priceItem); } } } return flag; } /// /// 根据编号获取课程顾问、市场达标奖金配置 /// /// /// public object GetBonusPlanModule(int Id) { var extModel = bonus_PlanRepository.GetEntity(Id); if (extModel != null) { extModel.DetailList = bouns_PlanDetailRepository.GetBounsPlanDetailListRepository(new RB_Bouns_PlanDetail_Extend() { PlanId = extModel.Id }); } var obj = new { extModel?.Id, extModel?.PlanType, extModel?.PlanName, extModel?.BasicSalary, extModel?.OpenBonus, extModel?.WorkAgeSalary, extModel?.ClueNumSalary, extModel?.SaleIds, SaleIdList = Common.ConvertHelper.StringToList(extModel?.SaleIds), extModel?.UseCourseIds, UseCourseIdList = Common.ConvertHelper.StringToList(extModel?.UseCourseIds), NotUseCourseIdList = Common.ConvertHelper.StringToList(extModel?.NotUseCourseIds), DetailList = extModel?.DetailList ?? new List(), extModel?.MonthGoalMoney, }; return obj; } /// /// 根据编号删除课程顾问、市场达标奖金配置 /// /// /// public bool RemoveBonusPlanModule(int Id) { Dictionary fileds = new Dictionary() { {nameof(RB_Bonus_PlanExtend.Status),(int)DateStateEnum.Delete } }; bool flag = bonus_PlanRepository.Update(fileds, new WhereHelper(nameof(RB_Bonus_PlanExtend.Id), Id)); return flag; } } }