Commit cd8530e5 authored by 吴春's avatar 吴春

提交代码

parent c3330d57
......@@ -159,5 +159,10 @@ namespace Edu.Model.Entity.Course
/// </summary>
public decimal DeductionExtraMoney { get; set; }
/// <summary>
/// 确认状态 2021-06-30 Add By:W 0-未确认,1-已确认
/// </summary>
public int SureStatus { get; set; }
}
}
......@@ -102,5 +102,10 @@ namespace Edu.Model.Entity.Course
/// 抵基础课时
/// </summary>
public int DeductionHour { get; set; }
/// <summary>
/// 提成确认状态0-未确认,1-已确认
/// </summary>
public int SureStatus { get; set; }
}
}
......@@ -20,6 +20,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public string ClassIds { get; set; }
/// <summary>
/// 业务员id
/// </summary>
public int EnterID { get; set; }
/// <summary>
/// rb_student表的id
/// </summary>
......
......@@ -41,5 +41,21 @@ namespace Edu.Model.ViewModel.Course
/// 是否需抵扣 1是
/// </summary>
public int IsDeduction { get; set; }
/// <summary>
/// 查询开始时间(个人中心-我的提成)
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 期数
/// </summary>
public string PeriodsTime { get; set; }
/// <summary>
/// 总提成数
/// </summary>
public decimal TotalMoney { get; set; }
}
}
\ No newline at end of file
......@@ -111,7 +111,8 @@ namespace Edu.Module.Course
/// </summary>
/// <param name="groupId"></param>
/// <returns></returns>
public List<RB_Sell_Commission_Rule_ViewModel> GetSellCommissionRuleList(int groupId) {
public List<RB_Sell_Commission_Rule_ViewModel> GetSellCommissionRuleList(int groupId)
{
var list = sell_Commission_RuleRepository.GetList(new RB_Sell_Commission_Rule_ViewModel() { Group_Id = groupId });
return list;
}
......@@ -126,7 +127,8 @@ namespace Edu.Module.Course
public bool SetSellCommissionRule(decimal firstRate, List<RB_Sell_Commission_Rule_ViewModel> deList, UserInfo userInfo)
{
var olist = sell_Commission_RuleRepository.GetList(new RB_Sell_Commission_Rule_ViewModel() { Group_Id = userInfo.Group_Id });
foreach (var item in deList) {
foreach (var item in deList)
{
var omodel = olist.Where(x => x.ClassType == item.ClassType && x.EnrollType == item.EnrollType).FirstOrDefault();
if (omodel == null)
{
......@@ -140,7 +142,8 @@ namespace Edu.Module.Course
item.FirstRate = firstRate;
sell_Commission_RuleRepository.Insert(item);
}
else {
else
{
//修改
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Sell_Commission_Rule_ViewModel.SalesRate), item.SalesRate},
......@@ -160,7 +163,8 @@ namespace Edu.Module.Course
sell_Commission_RuleRepository.Update(keyValues, wheres);
}
}
foreach (var item in olist) {
foreach (var item in olist)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Sell_Commission_Rule_ViewModel.FirstRate), firstRate}
};
......@@ -201,22 +205,27 @@ namespace Edu.Module.Course
public List<RB_Sell_Commission_Periods_ViewModel> GetSellCommissionPeriodsPageList(int pageIndex, int pageSize, out long count, RB_Sell_Commission_Periods_ViewModel dmodel)
{
var list = sell_Commission_PeriodsRepository.GetPageList(pageIndex, pageSize, out count, dmodel);
if (list.Any()) {
if (list.Any())
{
//查询财务单据
string periodsIds = string.Join(",", list.Select(x => x.Id));
var financeList = financeRepository.GetListSingle(new RB_Finance_Extend() { RB_Group_Id = dmodel.Group_Id, FinanceType = 2, OtherType = 39, ReFinanceIds = periodsIds, IsSelectNormal = 1 });
List<RB_Sell_Commission_Details_ViewModel> scList = new List<RB_Sell_Commission_Details_ViewModel>();
if (dmodel.SchoolId >= 0) {
if (dmodel.SchoolId >= 0)
{
//获取该校区应发提成
scList = sell_Commission_DetailsRepository.GetSchoolCommission(dmodel.SchoolId, periodsIds);
}
foreach (var item in list) {
foreach (var item in list)
{
var flist = financeList.Where(x => x.ReFinanceId == item.Id).Select(x => x.FrID);
if (flist.Any()) {
if (flist.Any())
{
item.Financials = string.Join(",", flist);
}
item.SchooldCommission = item.SumPrice;
if (dmodel.SchoolId >= 0) {
if (dmodel.SchoolId >= 0)
{
item.SchooldCommission = scList.Where(x => x.PeriodId == item.Id).FirstOrDefault()?.CurrentPeriodMoney ?? 0;
}
}
......@@ -232,7 +241,8 @@ namespace Edu.Module.Course
public List<RB_Sell_Commission_Details_ViewModel> GetSellCommissionUserList(RB_Sell_Commission_Details_ViewModel dmodel)
{
var list = sell_Commission_DetailsRepository.GetSellCommissionUserList(dmodel);
if (list.Any()) {
if (list.Any())
{
//查询用户 部门 校区
string userIds = string.Join(",", list.Select(x => x.UserId).Distinct());
string deptIds = string.Join(",", list.Select(x => x.Depart_Id).Distinct());
......@@ -241,7 +251,8 @@ namespace Edu.Module.Course
var dlist = departmentRepository.GetDepartmentListRepository(new RB_Department_ViewModel() { Group_Id = dmodel.Group_Id, QDeptIds = deptIds });
var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = dmodel.Group_Id, QSIds = schoolIds });
foreach (var item in list) {
foreach (var item in list)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
item.DeptName = dlist.Where(x => x.DeptId == item.Depart_Id).FirstOrDefault()?.DeptName ?? "";
......@@ -261,6 +272,20 @@ namespace Edu.Module.Course
return sell_Commission_DetailsRepository.GetSellCommissionStatistics(dmodel);
}
/// <summary>
/// 获取销售提成根据用户id
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Sell_Commission_Details_ViewModel> GetSellCommissionByUser(RB_Sell_Commission_Details_ViewModel demodel)
{
return sell_Commission_DetailsRepository.GetSellCommissionByUser(demodel);
}
/// <summary>
/// 获取提成统计
/// </summary>
......@@ -348,7 +373,8 @@ namespace Edu.Module.Course
{
//首先查询该月是否已创建
var plist = sell_Commission_PeriodsRepository.GetList(new RB_Sell_Commission_Periods_ViewModel() { Group_Id = userInfo.Group_Id, Periods = month });
if (plist.Any()) {
if (plist.Any())
{
return "当月提成已创建";
}
//查询 班级订单 1.尾款收齐 2.学生上课完成总课时超过15 %
......@@ -358,7 +384,8 @@ namespace Edu.Module.Course
string courseIds = string.Join(",", courseList.Select(x => x.CourseId));
#endregion
var orderList = orderRepository.GetAllMoneyCollectedOrderList(userInfo.Group_Id, EDate, courseIds);//开班时间 必须在选择的月份之前 要排除内部班 --------------
if (orderList.Any()) {
if (orderList.Any())
{
#region 基础数据
//查询规则列表
var rulelist = sell_Commission_RuleRepository.GetList(new RB_Sell_Commission_Rule_ViewModel() { Group_Id = userInfo.Group_Id });
......@@ -381,8 +408,10 @@ namespace Edu.Module.Course
#endregion
List<RB_Sell_Commission_Details_ViewModel> CurrentList = new List<RB_Sell_Commission_Details_ViewModel>();//当期的提成数据
List<RB_Order_ViewModel> UpdateOrderList = new List<RB_Order_ViewModel>();// 只记录应发总金额
foreach (var item in orderList) {
if (item.EnterID == item.HelpEnterId) {
foreach (var item in orderList)
{
if (item.EnterID == item.HelpEnterId)
{
item.HelpEnterId = 0;
}
#region 当前已发提成
......@@ -410,7 +439,8 @@ namespace Edu.Module.Course
YFCommission = Math.Round((item.PreferPrice - item.DiscountMoney + item.LessPrice) * (item.CommissionRate + item.CommissionRateTH) / 100, 2, MidpointRounding.AwayFromZero);
}
}
else {
else
{
if (item.CommissionType == 1)
{
YFCommission = item.CommissionRate;// 固定金额 暂时只做人民币;
......@@ -465,7 +495,8 @@ namespace Edu.Module.Course
#region 额外提成
decimal ExtraCommission = item.ExtraRewardMoney - item.ExtraDeductMoney - item.ExtraCommissionMoney;//额外需要发放的提成
//额外奖励 直接发给销售
if (ExtraCommission != 0) {
if (ExtraCommission != 0)
{
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
......@@ -525,7 +556,8 @@ namespace Edu.Module.Course
//可能因为调整应收 导致提成多发 需要补回来 补的时候 又分 销售+老师
if (item.HelpEnterId > 0)
{
if (saleMoney < SaleCommissioned) {
if (saleMoney < SaleCommissioned)
{
decimal saleMoney1 = saleMoney - SaleCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
......@@ -556,7 +588,8 @@ namespace Edu.Module.Course
DeductionExtraMoney = 0
});
}
if (teacherMoney < TeacherCommissioned) {
if (teacherMoney < TeacherCommissioned)
{
decimal teacherMoney1 = teacherMoney - TeacherCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
......@@ -600,7 +633,7 @@ namespace Edu.Module.Course
IsDeduction = 1,
Remark = "当前提成应发:" + YFCommission + ",已实发:" + ClassCommissioned + ",销售应补金额:" + BMoney,
CurrentExtraMoney =0,
CurrentExtraMoney = 0,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
......@@ -674,7 +707,8 @@ namespace Edu.Module.Course
DeductionExtraMoney = 0
});
}
if (teacherMoney < TeacherCommissioned) {
if (teacherMoney < TeacherCommissioned)
{
decimal teacherMoney1 = teacherMoney - TeacherCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
......@@ -811,7 +845,7 @@ namespace Edu.Module.Course
OrderId = item.OrderId,
CurrentPeriodMoney = FirstMoney,
IsFirstCommission = 1,
Remark = "首次发放提成比例:"+ ruleModel.FirstRate,
Remark = "首次发放提成比例:" + ruleModel.FirstRate,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
......@@ -1137,7 +1171,8 @@ namespace Edu.Module.Course
}
//这里 DeList DeExtraList 可能会有重复数据 这里需要排除 ----------------------------------
foreach (var qitem in DeList) {
foreach (var qitem in DeList)
{
qitem.CurrentPeriodMoney = 0 - qitem.DeductionMoney;//直接赋值 抵扣的负数 这样子 当期应发=0
var norModel = NorList.Where(x => x.OrderId == qitem.OrderId && x.UserId == qitem.UserId).FirstOrDefault();
if (norModel == null)
......@@ -1201,7 +1236,8 @@ namespace Edu.Module.Course
}
}
foreach (var qitem in DeExtraList) {
foreach (var qitem in DeExtraList)
{
qitem.CurrentExtraMoney = 0 - qitem.DeductionExtraMoney;//直接赋值 抵扣的负数 这样子 当期应发=0
var norModel = NorList.Where(x => x.OrderId == qitem.OrderId && x.UserId == qitem.UserId).FirstOrDefault();
if (norModel == null)
......@@ -1333,7 +1369,8 @@ namespace Edu.Module.Course
//抵扣的明细
DateTime dtNow = DateTime.Now;
foreach (var qitem in DeductionList) {
foreach (var qitem in DeductionList)
{
qitem.PeriodsId = PeriodsId;
qitem.CreateBy = userInfo.Id;
qitem.CreateTime = dtNow;
......@@ -1354,7 +1391,8 @@ namespace Edu.Module.Course
decimal ExtraCommissioned = dtlist.Where(x => x.OrderId == item.OrderId).Sum(x => x.CurrentExtraMoney);
decimal BackMoney = 0;
int IsCommissionGiveOK = 0;
if (item.CommissionMoney < ClassCommissioned + ExtraCommissioned) {
if (item.CommissionMoney < ClassCommissioned + ExtraCommissioned)
{
//表示扣多了
BackMoney = ClassCommissioned + ExtraCommissioned - item.CommissionMoney;
}
......@@ -1539,12 +1577,15 @@ namespace Edu.Module.Course
DateList.Add(startTime);
return DateList;
}
else {
else
{
string sTime = startTime;
while (true) {
while (true)
{
DateList.Add(sTime);
sTime = Convert.ToDateTime(sTime + "-01").AddMonths(1).ToString("yyyy-MM");
if (sTime == endTime) {
if (sTime == endTime)
{
break;
}
}
......@@ -1565,11 +1606,963 @@ namespace Edu.Module.Course
{
return "";
}
else {
else
{
return "该用户有" + count + "个订单提成需补交,无法设置离职";
}
}
#endregion
#region 本月预计提成
/// <summary>
/// 本月预计提成计算
/// </summary>
/// <param name="month"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public List<RB_Sell_Commission_Details_ViewModel> GetEstimateSellCommissionInfo(string month, UserInfo userInfo)
{
//首先查询该月是否已创建
var plist = sell_Commission_PeriodsRepository.GetList(new RB_Sell_Commission_Periods_ViewModel() { Group_Id = userInfo.Group_Id, Periods = month });
if (plist.Any())
{
return new List<RB_Sell_Commission_Details_ViewModel>();
}
//查询 班级订单 1.尾款收齐 2.学生上课完成总课时超过15 %
string EDate = Convert.ToDateTime(month + "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
#region 查询内部班
var courseList = courseRepository.GetCourseListRepository(new RB_Course_ViewModel() { Group_Id = userInfo.Group_Id, CourseName = "内部班" });
string courseIds = string.Join(",", courseList.Select(x => x.CourseId));
#endregion
var orderList = orderRepository.GetAllMoneyCollectedOrderList(userInfo.Group_Id, EDate, courseIds).Where(x => x.EnterID == userInfo.Id);//开班时间 必须在选择的月份之前 要排除内部班 --------------
if (orderList.Any())
{
#region 基础数据
//查询规则列表
var rulelist = sell_Commission_RuleRepository.GetList(new RB_Sell_Commission_Rule_ViewModel() { Group_Id = userInfo.Group_Id });
//查询所有的人员
var saleIdList = orderList.Select(x => x.EnterID).Distinct().ToList();
//var teacherIdList = orderList.Where(x => x.HelpEnterId > 0&&x.HelpEnterId==userInfo.Id).Select(x => x.HelpEnterId).Distinct().ToList();
//saleIdList.AddRange(teacherIdList);
var userIds = string.Join(",", saleIdList);
var UserList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = userInfo.Group_Id, QIds = userIds });
//查询班级信息
string classIds = string.Join(",", orderList.Select(x => x.ClassId).Distinct());
var clist = classRepository.GetClassListRepository(new RB_Class_ViewModel() { Group_Id = userInfo.Group_Id, Q_ClassIds = classIds });
//查询订单下所有学生 已完成课时
string orderIds = string.Join(",", orderList.Select(x => x.OrderId));
var CheckList = class_CheckRepository.GetClassStudentHoursListForOrderMonth(userInfo.Group_Id, orderIds);//使用月份统计的 方便下面每月消费课时计算
//查询订单下所有学员信息
var glist = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { Group_Id = userInfo.Group_Id, OrderIds = orderIds });
//查询这些订单 已发放提成记录
var dlist = sell_Commission_DetailsRepository.GetList(new RB_Sell_Commission_Details_ViewModel() { Group_Id = userInfo.Group_Id, OrderIds = orderIds });
#endregion
List<RB_Sell_Commission_Details_ViewModel> CurrentList = new List<RB_Sell_Commission_Details_ViewModel>();//当期的提成数据
List<RB_Sell_Commission_Details_ViewModel> NorList = new List<RB_Sell_Commission_Details_ViewModel>();//当期的提成数据
List<RB_Order_ViewModel> UpdateOrderList = new List<RB_Order_ViewModel>();// 只记录应发总金额
foreach (var item in orderList)
{
if (item.EnterID == item.HelpEnterId)
{
item.HelpEnterId = 0;
}
#region 当前已发提成
decimal ClassCommissioned = dlist.Where(x => x.OrderId == item.OrderId).Sum(x => x.CurrentPeriodMoney);
decimal SaleCommissioned = dlist.Where(x => x.OrderId == item.OrderId && x.UserId == item.EnterID).Sum(x => x.CurrentPeriodMoney);
decimal TeacherCommissioned = dlist.Where(x => x.OrderId == item.OrderId && x.UserId == item.HelpEnterId).Sum(x => x.CurrentPeriodMoney);
decimal ExtraCommissioned = dlist.Where(x => x.OrderId == item.OrderId).Sum(x => x.CurrentExtraMoney);
#endregion
var classModel = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault();
if (classModel == null) { break; }
int EnrollType = item.RenewOrderId > 0 ? 2 : 1;
var ruleModel = rulelist.Where(x => x.ClassType == classModel.ClassType && x.EnrollType == EnrollType).FirstOrDefault();//该订单适用规则
#region 订单应发提成 (不包括 额外提成)
decimal YFCommission = 0;
if (item.CommissionType == item.CommissionTypeTH)
{
if (item.CommissionType == 1)
{
YFCommission = item.CommissionRate + item.CommissionRateTH;// 固定金额 暂时只做人民币;
}
else
{
YFCommission = Math.Round((item.PreferPrice - item.DiscountMoney + item.LessPrice) * (item.CommissionRate + item.CommissionRateTH) / 100, 2, MidpointRounding.AwayFromZero);
}
}
else
{
if (item.CommissionType == 1)
{
YFCommission = item.CommissionRate;// 固定金额 暂时只做人民币;
}
else
{
YFCommission = Math.Round((item.PreferPrice - item.DiscountMoney + item.LessPrice) * item.CommissionRate / 100, 2, MidpointRounding.AwayFromZero);
}
if (item.CommissionTypeTH == 1)
{
YFCommission += item.CommissionRateTH;// 固定金额 暂时只做人民币;
}
else
{
YFCommission += Math.Round((item.PreferPrice - item.DiscountMoney + item.LessPrice) * item.CommissionRateTH / 100, 2, MidpointRounding.AwayFromZero);
}
}
if (item.LessPrice > 0)
{
YFCommission -= item.LessPrice;
}
if (YFCommission == 0 && ClassCommissioned == 0)
{
break;
}
#endregion
//销售 + 老师 应发多少提成
decimal saleMoney = 0, teacherMoney = 0;
if (item.HelpEnterId > 0)
{
saleMoney = Math.Round(YFCommission * ruleModel.SalesRate / 100, 2, MidpointRounding.AwayFromZero);
teacherMoney = Math.Round(YFCommission * (100 - ruleModel.SalesRate) / 100, 2, MidpointRounding.AwayFromZero);
if (saleMoney + teacherMoney < YFCommission)
{
saleMoney += YFCommission - saleMoney - teacherMoney;//多余的 加到销售提成里
}
}
else
{
saleMoney = YFCommission;
}
#region 计算课时
var g3list = glist.Where(x => x.OrderId == item.OrderId && x.GuestState != 2).ToList();
//查询这几个学生累计课时
decimal TotalLearn = CheckList.Where(x => x.OrderId == item.OrderId).Sum(x => x.CurrentDeductionHours);//累计消费课时
decimal TotalHours = g3list.Sum(x => x.TotalHours);// 直接根据学生表 总课时计算 (必须签到课时 = 总课时 才发完最后一个月的)
#endregion
#region 额外提成
decimal ExtraCommission = item.ExtraRewardMoney - item.ExtraDeductMoney - item.ExtraCommissionMoney;//额外需要发放的提成
//额外奖励 直接发给销售
if (ExtraCommission != 0)
{
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentExtraMoney = ExtraCommission,
Remark = ExtraCommission > 0 ? "额外奖励" + ExtraCommission + "金额" : "额外扣除" + (ExtraCommission) + "金额",
CurrentPeriodMoney = 0,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = saleMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种只额外奖励的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
var upmodel = UpdateOrderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault();
if (upmodel == null)
{
UpdateOrderList.Add(new RB_Order_ViewModel()
{
OrderId = item.OrderId,
CommissionMoney = YFCommission + (item.ExtraRewardMoney - item.ExtraDeductMoney)
});
}
}
#endregion
if (YFCommission == ClassCommissioned)
{
//正好提成已发放完成 直接更新 订单 已发放Ok
var upmodel = UpdateOrderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault();
if (upmodel == null)
{
UpdateOrderList.Add(new RB_Order_ViewModel()
{
OrderId = item.OrderId,
CommissionMoney = YFCommission + (item.ExtraRewardMoney - item.ExtraDeductMoney)
});
}
}
else if (YFCommission < ClassCommissioned)
{
//可能因为调整应收 导致提成多发 需要补回来 补的时候 又分 销售+老师
if (item.HelpEnterId > 0)
{
if (saleMoney < SaleCommissioned)
{
decimal saleMoney1 = saleMoney - SaleCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentPeriodMoney = saleMoney1,
IsDeduction = 1,
Remark = "当前提成应发:" + saleMoney + ",已实发:" + SaleCommissioned + ",销售应补金额:" + saleMoney1,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = saleMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种补提成的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
if (teacherMoney < TeacherCommissioned)
{
decimal teacherMoney1 = teacherMoney - TeacherCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.HelpEnterId,
OrderId = item.OrderId,
CurrentPeriodMoney = teacherMoney1,
IsDeduction = 1,
Remark = "当前提成应发:" + teacherMoney + ",已实发:" + TeacherCommissioned + ",教师应补金额:" + teacherMoney1,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = teacherMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种补提成的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = TeacherCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
}
else
{
//销售全占
decimal BMoney = YFCommission - ClassCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentPeriodMoney = BMoney,
IsDeduction = 1,
Remark = "当前提成应发:" + YFCommission + ",已实发:" + ClassCommissioned + ",销售应补金额:" + BMoney,
CurrentExtraMoney = 0,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = YFCommission,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种补提成的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
var upmodel = UpdateOrderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault();
if (upmodel == null)
{
UpdateOrderList.Add(new RB_Order_ViewModel()
{
OrderId = item.OrderId,
CommissionMoney = YFCommission + (item.ExtraRewardMoney - item.ExtraDeductMoney)
});
}
}
else
{
#region 班级提成
//查询是否订单下所有学员都已退学
var g2list = glist.Where(x => x.OrderId == item.OrderId).ToList();
if (g2list.Where(x => x.GuestState == 2).Count() == item.GuestNum)
{
//所有学生都退学了 直接计算提成 全部一次性发放
if (item.HelpEnterId > 0)
{
if (saleMoney > SaleCommissioned)
{
decimal saleMoney1 = saleMoney - SaleCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentPeriodMoney = saleMoney1,
Remark = "当前订单学生退学,直接发放剩余提成:" + saleMoney1,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = saleMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种都退学的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
if (teacherMoney < TeacherCommissioned)
{
decimal teacherMoney1 = teacherMoney - TeacherCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.HelpEnterId,
OrderId = item.OrderId,
CurrentPeriodMoney = teacherMoney1,
Remark = "当前订单学生退学,直接发放剩余提成:" + teacherMoney1,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = teacherMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种都退学的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = TeacherCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
}
else
{
//销售全占
decimal BMoney = YFCommission - ClassCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentPeriodMoney = BMoney,
Remark = "当前订单学生退学,直接发放剩余提成:" + BMoney,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = YFCommission,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种补提成的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
var upmodel = UpdateOrderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault();
if (upmodel == null)
{
UpdateOrderList.Add(new RB_Order_ViewModel()
{
OrderId = item.OrderId,
CommissionMoney = YFCommission + (item.ExtraRewardMoney - item.ExtraDeductMoney)
});
}
}
else
{
//验证是否满足 上课课时超15%
if (TotalLearn > TotalHours * Convert.ToDecimal(Config.SellCommissionFFBL))
{
//查询该订单 已发提成记录
//先查询销售的
var salelist = dlist.Where(x => x.OrderId == item.OrderId && x.UserId == item.EnterID).ToList();
if (salelist.Any())
{
SetCommissionNext(month, CheckList, CurrentList, item, classModel, TotalHours, saleMoney, salelist, item.EnterID, true);
}
else
{
//直接 发首次提成
decimal FirstMoney = Math.Round(saleMoney * ruleModel.FirstRate / 100, 2, MidpointRounding.AwayFromZero);
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentPeriodMoney = FirstMoney,
IsFirstCommission = 1,
Remark = "首次发放提成比例:" + ruleModel.FirstRate,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = saleMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种首次发放提成的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = ruleModel.SalesRate,
TeacherRate = ruleModel.TeacherRate,
AssistantRate = ruleModel.AssistantRate,
FirstRate = ruleModel.FirstRate,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
if (item.HelpEnterId > 0)
{
//给老师发提成
var teacherlist = dlist.Where(x => x.OrderId == item.OrderId && x.UserId == item.HelpEnterId).ToList();
if (teacherlist.Any())
{
SetCommissionNext(month, CheckList, CurrentList, item, classModel, TotalHours, teacherMoney, teacherlist, item.HelpEnterId, false);
}
else
{
//直接 发首次提成
decimal FirstMoney = Math.Round(teacherMoney * ruleModel.FirstRate / 100, 2, MidpointRounding.AwayFromZero);
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.HelpEnterId,
OrderId = item.OrderId,
CurrentPeriodMoney = FirstMoney,
IsFirstCommission = 1,
Remark = "首次发放提成比例:" + ruleModel.FirstRate,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = teacherMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种首次发的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = TeacherCommissioned + ExtraCommissioned,
SalesRate = ruleModel.SalesRate,
TeacherRate = ruleModel.TeacherRate,
AssistantRate = ruleModel.AssistantRate,
FirstRate = ruleModel.FirstRate,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
}
var upmodel = UpdateOrderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault();
if (upmodel == null)
{
UpdateOrderList.Add(new RB_Order_ViewModel()
{
OrderId = item.OrderId,
CommissionMoney = YFCommission + (item.ExtraRewardMoney - item.ExtraDeductMoney)
});
}
}
}
#endregion
}
}
#region 开始遍历
List<RB_Sell_Commission_Deduction_ViewModel> DeductionList = new List<RB_Sell_Commission_Deduction_ViewModel>();//抵扣详情
var ExtraList = CurrentList.Where(x => x.CurrentExtraMoney > 0).ToList();//额外提成的
NorList = CurrentList.Where(x => x.IsDeduction != 1 && x.CurrentExtraMoney == 0).ToList();//正常的
var DeList = CurrentList.Where(x => x.IsDeduction == 1).ToList();//需抵扣的 负数存的
var DeExtraList = CurrentList.Where(x => x.CurrentExtraMoney < 0).ToList();//额外奖励 需抵扣的 负数存的
//先把正常订单 额外奖励加上去
foreach (var qitem in ExtraList)
{
var norModel = NorList.Where(x => x.OrderId == qitem.OrderId && x.UserId == qitem.UserId).FirstOrDefault();
if (norModel == null)
{
NorList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = qitem.UserId,
OrderId = qitem.OrderId,
CurrentPeriodMoney = 0,
CurrentExtraMoney = qitem.CurrentExtraMoney,
AssistantRate = qitem.AssistantRate,
Remark = qitem.Remark,
DeductionExtraMoney = qitem.DeductionExtraMoney,
BackMoney = qitem.BackMoney,
ClassId = qitem.ClassId,
ClassName = qitem.ClassName,
ClassType = qitem.ClassType,
ClassTypeName = qitem.ClassTypeName,
CommissionMoney = qitem.CommissionMoney,
CurrentHours = qitem.CurrentHours,
DeductionMoney = qitem.DeductionMoney,
DeductionOrder = qitem.DeductionOrder,
Depart_Id = qitem.Depart_Id,
DeptName = qitem.DeptName,
FirstRate = qitem.FirstRate,
GiveOutMoney = qitem.GiveOutMoney,
Group_Id = qitem.Group_Id,
Id = qitem.Id,
IsContinueClass = qitem.IsContinueClass,
IsDeduction = qitem.IsDeduction,
IsFirstCommission = qitem.IsFirstCommission,
OrderIds = qitem.OrderIds,
OtherMoney = qitem.OtherMoney,
PeriodId = qitem.PeriodId,
Periods = qitem.Periods,
SalesRate = qitem.SalesRate,
School_Id = qitem.School_Id,
StudentCount = qitem.StudentCount,
TeacherRate = qitem.TeacherRate,
TotalHours = qitem.TotalHours,
TotalLearn = qitem.TotalLearn
});
}
else
{
norModel.CurrentExtraMoney = qitem.CurrentExtraMoney;
norModel.Remark += ";" + qitem.Remark;
}
}
//遍历班级提成需抵扣的
foreach (var xdkitem in DeList)
{
var nordList = NorList.Where(x => x.UserId == xdkitem.UserId).OrderBy(x => x.OrderId).ToList();
if (nordList.Any())
{
//从订单一次开始抵扣 抵扣了之后 原金额不动, 抵扣字段增加
foreach (var dkitem in nordList)
{
if (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney >= 0)
{
//补交完了 继续下一个
break;
}
if ((dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) <= 0 && dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney <= 0)
{
//已经没有钱可以抵扣了 继续下一个 (班级提成 + 额外奖励)
continue;
}
if ((xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney) + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) >= 0)
{
//全部抵扣 用需抵扣
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = 0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 帮订单" + xdkitem.OrderId + " 抵扣" + (0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney));
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 帮补交" + (0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney));
//更新数据
dkitem.DeductionMoney += xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney;//存负数 表抵扣了这么多
xdkitem.DeductionMoney += 0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney);//正数
}
else
{
if ((dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) > 0)
{
//部分抵扣 用正常的
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 帮补交" + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 帮订单" + xdkitem.OrderId + " 抵扣" + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);
//更新数据
xdkitem.DeductionMoney += (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);//正数
dkitem.DeductionMoney += 0 - (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);//存负数 表抵扣了这么多
}
//继续抵扣奖励
if (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney > 0)
{
if ((xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney) + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney) >= 0)
{
//可以抵扣完
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionExtraMoney = 0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney),
DeductionMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 使用额外奖励帮订单" + xdkitem.OrderId + " 抵扣" + (0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney));
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 使用额外奖励帮补交" + (0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney));
//更新数据
dkitem.DeductionExtraMoney += xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney;//存负数 表抵扣了这么多
xdkitem.DeductionMoney += 0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney);//正数
}
else
{
if ((dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney) > 0)
{
//部分抵扣 用正常的
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 使用额外奖励帮补交" + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 使用额外奖励帮订单" + xdkitem.OrderId + " 抵扣" + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);
//更新数据
xdkitem.DeductionMoney += (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);//正数
dkitem.DeductionExtraMoney += 0 - (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);//存负数 表抵扣了这么多
}
}
}
}
}
}
}
//遍历额外奖励需抵扣的 这个一般应该不会有 概率非常小
foreach (var xdkitem in DeExtraList)
{
var nordList = NorList.Where(x => x.UserId == xdkitem.UserId).OrderBy(x => x.OrderId).ToList();
if (nordList.Any())
{
//从订单一次开始抵扣 抵扣了之后 原金额不动, 抵扣字段增加
foreach (var dkitem in nordList)
{
if (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney >= 0)
{
//补交完了 继续下一个
break;
}
if ((dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) <= 0 && dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney <= 0)
{
//已经没有钱可以抵扣了 继续下一个 (班级提成 + 额外奖励)
continue;
}
if ((xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney) + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) >= 0)
{
//全部抵扣 用需抵扣
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = 0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 帮订单" + xdkitem.OrderId + " 抵扣" + (0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney));
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 帮补交" + (0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney));
//更新数据
dkitem.DeductionMoney += xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney;//存负数 表抵扣了这么多
xdkitem.DeductionExtraMoney += 0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney);//正数
}
else
{
if ((dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) > 0)
{
//部分抵扣 用正常的
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 帮补交" + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 帮订单" + xdkitem.OrderId + " 抵扣" + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);
//更新数据
xdkitem.DeductionExtraMoney += (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);//正数
dkitem.DeductionMoney += 0 - (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);//存负数 表抵扣了这么多
}
//继续抵扣奖励
if (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney > 0)
{
if ((xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney) + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney) >= 0)
{
//可以抵扣完
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionExtraMoney = 0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney),
DeductionMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 使用额外奖励帮订单" + xdkitem.OrderId + " 抵扣" + (0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney));
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 使用额外奖励帮补交" + (0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney));
//更新数据
dkitem.DeductionExtraMoney += xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney;//存负数 表抵扣了这么多
xdkitem.DeductionExtraMoney += 0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney);//正数
}
else
{
if ((dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney) > 0)
{
//部分抵扣 用正常的
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 使用额外奖励帮补交" + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 使用额外奖励帮订单" + xdkitem.OrderId + " 抵扣" + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);
//更新数据
xdkitem.DeductionExtraMoney += (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);//正数
dkitem.DeductionExtraMoney += 0 - (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);//存负数 表抵扣了这么多
}
}
}
}
}
}
}
//这里 DeList DeExtraList 可能会有重复数据 这里需要排除 ----------------------------------
foreach (var qitem in DeList)
{
qitem.CurrentPeriodMoney = 0 - qitem.DeductionMoney;//直接赋值 抵扣的负数 这样子 当期应发=0
var norModel = NorList.Where(x => x.OrderId == qitem.OrderId && x.UserId == qitem.UserId).FirstOrDefault();
if (norModel == null)
{
NorList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = qitem.UserId,
OrderId = qitem.OrderId,
CurrentPeriodMoney = qitem.CurrentPeriodMoney,
CurrentExtraMoney = qitem.CurrentExtraMoney,
DeductionMoney = qitem.DeductionMoney,
DeductionExtraMoney = qitem.DeductionExtraMoney,
Remark = qitem.Remark,
AssistantRate = qitem.AssistantRate,
BackMoney = qitem.BackMoney,
ClassId = qitem.ClassId,
ClassName = qitem.ClassName,
ClassType = qitem.ClassType,
ClassTypeName = qitem.ClassTypeName,
CommissionMoney = qitem.CommissionMoney,
CurrentHours = qitem.CurrentHours,
DeductionOrder = qitem.DeductionOrder,
Depart_Id = qitem.Depart_Id,
DeptName = qitem.DeptName,
FirstRate = qitem.FirstRate,
GiveOutMoney = qitem.GiveOutMoney,
Group_Id = qitem.Group_Id,
Id = qitem.Id,
IsContinueClass = qitem.IsContinueClass,
IsDeduction = qitem.IsDeduction,
IsFirstCommission = qitem.IsFirstCommission,
OrderIds = qitem.OrderIds,
OtherMoney = qitem.OtherMoney,
PeriodId = qitem.PeriodId,
Periods = qitem.Periods,
SalesRate = qitem.SalesRate,
School_Id = qitem.School_Id,
StudentCount = qitem.StudentCount,
TeacherRate = qitem.TeacherRate,
TotalHours = qitem.TotalHours,
TotalLearn = qitem.TotalLearn
});
}
else
{
if (qitem.OrderId == norModel.OrderId)
{
norModel.CurrentPeriodMoney = qitem.CurrentPeriodMoney;
norModel.DeductionMoney = qitem.DeductionMoney;
norModel.Remark += ";" + qitem.Remark;
}
else
{
norModel.CurrentPeriodMoney += qitem.CurrentPeriodMoney;
norModel.CurrentExtraMoney += qitem.CurrentExtraMoney;
norModel.DeductionMoney += qitem.DeductionMoney;
norModel.DeductionExtraMoney += qitem.DeductionExtraMoney;
norModel.Remark += ";" + qitem.Remark;
}
}
}
foreach (var qitem in DeExtraList)
{
qitem.CurrentExtraMoney = 0 - qitem.DeductionExtraMoney;//直接赋值 抵扣的负数 这样子 当期应发=0
var norModel = NorList.Where(x => x.OrderId == qitem.OrderId && x.UserId == qitem.UserId).FirstOrDefault();
if (norModel == null)
{
NorList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = qitem.UserId,
OrderId = qitem.OrderId,
CurrentPeriodMoney = qitem.CurrentPeriodMoney,
CurrentExtraMoney = qitem.CurrentExtraMoney,
DeductionMoney = qitem.DeductionMoney,
DeductionExtraMoney = qitem.DeductionExtraMoney,
Remark = qitem.Remark,
AssistantRate = qitem.AssistantRate,
BackMoney = qitem.BackMoney,
ClassId = qitem.ClassId,
ClassName = qitem.ClassName,
ClassType = qitem.ClassType,
ClassTypeName = qitem.ClassTypeName,
CommissionMoney = qitem.CommissionMoney,
CurrentHours = qitem.CurrentHours,
DeductionOrder = qitem.DeductionOrder,
Depart_Id = qitem.Depart_Id,
DeptName = qitem.DeptName,
FirstRate = qitem.FirstRate,
GiveOutMoney = qitem.GiveOutMoney,
Group_Id = qitem.Group_Id,
Id = qitem.Id,
IsContinueClass = qitem.IsContinueClass,
IsDeduction = qitem.IsDeduction,
IsFirstCommission = qitem.IsFirstCommission,
OrderIds = qitem.OrderIds,
OtherMoney = qitem.OtherMoney,
PeriodId = qitem.PeriodId,
Periods = qitem.Periods,
SalesRate = qitem.SalesRate,
School_Id = qitem.School_Id,
StudentCount = qitem.StudentCount,
TeacherRate = qitem.TeacherRate,
TotalHours = qitem.TotalHours,
TotalLearn = qitem.TotalLearn
});
}
else
{
if (qitem.OrderId == norModel.OrderId)
{
norModel.CurrentExtraMoney = qitem.CurrentExtraMoney;
norModel.DeductionExtraMoney = qitem.DeductionExtraMoney;
norModel.Remark += ";" + qitem.Remark;
}
else
{
norModel.CurrentPeriodMoney += qitem.CurrentPeriodMoney;
norModel.CurrentExtraMoney += qitem.CurrentExtraMoney;
norModel.DeductionMoney += qitem.DeductionMoney;
norModel.DeductionExtraMoney += qitem.DeductionExtraMoney;
norModel.Remark += ";" + qitem.Remark;
}
}
}
#endregion
return NorList;
}
return new List<RB_Sell_Commission_Details_ViewModel>();
}
#endregion
}
}
......@@ -831,7 +831,15 @@ namespace Edu.Module.Course
return teaching_BonusDetailRepository.GetList(demodel);
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Teaching_BonusDetail_ViewModel> GetListByTeacherId(RB_Teaching_BonusDetail_ViewModel demodel)
{
return teaching_BonusDetailRepository.GetListByTeacherId(demodel);
}
#endregion
......
......@@ -582,5 +582,131 @@ WHERE o.Group_Id ={group_Id} and o.OrderState =1 and o.EffectStatus in(1,2) and
return obj != null ? Convert.ToInt32(obj) : 0;
}
#endregion
#region 未完成的订单
/// <summary>
/// 获取我的未完成的订单
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Order_ViewModel> GetOrderNoComplete( RB_Order_ViewModel demodel)
{
string where = $@" 1=1 and (o.Income+o.PlatformTax+o.DiscountMoney-o.Refund)<o.PreferPrice ";
where += $@" and o.{nameof(RB_Order_ViewModel.OrderType)} ={(int)OrderTypeEnum.CourseOrder} ";
if (demodel.Group_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.School_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.School_Id)} ={demodel.School_Id}";
}
if (demodel.OrderId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderId)} ={demodel.OrderId}";
}
else
{
if (demodel.ClassId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.ClassId)} ={demodel.ClassId}";
}
if (demodel.OrderState > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} ={(int)demodel.OrderState}";
}
if (demodel.OrderSource > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderSource)} ={(int)demodel.OrderSource}";
}
if (demodel.OrderForm > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderForm)} ={(int)demodel.OrderForm}";
}
if (demodel.EnterID > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.EnterID)} ={demodel.EnterID}";
}
if (demodel.Dept_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.Dept_Id)} ={demodel.Dept_Id}";
}
if (demodel.Q_OrderState > 0)
{
if (demodel.Q_OrderState == 1)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} in(1,2)";
}
else if (demodel.Q_OrderState == 2)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} =3";
}
}
if (!string.IsNullOrEmpty(demodel.ClassName))
{
where += $@" and c.{nameof(RB_Class.ClassName)} like '%{demodel.ClassName}%'";
}
if (!string.IsNullOrEmpty(demodel.GuestName))
{
if (demodel.Group_Id > 0)
{
where += $@" and o.OrderId in (select OrderId from rb_order_guest where Status =0 and Group_Id ={demodel.Group_Id} and GuestName like '%{demodel.GuestName}%')";
}
else
{
where += $@" and o.OrderId in (select OrderId from rb_order_guest where Status =0 and GuestName like '%{demodel.GuestName}%')";
}
}
if (demodel.CourseId > 0)
{
where += $@" and c.{nameof(RB_Class.CouseId)} ={demodel.CourseId}";
}
if (!string.IsNullOrEmpty(demodel.StartTime))
{
where += $@" and o.{nameof(RB_Order_ViewModel.CreateTime)} >='{demodel.StartTime}'";
}
if (!string.IsNullOrEmpty(demodel.EndTime))
{
where += $@" and o.{nameof(RB_Order_ViewModel.CreateTime)} <='{demodel.EndTime} 23:59:59'";
}
if (!string.IsNullOrEmpty(demodel.OPStartTime))
{
where += $@" and c.{nameof(RB_Class.OpenTime)} >='{demodel.OPStartTime}'";
}
if (!string.IsNullOrEmpty(demodel.OPEndTime))
{
where += $@" and c.{nameof(RB_Class.OpenTime)} <='{demodel.OPEndTime} 23:59:59'";
}
if (demodel.Q_NotCollect == 1)
{
where += $@" and o.{nameof(RB_Order_ViewModel.PreferPrice)} > (o.{nameof(RB_Order_ViewModel.Income)} - o.{nameof(RB_Order_ViewModel.Refund)} + o.{nameof(RB_Order_ViewModel.PlatformTax)} + o.{nameof(RB_Order_ViewModel.DiscountMoney)}) ";
}
}
string orderBy = " o.OrderId asc";
if (demodel.Q_OrderBy == 1)
{
orderBy = " o.OrderId asc";
}
else if (demodel.Q_OrderBy == 2)
{
orderBy = " o.CreateTime desc";
}
string sql = $@"
select o.*,c.ClassName,c.School_Id as ClassSchoolId,t.TeacherName,t.TeacherIcon,IFNULL(course.CourseName,'') AS CourseName,C.OpenTime
from RB_Order o
left join rb_class c on o.ClassId = c.ClassId
left join rb_teacher t on c.Teacher_Id = t.TId
LEFT JOIN rb_course AS course ON (o.CourseId=course.CourseId AND o.CourseId>0 AND o.OrderType=1)
where {where} order by {orderBy}
";
return Get<RB_Order_ViewModel>( sql).ToList();
}
#endregion
}
}
......@@ -172,5 +172,70 @@ WHERE 1=1 AND A.Status=0
return int.Parse(obj.ToString());
}
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <param name="orderIds"></param>
/// <returns></returns>
public List<RB_Order_Guest_ViewModel> GetOrderGuestListByEnterID(RB_Order_Guest_ViewModel demodel)
{
string where = $@" 1=1 and a.CompleteHours<15 and b.OrderState=1 and c.ClassStatus=2 and a.`Status`=0";
if (demodel.Group_Id > 0)
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
//if (demodel.School_Id > 0)
//{
// where += $@" and A.{nameof(RB_Order_Guest_ViewModel.School_Id)} ={demodel.School_Id}";
//}
if (demodel.Id > 0)
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.Id)} ={demodel.Id}";
}
if (demodel.EnterID > 0)
{
where += $@" and b.{nameof(RB_Order_Guest_ViewModel.EnterID)} ={demodel.EnterID}";
}
if (demodel.OrderId > 0)
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (demodel.ClassId > 0)
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.ClassId)} ={demodel.ClassId}";
}
if (!string.IsNullOrEmpty(demodel.OrderIds))
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.OrderId)} in({demodel.OrderIds})";
}
if (!string.IsNullOrEmpty(demodel.ClassIds))
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.ClassId)} in({demodel.ClassIds})";
}
if (!string.IsNullOrEmpty(demodel.GuestName))
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.GuestName)} like '%{demodel.GuestName}%'";
}
if (demodel.GuestState > 0)
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.GuestState)} ={demodel.GuestState}";
}
if (demodel.QEffectStatus == 1)
{
where += $@" AND (B.IsChaBan=0 OR (B.IsChaBan=1 AND B.EffectStatus IN(1) )) ";
}
string sql = $@"
SELECT A.*,IFNULL(B.IsChaBan,0) AS IsChaBan,IFNULL(B.StartClassHours,0) AS StartClassHours
,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId
FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId
LEFT JOIN rb_class as c on a.ClassId=c.ClassId
WHERE {where}";
return Get<RB_Order_Guest_ViewModel>(sql).ToList();
}
}
}
......@@ -61,7 +61,7 @@ namespace Edu.Repository.Course
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Sell_Commission_Details_ViewModel> GetPageList(int pageIndex,int pageSize,out long count, RB_Sell_Commission_Details_ViewModel demodel)
public List<RB_Sell_Commission_Details_ViewModel> GetPageList(int pageIndex, int pageSize, out long count, RB_Sell_Commission_Details_ViewModel demodel)
{
string where = $@" 1=1";
......@@ -197,5 +197,57 @@ GROUP BY PeriodId ";
var obj = ExecuteScalar(sql);
return obj == null ? 0 : Convert.ToDecimal(obj);
}
/// <summary>
/// 获取销售提成根据用户id
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Sell_Commission_Details_ViewModel> GetSellCommissionByUser(RB_Sell_Commission_Details_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_Sell_Commission_Details_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.School_Id >= 0)
{
where += $@" and r.{nameof(RB_Sell_Commission_Details_ViewModel.School_Id)} ={demodel.School_Id}";
}
if (demodel.Depart_Id > 0)
{
where += $@" and r.{nameof(RB_Sell_Commission_Details_ViewModel.Depart_Id)} ={demodel.Depart_Id}";
}
if (demodel.PeriodId > 0)
{
where += $@" and r.{nameof(RB_Sell_Commission_Details_ViewModel.PeriodId)} ={demodel.PeriodId}";
}
if (demodel.UserId > 0)
{
where += $@" and r.{nameof(RB_Sell_Commission_Details_ViewModel.UserId)} ={demodel.UserId}";
}
if (demodel.ClassId > 0)
{
where += $@" and r.{nameof(RB_Sell_Commission_Details_ViewModel.ClassId)} ={demodel.ClassId}";
}
if (demodel.OrderId > 0)
{
where += $@" and r.{nameof(RB_Sell_Commission_Details_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (!string.IsNullOrWhiteSpace(demodel.PeriodsTime))
{
where += $@" and DATE_FORMAT(STR_TO_DATE(CONCAT(p.Periods,'-01'),'%Y-%m-%d'),'%Y-%m-%d')>=DATE_FORMAT('{demodel.PeriodsTime}','%Y-%m-%d')";
}
string sql = $@" SELECT
r.*, p.Periods AS PeriodsTime
FROM
RB_Sell_Commission_Details r
LEFT JOIN rb_sell_commission_periods AS p ON r.PeriodId = p.Id where {where} ";
return Get<RB_Sell_Commission_Details_ViewModel>(sql).ToList();
}
}
}
......@@ -55,7 +55,6 @@ namespace Edu.Repository.Course
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.Type)} ={demodel.Type}";
}
string sql = $@" select A.* from RB_Teaching_BonusDetail as A LEFT JOIN rb_teaching_bonus as b on a.BonusId=b.Id and b.State=2 where {where} order by a.Id desc";
return Get<RB_Teaching_BonusDetail_ViewModel>(sql).ToList();
}
......@@ -295,5 +294,55 @@ where {where}";
var obj = ExecuteScalar(sql);
return obj == null ? 0 : Convert.ToDecimal(obj);
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Teaching_BonusDetail_ViewModel> GetListByTeacherId(RB_Teaching_BonusDetail_ViewModel demodel)
{
string where = $@" 1=1 and A.Status=0 and b.State=2";
if (demodel.Group_Id > 0)
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.School_Id > 0)
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.School_Id)} ={demodel.School_Id}";
}
if (demodel.BonusId > 0)
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.BonusId)} ={demodel.BonusId}";
}
if (!string.IsNullOrEmpty(demodel.BonusIds))
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.BonusId)} in({demodel.BonusIds})";
}
if (demodel.TeacherId > 0)
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.TeacherId)} ={demodel.TeacherId}";
}
if (demodel.ClassId > 0)
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.ClassId)} ={demodel.ClassId}";
}
if (!string.IsNullOrEmpty(demodel.ClassIds))
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.ClassId)} in({demodel.ClassIds})";
}
if (demodel.Type > 0)
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.Type)} ={demodel.Type}";
}
if (!string.IsNullOrWhiteSpace(demodel.Month))//2021-06-30 Add by:W
{
where += $@" and DATE_FORMAT(STR_TO_DATE(CONCAT(b.Month,'-01'),'%Y-%m-%d'),'%Y-%m-%d')>=DATE_FORMAT('{demodel.Month}','%Y-%m-%d')";
}
string sql = $@" select A.*,,b.`Month` from RB_Teaching_BonusDetail as A LEFT JOIN rb_teaching_bonus as b on a.BonusId=b.Id where {where} order by a.Id desc";
return Get<RB_Teaching_BonusDetail_ViewModel>(sql).ToList();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Edu.AOP;
using Edu.Common.API;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.User;
using Edu.Module.Course;
using Edu.Module.User;
using Edu.Repository.Course;
using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace Edu.WebApi.Controllers.User
{
[Route("api/[controller]/[action]")]
[ApiExceptionFilter]
[ApiController]
[EnableCors("AllowCors")]
public class UserInfoController : BaseController
{
/// <summary>
/// 集团处理类对象
/// </summary>
private readonly GroupModule groupModule = AOPHelper.CreateAOPObject<GroupModule>();
/// <summary>
/// 学校处理类对象
/// </summary>
private readonly SchoolModule schoolModule = AOPHelper.CreateAOPObject<SchoolModule>();
/// <summary>
/// 账户相关处理类对象
/// </summary>
private readonly AccountModule accountModule = AOPHelper.CreateAOPObject<AccountModule>();
/// <summary>
/// 员工处理类对象
/// </summary>
private readonly EmployeeModule employeeModule = new EmployeeModule();
/// <summary>
/// 教务奖励处理类对象
/// </summary>
private readonly SellCommissionModule sellCommissionModule = new SellCommissionModule();
/// <summary>
/// 教师奖励明细
/// </summary>
private readonly TeachingRewardsModule teachingRewardsModule = new TeachingRewardsModule();
private readonly OrderModule orderModule = new OrderModule();
#region 个人资料-密码修改
/// <summary>
/// 重置用户密码信息
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult UpdateUserPassword()
{
var OldPassWord = base.ParmJObj.GetStringValue("OldPassWord");
var NewPassWord = base.ParmJObj.GetStringValue("NewPassWord");
var NewSurePassWord = base.ParmJObj.GetStringValue("NewSurePassWord");
if (OldPassWord.Equals(NewPassWord))
{
return ApiResult.Failed(message: "新密码与旧密码不能一致");
}
else
{
var extModel = employeeModule.GetEmployeeModule(base.UserInfo.Id, base.UserInfo.AccountId, (int)base.UserInfo.AccountType);
if (extModel == null)
{
return ApiResult.Failed(message: "员工信息不存在");
}
if (extModel.Password == Common.DES.Encrypt(NewSurePassWord))
{
return ApiResult.Failed(message: "新密码与旧密码不能一致");
}
if (!NewSurePassWord.Equals(NewPassWord))
{
return ApiResult.Failed(message: "新密码输入不一致");
}
List<RB_Account_ViewModel> list = new List<RB_Account_ViewModel>();
list.Add(new RB_Account_ViewModel
{
Id = base.UserInfo.Id,
AccountId = base.UserInfo.AccountId,
AccountType = base.UserInfo.AccountType,
Group_Id = base.UserInfo.Group_Id
});
bool result = accountModule.SetBatchResetPassword(list, NewPassWord);
if (result)
{
return ApiResult.Failed(message: "更新密码成功");
}
else
{
return ApiResult.Failed(message: "更新密码失败");
}
}
}
#endregion
#region 个人资料-账户资料
/// <summary>
/// 添加修改管理者 SetManager
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetEmployeeBaseInfo()
{
var extModel = new Employee_ViewModel()
{
EmployeeName = base.ParmJObj.GetStringValue("EmployeeName"),
EmployeeTel = base.ParmJObj.GetStringValue("EmployeeTel"),
UserIcon = base.ParmJObj.GetStringValue("UserIcon"),
Email = base.ParmJObj.GetStringValue("Email"),
School_Id = base.ParmJObj.GetInt("School_Id"),
};
var updateModel = employeeModule.GetEmployeeModule(base.UserInfo.Id, base.UserInfo.AccountId, (int)base.UserInfo.AccountType);
updateModel.EmployeeName = extModel.EmployeeName;
updateModel.EmployeeTel = extModel.EmployeeTel;
updateModel.UserIcon = extModel.UserIcon;
updateModel.Email = extModel.Email;
updateModel.School_Id = extModel.School_Id;
updateModel.UpdateBy = base.UserInfo.Id;
updateModel.UpdateTime = DateTime.Now;
bool flag = employeeModule.SetEmployeeModule(updateModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
#endregion
#region 个人中心
[HttpPost]
public ApiResult GetUserCenterInfo()
{
#region 新同事
var employeeList = employeeModule.GetEmployeeListModule(new Employee_ViewModel
{
StartEntryTime = System.DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd"),
EndEntryTime = System.DateTime.Now.ToString("yyyy-MM-dd"),
Group_Id = base.UserInfo.Group_Id
});
var employeeListResult = employeeList.Select(x => new
{
x.EmployeeName,
x.DeptName,
x.PostName,
x.AccountRemark,
x.AccountId,
x.AccountType,
x.School_Id,
x.Id
});
#endregion
#region 提成情况
//未完成的订单数
var orderList = orderModule.GetOrderNoComplete(new RB_Order_ViewModel
{
OrderState = Common.Enum.Course.OrderStateEnum.Normal,
Group_Id = base.UserInfo.Group_Id,
EnterID = base.UserInfo.Id
});
//课程进度未达标<15%
var guestList = orderModule.GetOrderGuestListByEnterID(new RB_Order_Guest_ViewModel
{
Group_Id = base.UserInfo.Group_Id,
EnterID = base.UserInfo.Id
});
//本月提成
decimal totalCommiommission = 0;
int sureStatus = -1;//本月提成确认状态,-1未生成提成,0-未确认,1-已确认
int commissionId = 0;//当月提成的id
#region 我的提成(销售)
var extModel = new RB_Sell_Commission_Details_ViewModel()
{
PeriodsTime = System.DateTime.Now.ToString("yyyy-MM-01"),
UserId = base.UserInfo.Id,
Group_Id = base.UserInfo.Group_Id
};
var userList = sellCommissionModule.GetSellCommissionByUser(extModel);
if (userList != null && userList.Any())
{
totalCommiommission = userList.Sum(x => x.CurrentPeriodMoney + x.CurrentExtraMoney + x.DeductionMoney + x.DeductionExtraMoney);
sureStatus = userList.FirstOrDefault().SureStatus;
commissionId = userList.FirstOrDefault().Id;
}
else
{
userList = sellCommissionModule.GetEstimateSellCommissionInfo(System.DateTime.Now.ToString("yyyy-MM-01"), base.UserInfo);
if (userList != null && userList.Any())
{
totalCommiommission = userList.Sum(x => x.CurrentPeriodMoney + x.CurrentExtraMoney + x.DeductionMoney + x.DeductionExtraMoney);
}
}
#endregion
#endregion
#region 奖金情况
//本月提成
decimal totalTCommiommission = 0;
int sureTStatus = -1;//本月提成确认状态,-1未生成提成,0-未确认,1-已确认
int commissionTId = 0;//当月提成的id
#region 我的提成(销售)
var tExtModel = new RB_Teaching_BonusDetail_ViewModel()
{
Month = System.DateTime.Now.ToString("yyyy-MM-01"),
TeacherId = base.UserInfo.AccountId,
Group_Id = base.UserInfo.Group_Id
};
var teacherList = teachingRewardsModule.GetListByTeacherId(tExtModel);
if (teacherList != null && teacherList.Any())
{
totalTCommiommission = teacherList.Sum(x => x.Money);
sureTStatus = teacherList.FirstOrDefault().SureStatus;
commissionTId = teacherList.FirstOrDefault().Id;
}
else
{
//userList = sellCommissionModule.GetEstimateSellCommissionInfo(System.DateTime.Now.ToString("yyyy-MM-01"), base.UserInfo);
//if (userList != null && userList.Any())
//{
// totalCommiommission = userList.Sum(x => x.CurrentPeriodMoney + x.CurrentExtraMoney + x.DeductionMoney + x.DeductionExtraMoney);
//}
}
#endregion
#endregion
return ApiResult.Success("", new { EmployeeListResult = employeeListResult,
OrderNoCompleteNum = orderList.Count(),
CourseNum = guestList.Count(),
TotalCommiommission = totalCommiommission,
CommissionId = commissionId,
SureStatus = sureStatus,
TotalTCommiommission = totalTCommiommission,
CommissionTId = sureTStatus,
SureTStatus = commissionTId,
});
}
/// <summary>
/// 首页个人中心,-我的提成
/// </summary>
/// <returns></returns>
public ApiResult GetUserSellCommission()
{
string periodsTime = base.ParmJObj.GetStringValue("PeriodsTime");
if (string.IsNullOrWhiteSpace(periodsTime))
{
periodsTime = System.DateTime.Now.AddMonths(-6).ToString("yyyy-MM-01");
}
var extModel = new RB_Sell_Commission_Details_ViewModel()
{
PeriodsTime = periodsTime,
UserId = base.UserInfo.Id,
Group_Id = base.UserInfo.Group_Id
};
#region 我的提成(销售)
var userList = sellCommissionModule.GetSellCommissionByUser(extModel);
#endregion
/// List<RB_Teaching_BonusDetail_ViewModel> teacherList = new List<RB_Teaching_BonusDetail_ViewModel>();
//if (base.UserInfo.AccountType == Common.Enum.User.AccountTypeEnum.Teacher)
//{
// #region 我的提成(老师课时费)
// var tExtModel = new RB_Teaching_BonusDetail_ViewModel()
// {
// Month = base.ParmJObj.GetStringValue("PeriodsTime"),
// TeacherId = base.UserInfo.AccountId,
// Group_Id = base.UserInfo.Group_Id
// };
// teacherList = teachingRewardsModule.GetListByTeacherId(tExtModel);
// #endregion
//}
DateTime startTime = Convert.ToDateTime(periodsTime);
DateTime endTime = System.DateTime.Now;
List<object> commiommissionList = new List<object>();
for (DateTime dt = startTime; dt <= endTime; dt = dt.AddMonths(1))
{
decimal totalCommiommission = userList.Where(x => x.PeriodsTime == dt.ToString("yyyy-MM")).Sum(x => x.CurrentPeriodMoney + x.CurrentExtraMoney + x.DeductionMoney + x.DeductionExtraMoney);
//if (teacherList != null && teacherList.Any())
//{
// totalCommiommission += teacherList.Where(x => x.Month == startTime.ToString("yyyy-MM")).Sum(x => x.Money);
//}
commiommissionList.Add(new
{
YearStr = dt.Year,
MonthStr = dt.Month,
TotalCommiommission = totalCommiommission
});
}
return ApiResult.Success("", commiommissionList);
}
/// <summary>
/// 首页个人中心,-我的奖金
/// </summary>
/// <returns></returns>
public ApiResult GetTeacherSellCommission()
{
string periodsTime = base.ParmJObj.GetStringValue("PeriodsTime");
if (string.IsNullOrWhiteSpace(periodsTime))
{
periodsTime = System.DateTime.Now.AddMonths(-6).ToString("yyyy-MM-01");
}
List<RB_Teaching_BonusDetail_ViewModel> teacherList = new List<RB_Teaching_BonusDetail_ViewModel>();
if (base.UserInfo.AccountType == Common.Enum.User.AccountTypeEnum.Teacher)
{
#region 我的提成(老师课时费)
var tExtModel = new RB_Teaching_BonusDetail_ViewModel()
{
Month = base.ParmJObj.GetStringValue("PeriodsTime"),
TeacherId = base.UserInfo.AccountId,
Group_Id = base.UserInfo.Group_Id
};
teacherList = teachingRewardsModule.GetListByTeacherId(tExtModel);
#endregion
}
DateTime startTime = Convert.ToDateTime(periodsTime);
DateTime endTime = System.DateTime.Now;
List<object> commiommissionList = new List<object>();
for (DateTime dt = startTime; dt <= endTime; dt = dt.AddMonths(1))
{
decimal totalCommiommission = 0;
if (teacherList != null && teacherList.Any())
{
totalCommiommission += teacherList.Where(x => x.Month == startTime.ToString("yyyy-MM")).Sum(x => x.Money);
}
commiommissionList.Add(new
{
YearStr = dt.Year,
MonthStr = dt.Month,
TotalCommiommission = totalCommiommission
});
}
return ApiResult.Success("", commiommissionList);
}
#endregion
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment