Commit 48ab28ce authored by liudong1993's avatar liudong1993

粉象返佣

parent b14bd414
...@@ -150,5 +150,9 @@ namespace Mall.Model.Entity.User ...@@ -150,5 +150,9 @@ namespace Mall.Model.Entity.User
get; get;
set; set;
} }
/// <summary>
/// 小数类型 1取整(向上进一) 2保留两位小数
/// </summary>
public int? DecimalType { get; set; }
} }
} }
...@@ -71,6 +71,10 @@ namespace Mall.Model.Entity.User ...@@ -71,6 +71,10 @@ namespace Mall.Model.Entity.User
/// </summary> /// </summary>
public int? HPGradeId { get; set; } public int? HPGradeId { get; set; }
/// <summary> /// <summary>
/// 粉象返佣等级
/// </summary>
public int? FXGradeId { get; set; }
/// <summary>
/// 审核状态 1审核中 2通过 3拒绝 /// 审核状态 1审核中 2通过 3拒绝
/// </summary> /// </summary>
public DistributorAuditStatusEnum? AuditStatus public DistributorAuditStatusEnum? AuditStatus
......
...@@ -202,6 +202,10 @@ namespace Mall.Module.Product ...@@ -202,6 +202,10 @@ namespace Mall.Module.Product
/// 财务单据规则 /// 财务单据规则
/// </summary> /// </summary>
private static RB_Finance_ConfigurineRepository financeConfigurineRepository = new RB_Finance_ConfigurineRepository(); private static RB_Finance_ConfigurineRepository financeConfigurineRepository = new RB_Finance_ConfigurineRepository();
/// <summary>
/// 粉象返佣
/// </summary>
private readonly RB_Distributor_FXGradeRepository distributor_FXGradeRepository = new RB_Distributor_FXGradeRepository();
#region 购物车 #region 购物车
...@@ -3042,6 +3046,37 @@ namespace Mall.Module.Product ...@@ -3042,6 +3046,37 @@ namespace Mall.Module.Product
try try
{ {
var basicModel = distributor_BasicsRepository.GetList(new RB_Distributor_Basics_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }).FirstOrDefault(); var basicModel = distributor_BasicsRepository.GetList(new RB_Distributor_Basics_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }).FirstOrDefault();
if (basicModel.IsEnableFXGrade == 1)
{
//粉象返佣
var FXList = distributor_FXGradeRepository.GetList(new RB_Distributor_FXGrade_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
if (FXList.Any() && FXList.Where(x => x.IsGuest == 1).Any()) {
var FXPModel = FXList.Where(x => x.IsGuest == 1).FirstOrDefault();
//验证用户必须是分销商 最低普通会员 不是以普通会员处理
var disModel = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, UserId = umodel.Id, AuditStatus = Common.Enum.User.DistributorAuditStatusEnum.Audited }).FirstOrDefault();
var FXModel = FXPModel;
if (disModel != null)
{
if (disModel.FXGradeId > 0)
{
FXModel = FXList.Where(x => x.Id == disModel.FXGradeId).FirstOrDefault();
}
}
else
{
LogHelper.Write("粉象返佣 用户分销商信息不存在:UserId:" + umodel.Id);
}
if (FXModel != null)
{
//查询出当前用户的所有上级
//查询出用户的所有分销信息
//开始慢慢找 注 同级返佣数量 返佣建子表可以无限级返佣了
}
}
}
else
{
//判断是否开启和平返佣 //判断是否开启和平返佣
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
...@@ -3568,6 +3603,7 @@ namespace Mall.Module.Product ...@@ -3568,6 +3603,7 @@ namespace Mall.Module.Product
} }
} }
} }
}
goods_OrderCommissionRepository.DBSession.Commit(); goods_OrderCommissionRepository.DBSession.Commit();
} }
catch (Exception ex) catch (Exception ex)
......
...@@ -152,6 +152,11 @@ namespace Mall.Module.Product ...@@ -152,6 +152,11 @@ namespace Mall.Module.Product
/// 商品代理 /// 商品代理
/// </summary> /// </summary>
private readonly RB_Goods_ProxyRepository goods_ProxyRepository = new RB_Goods_ProxyRepository(); private readonly RB_Goods_ProxyRepository goods_ProxyRepository = new RB_Goods_ProxyRepository();
/// <summary>
/// 粉象返佣
/// </summary>
private readonly RB_Distributor_FXGradeRepository distributor_FXGradeRepository = new RB_Distributor_FXGradeRepository();
...@@ -1264,52 +1269,50 @@ namespace Mall.Module.Product ...@@ -1264,52 +1269,50 @@ namespace Mall.Module.Product
var BasicsModel = distributor_BasicsRepository.GetList(new RB_Distributor_Basics_Extend() { TenantId = TenantId, MallBaseId = MallBaseId }).FirstOrDefault(); var BasicsModel = distributor_BasicsRepository.GetList(new RB_Distributor_Basics_Extend() { TenantId = TenantId, MallBaseId = MallBaseId }).FirstOrDefault();
if ((BasicsModel?.IsEnableFXGrade??2) == 1) if ((BasicsModel?.IsEnableFXGrade??2) == 1)
{ {
if (model.IsCustomSpecification == 1) var FXList = distributor_FXGradeRepository.GetList(new RB_Distributor_FXGrade_Extend() { TenantId = TenantId, MallBaseId = MallBaseId });
if (FXList.Any() && FXList.Where(x => x.IsGuest == 1).Any())
{ {
var dcList = model.SpecificationPriceList.Where(x => x.DistributorGrade == disModel.GradeId).ToList(); var FXModel = FXList.Where(x => x.Id == disModel.FXGradeId).FirstOrDefault();
var PModel = FXList.Where(x => x.IsGuest == 1).FirstOrDefault();
model.MaxShare = dcList.Max(x => x.OneCommission ?? 0); if (FXModel != null && PModel != null)
if (model.SeparateDistributionMoneyType == 1)
{ {
model.MaxShare = Math.Round(model.MaxShare * MaxSellMoney / 100, 2, MidpointRounding.AwayFromZero); decimal CRate = 0;
} if (FXModel.Id == PModel.Id)
{
CRate = FXModel.SiblingRatio ?? 0;
} }
else else
{ {
if (disModel.GradeId == 0) CRate = (FXModel.CommissionRatio ?? 0) - (PModel.CommissionRatio ?? 0);
}
if (model.IsCustomSpecification == 1)
{ {
//拿分销基础配置 var dcModel = model.SpecificationPriceList.OrderByDescending(x => x.Commission).FirstOrDefault();
//if ((BasicsModel?.IsCommissionResidue ?? 2) == 1) if (dcModel.Commission > 0)
//{
// model.MaxShare = (BasicsModel?.OneCommission ?? 0) + (BasicsModel?.TwoCommission ?? 0) + (BasicsModel?.ThreeCommission ?? 0);
//}
//else
//{
model.MaxShare = BasicsModel?.OneCommission ?? 0;
//}
if ((BasicsModel?.DistributorCommissionType ?? 2) == 1)
{ {
model.MaxShare = Math.Round(model.MaxShare * MaxSellMoney / 100, 2, MidpointRounding.AwayFromZero); if (FXModel.DecimalType == 1)
{
model.MaxShare = Math.Ceiling(dcModel.Commission * CRate / 100);
} }
else
{
model.MaxShare = Math.Ceiling(dcModel.Commission * CRate) / 100;
} }
else if (disModel.GradeId > 0) }
}
else
{ {
//获取分销商等级 if (model.Commission > 0)
var disgradeModel = distributor_GradeRepository.GetEntity(disModel.GradeId);
if (disgradeModel != null)
{ {
//if ((BasicsModel?.IsCommissionResidue ?? 2) == 1) if (FXModel.DecimalType == 1)
//{
// model.MaxShare = (disgradeModel?.OneCommission ?? 0) + (disgradeModel?.TwoCommission ?? 0) + (disgradeModel?.ThreeCommission ?? 0);
//}
//else
//{
model.MaxShare = disgradeModel?.OneCommission ?? 0;
//}
if ((disgradeModel?.DistributionCommissionType ?? 2) == 1)
{ {
model.MaxShare = Math.Round(model.MaxShare * MaxSellMoney / 100, 2, MidpointRounding.AwayFromZero); model.MaxShare = Math.Ceiling(model.Commission * CRate / 100);
}
else
{
model.MaxShare = Math.Ceiling(model.Commission * CRate) / 100;
}
} }
} }
} }
......
...@@ -4426,6 +4426,7 @@ namespace Mall.Module.User ...@@ -4426,6 +4426,7 @@ namespace Mall.Module.User
{ nameof(RB_Distributor_FXGrade.UpgradeNum),demodel.UpgradeNum}, { nameof(RB_Distributor_FXGrade.UpgradeNum),demodel.UpgradeNum},
{ nameof(RB_Distributor_FXGrade.UpgradeId),demodel.UpgradeId}, { nameof(RB_Distributor_FXGrade.UpgradeId),demodel.UpgradeId},
{ nameof(RB_Distributor_FXGrade.UpdateDate),demodel.UpdateDate}, { nameof(RB_Distributor_FXGrade.UpdateDate),demodel.UpdateDate},
{ nameof(RB_Distributor_FXGrade.DecimalType),demodel.DecimalType},
}; };
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
......
...@@ -2658,6 +2658,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -2658,6 +2658,7 @@ namespace Mall.WebApi.Controllers.User
x.BuyMoney, x.BuyMoney,
x.IsUpgrade, x.IsUpgrade,
x.UpgradeNum, x.UpgradeNum,
x.DecimalType,
x.UpgradeId, x.UpgradeId,
UpdateDate = x.UpdateDate.HasValue ? x.UpdateDate.Value.ToString("yyyy-MM-dd") : "" UpdateDate = x.UpdateDate.HasValue ? x.UpdateDate.Value.ToString("yyyy-MM-dd") : ""
}); });
...@@ -2720,6 +2721,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -2720,6 +2721,7 @@ namespace Mall.WebApi.Controllers.User
demodel.IsUpgrade ??= 0; demodel.IsUpgrade ??= 0;
demodel.UpgradeNum ??= 0; demodel.UpgradeNum ??= 0;
demodel.UpgradeId ??= 0; demodel.UpgradeId ??= 0;
demodel.DecimalType ??= 1;
demodel.CreateDate = DateTime.Now; demodel.CreateDate = DateTime.Now;
demodel.UpdateDate = DateTime.Now; demodel.UpdateDate = DateTime.Now;
bool flag = userModule.SetFXDistributorGradeInfo(demodel); bool flag = userModule.SetFXDistributorGradeInfo(demodel);
...@@ -2747,6 +2749,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -2747,6 +2749,7 @@ namespace Mall.WebApi.Controllers.User
{ {
return ApiResult.ParamIsNull(); return ApiResult.ParamIsNull();
} }
//验证 有用户在使用该等级 不能删除
bool flag = userModule.DelFXDistributorGradeInfo(GradeId, req.TenantId, req.MallBaseId); bool flag = userModule.DelFXDistributorGradeInfo(GradeId, req.TenantId, req.MallBaseId);
if (flag) if (flag)
......
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