InviteCommission(string orderId)
+ {
+ var jm = new WebApiCallBack();
+ var allConfigs = await _settingServices.GetConfigDictionaries();
+ //分佣类型(1百分比/2固定金额)
+ var commissionType = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionType).ObjectToInt(0);
+ //一级佣金
+ var commissionFirst = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionFirst).ObjectToDecimal(0);
+ //二级佣金
+ var commissionSecond = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionSecond).ObjectToDecimal(0);
+ //三级佣金
+ var commissionThird = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionFirst).ObjectToDecimal(0);
+ //是否开启三级分销(1开启,2未开启)
+ var openDistribution = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.OpenDistribution).ObjectToInt(0);
+ //是否开启代理模块(1开启,2未开启)
+ var isOpenAgent = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IsOpenAgent).ObjectToInt(0);
+
+ //当分销模块和代理模块都关闭的情况下,才去计算邀请好友的操作。
+ if (openDistribution != 2 || isOpenAgent != 2) return jm;
+ var order = await _orderServices.QueryByClauseAsync(p => p.orderId == orderId && p.status == (int)GlobalEnumVars.OrderStatus.Complete);
+ if (order == null)
+ {
+ jm.msg = "订单查询失败";
+ return jm;
+ }
+
+ var user = await _dal.QueryByClauseAsync(p => p.id == order.userId, true);
+
+ // 获取付款单,我们只拿付款单的实际金额去计算,不用订单的金额。这样直接不用去计算优惠了,只看用户付了多少。从上面提佣金出来。
+ var billPayments = await _billPaymentsServices.QueryByClauseAsync(p => p.sourceId == orderId && p.status == (int)GlobalEnumVars.BillPaymentsStatus.Payed);
+ if (billPayments.money <= 0) return jm;
+ {
+ //1级佣金
+ var commissionLevel1 = commissionType == (int)GlobalEnumVars.InviteCommissionType.CommissionTypeFixed
+ ? commissionFirst
+ : Math.Round(commissionFirst * billPayments.money / 100, 2);
+ //2级佣金
+ var commissionLevel2 = commissionType == (int)GlobalEnumVars.InviteCommissionType.CommissionTypeFixed
+ ? commissionSecond
+ : Math.Round(commissionSecond * billPayments.money / 100, 2);
+ //3级佣金
+ var commissionLevel3 = commissionType == (int)GlobalEnumVars.InviteCommissionType.CommissionTypeFixed
+ ? commissionThird
+ : Math.Round(commissionThird * billPayments.money / 100, 2);
+
+
+ //下面存储就不做递归了,三层直接判断了
+ if (user.parentId <= 0) return jm;
+ var parentLevel1 = await _dal.QueryByClauseAsync(p => p.id == user.parentId, true);
+ if (parentLevel1 == null) return jm;
+ {
+ //钱挪到会员余额里面
+ await _userBalanceServices.Change(user.parentId, (int)GlobalEnumVars.UserBalanceSourceTypes.Distribution, commissionLevel1, orderId);
+ if (parentLevel1.parentId <= 0) return jm;
+ var parentLevel2 = await _dal.QueryByClauseAsync(p => p.id == parentLevel1.parentId, true);
+ //钱挪到会员余额里面
+ await _userBalanceServices.Change(parentLevel1.parentId, (int)GlobalEnumVars.UserBalanceSourceTypes.Distribution, commissionLevel2, orderId);
+ if (parentLevel2.parentId <= 0) return jm;
+ {
+ var parentLevel3 = await _dal.QueryByClauseAsync(p => p.id == parentLevel2.parentId, true);
+ if (parentLevel3 != null)
+ {
+ //钱挪到会员余额里面
+ await _userBalanceServices.Change(parentLevel2.parentId, (int)GlobalEnumVars.UserBalanceSourceTypes.Distribution, commissionLevel3, orderId);
+ }
+ }
+ }
+ }
+ return jm;
+ }
+ #endregion
+
}
}
diff --git a/CoreCms.Net.Services/User/CoreCmsUserTocashServices.cs b/CoreCms.Net.Services/User/CoreCmsUserTocashServices.cs
index 1d8275cb..d1d83a2d 100644
--- a/CoreCms.Net.Services/User/CoreCmsUserTocashServices.cs
+++ b/CoreCms.Net.Services/User/CoreCmsUserTocashServices.cs
@@ -270,7 +270,7 @@ namespace CoreCms.Net.Services
jm.msg = GlobalErrorCodeVars.Code10000;
jm.status = false;
break;
- case (int)GlobalEnumVars.UserTocashType.微信付款到零钱:
+ case (int)GlobalEnumVars.UserTocashType.企业付款到零钱:
{
var user = await _userServices.QueryByIdAsync(info.userId);
if (user == null)
@@ -317,7 +317,7 @@ namespace CoreCms.Net.Services
break;
}
- case (int)GlobalEnumVars.UserTocashType.微信付款到银行卡:
+ case (int)GlobalEnumVars.UserTocashType.企业付款到银行卡:
{
var user = await _userServices.QueryByIdAsync(info.userId);
if (user == null)
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/shop/setting/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/shop/setting/index.html
index 4a855664..1c3e5927 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/shop/setting/index.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/shop/setting/index.html
@@ -448,10 +448,10 @@
@@ -673,7 +673,7 @@
- 佣金设置(当不开启三级分销时候,推广好友三级统一返现比例)
+ 佣金设置(当不开启【分销】【代理】两个独立佣金模块的时候,推广好友三级统一返现比例)