mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 20:13:26 +08:00
【优化】完善不开启分销,代理模式下,走邀请好友计算三级佣金;不开启分销或者代理的情况下,默认不去计算分销和代理佣金。
【调整】目前的分销三级业务逻辑是用户下单,往上找三级必须都是分销商,才能每级都分佣,中间可能不是分销商而中断向上递归,调整为用户下单,往上找三级只要三级有是分销商的,就根据佣金结果给与佣金。不中断。 【优化】区分老版本企业付款到零钱与新版本商家付款到零钱enum命名。
This commit is contained in:
@@ -22,6 +22,8 @@ using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.ViewModels.Basics;
|
||||
using CoreCms.Net.Model.ViewModels.DTO.Distribution;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using SqlSugar;
|
||||
|
||||
|
||||
@@ -42,10 +44,11 @@ namespace CoreCms.Net.Services
|
||||
private readonly ICoreCmsUserBalanceServices _balanceServices;
|
||||
private readonly ICoreCmsGoodsServices _goodsServices;
|
||||
private readonly ICoreCmsDistributionOrderDetailsServices _distributionOrderDetailsServices;
|
||||
private readonly ICoreCmsSettingServices _settingServices;
|
||||
|
||||
|
||||
private readonly IUnitOfWork _unitOfWork;
|
||||
public CoreCmsDistributionOrderServices(IUnitOfWork unitOfWork, ICoreCmsDistributionOrderRepository dal, ICoreCmsDistributionServices distributionServices, ICoreCmsUserBalanceServices balanceServices, ICoreCmsOrderServices orderServices, ICoreCmsUserServices userServices, ICoreCmsOrderItemServices orderItemServices, ICoreCmsProductsDistributionServices productsDistributionServices, ICoreCmsProductsServices productsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsDistributionOrderDetailsServices distributionOrderDetailsServices)
|
||||
public CoreCmsDistributionOrderServices(IUnitOfWork unitOfWork, ICoreCmsDistributionOrderRepository dal, ICoreCmsDistributionServices distributionServices, ICoreCmsUserBalanceServices balanceServices, ICoreCmsOrderServices orderServices, ICoreCmsUserServices userServices, ICoreCmsOrderItemServices orderItemServices, ICoreCmsProductsDistributionServices productsDistributionServices, ICoreCmsProductsServices productsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsDistributionOrderDetailsServices distributionOrderDetailsServices, ICoreCmsSettingServices settingServices)
|
||||
{
|
||||
this._dal = dal;
|
||||
_distributionServices = distributionServices;
|
||||
@@ -57,6 +60,7 @@ namespace CoreCms.Net.Services
|
||||
_productsServices = productsServices;
|
||||
_goodsServices = goodsServices;
|
||||
_distributionOrderDetailsServices = distributionOrderDetailsServices;
|
||||
_settingServices = settingServices;
|
||||
base.BaseDal = dal;
|
||||
_unitOfWork = unitOfWork;
|
||||
}
|
||||
@@ -107,7 +111,10 @@ namespace CoreCms.Net.Services
|
||||
//获取货品关联的分销数据
|
||||
var productsDistributions = await _productsDistributionServices.QueryListByClauseAsync(p => productIds.Contains(p.productsId));
|
||||
|
||||
await AddOther(order, orderItems, goods, products, productsDistributions, 1, user.parentId); //本级是否返利
|
||||
var allConfigs = await _settingServices.GetConfigDictionaries();
|
||||
var distributionLevel = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DistributionLevel).ObjectToInt(0);
|
||||
|
||||
await AddOther(order, orderItems, goods, products, productsDistributions, 1, user.parentId, distributionLevel); //本级是否返利
|
||||
}
|
||||
jm.status = true;
|
||||
|
||||
@@ -128,8 +135,9 @@ namespace CoreCms.Net.Services
|
||||
/// <param name="productsDistributions">货品分销数据</param>
|
||||
/// <param name="level">第几级</param>
|
||||
/// <param name="userId">用户id</param>
|
||||
/// <param name="distributionLevel">三级分销开启的层级</param>
|
||||
/// <returns></returns>
|
||||
private async Task AddOther(CoreCmsOrder order, List<CoreCmsOrderItem> orderItems, List<CoreCmsGoods> goods, List<CoreCmsProducts> products, List<CoreCmsProductsDistribution> productsDistributions, int level = 0, int userId = 0)
|
||||
private async Task AddOther(CoreCmsOrder order, List<CoreCmsOrderItem> orderItems, List<CoreCmsGoods> goods, List<CoreCmsProducts> products, List<CoreCmsProductsDistribution> productsDistributions, int level = 0, int userId = 0, int distributionLevel = 3)
|
||||
{
|
||||
var user = await _userServices.QueryByClauseAsync(p => p.id == userId);
|
||||
if (user != null)
|
||||
@@ -281,13 +289,12 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (user.parentId > 0 && ommissionDto != null && level < ommissionDto.DistributionLevel)
|
||||
{
|
||||
//返第二级
|
||||
level++;
|
||||
await AddOther(order, orderItems, goods, products, productsDistributions, level, user.parentId);
|
||||
}
|
||||
}
|
||||
if (user.parentId > 0 && level < distributionLevel)
|
||||
{
|
||||
//返第二级
|
||||
level++;
|
||||
await AddOther(order, orderItems, goods, products, productsDistributions, level, user.parentId, distributionLevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -408,90 +408,51 @@ namespace CoreCms.Net.Services
|
||||
if (info == null)
|
||||
{
|
||||
jm.msg = "不是分销商的,不返利";
|
||||
return jm; //不是分销商的,不返利。
|
||||
return jm;
|
||||
}
|
||||
var allConfigs = await _settingServices.GetConfigDictionaries();
|
||||
var commissionType = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionType).ObjectToInt(0);
|
||||
var dto = new DistributionDto();
|
||||
if (info.gradeId > 0)
|
||||
{
|
||||
var res = await _distributionResultRepository.QueryListByClauseAsync(p => p.gradeId == info.gradeId);
|
||||
var res = await _distributionResultRepository.QueryListByClauseAsync(p => p.gradeId == info.gradeId, p => p.id, OrderByType.Asc, true, true);
|
||||
if (res != null && res.Any())
|
||||
{
|
||||
dto.grade_id = info.gradeId;
|
||||
res.ForEach(p =>
|
||||
{
|
||||
var obj = JObject.Parse(p.parameters);
|
||||
if (p.code == "COMMISSION_1")
|
||||
switch (p.code)
|
||||
{
|
||||
dto.commission_1 = new Commission()
|
||||
{
|
||||
type = obj["commissionType"].ObjectToInt(0),
|
||||
discount = obj["discount"].ObjectToDecimal(0)
|
||||
};
|
||||
}
|
||||
else if (p.code == "COMMISSION_2")
|
||||
{
|
||||
dto.commission_2 = new Commission()
|
||||
{
|
||||
type = obj["commissionType"].ObjectToInt(0),
|
||||
discount = obj["discount"].ObjectToDecimal(0)
|
||||
};
|
||||
|
||||
}
|
||||
else if (p.code == "COMMISSION_3")
|
||||
{
|
||||
dto.commission_3 = new Commission()
|
||||
{
|
||||
type = obj["commissionType"].ObjectToInt(0),
|
||||
discount = obj["discount"].ObjectToDecimal(0)
|
||||
};
|
||||
|
||||
case "COMMISSION_1":
|
||||
dto.commission_1 = new Commission()
|
||||
{
|
||||
type = obj["commissionType"].ObjectToInt(0),
|
||||
discount = obj["discount"].ObjectToDecimal(0)
|
||||
};
|
||||
break;
|
||||
case "COMMISSION_2":
|
||||
dto.commission_2 = new Commission()
|
||||
{
|
||||
type = obj["commissionType"].ObjectToInt(0),
|
||||
discount = obj["discount"].ObjectToDecimal(0)
|
||||
};
|
||||
break;
|
||||
case "COMMISSION_3":
|
||||
dto.commission_3 = new Commission()
|
||||
{
|
||||
type = obj["commissionType"].ObjectToInt(0),
|
||||
discount = obj["discount"].ObjectToDecimal(0)
|
||||
};
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
dto.grade_id = 0;
|
||||
dto.commission_1 = new Commission()
|
||||
{
|
||||
type = commissionType,
|
||||
discount = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionFirst).ObjectToDecimal(0)
|
||||
};
|
||||
dto.commission_2 = new Commission()
|
||||
{
|
||||
type = commissionType,
|
||||
discount = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionSecond).ObjectToDecimal(0)
|
||||
};
|
||||
dto.commission_3 = new Commission()
|
||||
{
|
||||
type = commissionType,
|
||||
discount = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionThird).ObjectToDecimal(0)
|
||||
};
|
||||
jm.msg = "未获取到佣金设置,不返利";
|
||||
return jm;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
dto.grade_id = 0;
|
||||
dto.commission_1 = new Commission()
|
||||
{
|
||||
type = commissionType,
|
||||
discount = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionFirst).ObjectToDecimal(0)
|
||||
};
|
||||
dto.commission_2 = new Commission()
|
||||
{
|
||||
type = commissionType,
|
||||
discount = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionSecond).ObjectToDecimal(0)
|
||||
};
|
||||
dto.commission_3 = new Commission()
|
||||
{
|
||||
type = commissionType,
|
||||
discount = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.CommissionThird).ObjectToDecimal(0)
|
||||
};
|
||||
}
|
||||
|
||||
dto.DistributionLevel = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DistributionLevel).ObjectToInt(0);
|
||||
jm.status = true;
|
||||
jm.data = dto;
|
||||
jm.msg = "获取成功";
|
||||
|
||||
Reference in New Issue
Block a user