Commit ba7a0ef6 authored by liudong1993's avatar liudong1993

粉象返佣

parent 48ab28ce
......@@ -43,7 +43,7 @@ namespace Mall.Model.Entity.Product
set;
}
/// <summary>
/// 等级 一级分销 二级分销 (跟下线正好相反) 0表示自购返佣
/// 等级 一级分销 二级分销 (跟下线正好相反) 0表示自购返佣 //和平+粉象 都是存GradeId
/// </summary>
public int? Grade
{
......@@ -75,7 +75,7 @@ namespace Mall.Model.Entity.Product
set;
}
/// <summary>
/// 类型 1标准返佣 2和平返佣
/// 类型 1标准返佣 2和平返佣 3粉象返佣
/// </summary>
public int? Type { get; set; }
/// <summary>
......@@ -121,4 +121,20 @@ namespace Mall.Model.Entity.Product
public int? IsRemit { get; set; }
}
/// <summary>
/// 粉象返佣数量记录
/// </summary>
public class FXOrderCommissionNumModel {
public int GradeId { get; set; }
public int Grade { get; set; }
public decimal Money { get; set; }
public int Sort { get; set; }
public int IsSelfBuy { get; set; }
}
}
......@@ -39,7 +39,7 @@ namespace Mall.Model.Entity.User
set;
}
/// <summary>
/// 是否普通会员 1是 2否
/// 会员类型 1普通会员 2其他会员 3Vip
/// </summary>
public int? IsGuest
{
......
......@@ -87,7 +87,10 @@ namespace Mall.Model.Extend.Product
/// 会员价格
/// </summary>
public decimal MemberPrice { get; set; }
/// <summary>
/// 佣金金额
/// </summary>
public decimal CommissionPrice { get; set; }
/// <summary>
/// 积分赠送
......
......@@ -36,6 +36,10 @@ namespace Mall.Model.Extend.User
/// </summary>
public string GradeName { get; set; }
/// <summary>
/// 等级几
/// </summary>
public int Grade { get; set; }
/// <summary>
/// 和平等级名称
/// </summary>
public string HPGradeName { get; set; }
......
......@@ -41,6 +41,11 @@ namespace Mall.Model.Extend.User
/// </summary>
public int? MinUserId { get; set; }
/// <summary>
/// 粉象等级ID
/// </summary>
public int? FXGradeId { get; set; }
/// <summary>
/// 用户名str
/// </summary>
......
......@@ -2292,6 +2292,7 @@ namespace Mall.Module.Product
var categoryList = clist.Where(x => x.GoodsId == item.GoodsId).ToList();
item.InventoryNum = gmodel.InventoryNum ?? 0;
item.CostMoney = gmodel.CostPrice ?? 0;
item.CommissionPrice = gmodel.Commission;// 粉象 返佣金额
item.ProductCode = gmodel.GoodsNumbers;
item.CategoryIdList = categoryList.Select(x => x.CategoryId ?? 0).ToList();
int GoodsWeight = gmodel.GoodsWeight ?? 0;//商品重量
......@@ -2329,6 +2330,7 @@ namespace Mall.Module.Product
{
return ApiResult.Failed("商品库存不足:" + gmodel.Name);
}
item.CommissionPrice = speciPModel?.Commission ?? 0;
}
else
{
......@@ -3069,9 +3071,202 @@ namespace Mall.Module.Product
if (FXModel != null)
{
//查询出当前用户的所有上级
string UserIds = member_UserRepository.GetMemberParentIdStr(umodel.Id);
var ulist = member_UserRepository.GetList(new RB_Member_User_Extend() { UserIds = UserIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
//查询出用户的所有分销信息
var dlist = distributor_InfoRepository.GetListForSingle(new RB_Distributor_Info_Extend() { UserIds = UserIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
foreach (var item in dlist) {
item.Grade = FXList.Where(x => x.Id == item.FXGradeId).FirstOrDefault()?.Grade ?? 0;
}
//开始慢慢找 注 同级返佣数量 返佣建子表可以无限级返佣了
var DetailList = demodel.DetailList.Where(x => x.CommissionPrice > 0).ToList();
foreach (var item in DetailList) {
//返佣
List<RB_Goods_OrderCommission> gocList = new List<RB_Goods_OrderCommission>();
List<FXOrderCommissionNumModel> fxNumList = new List<FXOrderCommissionNumModel>();
decimal TotalCommission = item.CommissionPrice;
int UserId = umodel.Id;
int Num = 1;
while (UserId > 0 && TotalCommission > 0) {
var numodel = ulist.Where(x => x.Id == UserId).FirstOrDefault();
if (numodel == null) {
UserId = 0;
break;
}
if (numodel.Id == umodel.Id)
{
//第一个进来 按等级的返佣比例给佣金
UserId = numodel.SuperiorId ?? 0;
decimal DcommionMoney = 0;
if (FXModel.DecimalType == 1)
{
DcommionMoney = Math.Ceiling(item.CommissionPrice * (FXModel.CommissionRatio ?? 0) / 100);
}
else
{
DcommionMoney = Math.Ceiling(item.CommissionPrice * (FXModel.CommissionRatio ?? 0)) / 100;
}
fxNumList.Add(new FXOrderCommissionNumModel()
{
GradeId = FXModel.Id,
Grade = FXModel.Grade ?? 0,
Money = DcommionMoney,
Sort = Num,
IsSelfBuy = 1
});
Num++;
TotalCommission -= DcommionMoney;
RB_Goods_OrderCommission gocModel = new RB_Goods_OrderCommission()
{
Id = 0,
Commission = DcommionMoney,
CommissionState = 1,
CreateDate = DateTime.Now,
Grade = FXModel.Id,
IsGoodsDistribution = 2,
MallBaseId = demodel.MallBaseId,
OrderDetailId = item.Id,
OrderId = OrderId,
Remark = "粉象 " + FXModel.GradeName + "下单返佣,返佣比例:" + (FXModel.CommissionRatio ?? 0) + "%",
TenantId = demodel.TenantId,
UpdateDate = DateTime.Now,
UserId = numodel.Id,
Type = 3,
IsRemit = 0
};
gocList.Add(gocModel);
}
else {
var d2Model = dlist.Where(x => x.UserId == numodel.Id).FirstOrDefault();
var FXGModel = new RB_Distributor_FXGrade_Extend();
if (d2Model == null)
{
LogHelper.Write("粉象返佣 用户分销商信息不存在:UserId:" + numodel.Id);
FXGModel = FXPModel;
}
else {
FXGModel = FXList.Where(x => x.Id == d2Model.FXGradeId).FirstOrDefault();
if (FXGModel == null) {
FXGModel = FXPModel;
}
}
int MaxGrade = fxNumList.Max(x => x.Grade);
if (FXGModel.Grade < MaxGrade) {
//后面的全部不返佣
UserId = 0;
break;
}
int MaxGradeNum = fxNumList.Where(x => x.Grade == FXGModel.Grade).Count();
int MaxGradeId = fxNumList.Where(x => x.Grade == MaxGrade).FirstOrDefault()?.GradeId ?? 0;
if ((FXGModel.SiblingRebatesNum ?? 0) + 1 > MaxGradeNum)
{
UserId = numodel.SuperiorId ?? 0;
decimal DcommionMoney = 0;
decimal CommissionRatio = 0;
if (FXGModel.Grade > MaxGrade && fxNumList.Where(x => x.GradeId == FXPModel.Id).Count() == 2 && MaxGrade == FXPModel.Grade)
{
//需要提间接普会
CommissionRatio = GetFXGradeRatioCommon(FXList, FXGModel.Id, FXPModel.Id, 2);
}
else {
CommissionRatio = GetFXGradeRatioCommon(FXList, FXGModel.Id, MaxGradeId, 1);
}
if (FXGModel.DecimalType == 1)
{
DcommionMoney = Math.Ceiling(item.CommissionPrice * CommissionRatio / 100);
}
else
{
DcommionMoney = Math.Ceiling(item.CommissionPrice * CommissionRatio) / 100;
}
fxNumList.Add(new FXOrderCommissionNumModel()
{
GradeId = FXGModel.Id,
Grade = FXGModel.Grade ?? 0,
Money = DcommionMoney,
Sort = Num,
IsSelfBuy = 2
});
Num++;
bool IsMoneyLack = false;
if (TotalCommission < DcommionMoney) {
DcommionMoney = TotalCommission;
IsMoneyLack = true;
}
RB_Goods_OrderCommission gocModel = new RB_Goods_OrderCommission()
{
Id = 0,
Commission = DcommionMoney,
CommissionState = 1,
CreateDate = DateTime.Now,
Grade = FXGModel.Id,
IsGoodsDistribution = 2,
MallBaseId = demodel.MallBaseId,
OrderDetailId = item.Id,
OrderId = OrderId,
Remark = "粉象 " + FXGModel.GradeName + "返佣,返佣比例:" + CommissionRatio + "%" + (IsMoneyLack ? " 佣金不够、未返完" : ""),
TenantId = demodel.TenantId,
UpdateDate = DateTime.Now,
UserId = numodel.Id,
Type = 3,
IsRemit = 0
};
gocList.Add(gocModel);
TotalCommission -= DcommionMoney;
}
else {
UserId = 0;
//该等级的已提完了 看是否可以直接找到下一个等级的
var fx2List = dlist.Where(x => x.Grade > MaxGrade).ToList();
if (fx2List.Any())
{
//说明是有下一级的
for (var i = 0; i < ulist.Count; i++)
{
var n1umodel = ulist.Where(x => x.Id == (numodel.SuperiorId ?? 0)).FirstOrDefault();
if (n1umodel == null)
{
UserId = 0;
break;
}
var dis1Model = dlist.Where(x => x.UserId == n1umodel.Id).FirstOrDefault();
var FXG2Model = new RB_Distributor_FXGrade_Extend();
if (dis1Model == null)
{
LogHelper.Write("粉象返佣 用户分销商信息不存在:UserId:" + n1umodel.Id);
FXG2Model = FXPModel;
}
else
{
FXG2Model = FXList.Where(x => x.Id == dis1Model.FXGradeId).FirstOrDefault();
if (FXG2Model == null)
{
FXG2Model = FXPModel;
}
}
if (FXG2Model.Grade < MaxGrade)
{
//后面的全部不返佣
UserId = 0;
break;
}
else if (FXG2Model.Grade > MaxGrade)
{
//已找到上级 继续返佣
UserId = n1umodel.Id;
break;
}
}
}
}
}
}
foreach (var qitem in gocList)
{
qitem.Commission = (qitem.Commission ?? 0) * (item.Number ?? 0);
goods_OrderCommissionRepository.Insert(qitem, trans);
}
}
}
}
}
......@@ -3613,6 +3808,38 @@ namespace Mall.Module.Product
}
}
/// <summary>
/// 获取粉象返佣比例
/// </summary>
/// <param name="list"></param>
/// <param name="id1"></param>
/// <param name="id2"></param>
/// <returns></returns>
private decimal GetFXGradeRatioCommon(List<RB_Distributor_FXGrade_Extend> list, int id1, int id2, int Type = 1)
{
var model1 = list.Where(x => x.Id == id1).FirstOrDefault();
var model2 = list.Where(x => x.Id == id2).FirstOrDefault();
var pModel = list.Where(x => x.IsGuest == 1).FirstOrDefault();
if (id1 == id2 && Type == 1)
{
return model1.SiblingRatio ?? 0;
}
if (model2.Grade > model1.Grade)
{
return 0;
}
if (model1.Grade > model2.Grade && Type == 1)
{
return (model1.CommissionRatio ?? 0) - (model2.CommissionRatio ?? 0);
}
if (id2 == pModel.Id && Type == 2)
{
if (id1 == id2) { return 0; }
return (model1.CommissionRatio ?? 0) - ((pModel.CommissionRatio ?? 0) + (pModel.SiblingRatio ?? 0));
}
return 0;
}
/// <summary>
/// 插入订单明细,以及更新商品库存
/// </summary>
......@@ -4531,6 +4758,11 @@ namespace Mall.Module.Product
string gradeIds = string.Join(",", oclist.Where(x => x.Type == 2).Select(x => x.Grade).Distinct());
HpgradeList = distributor_HPGradeInfoRepository.GetList(new RB_Distributor_HPGradeInfo_Extend() { GradeIds = gradeIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }, true);
}
var FXGradeList = new List<RB_Distributor_FXGrade_Extend>();
if (oclist.Where(x => x.Type == 3).Any()) {
string gradeIds = string.Join(",", oclist.Where(x => x.Type == 3).Select(x => x.Grade).Distinct());
FXGradeList = distributor_FXGradeRepository.GetList(new RB_Distributor_FXGrade_Extend() { GradeIds = gradeIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
}
foreach (var item in oclist)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
......@@ -4561,6 +4793,10 @@ namespace Mall.Module.Product
var hpGModel = HpgradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = hpGModel?.GradeName ?? "暂无等级";
}
else if (item.Type == 3) {
var fxGModel = FXGradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = fxGModel?.GradeName ?? "暂无等级";
}
}
}
foreach (var item in list)
......@@ -4616,6 +4852,12 @@ namespace Mall.Module.Product
string gradeIds = string.Join(",", oclist.Where(x => x.Type == 2).Select(x => x.Grade).Distinct());
HpgradeList = distributor_HPGradeInfoRepository.GetList(new RB_Distributor_HPGradeInfo_Extend() { GradeIds = gradeIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }, true);
}
var FXGradeList = new List<RB_Distributor_FXGrade_Extend>();
if (oclist.Where(x => x.Type == 3).Any())
{
string gradeIds = string.Join(",", oclist.Where(x => x.Type == 3).Select(x => x.Grade).Distinct());
FXGradeList = distributor_FXGradeRepository.GetList(new RB_Distributor_FXGrade_Extend() { GradeIds = gradeIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
}
foreach (var item in oclist)
{
......@@ -4648,6 +4890,11 @@ namespace Mall.Module.Product
var hpGModel = HpgradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = hpGModel?.GradeName ?? "暂无等级";
}
else if (item.Type == 3)
{
var fxGModel = FXGradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = fxGModel?.GradeName ?? "暂无等级";
}
}
}
......@@ -6974,12 +7221,43 @@ namespace Mall.Module.Product
var ocList = goods_OrderCommissionRepository.GetListGroupByUser(new RB_Goods_OrderCommission_Extend() { TenantId = tenantId, MallBaseId = mallBaseId, OrderId = orderId }).OrderBy(x => x.Grade).ToList();
if (ocList.Any())
{
var FXGradeList = new List<RB_Distributor_FXGrade_Extend>();
if (ocList.Where(x => x.Type == 3).Any())
{
string gradeIds = string.Join(",", ocList.Where(x => x.Type == 3).Select(x => x.Grade).Distinct());
FXGradeList = distributor_FXGradeRepository.GetList(new RB_Distributor_FXGrade_Extend() { GradeIds = gradeIds, TenantId = tenantId, MallBaseId = mallBaseId });
}
var ulist = member_UserRepository.GetList(new RB_Member_User_Extend() { TenantId = tenantId, MallBaseId = mallBaseId, UserIds = string.Join(",", ocList.Select(x => x.UserId).Distinct()) });
foreach (var item in ocList)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel?.Name ?? "";
item.Mobile = umodel?.Moblie ?? "";
if (item.Type == 1)
{
if (item.Grade == 0)
{
item.GradeDescription = "自购返利";
}
else if (item.Grade == 1)
{
item.GradeDescription = "一级佣金";
}
else if (item.Grade == 2)
{
item.GradeDescription = "二级佣金";
}
else if (item.Grade == 3)
{
item.GradeDescription = "三级佣金";
}
}
else if (item.Type == 3)
{
var fxGModel = FXGradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = fxGModel?.GradeName ?? "暂无等级";
}
}
}
......@@ -7039,6 +7317,7 @@ namespace Mall.Module.Product
{
x.Id,
x.Grade,
x.GradeDescription,
x.UserName,
x.Mobile,
x.Commission
......
......@@ -2870,6 +2870,7 @@ namespace Mall.Module.User
/// <returns></returns>
public object GetDistrbutorCenter(AppletUserInfo userInfo)
{
var basicsModel = distributor_BasicsRepository.GetList(new RB_Distributor_Basics_Extend() { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId }).FirstOrDefault();
var model = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { UserId = userInfo.UserId, TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId }).FirstOrDefault();
if (model == null)
{
......@@ -2879,25 +2880,36 @@ namespace Mall.Module.User
{
return "分销商不存在";
}
int HpEnabled = GetHpDistributorIsEnabled(userInfo.TenantId, userInfo.MallBaseId);
//分销商等级
string GradeName = "默认等级";
if (HpEnabled == 1)
int HpEnabled = 2;
if ((basicsModel?.IsEnableFXGrade ?? 0) == 1)
{
if (model.HPGradeId > 0)
{
var gmodel = distributor_HPGradeInfoRepository.GetEntity(model.HPGradeId);
GradeName = gmodel?.GradeName ?? "";
}
var gmodel = distributor_FXGradeRepository.GetEntity(model.FXGradeId);
GradeName = gmodel?.GradeName ?? "默认等级";
}
else
{
if (model.GradeId > 0)
HpEnabled = GetHpDistributorIsEnabled(userInfo.TenantId, userInfo.MallBaseId);
if (HpEnabled == 1)
{
if (model.HPGradeId > 0)
{
var gmodel = distributor_HPGradeInfoRepository.GetEntity(model.HPGradeId);
GradeName = gmodel?.GradeName ?? "";
}
}
else
{
var gmodel = distributor_GradeRepository.GetEntity(model.GradeId);
GradeName = gmodel?.Name ?? "";
if (model.GradeId > 0)
{
var gmodel = distributor_GradeRepository.GetEntity(model.GradeId);
GradeName = gmodel?.Name ?? "默认等级";
}
}
}
//已提现佣金 //未结算佣金
var commModel = distributor_RemitRepository.GetDistributorCommissionStatiscs(userInfo.UserId);
//提现总额
......@@ -2918,17 +2930,28 @@ namespace Mall.Module.User
SuperiorName = upmodel?.Name ?? "";
}
//下线数量
int oneNum = member_UserRepository.GetDistributorReferralsNumTwo(umodel.Id, 1, userInfo.TenantId, userInfo.MallBaseId);
int twoNum = member_UserRepository.GetDistributorReferralsNumTwo(umodel.Id, 2, userInfo.TenantId, userInfo.MallBaseId);
int threeNum = member_UserRepository.GetDistributorReferralsNumTwo(umodel.Id, 3, userInfo.TenantId, userInfo.MallBaseId);
int oneNum = 0, twoNum = 0, threeNum = 0, fxNum = 0;
if ((basicsModel?.IsEnableFXGrade ?? 0) == 1)
{
//求其所有下线的数量
var UserIds = member_UserRepository.GetMemberChildIdStr(umodel.Id);
if (!string.IsNullOrEmpty(UserIds)) {
string[] arr = UserIds.Split(',');
fxNum = arr.Length - 1;
}
}
else
{
oneNum = member_UserRepository.GetDistributorReferralsNumTwo(umodel.Id, 1, userInfo.TenantId, userInfo.MallBaseId);
twoNum = member_UserRepository.GetDistributorReferralsNumTwo(umodel.Id, 2, userInfo.TenantId, userInfo.MallBaseId);
threeNum = member_UserRepository.GetDistributorReferralsNumTwo(umodel.Id, 3, userInfo.TenantId, userInfo.MallBaseId);
}
var CustomModel = distributor_CustomRepository.GetList(new RB_Distributor_Custom_Extend() { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId }).FirstOrDefault();
if (CustomModel == null)
{
return "";
}
var basicsModel = distributor_BasicsRepository.GetList(new RB_Distributor_Basics_Extend() { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId }).FirstOrDefault();
return new
{
CustomModel = new
......@@ -2966,7 +2989,8 @@ namespace Mall.Module.User
model.TotalCommission,
OrderCommission,
RemitMoney = remitMoney,
ReferralsNum = oneNum + twoNum + threeNum
ReferralsNum = (basicsModel?.IsEnableFXGrade ?? 0) == 1 ? fxNum : (oneNum + twoNum + threeNum),
IsEnableFXGrade = (basicsModel?.IsEnableFXGrade ?? 0)
}
};
}
......@@ -3420,6 +3444,75 @@ namespace Mall.Module.User
};
}
/// <summary>
/// 获取粉象我的团队标题列表
/// </summary>
/// <param name="userInfo"></param>
/// <returns></returns>
public object GerUserMyTeamTitelListForFX(AppletUserInfo userInfo) {
string UserIds = member_UserRepository.GetMemberChildIdStr(userInfo.UserId);
//获取下级所有等级
var disList = distributor_InfoRepository.GetFXGreadeListForMyTeam(new RB_Distributor_Info_Extend() { UserIds = UserIds, TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId });
var fxList = new List<RB_Distributor_FXGrade_Extend>();
if (disList.Where(x => x.FXGradeId > 0).Any())
{
string fxgradeIds = string.Join(",", disList.Select(x => x.FXGradeId));
fxList = distributor_FXGradeRepository.GetList(new RB_Distributor_FXGrade_Extend() { GradeIds = fxgradeIds, TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId });
fxList = fxList.OrderByDescending(x => x.Grade).ToList();//倒序 最大的拍前面
}
else
{
//增加一个 普通会员等级
fxList = distributor_FXGradeRepository.GetList(new RB_Distributor_FXGrade_Extend() { IsGuest = 1, TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId });
}
return fxList.Select(x => new
{
x.Id,
x.GradeName
});
}
/// <summary>
/// 获取我的团队 (粉象)
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public object GetUserMyTeamPageListForFX(int pageIndex, int pageSize, out long count, RB_Distributor_Info_Extend demodel)
{
string UserIds = member_UserRepository.GetMemberChildIdStr(demodel.UserId ?? 0);
var list = member_UserRepository.GetPageListForFX(pageIndex, pageSize, out count, new RB_Member_User_Extend() { UserIds = UserIds, FXGradeId = demodel.FXGradeId, Name = demodel.Name, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
List<object> RList = new List<object>();
if (list.Any())
{
string userIds = string.Join(",", list.Select(x => x.Id));
//获取推广人数
var tList = member_UserRepository.GetDistributorReferralsNum(userIds, 1, demodel.TenantId, demodel.MallBaseId);
//获取消费金额 + 订单数量
var oList = goods_OrderRepository.GetUserOrderNumAndMoney(userIds, demodel.TenantId, demodel.MallBaseId);
foreach (var item in list)
{
int tgNum = tList.Where(x => x.SuperiorId == item.Id).FirstOrDefault()?.ReferralsNum ?? 0;
var orderModel = oList.Where(x => x.UserId == item.Id).FirstOrDefault();
RList.Add(new
{
UserId = item.Id,
UserName = item.Name,
item.Photo,
CreateDate = item.CreateDate.HasValue ? item.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
GeneralizeNum = tgNum,
OrderNum = orderModel?.OrderNum ?? 0,
Income = orderModel?.Income ?? 0
});
}
}
return RList;
}
#endregion
#region 我的足迹
......@@ -4443,6 +4536,45 @@ namespace Mall.Module.User
}
}
/// <summary>
/// 验证等级是否存在
/// </summary>
/// <param name="id"></param>
/// <param name="grade"></param>
/// <param name="tenantId"></param>
/// <param name="mallBaseId"></param>
/// <returns></returns>
public bool ValidateFXGrade(int id, int? grade, int tenantId, int mallBaseId)
{
List<WhereHelper> whereHelpers = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Distributor_FXGrade_Extend.Grade),
FiledValue=grade,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_FXGrade_Extend.TenantId),
FiledValue=tenantId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_FXGrade_Extend.MallBaseId),
FiledValue=mallBaseId,
OperatorEnum=OperatorEnum.Equal
}
};
if (id > 0)
{
whereHelpers.Add(new WhereHelper()
{
FiledName = nameof(RB_Distributor_FXGrade_Extend.Id),
FiledValue = id,
OperatorEnum = OperatorEnum.NotEqual
});
}
return distributor_FXGradeRepository.Exists(whereHelpers);
}
/// <summary>
/// 删除粉象等级
/// </summary>
......
......@@ -129,11 +129,11 @@ where {where} group by oc.OrderId,oc.UserId,oc.Grade,oc.Type order by oc.Grade a
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in(1,2,3,4,5,6)";
}
string sql = $@"SELECT oc.OrderId,o.OrderNo,o.UserId,oc.Grade,oc.CommissionState,o.OrderStatus as DistrbutionOrderSelectStatus,SUM(oc.Commission) as Commission
string sql = $@"SELECT oc.OrderId,o.OrderNo,o.UserId,oc.Type,oc.Grade,oc.CommissionState,o.OrderStatus as DistrbutionOrderSelectStatus,SUM(oc.Commission) as Commission
FROM RB_Goods_OrderCommission oc
inner join rb_goods_order o on oc.OrderId = o.OrderId
left join rb_goods_orderaftersale oa on oc.OrderDetailId= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5)
where {where} group by oc.OrderId,o.OrderNo,oc.UserId,oc.Grade order by oc.OrderId desc";
where {where} group by oc.OrderId,o.OrderNo,oc.UserId,oc.Type,oc.Grade order by oc.OrderId desc";
return GetPage<RB_Goods_OrderCommission_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
......
......@@ -104,6 +104,88 @@ where {where} order by di.CreateDate desc";
return Get<RB_Distributor_Info_Extend>(sql).ToList();
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Distributor_Info_Extend> GetListForSingle(RB_Distributor_Info_Extend dmodel)
{
string where = $@" 1=1 and di.{nameof(RB_Distributor_Info.Status)}=0";
if (dmodel.TenantId > 0)
{
where += $@" and di.{nameof(RB_Distributor_Info.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and di.{nameof(RB_Distributor_Info.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.UserId > 0)
{
where += $@" and di.{nameof(RB_Distributor_Info.UserId)}={dmodel.UserId}";
}
if (dmodel.AuditStatus > 0)
{
where += $@" and di.{nameof(RB_Distributor_Info.AuditStatus)}={(int)dmodel.AuditStatus}";
}
if (!string.IsNullOrEmpty(dmodel.UserIds))
{
where += $@" and di.{nameof(RB_Distributor_Info.UserId)} in({dmodel.UserIds})";
}
if (dmodel.GradeId >= 0)
{
where += $@" and di.{nameof(RB_Distributor_Info.GradeId)}={dmodel.GradeId}";
}
if (!string.IsNullOrEmpty(dmodel.Name))
{
where += $@" and di.{nameof(RB_Distributor_Info.Name)} like '%{dmodel.Name}%'";
}
string sql = $@"select di.* from RB_Distributor_Info di where {where} order by di.CreateDate desc";
return Get<RB_Distributor_Info_Extend>(sql).ToList();
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Distributor_Info_Extend> GetFXGreadeListForMyTeam(RB_Distributor_Info_Extend dmodel)
{
string where = $@" 1=1 and di.{nameof(RB_Distributor_Info.Status)}=0";
if (dmodel.TenantId > 0)
{
where += $@" and di.{nameof(RB_Distributor_Info.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and di.{nameof(RB_Distributor_Info.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.UserId > 0)
{
where += $@" and di.{nameof(RB_Distributor_Info.UserId)}={dmodel.UserId}";
}
if (dmodel.AuditStatus > 0)
{
where += $@" and di.{nameof(RB_Distributor_Info.AuditStatus)}={(int)dmodel.AuditStatus}";
}
if (!string.IsNullOrEmpty(dmodel.UserIds))
{
where += $@" and di.{nameof(RB_Distributor_Info.UserId)} in({dmodel.UserIds})";
}
if (dmodel.GradeId >= 0)
{
where += $@" and di.{nameof(RB_Distributor_Info.GradeId)}={dmodel.GradeId}";
}
if (!string.IsNullOrEmpty(dmodel.Name))
{
where += $@" and di.{nameof(RB_Distributor_Info.Name)} like '%{dmodel.Name}%'";
}
string sql = $@"select di.FXGradeId from RB_Distributor_Info di where {where} group by di.FXGradeId";
return Get<RB_Distributor_Info_Extend>(sql).ToList();
}
/// <summary>
/// 获取下载列表
/// </summary>
......
......@@ -133,6 +133,66 @@ select * from RB_Member_User where {where} order by CreateDate desc
return Get<RB_Member_User_Extend>(sql).ToList();
}
/// <summary>
/// 获取列表(粉象)
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Member_User_Extend> GetPageListForFX(int pageIndex, int pageSize, out long rowCount, RB_Member_User_Extend dmodel)
{
string where = " 1=1 ";
if (dmodel.TenantId > 0)
{
where += $@" and u.{nameof(RB_Member_User.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and u.{nameof(RB_Member_User.MallBaseId)}={dmodel.MallBaseId}";
}
if (!string.IsNullOrEmpty(dmodel.Name))
{
where += $@" and u.{nameof(RB_Member_User.Name)} like '%{dmodel.Name}%'";
}
if (!string.IsNullOrEmpty(dmodel.UserNameStr))
{
where += $@" and u.{nameof(RB_Member_User.Name)} in({dmodel.UserNameStr})";
}
if (!string.IsNullOrEmpty(dmodel.AliasName))
{
where += $@" and u.{nameof(RB_Member_User.AliasName)} like '%{dmodel.AliasName}%'";
}
if (dmodel.Source > 0)
{
where += $@" and u.{nameof(RB_Member_User.Source)} ={(int)dmodel.Source}";
}
if (!string.IsNullOrEmpty(dmodel.Moblie))
{
where += $@" and u.{nameof(RB_Member_User.Moblie)} like '%{dmodel.Moblie}%'";
}
if (dmodel.MemberGrade > 0)
{
where += $@" and u.{nameof(RB_Member_User.MemberGrade)}={dmodel.MemberGrade}";
}
if (dmodel.SuperiorId > 0)
{
where += $@" and u.{nameof(RB_Member_User.SuperiorId)}={dmodel.SuperiorId}";
}
if (!string.IsNullOrEmpty(dmodel.UserIds))
{
where += $@" and u.{nameof(RB_Member_User.Id)} in({dmodel.UserIds})";
}
if (dmodel.FXGradeId > 0)
{
where += $@" and d.{nameof(RB_Distributor_Info.FXGradeId)}={dmodel.FXGradeId}";
}
string sql = $@"
select u.* from RB_Member_User u
inner join rb_distributor_info d on u.Id =d.UserId
where {where} order by u.CreateDate desc
";
return GetPage<RB_Member_User_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
/// <summary>
/// 分页列表
......@@ -385,6 +445,28 @@ WHERE u.TenantId={tenantId} and u.MallBaseId={mallBaseId} and u.SuperiorId ={uid
return Get<RB_Member_User_Extend>(sql).ToList();
}
/// <summary>
/// 获取用户上级所有的id
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public string GetMemberParentIdStr(int id)
{
string sql = $@" select GetMemberParentrenList({id})";
return ExecuteScalar(sql).ToString();
}
/// <summary>
/// 获取用户下级所有的id (包括自己)
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public string GetMemberChildIdStr(int id)
{
string sql = $@" select GetMemberChildrenList_AllUser({id})";
return ExecuteScalar(sql).ToString();
}
/// <summary>
/// 获取下线分销商分页列表
......
......@@ -646,8 +646,39 @@ namespace Mall.WebApi.Controllers.User
return ApiResult.Success("", pageModel);
}
//分销订单 提现明细 我的团队
/// <summary>
/// 获取我的团队里粉象返佣标题
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GerUserMyTeamTitelListForFX()
{
var userInfo = AppletUserInfo;
var obj = userModule.GerUserMyTeamTitelListForFX(userInfo);
return ApiResult.Success("", obj);
}
/// <summary>
/// 获取我的团队 粉象返佣列表
/// </summary>
/// <returns></returns>
public ApiResult GetUserMyTeamPageListForFX() {
var req = RequestParm;
var userInfo = AppletUserInfo;
ResultPageModel pageModel = JsonConvert.DeserializeObject<ResultPageModel>(req.msg.ToString());
RB_Distributor_Info_Extend demodel = JsonConvert.DeserializeObject<RB_Distributor_Info_Extend>(req.msg.ToString());
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.UserId = userInfo.UserId;
pageModel.pageData = userModule.GetUserMyTeamPageListForFX(pageModel.pageIndex, pageModel.pageSize, out long count, demodel);
pageModel.count = Convert.ToInt32(count);
return ApiResult.Success("", pageModel);
}
#endregion
#region 会员中心
......
......@@ -2709,7 +2709,10 @@ namespace Mall.WebApi.Controllers.User
if ((demodel.SiblingRatio ?? 0) <= 0) {
return ApiResult.ParamIsNull("请传递同级返佣比例");
}
//验证等级是否重复
if (userModule.ValidateFXGrade(demodel.Id, demodel.Grade, req.TenantId, req.MallBaseId)) {
return ApiResult.ParamIsNull("等级已存在,请核实后再试");
}
demodel.TenantId = req.TenantId;
demodel.MallBaseId = req.MallBaseId;
......
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