Commit 3f84848a authored by liudong1993's avatar liudong1993

1

parent a4517729
......@@ -340,5 +340,9 @@ namespace Edu.Model.ViewModel.Sell
/// </summary>
public int CategoryId { get; set; }
/// <summary>
/// 返佣总金额 (rb_order_returncomission)
/// </summary>
public decimal BrokerageMoney { get; set; }
}
}
\ No newline at end of file
......@@ -392,7 +392,7 @@ namespace Edu.Module.Course
public void SetReturnOrderCommission(RB_Order_ViewModel model)
{
//排除原有的批量报入,和B2B未付款的订单
if (model.OrderIdentify == 2 && model.OrderState != OrderStateEnum.WaitPay)
if (model.OrderState != OrderStateEnum.WaitPay && !string.IsNullOrEmpty(model.StuIds))
{
var stuList = studentRepository.GetStudentListRepository(new RB_Student_ViewModel() { Group_Id = model.Group_Id, StuIds = model.StuIds, School_Id = -1 });
if (stuList.Any())
......@@ -416,7 +416,14 @@ namespace Edu.Module.Course
GroupId = model.Group_Id,
Remark = ""
};
FormatOrderCommissionByCourse(ref commissionModel, model.CourseId);
if (model.OrderType == OrderTypeEnum.CourseOrder)
{
FormatOrderCommissionByCourse(ref commissionModel, model.CourseId);
}
else if (model.OrderType == OrderTypeEnum.StudyabroadOrder)
{
FormatOrderCommissionByStudyabrad(ref commissionModel, model.SourceId);
}
returnComissionRepository.Insert(commissionModel);
});
}
......@@ -657,6 +664,101 @@ namespace Edu.Module.Course
m.Remark = "系统未匹配到对应的返佣信息,本订单返佣为0";
}
}
/// <summary>
/// 留学返佣
/// </summary>
/// <param name="m"></param>
/// <param name="sourceId"></param>
public void FormatOrderCommissionByStudyabrad(ref RB_Order_ReturnComission_ViewModel m, int sourceId)
{
var courseModel = studyAbroadRepository.GetEntity(sourceId);
if (courseModel != null)
{
var sellPrice = courseModel.SellPrice * ((100 - (m.CommissionType == 1 ? courseModel.B2CRatio : courseModel.B2CReNewRatio)) / 100);
if ((int)m.OrderSourceType == 1)
{
if (courseModel.CommissionReType == 1)
{
m.CommissionMoeny = Math.Round(sellPrice * ((m.CommissionType == 1 ? courseModel.B2CRbRatio : courseModel.B2CRNRatio) / 100), 2, MidpointRounding.AwayFromZero);
}
else
{
m.CommissionMoeny = m.CommissionType == 1 ? courseModel.B2CRbRatio : courseModel.B2CRNRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.B2CRbRatioType.ToInt() : courseModel.B2CRNRatioType.ToInt();
m.CommissionReValue = m.CommissionType == 1 ? courseModel.B2CRbRatioValue : courseModel.B2CRNRatioValue;
m.Remark = $"学员来源为:直客,学员为{(m.CommissionType == 1 ? "首次报名" : "续费报名")},本次报名金额为:{sellPrice},本次返佣金额为:{m.CommissionMoeny:0.00}";
}
else if ((int)m.OrderSourceType == 2)
{
var customerModel = customerRepository.GetEntity(m.OrderSourceId);
if (customerModel.CustomerType == Common.Enum.Customer.CatetoryTypeEnum.Company)
{
if (courseModel.CommissionReType == 1)
{
m.CommissionMoeny = Math.Round(sellPrice * ((m.CommissionType == 1 ? courseModel.B2BRebateRatio : courseModel.B2BReNewRatio) / 100), 2, MidpointRounding.AwayFromZero);
}
else
{
m.CommissionMoeny = m.CommissionType == 1 ? courseModel.B2BRebateRatio : courseModel.B2BReNewRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.B2BRebateRatioType.ToInt() : courseModel.B2BReNewRatioType.ToInt();
m.CommissionReValue = m.CommissionType == 1 ? courseModel.B2BRebateRatioValue : courseModel.B2BReNewRatioValue;
m.Remark = $"学员来源为:同业,学员为{(m.CommissionType == 1 ? "首次报名" : "续费报名")},本次报名金额为:{sellPrice},本次返佣金额为:{m.CommissionMoeny:0.00}";
}
else
{
if (courseModel.CommissionReType == 1)
{
m.CommissionMoeny = Math.Round(sellPrice * ((m.CommissionType == 1 ? courseModel.SchoolRebateRatio : courseModel.SchoolReNewRatio) / 100), 2, MidpointRounding.AwayFromZero);
}
else
{
m.CommissionMoeny = m.CommissionType == 1 ? courseModel.SchoolRebateRatio : courseModel.SchoolReNewRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.SchoolRebateRatioType.ToInt() : courseModel.SchoolReNewRatioType.ToInt();
m.CommissionReValue = m.CommissionType == 1 ? courseModel.SchoolRebateRatioValue : courseModel.SchoolReNewRatioValue;
m.Remark = $"学员来源为:校代,学员为{(m.CommissionType == 1 ? "首次报名" : "续费报名")},本次报名金额为:{sellPrice},本次返佣金额为:{m.CommissionMoeny:0.00}";
}
}
else if ((int)m.OrderSourceType == 3)
{
if (courseModel.CommissionReType == 1)
{
m.CommissionMoeny = Math.Round(sellPrice * ((m.CommissionType == 1 ? courseModel.InnerRecommendRatio : courseModel.InnerRecommendReNewRatio) / 100), 2, MidpointRounding.AwayFromZero);
}
else
{
m.CommissionMoeny = m.CommissionType == 1 ? courseModel.InnerRecommendRatio : courseModel.InnerRecommendReNewRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.InnerRecommendRatioType.ToInt() : courseModel.InnerRecommendReNewRatioType.ToInt();
m.CommissionReValue = m.CommissionType == 1 ? courseModel.InnerRecommendRatioValue : courseModel.InnerRecommendReNewRatioValue.Value;
m.Remark = $"学员来源为:内部介绍,学员为{(m.CommissionType == 1 ? "首次报名" : "续费报名")},本次报名金额为:{sellPrice},本次返佣金额为:{m.CommissionMoeny:0.00}";
}
else if ((int)m.OrderSourceType == 4)
{
if (courseModel.CommissionReType == 1)
{
m.CommissionMoeny = Math.Round(sellPrice * ((m.CommissionType == 1 ? (courseModel.TransIntroductceRatio) : courseModel.TransIntroductceReNewRatio) / 100), 2, MidpointRounding.AwayFromZero);
}
else
{
m.CommissionMoeny = m.CommissionType == 1 ? (courseModel.TransIntroductceRatio) : courseModel.TransIntroductceReNewRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.TransIntroductceRatioType.ToInt() : courseModel.TransIntroductceReNewRatioType.ToInt();
m.CommissionReValue = m.CommissionType == 1 ? courseModel.TransIntroductceRatioValue : courseModel.TransIntroductceReNewRatioValue;
m.Remark = $"学员来源为:学员转介绍,学员为{(m.CommissionType == 1 ? "首次报名" : "续费报名")},本次报名金额为:{sellPrice},本次返佣金额为:{m.CommissionMoeny:0.00}";
}
}
else
{
//未匹配到课程,以防万一
m.CommissionMoeny = 0;
m.CommissionReType = 3;
m.CommissionReValue = 0;
m.Remark = "系统未匹配到对应的返佣信息,本订单返佣为0";
}
}
/// <summary>
......@@ -1722,7 +1824,10 @@ namespace Edu.Module.Course
int OrderId = orderRepository.Insert(demodel);
demodel.OrderId = OrderId;
flag = OrderId > 0;
if (flag) {
// 处理返佣信息
System.Threading.Tasks.Task.Run(() => SetReturnOrderCommission(demodel));
}
}
//添加学员
if (!string.IsNullOrEmpty(demodel.StuIds))
......@@ -3309,6 +3414,9 @@ namespace Edu.Module.Course
//获取新的业绩提成
var achList = sell_Achievements_EmpRepository.GetList(new RB_Sell_Achievements_Emp_ViewModel() { Group_Id = demodel.Group_Id, OrderIds = orderIds });
//获取订单的返佣
var rclist = returnComissionRepository.GetOrderReturnComissionListRepositpry(new RB_Order_ReturnComission_ViewModel() { GroupId = demodel.Group_Id, QOrderIds = orderIds });
foreach (var item in orderList)
{
if (item.SourceOrderId > 0)
......@@ -3368,6 +3476,8 @@ namespace Edu.Module.Course
var tempStu = stuList?.FirstOrDefault(qitem => qitem.OrderId == item.OrderId);
item.CreateType = tempStu?.CreateType ?? StuCreateTypeEnum.EmployeeInput;
item.StuSourceIdName = tempStu?.StuSourceIdName ?? "";
item.BrokerageMoney = rclist.Where(x => x.OrderId == item.OrderId).Sum(x => x.CommissionMoeny);
}
}
return orderList;
......@@ -3396,6 +3506,9 @@ namespace Edu.Module.Course
var clist = education_ContractRepository.GetList(new RB_Education_Contract_ViewModel() { Group_Id = demodel.Group_Id, OrderIds = orderIds, Status = -1 }).Where(x => x.Status != 4).ToList();
//获取新的业绩提成
var achList = sell_Achievements_EmpRepository.GetList(new RB_Sell_Achievements_Emp_ViewModel() { Group_Id = demodel.Group_Id, OrderIds = orderIds });
//获取订单的返佣
var rclist = returnComissionRepository.GetOrderReturnComissionListRepositpry(new RB_Order_ReturnComission_ViewModel() { GroupId = demodel.Group_Id, QOrderIds = orderIds });
foreach (var item in orderList)
{
item.SaleRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 1).ToList();
......@@ -3426,6 +3539,8 @@ namespace Edu.Module.Course
item.CommissionMoney = achievementList.Sum(x => x.GiveOutMoney);
item.YFCommission = achievementList.Sum(x => x.PushMoney);
}
item.BrokerageMoney = rclist.Where(x => x.OrderId == item.OrderId).Sum(x => x.CommissionMoeny);
}
}
return orderList;
......
......@@ -438,10 +438,12 @@ SELECT SUM(CASE WHEN o.OrderState <> 3 THEN o.PreferPrice ELSE 0 END) AS PreferP
SUM(CASE WHEN o.OrderState = 3 THEN o.GuestNum ELSE 0 END) AS CancelNum,
SUM(CASE WHEN ea.GiveOutMoney > 0 THEN ea.GiveOutMoney ELSE
CASE WHEN o.CommissionMoney <> -1 AND o.OrderState <> 3 THEN o.CommissionMoney ELSE 0 END END) AS CommissionMoney,
SUM(CASE WHEN o.OrderState <> 3 THEN o.ExtraRewardMoney - o.ExtraDeductMoney ELSE 0 END) AS ExtraRewardMoney
SUM(CASE WHEN o.OrderState <> 3 THEN o.ExtraRewardMoney - o.ExtraDeductMoney ELSE 0 END) AS ExtraRewardMoney,
sum(IFNULL(orc.BrokerageMoney,0)) as BrokerageMoney
FROM RB_Order o LEFT JOIN rb_class c on o.ClassId = c.ClassId
LEFT JOIN rb_course AS course ON (o.CourseId=course.CourseId AND o.CourseId>0 AND o.OrderType=1)
LEFT JOIN (SELECT em.OrderId,SUM(em.GiveOutMoney) as GiveOutMoney FROM rb_sell_achievements_emp em GROUP BY em.OrderId) ea on ea.OrderId = o.OrderId
left join (select rc.OrderId,sum(rc.CommissionMoeny) as BrokerageMoney from rb_order_returncomission rc where rc.Status >=0 group by rc.OrderId ) orc on orc.OrderId = o.OrderId
LEFT JOIN rb_customer AS cus ON O.CustomerId=cus.CustomerId
WHERE {where}
";
......@@ -633,9 +635,11 @@ SELECT SUM(CASE WHEN o.OrderState <> 3 THEN o.PreferPrice ELSE 0 END) AS PreferP
SUM(CASE WHEN o.OrderState = 3 THEN o.GuestNum ELSE 0 END) AS CancelNum,
SUM(CASE WHEN ea.GiveOutMoney > 0 THEN ea.GiveOutMoney ELSE
CASE WHEN o.CommissionMoney <> -1 AND o.OrderState <> 3 THEN o.CommissionMoney ELSE 0 END END) AS CommissionMoney,
SUM(CASE WHEN o.OrderState <> 3 THEN o.ExtraRewardMoney - o.ExtraDeductMoney ELSE 0 END) AS ExtraRewardMoney
SUM(CASE WHEN o.OrderState <> 3 THEN o.ExtraRewardMoney - o.ExtraDeductMoney ELSE 0 END) AS ExtraRewardMoney,
sum(IFNULL(orc.BrokerageMoney,0)) as BrokerageMoney
FROM RB_Order o left join rb_studyabroad c on o.SourceId = c.Id
LEFT JOIN (SELECT em.OrderId,SUM(em.GiveOutMoney) as GiveOutMoney FROM rb_sell_achievements_emp em GROUP BY em.OrderId) ea on ea.OrderId = o.OrderId
left join (select rc.OrderId,sum(rc.CommissionMoeny) as BrokerageMoney from rb_order_returncomission rc where rc.Status >=0 group by rc.OrderId ) orc on orc.OrderId = o.OrderId
WHERE {where}
";
return Get<RB_Order_ViewModel>(sql).FirstOrDefault();
......
......@@ -190,6 +190,10 @@ where {where} order by r.Id desc";
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (!string.IsNullOrEmpty(demodel.QOrderIds))
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.OrderId)} in({demodel.QOrderIds})";
}
if (demodel.OrderSourceType > 0)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.OrderSourceType)} ={(int)demodel.OrderSourceType}";
......
......@@ -269,6 +269,7 @@ namespace Edu.WebApi.Controllers.Course
x.CustomerName,
x.CustomerTel,
x.ClassScrollType,
x.BrokerageMoney,
SplitDetailsList = x?.SplitDetailsList?.Select(qitem => new
{
qitem.S_ClassId,
......@@ -380,6 +381,7 @@ namespace Edu.WebApi.Controllers.Course
x.CustomerName,
x.CustomerTel,
x.ClassScrollType,
x.BrokerageMoney,
SaleRemarkList = x.SaleRemarkList.Select(z => new
{
z.Id,
......@@ -1379,7 +1381,8 @@ namespace Edu.WebApi.Controllers.Course
GuestNum = orderS?.GuestNum ?? 0,
CancelNum = orderS?.CancelNum ?? 0,
CommissionMoney = orderS?.CommissionMoney ?? 0,
ExtraRewardMoney = orderS?.ExtraRewardMoney ?? 0
ExtraRewardMoney = orderS?.ExtraRewardMoney ?? 0,
BrokerageMoney = orderS?.BrokerageMoney ?? 0
},
List = orderList?.Select(x => new
{
......@@ -1525,6 +1528,7 @@ namespace Edu.WebApi.Controllers.Course
x.CreateType,
CreateTypeName = x.CreateType.ToName(),
x.StuSourceIdName,
x.BrokerageMoney
})
};
pageModel.PageData = obj;
......@@ -1577,7 +1581,8 @@ namespace Edu.WebApi.Controllers.Course
GuestNum = orderS?.GuestNum ?? 0,
CancelNum = orderS?.CancelNum ?? 0,
CommissionMoney = (orderS?.CommissionMoney ?? 0) > 0 ? (orderS?.CommissionMoney ?? 0) : 0,
ExtraRewardMoney = orderS?.ExtraRewardMoney ?? 0
ExtraRewardMoney = orderS?.ExtraRewardMoney ?? 0,
BrokerageMoney = orderS?.BrokerageMoney ?? 0
},
List = orderList?.Select(x => new
{
......@@ -1723,6 +1728,7 @@ namespace Edu.WebApi.Controllers.Course
x.CreateType,
CreateTypeName = x.CreateType.ToName(),
x.StuSourceIdName,
x.BrokerageMoney
})
};
pageModel.PageData = obj;
......@@ -1946,7 +1952,8 @@ namespace Edu.WebApi.Controllers.Course
GuestNum = orderS?.GuestNum ?? 0,
CancelNum = orderS?.CancelNum ?? 0,
CommissionMoney = orderS?.CommissionMoney ?? 0,
ExtraRewardMoney = orderS?.ExtraRewardMoney ?? 0
ExtraRewardMoney = orderS?.ExtraRewardMoney ?? 0,
BrokerageMoney = orderS?.BrokerageMoney ?? 0
},
List = orderList.Select(x => new
{
......@@ -1996,6 +2003,7 @@ namespace Edu.WebApi.Controllers.Course
x.LXConfirmState,
x.LXConfirmDate,
x.LXConfirmEmpId,
x.BrokerageMoney,
SaleRemarkList = x.SaleRemarkList.Select(z => new
{
z.Id,
......@@ -2072,7 +2080,8 @@ namespace Edu.WebApi.Controllers.Course
GuestNum = orderS?.GuestNum ?? 0,
CancelNum = orderS?.CancelNum ?? 0,
CommissionMoney = orderS?.CommissionMoney ?? 0,
ExtraRewardMoney = orderS?.ExtraRewardMoney ?? 0
ExtraRewardMoney = orderS?.ExtraRewardMoney ?? 0,
BrokerageMoney = orderS?.BrokerageMoney ?? 0
},
List = orderList.Select(x => new
{
......@@ -2125,6 +2134,7 @@ namespace Edu.WebApi.Controllers.Course
x.LXConfirmDate,
x.LXConfirmEmpId,
x.LXConfirmState,
x.BrokerageMoney,
SaleRemarkList = x.SaleRemarkList.Select(z => new
{
z.Id,
......
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