Commit bc33739d authored by liudong1993's avatar liudong1993

和平分销暂存+商品详情调整

parent 97a54957
...@@ -47,6 +47,10 @@ namespace Mall.Model.Entity.User ...@@ -47,6 +47,10 @@ namespace Mall.Model.Entity.User
set; set;
} }
/// <summary> /// <summary>
/// 是否通用返佣 1是 2否
/// </summary>
public int? IsCommon { get; set; }
/// <summary>
/// 删除状态 /// 删除状态
/// </summary> /// </summary>
public int? Status { get; set; } public int? Status { get; set; }
......
...@@ -70,5 +70,9 @@ namespace Mall.Model.Entity.User ...@@ -70,5 +70,9 @@ namespace Mall.Model.Entity.User
/// UpdateDate /// UpdateDate
/// </summary> /// </summary>
public DateTime? UpdateDate { get; set; } public DateTime? UpdateDate { get; set; }
/// <summary>
/// 是否直客等级
/// </summary>
public int? IsGuest { get; set; }
} }
} }
...@@ -23,7 +23,7 @@ namespace Mall.Model.Extend.User ...@@ -23,7 +23,7 @@ namespace Mall.Model.Extend.User
public string CategoryIds { get; set; } public string CategoryIds { get; set; }
/// <summary> /// <summary>
/// 分类ids /// 分类ids(包含不限)
/// </summary> /// </summary>
public string CategoryIdsT { get; set; } public string CategoryIdsT { get; set; }
/// <summary> /// <summary>
...@@ -34,5 +34,9 @@ namespace Mall.Model.Extend.User ...@@ -34,5 +34,9 @@ namespace Mall.Model.Extend.User
/// 比例列表 /// 比例列表
/// </summary> /// </summary>
public List<RB_Distributor_HPGradeRatio_Extend> RatioList { get; set; } public List<RB_Distributor_HPGradeRatio_Extend> RatioList { get; set; }
/// <summary>
/// 是否通用
/// </summary>
public int? IsCommon { get; set; }
} }
} }
...@@ -13,6 +13,9 @@ namespace Mall.Model.Extend.User ...@@ -13,6 +13,9 @@ namespace Mall.Model.Extend.User
[DB(ConnectionName = "DefaultConnection")] [DB(ConnectionName = "DefaultConnection")]
public class RB_Distributor_HPGradeInfo_Extend : RB_Distributor_HPGradeInfo public class RB_Distributor_HPGradeInfo_Extend : RB_Distributor_HPGradeInfo
{ {
/// <summary>
/// ids
/// </summary>
public string GradeIds { get; set; }
} }
} }
...@@ -173,6 +173,14 @@ namespace Mall.Module.Product ...@@ -173,6 +173,14 @@ namespace Mall.Module.Product
/// 小程序基础 /// 小程序基础
/// </summary> /// </summary>
private readonly RB_MallBaseRepository mallBaseRepository = new RB_MallBaseRepository(); private readonly RB_MallBaseRepository mallBaseRepository = new RB_MallBaseRepository();
/// <summary>
/// 和平返佣
/// </summary>
private readonly RB_Distributor_HPCommissionRepository distributor_HPCommissionRepository = new RB_Distributor_HPCommissionRepository();
/// <summary>
/// 和平返佣比例
/// </summary>
private readonly RB_Distributor_HPGradeRatioRepository distributor_HPGradeRatioRepository = new RB_Distributor_HPGradeRatioRepository();
#region 购物车 #region 购物车
...@@ -2512,8 +2520,95 @@ namespace Mall.Module.Product ...@@ -2512,8 +2520,95 @@ namespace Mall.Module.Product
var trans = goods_OrderCommissionRepository.DbTransaction; var trans = goods_OrderCommissionRepository.DbTransaction;
try try
{ {
var dcList = goods_DistributionCommissionRepository.GetList(new RB_Goods_DistributionCommission_Extend() { GoodsIds = GoodsIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
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();
//判断是否开启和平返佣
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission_Extend.Status),
FiledValue=0,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission_Extend.Enabled),
FiledValue=1,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission_Extend.TenantId),
FiledValue=demodel.TenantId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission_Extend.MallBaseId),
FiledValue=demodel.MallBaseId,
OperatorEnum=OperatorEnum.Equal
}
};
if (distributor_HPCommissionRepository.Exists(wheres))
{
int OneUserId = umodel.SuperiorId ?? 0;
//获取分销商信息
var disModel = new RB_Distributor_Info_Extend();
if ((basicModel?.InPurchasing ?? 2) == 1)
{
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();
if (disModel != null || (disModel.HPGradeId ?? 0) > 0)
{
OneUserId = umodel.Id;//设置了分销内购 并且自己是分销商 并且设置了和平等级 , 那么就是自购返佣
}
}
if (OneUserId != umodel.Id) {
//求其上级
disModel = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, UserId = OneUserId, AuditStatus = Common.Enum.User.DistributorAuditStatusEnum.Audited }).FirstOrDefault();
if (disModel != null || (disModel.HPGradeId ?? 0) > 0)
{
OneUserId = umodel.SuperiorId ?? 0;//其上级可返佣
}
else {
OneUserId = 0;
}
}
if (OneUserId > 0) {
foreach (var item in demodel.DetailList) {
if (item.CostMoney > 0) {
//成本价格大于0的才进行返佣
string categoryids = string.Join(",", item.CategoryIdList);
var hpcList = distributor_HPCommissionRepository.GetList(new RB_Distributor_HPCommission_Extend() { CategoryIdsT = categoryids });
if (hpcList.Any())
{
RB_Distributor_HPCommission_Extend hpcModel;
if (hpcList.Where(x => x.IsCommon != 1).Any())
{
//有使用非通用返佣
hpcModel = hpcList.Where(x => x.IsCommon != 1).FirstOrDefault();
}
else
{
//查询通用返佣
hpcModel = hpcList.Where(x => x.IsCommon == 1).FirstOrDefault();
}
//查询所有返佣比例
var gList = distributor_HPGradeRatioRepository.GetList(new RB_Distributor_HPGradeRatio_Extend() { CommissionId = hpcModel.Id, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
var ratioModel = gList.Where(x => x.GradeId == disModel.HPGradeId).FirstOrDefault();
decimal MPrice = (item.CostMoney ?? 0) / (1 - ((ratioModel.CommissionRatio ?? 0) / 100));
if (hpcModel.DecimalType == 1)
{
MPrice = Math.Ceiling(MPrice);
}
else if (hpcModel.DecimalType == 2)
{
MPrice = Math.Ceiling(MPrice * 100) / 100;
}
//model.MaxShare = MaxSellMoney - MPrice > 0 ? MaxSellMoney - MPrice : 0;
}
}
}
}
}
else
{
var dcList = goods_DistributionCommissionRepository.GetList(new RB_Goods_DistributionCommission_Extend() { GoodsIds = GoodsIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
if (basicModel != null && basicModel.DistributorTier > 0) if (basicModel != null && basicModel.DistributorTier > 0)
{ {
#region 分销商id+分销商等级 #region 分销商id+分销商等级
...@@ -2527,18 +2622,24 @@ namespace Mall.Module.Product ...@@ -2527,18 +2622,24 @@ namespace Mall.Module.Product
switch (i) switch (i)
{ {
case 1: case 1:
if (umodel.IsDistributor != 1 || basicModel.InPurchasing != 1) { if (umodel.IsDistributor != 1 || basicModel.InPurchasing != 1)
{
OneUserId = umodel.SuperiorId ?? 0; OneUserId = umodel.SuperiorId ?? 0;
} else { }
else
{
OneUserId = umodel.Id; OneUserId = umodel.Id;
} }
break; break;
case 2: case 2:
if (OneUserId > 0) if (OneUserId > 0)
{ {
if (umodel.IsDistributor != 1 || basicModel.InPurchasing != 1) { if (umodel.IsDistributor != 1 || basicModel.InPurchasing != 1)
{
TwoUserId = member_UserRepository.GetEntity(OneUserId).SuperiorId ?? 0; TwoUserId = member_UserRepository.GetEntity(OneUserId).SuperiorId ?? 0;
} else { }
else
{
TwoUserId = umodel.SuperiorId ?? 0; TwoUserId = umodel.SuperiorId ?? 0;
} }
} }
...@@ -2841,6 +2942,7 @@ namespace Mall.Module.Product ...@@ -2841,6 +2942,7 @@ namespace Mall.Module.Product
} }
} }
} }
}
goods_OrderCommissionRepository.DBSession.Commit(); goods_OrderCommissionRepository.DBSession.Commit();
} }
catch (Exception ex) catch (Exception ex)
......
...@@ -7,6 +7,7 @@ using Mall.Common; ...@@ -7,6 +7,7 @@ using Mall.Common;
using Mall.Common.API; using Mall.Common.API;
using Mall.Common.Plugin; using Mall.Common.Plugin;
using Mall.Model.Entity.Product; using Mall.Model.Entity.Product;
using Mall.Model.Entity.User;
using Mall.Model.Extend.Product; using Mall.Model.Extend.Product;
using Mall.Model.Extend.User; using Mall.Model.Extend.User;
using Mall.Model.Query; using Mall.Model.Query;
...@@ -134,6 +135,15 @@ namespace Mall.Module.Product ...@@ -134,6 +135,15 @@ namespace Mall.Module.Product
/// </summary> /// </summary>
private readonly Rb_destinationRepository destinationRepository = new Rb_destinationRepository(); private readonly Rb_destinationRepository destinationRepository = new Rb_destinationRepository();
/// <summary>
/// 和平返佣
/// </summary>
private readonly RB_Distributor_HPCommissionRepository distributor_HPCommissionRepository = new RB_Distributor_HPCommissionRepository();
/// <summary>
/// 和平返佣比例
/// </summary>
private readonly RB_Distributor_HPGradeRatioRepository distributor_HPGradeRatioRepository = new RB_Distributor_HPGradeRatioRepository();
#region 小程序接口 #region 小程序接口
...@@ -734,6 +744,66 @@ namespace Mall.Module.Product ...@@ -734,6 +744,66 @@ namespace Mall.Module.Product
//获取分销商信息 //获取分销商信息
var disModel = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = TenantId, MallBaseId = MallBaseId, UserId = UserId, AuditStatus = Common.Enum.User.DistributorAuditStatusEnum.Audited }).FirstOrDefault(); var disModel = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = TenantId, MallBaseId = MallBaseId, UserId = UserId, AuditStatus = Common.Enum.User.DistributorAuditStatusEnum.Audited }).FirstOrDefault();
if (disModel != null) if (disModel != null)
{
//判断是否开启和平返佣
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission.Status),
FiledValue=0,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission.Enabled),
FiledValue=1,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission.TenantId),
FiledValue=TenantId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission.MallBaseId),
FiledValue=MallBaseId,
OperatorEnum=OperatorEnum.Equal
}
};
if (distributor_HPCommissionRepository.Exists(wheres))
{
//获取和平分销返佣
if (disModel.HPGradeId > 0 && model.CostPrice > 0) {
string categoryids = string.Join(",", model.CategoryList.Select(x => x.CategoryId));
var hpcList = distributor_HPCommissionRepository.GetList(new RB_Distributor_HPCommission_Extend() { CategoryIdsT = categoryids });
if (hpcList.Any())
{
RB_Distributor_HPCommission_Extend hpcModel;
if (hpcList.Where(x => x.IsCommon != 1).Any())
{
//有使用非通用返佣
hpcModel = hpcList.Where(x => x.IsCommon != 1).FirstOrDefault();
}
else {
//查询通用返佣
hpcModel = hpcList.Where(x => x.IsCommon == 1).FirstOrDefault();
}
//查询所有返佣比例
var gList = distributor_HPGradeRatioRepository.GetList(new RB_Distributor_HPGradeRatio_Extend() { CommissionId = hpcModel.Id, TenantId = TenantId, MallBaseId = MallBaseId });
var ratioModel = gList.Where(x => x.GradeId == disModel.HPGradeId).FirstOrDefault();
decimal MPrice = (model.CostPrice ?? 0) / (1 - ((ratioModel.CommissionRatio ?? 0) / 100));
if (hpcModel.DecimalType == 1)
{
MPrice = Math.Ceiling(MPrice);
}
else if (hpcModel.DecimalType == 2)
{
MPrice = Math.Ceiling(MPrice * 100) / 100;
}
model.MaxShare = MaxSellMoney - MPrice > 0 ? MaxSellMoney - MPrice : 0;
}
}
}
else
{ {
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 (model.SeparateDistribution == 1) if (model.SeparateDistribution == 1)
...@@ -794,10 +864,749 @@ namespace Mall.Module.Product ...@@ -794,10 +864,749 @@ namespace Mall.Module.Product
} }
} }
} }
}
#endregion #endregion
return model; return model;
} }
/// <summary>
/// 获取小程序商品详情
/// </summary>
/// <param name="goodsId"></param>
/// <param name="UserId"></param>
/// <param name="TenantId"></param>
/// <param name="MallBaseId"></param>
/// <returns></returns>
public object GetAppletGoodsInfo_V2(int goodsId, int UserId, int TenantId, int MallBaseId)
{
var model = goodsRepository.GetEntity(goodsId).RefMapperTo<RB_Goods_Extend>();
if (model == null || model.TenantId != TenantId || model.MallBaseId != MallBaseId)
{
return null;
}
//小程序名称
model.MallName = programRepository.GetEntity(model.MallBaseId)?.MallName ?? "";
#region 基本信息
//查询分类
model.CategoryList = goods_CategoryRepository.GetList(new RB_Goods_Category_Extend() { GoodsId = goodsId, TenantId = TenantId, MallBaseId = MallBaseId });
//最大售价
decimal MaxSellMoney = model.SellingPrice ?? 0;
model.SpecificationList = new List<RB_Goods_Specification_Extend>();
model.SpecificationPriceList = new List<RB_Goods_SpecificationPrice_Extend>();
if (model.IsCustomSpecification == 1)
{
model.SpecificationList = goods_SpecificationRepository.GetList(new RB_Goods_Specification_Extend() { GoodsId = goodsId, TenantId = TenantId, MallBaseId = MallBaseId });
if (model.SpecificationList.Any())
{
var svlist = goods_SpecificationValueRepository.GetList(new RB_Goods_SpecificationValue_Extend() { GoodsId = goodsId, TenantId = TenantId, MallBaseId = MallBaseId });
foreach (var item in svlist)
{
item.ImagePath = item.Image;
}
foreach (var item in model.SpecificationList)
{
item.SpecificationValueList = svlist.Where(x => x.SpecificationId == item.Id).ToList();
}
}
model.SpecificationPriceList = goods_SpecificationPriceRepository.GetList(new RB_Goods_SpecificationPrice_Extend() { GoodsId = goodsId, TenantId = TenantId, MallBaseId = MallBaseId });
MaxSellMoney = model.SpecificationPriceList.Max(x => x.SellingPrice ?? 0);
}
//区域
model.AreaList = new List<RB_Goods_Area_Extend>();
if (model.IsAreaBuy == 1)
{
model.AreaList = goods_AreaRepository.GetList(new RB_Goods_Area_Extend() { GoodsId = goodsId, TenantId = TenantId, MallBaseId = MallBaseId });
}
//返佣
model.DistributionCommissionList = new List<RB_Goods_DistributionCommission_Extend>();
if (model.SeparateDistribution == 1)
{
model.DistributionCommissionList = goods_DistributionCommissionRepository.GetList(new RB_Goods_DistributionCommission_Extend() { GoodsId = goodsId, TenantId = TenantId, MallBaseId = MallBaseId });
}
//会员价格
model.MemberPriceList = new List<RB_Goods_MemberPrice_Extend>();
if (model.EnjoyMember == 1 && model.SeparateSetMember == 1)
{
model.MemberPriceList = goods_MemberPriceRepository.GetList(new RB_Goods_MemberPrice_Extend() { GoodsId = goodsId, TenantId = TenantId, MallBaseId = MallBaseId });
}
//轮播
model.CarouselImageList = new List<RB_ImageCommonModel>();
if (!string.IsNullOrEmpty(model.CarouselImage) && model.CarouselImage != "[]")
{
List<string> CarouselIdList = JsonConvert.DeserializeObject<List<string>>(model.CarouselImage);
//轮播图
foreach (var item in CarouselIdList)
{
model.CarouselImageList.Add(new RB_ImageCommonModel()
{
Id = 0,
Name = "",
Path = item
});
}
}
model.CustomShareImagePath = model.CustomShareImage;
//服务列表
model.ServiceList = new List<RB_ImageCommonModel>();
if (model.IsDefaultService == 2)
{
if (!string.IsNullOrEmpty(model.GoodsService) && model.GoodsService != "[]")
{
List<int> ServiceIds = JsonConvert.DeserializeObject<List<int>>(model.GoodsService);
var slist = product_ServiceRepository.GetList(new RB_Product_Service_Extend() { ServiceIds = string.Join(",", ServiceIds), TenantId = TenantId, MallBaseId = MallBaseId });
foreach (var item in slist)
{
model.ServiceList.Add(new RB_ImageCommonModel()
{
Id = item.Id,
Name = item.Name
});
}
}
}
else if (model.IsDefaultService == 1)
{
var slist = product_ServiceRepository.GetList(new RB_Product_Service_Extend() { IsDefault = 1, TenantId = TenantId, MallBaseId = MallBaseId });
foreach (var item in slist)
{
model.ServiceList.Add(new RB_ImageCommonModel()
{
Id = item.Id,
Name = item.Name
});
}
}
//表单
if (model.FormsId > 0)
{
model.FormsName = "未建表";
}
else
{
model.FormsName = "默认表单";
}
#endregion
#region 是否收藏
model.Favorite = false;
if (UserId > 0)
{
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Member_Collection_Extend.UserId),
FiledValue=UserId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Member_Collection_Extend.GoodsId),
FiledValue=goodsId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Member_Collection_Extend.TenantId),
FiledValue=TenantId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Member_Collection_Extend.MallBaseId),
FiledValue=MallBaseId,
OperatorEnum=OperatorEnum.Equal
},
};
if (member_CollectionRepository.Exists(wheres))
{
model.Favorite = true;
}
}
#endregion
#region 快递费用
//运费
Model.Entity.BaseSetUp.RB_Logistics_Rules rulesModel = new Model.Entity.BaseSetUp.RB_Logistics_Rules();
if (model.FreightId > 0)
{
rulesModel = logistics_RulesRepository.GetEntity(model.FreightId);
model.FreightName = rulesModel?.RulesName ?? "";
}
else
{
model.FreightName = "默认运费";
}
model.Express = 0;
if (UserId > 0 && model.FreightId >= 0)
{
int FreightId = 0;
if (model.FreightId == 0)
{
//查询默认
FreightId = logistics_RulesRepository.GetLogisticsRulesList(new Model.Extend.BaseSetUp.RB_Logistics_Rules_Extend() { IsDefault = 1, TenantId = TenantId, MallBaseId = MallBaseId }).FirstOrDefault()?.ID ?? 0;
}
if (FreightId > 0)
{
var samodel = member_ShippingAddressRepository.GetList(new RB_Member_ShippingAddress_Extend() { TenantId = TenantId, MallBaseId = MallBaseId, UserId = UserId, IsDefault = 1 }).FirstOrDefault();
List<Model.Extend.BaseSetUp.RB_Logistics_RulesPrice_Extend> priceList1 = logistics_RulesPriceRepository.GetListRepository(new Model.Extend.BaseSetUp.RB_Logistics_RulesPrice_Extend() { TenantId = TenantId, MallBaseId = MallBaseId, RulesId = FreightId });
if (priceList1.Any() && samodel != null)
{
string priceIds = string.Join(",", priceList1.Select(x => x.ID));
var regionList = logistics_RulesRegionRepository.GetListRepository(new Model.Extend.BaseSetUp.RB_Logistics_RulesRegion_Extend() { TenantId = TenantId, MallBaseId = MallBaseId, PriceIds = priceIds });
List<int> disList = new List<int>();
disList.Add(samodel.Province ?? 0);
disList.Add(samodel.City ?? 0);
disList.Add(samodel.District ?? 0);
var regionModel = regionList.Where(x => disList.Contains(x.RegionId)).FirstOrDefault();
if (regionModel != null)
{
var pmodel = priceList1.Where(x => x.ID == regionModel.RulesPriceId).FirstOrDefault();
if (pmodel != null && rulesModel != null)
{
if (rulesModel.ChargeMode == Common.Enum.MallBase.ChargeModeEnum.Num)
{
model.Express = pmodel.FirstPrice;
}
else
{
//重量计费
int TotalW = model.GoodsWeight ?? 0;
if (TotalW <= pmodel.First)
{
model.Express = pmodel.FirstPrice;
}
else
{
if (pmodel.Second > 0)
{
if ((TotalW - pmodel.First) % pmodel.Second == 0)
{
model.Express = pmodel.FirstPrice + ((TotalW - pmodel.First) / pmodel.Second) * pmodel.SecondPrice;
}
else
{
model.Express = pmodel.FirstPrice + ((TotalW - pmodel.First) / pmodel.Second + 1) * pmodel.SecondPrice;
}
}
else
{
model.Express = pmodel.FirstPrice;
}
}
}
}
}
}
}
}
#endregion
#region 最高返佣
model.MaxShare = 0;
if (UserId > 0)
{
//获取分销商信息
var disModel = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = TenantId, MallBaseId = MallBaseId, UserId = UserId, AuditStatus = Common.Enum.User.DistributorAuditStatusEnum.Audited }).FirstOrDefault();
if (disModel != null)
{
//判断是否开启和平返佣
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission.Status),
FiledValue=0,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission.Enabled),
FiledValue=1,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission.TenantId),
FiledValue=TenantId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Distributor_HPCommission.MallBaseId),
FiledValue=MallBaseId,
OperatorEnum=OperatorEnum.Equal
}
};
if (distributor_HPCommissionRepository.Exists(wheres))
{
//获取和平分销返佣
if (disModel.HPGradeId > 0 && model.CostPrice > 0)
{
string categoryids = string.Join(",", model.CategoryList.Select(x => x.CategoryId));
var hpcList = distributor_HPCommissionRepository.GetList(new RB_Distributor_HPCommission_Extend() { CategoryIdsT = categoryids });
if (hpcList.Any())
{
RB_Distributor_HPCommission_Extend hpcModel;
if (hpcList.Where(x => x.IsCommon != 1).Any())
{
//有使用非通用返佣
hpcModel = hpcList.Where(x => x.IsCommon != 1).FirstOrDefault();
}
else
{
//查询通用返佣
hpcModel = hpcList.Where(x => x.IsCommon == 1).FirstOrDefault();
}
//查询所有返佣比例
var gList = distributor_HPGradeRatioRepository.GetList(new RB_Distributor_HPGradeRatio_Extend() { CommissionId = hpcModel.Id, TenantId = TenantId, MallBaseId = MallBaseId });
var ratioModel = gList.Where(x => x.GradeId == disModel.HPGradeId).FirstOrDefault();
decimal MPrice = (model.CostPrice ?? 0) / (1 - ((ratioModel.CommissionRatio ?? 0) / 100));
if (hpcModel.DecimalType == 1)
{
MPrice = Math.Ceiling(MPrice);
}
else if (hpcModel.DecimalType == 2)
{
MPrice = Math.Ceiling(MPrice * 100) / 100;
}
model.MaxShare = MaxSellMoney - MPrice > 0 ? MaxSellMoney - MPrice : 0;
}
}
}
else
{
var BasicsModel = distributor_BasicsRepository.GetList(new RB_Distributor_Basics_Extend() { TenantId = TenantId, MallBaseId = MallBaseId }).FirstOrDefault();
if (model.SeparateDistribution == 1)
{
var dcList = model.DistributionCommissionList.Where(x => x.DistributorGrade == disModel.GradeId).ToList();
if ((BasicsModel?.IsCommissionResidue ?? 2) == 1)
{
model.MaxShare = dcList.Max(x => (x.OneCommission ?? 0) + (x.TwoCommission ?? 0) + (x.ThreeCommission ?? 0));
}
else
{
model.MaxShare = dcList.Max(x => x.OneCommission ?? 0);
}
// 这里需注意,可能需要分销 是否提所有返佣控制
if (model.SeparateDistributionMoneyType == 1)
{
model.MaxShare = Math.Round(model.MaxShare * MaxSellMoney / 100, 2, MidpointRounding.AwayFromZero);
}
}
else
{
if (disModel.GradeId == 0)
{
//拿分销基础配置
if ((BasicsModel?.IsCommissionResidue ?? 2) == 1)
{
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);
}
}
else if (disModel.GradeId > 0)
{
//获取分销商等级
var disgradeModel = distributor_GradeRepository.GetEntity(disModel.GradeId);
if (disgradeModel != null)
{
if ((BasicsModel?.IsCommissionResidue ?? 2) == 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);
}
}
}
}
}
}
}
#endregion
#region 最外层组装参数
RB_Member_User_Extend userModel = new RB_Member_User_Extend();
List<RB_Member_Grade_Extend> memeberList = new List<RB_Member_Grade_Extend>();
if (UserId > 0)
{
userModel = GetMemberUserInfo(UserId);
if (userModel.MemberGrade > 0)
{
memeberList = GetMemberGradeList(new RB_Member_Grade_Extend() { Enabled = 1, TenantId = TenantId, MallBaseId = MallBaseId });
}
}
#region 组装价格
List<object> priceList = new List<object>();
if (model.IsCustomSpecification == 1)
{
if (model.SpecificationPriceList.Any() && model.SpecificationList.Any())
{
foreach (var item in model.SpecificationPriceList)
{
var ssarr = item.SpecificationSort.Split(':');
int Sort = Convert.ToInt32(ssarr[0]);
string pic_url = model.SpecificationList[0].SpecificationValueList.Where(x => x.Sort == Sort).FirstOrDefault()?.ImagePath;
List<object> attr_list = new List<object>();
for (int i = 0; i < ssarr.Length; i++)
{
var smodel = model.SpecificationList[i];
var svmodel = smodel.SpecificationValueList.Where(x => x.Sort == Convert.ToInt32(ssarr[i])).FirstOrDefault();
attr_list.Add(new
{
attr_group_name = smodel.Name,
attr_group_id = smodel.Sort,
attr_id = svmodel.Id,
attr_name = svmodel.Name
});
}
decimal price_member = item.SellingPrice ?? 0;//未设会员价格的话 就为销售价格
List<object> member_price_list = new List<object>();
if (model.EnjoyMember == 1 && model.SeparateSetMember == 1)
{
if (model.MemberPriceList.Any())
{
var mlist = model.MemberPriceList.Where(x => x.SpecificationSort == item.SpecificationSort).ToList();
foreach (var qitem in mlist)
{
member_price_list.Add(new
{
member_grade = qitem.MemberGrade,
member_price = qitem.MemberPrice
});
}
if (UserId > 0 && userModel.MemberGrade > 0)
{
var gmodel = mlist.Where(x => x.MemberGrade == userModel.MemberGrade).FirstOrDefault();
price_member = gmodel.MemberPrice ?? 0;
}
else
{
price_member = mlist.Max(x => x.MemberPrice ?? 0);
}
}
}
else
{
//根据会员等级查找会员价格
foreach (var qitem in memeberList)
{
var mprice = Math.Round((item.SellingPrice ?? 0) * (qitem.Discount ?? 0) / 10, 2, MidpointRounding.AwayFromZero);
member_price_list.Add(new
{
member_grade = qitem.Grade,
member_price = mprice
});
}
if (UserId > 0 && userModel.MemberGrade > 0 && memeberList.Any())
{
var gmodel = memeberList.Where(x => x.Grade == userModel.MemberGrade).FirstOrDefault();
price_member = Math.Round((model.SellingPrice ?? 0) * (gmodel?.Discount ?? 10) / 10, 2, MidpointRounding.AwayFromZero);
}
else if (memeberList.Any())
{
price_member = Math.Round((model.SellingPrice ?? 0) * (memeberList.Max(x => x.Discount) ?? 10) / 10, 2, MidpointRounding.AwayFromZero);
}
}
priceList.Add(new
{
id = item.Id,
goods_id = model.Id,
sign_id = item.SpecificationSort,
stock = item.InventoryNum,
price = item.SellingPrice,
no = item.GoodsNumbers,
weight = item.GoodsWeight,
pic_url,
is_delete = item.Status,
attr_list,
price_member,
member_price_list
});
}
}
}
else
{
decimal price_member = model.SellingPrice ?? 0;//未设会员价格的话 就为销售价格
List<object> member_price_list = new List<object>();
if (model.EnjoyMember == 1 && model.SeparateSetMember == 1)
{
if (model.MemberPriceList.Any())
{
var mlist = model.MemberPriceList;
foreach (var qitem in mlist)
{
member_price_list.Add(new
{
member_grade = qitem.MemberGrade,
member_price = qitem.MemberPrice
});
}
if (UserId > 0 && userModel.MemberGrade > 0)
{
var gmodel = mlist.Where(x => x.MemberGrade == userModel.MemberGrade).FirstOrDefault();
price_member = gmodel.MemberPrice ?? 0;
}
else
{
price_member = mlist.Max(x => x.MemberPrice ?? 0);
}
}
}
else
{
//根据会员等级查找会员价格
foreach (var qitem in memeberList)
{
var mprice = Math.Round((model.SellingPrice ?? 0) * (qitem.Discount ?? 10) / 10, 2, MidpointRounding.AwayFromZero);
member_price_list.Add(new
{
member_grade = qitem.Grade,
member_price = mprice
});
}
if (UserId > 0 && userModel.MemberGrade > 0 && memeberList.Any())
{
var gmodel = memeberList.Where(x => x.Grade == userModel.MemberGrade).FirstOrDefault();
price_member = Math.Round((model.SellingPrice ?? 0) * (gmodel?.Discount ?? 10) / 10, 2, MidpointRounding.AwayFromZero);
}
else if (memeberList.Any())
{
price_member = Math.Round((model.SellingPrice ?? 0) * (memeberList.Max(x => x.Discount) ?? 10) / 10, 2, MidpointRounding.AwayFromZero);
}
}
priceList.Add(new
{
id = 0,
goods_id = model.Id,
sign_id = "",
stock = model.InventoryNum,
price = model.SellingPrice ?? 0,
no = model.GoodsNumbers,
weight = model.GoodsWeight,
pic_url = "",
is_delete = 0,
attr_list = new List<object>(){ new
{
attr_group_name = "规格",
attr_group_id = 0,
attr_id = 0,
attr_name = model.DefaultSpecificationName
} },
price_member,
member_price_list
});
}
#endregion
#region 赠送积分
int Integral = 0;
if (model.IntegralPresent > 0)
{
Integral = model.IntegralPresent ?? 0;
if (model.IntegralPresentType == 2)
{
Integral = Convert.ToInt32(Math.Floor((model.SellingPrice ?? 0) * (model.IntegralPresent ?? 0) / 100));
}
}
#endregion
#region 会员价格
decimal price_member_max = 0, price_member_min = 0, price_min = 0, price_max = 0;
if (model.EnjoyMember == 1 && model.SeparateSetMember == 1 && model.MemberPriceList.Any())
{
price_member_min = model.MemberPriceList.Min(x => x.MemberPrice ?? 0);
price_member_max = model.MemberPriceList.Max(x => x.MemberPrice ?? 0);
if (userModel.MemberGrade > 0)
{
price_min = model.MemberPriceList.Where(x => x.MemberGrade == userModel.MemberGrade).Min(x => x.MemberPrice ?? 0);
price_max = model.MemberPriceList.Where(x => x.MemberGrade == userModel.MemberGrade).Max(x => x.MemberPrice ?? 0);
}
}
else
{
if (model.IsCustomSpecification == 1)
{
price_member_min = price_min = model.SpecificationPriceList.Min(x => x.SellingPrice ?? 0);
price_member_max = price_max = model.SpecificationPriceList.Max(x => x.SellingPrice ?? 0);
}
else
{
price_member_min = price_member_max = price_min = price_max = model.SellingPrice ?? 0;
}
if (memeberList.Any())
{
List<decimal> pricelist = new List<decimal>();
foreach (var item in memeberList)
{
pricelist.Add(price_member_min * (item.Discount ?? 10) / 10);
pricelist.Add(price_member_max * (item.Discount ?? 10) / 10);
}
price_member_min = pricelist.Min(x => x);
price_member_max = pricelist.Max(x => x);
if (userModel.MemberGrade > 0)
{
if (price_min > (model.SellingPrice ?? 0)) { price_min = model.SellingPrice ?? 0; }
if (price_max < (model.SellingPrice ?? 0)) { price_max = model.SellingPrice ?? 0; }
price_min = price_member_min * (memeberList.Where(x => x.Id == userModel.MemberGrade).FirstOrDefault()?.Discount ?? 10) / 10;
price_max = price_member_max * (memeberList.Where(x => x.Id == userModel.MemberGrade).FirstOrDefault()?.Discount ?? 10) / 10;
}
}
}
price_member_max = Math.Round(price_member_max, 2, MidpointRounding.AwayFromZero);
price_member_min = Math.Round(price_member_min, 2, MidpointRounding.AwayFromZero);
price_min = Math.Round(price_min, 2, MidpointRounding.AwayFromZero);
price_max = Math.Round(price_max, 2, MidpointRounding.AwayFromZero);
#endregion
#region 订单信息
int payment_people = 0, payment_num = 0, payment_order = 0;//订单用户 商品数量 订单数量
decimal payment_amount = 0;//订单总金额
GetGoodsOrderPeopleInfo(out payment_amount, out payment_num, out payment_order, out payment_people, goodsId);
#endregion
#region 返回参数
return new
{
goods = new
{
id = model.Id,
mall_id = model.MallBaseId,
mch_id = model.TenantId,//暂 商户id
//goods_warehouse_id = 0,//
status = model.GoodsStatus,
price = model.SellingPrice,
use_attr = model.IsCustomSpecification,
attr_groups = model.SpecificationList.Select(x => new
{
attr_group_id = x.Sort,
attr_group_name = x.Name,
attr_list = x.SpecificationValueList.Select(z => new
{
attr_id = z.Sort,
attr_name = z.Name,
pic_url = z.ImagePath
})
}),
goods_stock = model.InventoryNum,
virtual_sales = model.SalesNum,
confine_count = model.LimitBuyGoodsNum,
pieces = model.FullNumPinkage,//满件包邮
forehead = model.FullMoneyPinkage,//满额包邮
freight_id = model.FreightId,
give_integral = model.IntegralPresent,
give_integral_type = model.IntegralPresentType,
forehead_integral = model.PointsDeduction,//暂 积分抵扣
forehead_integral_type = model.PointsDeductionType,//暂 积分抵扣类型
accumulative = model.IsMultipleDeduction,//多件抵扣
individual_share = userModel?.IsDistributor ?? 2,// 是否分销商
attr_setting_type = model.SeparateDistributionType,//分销类型
is_level = model.EnjoyMember,//是否销售会员价格
is_level_alone = model.SeparateSetMember,//是否单独设置会员价
share_type = model.SeparateDistributionMoneyType,//分销佣金类型
//sign = "",
app_share_pic = model.CustomShareImagePath,
app_share_title = model.CustomShareTitles,
is_default_services = model.IsDefaultService,
sort = model.Sort,
created_at = model.CreateDate.HasValue ? model.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
updated_at = model.UpdateDate.HasValue ? model.UpdateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
//deleted_at = "",
is_delete = model.Status,
payment_people,//用户数量
payment_num,//商品数量
payment_amount,//销售总额
payment_order,//订单数量
confine_order_count = model.LimitBuyOrderNum,
is_area_limit = model.IsAreaBuy,
area_limit = new List<object>() { new { list = model.AreaList.Select(x => new {
area_id=x.AreaId,
area_name=x.AreaName,
area_type=x.AreaType
}) } },
form_id = model.FormsId,
sales = model.SalesNum + payment_num,//已售出数量 + 订单商品数量//
name = model.Name,
original_price = model.OriginalPrice,
cover_pic = model.CoverImage,
unit = model.Unit,
detail = model.GoodsDetails,
video_url = model.VideoAddress,
level_show = (userModel?.MemberGrade ?? 0) > 0 ? 1 : 2,//是否显示会员价
is_sales = model.GoodsStatus == 1 && model.InventoryNum > 0 ? 1 : 2,//是否可购买
attr = priceList,
//goods_num = model.InventoryNum,
goods_no = model.GoodsNumbers,
goods_weight = model.GoodsWeight,
services = model.ServiceList.Select(x => new
{
id = x.Id,
name = x.Name
}),
price_min,
price_max,
pic_url = model.CarouselImageList.Select(x => new
{
id = x.Id,
pic_url = x.Path
}),
share = model.MaxShare,//分销佣金
favorite = model.Favorite,//是否收藏
//goods_marketing = new
//{
// limit = "",
// pickup = "",
// shipping = ""
//},
goods_marketing_award = new
{
integral = new
{
title = "购买可得" + Integral + "积分"
}
},
//plugin_extra = new List<object>(),
express = model.Express,//快递费用 读取默认收货地址 如果没有为0 如果有 根据商品运费匹配 找出快递费用
price_member_max,
price_member_min,
extra_quick_share = new
{
share_pic = model.CarouselImageList.Select(x => new
{
id = x.Id,
pic_url = x.Path
}),
share_text = model.Name,
mall_name = model.MallName,
format_time = model.UpdateDate.HasValue ? model.UpdateDate.Value.ToString("yyyy-MM-dd") : ""
},
is_quick_shop = model.IsQuickBuy,
is_sell_well = model.IsSellWell,
is_negotiable = model.IsGoodsNegotiable,
cats = model.CategoryList.Select(x => new {
x.CategoryId,
x.CategoryName
})//分类
},
delivery = ""
};
#endregion
#endregion
}
/// <summary> /// <summary>
/// 获取小程序商品视频分页列表 /// 获取小程序商品视频分页列表
/// </summary> /// </summary>
......
...@@ -1137,6 +1137,13 @@ namespace Mall.Module.User ...@@ -1137,6 +1137,13 @@ namespace Mall.Module.User
{ {
GradeList = distributor_GradeRepository.GetList(new RB_Distributor_Grade_Extend() { GradeIds = gradeIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }); GradeList = distributor_GradeRepository.GetList(new RB_Distributor_Grade_Extend() { GradeIds = gradeIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
} }
//查询和平分销等级
string hpgradeIds = string.Join(",", list.Where(x => x.HPGradeId > 0).Select(x => x.HPGradeId ?? 0).Distinct());
List<RB_Distributor_HPGradeInfo_Extend> HPGradeList = new List<RB_Distributor_HPGradeInfo_Extend>();
if (!string.IsNullOrEmpty(gradeIds))
{
HPGradeList = distributor_HPGradeInfoRepository.GetList(new RB_Distributor_HPGradeInfo_Extend() { GradeIds = gradeIds, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
}
//查询推荐人列表 //查询推荐人列表
string tjrIds = string.Join(",", list.Where(x => x.SuperiorId > 0).Select(x => x.SuperiorId ?? 0).Distinct()); string tjrIds = string.Join(",", list.Where(x => x.SuperiorId > 0).Select(x => x.SuperiorId ?? 0).Distinct());
List<RB_Member_User_Extend> UserList = new List<RB_Member_User_Extend>(); List<RB_Member_User_Extend> UserList = new List<RB_Member_User_Extend>();
...@@ -1162,6 +1169,15 @@ namespace Mall.Module.User ...@@ -1162,6 +1169,15 @@ namespace Mall.Module.User
{ {
item.GradeName = GradeList.Where(x => x.Id == item.GradeId).FirstOrDefault()?.Name ?? ""; item.GradeName = GradeList.Where(x => x.Id == item.GradeId).FirstOrDefault()?.Name ?? "";
} }
if (item.HPGradeId == 0)
{
item.HPGradeName = "默认等级";
}
else if (item.HPGradeId > 0) {
item.HPGradeName = HPGradeList.Where(x => x.Id == item.HPGradeId).FirstOrDefault()?.GradeName ?? "";
}
if (item.SuperiorId == 0) if (item.SuperiorId == 0)
{ {
item.SuperiorName = "总店"; item.SuperiorName = "总店";
...@@ -3042,6 +3058,22 @@ namespace Mall.Module.User ...@@ -3042,6 +3058,22 @@ namespace Mall.Module.User
return list; return list;
} }
/// <summary>
/// 获取详情
/// </summary>
/// <param name="commissionId"></param>
/// <param name="tenantId"></param>
/// <param name="mallBaseId"></param>
/// <returns></returns>
public RB_Distributor_HPCommission_Extend GetHpdistributorInfo(int commissionId, int tenantId, int mallBaseId)
{
var model = distributor_HPCommissionRepository.GetEntity<RB_Distributor_HPCommission_Extend>(commissionId);
model.CategoryList = distributor_HPCategoryRepository.GetList(new RB_Distributor_HPCategory_Extend() { CommissionId = commissionId, TenantId = tenantId, MallBaseId = mallBaseId });
//查询所有比例
model.RatioList = distributor_HPGradeRatioRepository.GetList(new RB_Distributor_HPGradeRatio_Extend() { CommissionId = commissionId, TenantId = tenantId, MallBaseId = mallBaseId });
return model;
}
/// <summary> /// <summary>
/// 新增修改和平分销 /// 新增修改和平分销
/// </summary> /// </summary>
......
...@@ -64,6 +64,10 @@ namespace Mall.Repository.User ...@@ -64,6 +64,10 @@ namespace Mall.Repository.User
{ {
where += $@" and {nameof(RB_Distributor_HPGradeInfo.Id)}={dmodel.Id}"; where += $@" and {nameof(RB_Distributor_HPGradeInfo.Id)}={dmodel.Id}";
} }
if (!string.IsNullOrEmpty(dmodel.GradeIds))
{
where += $@" and {nameof(RB_Distributor_HPGradeInfo.Id)} in({dmodel.GradeIds})";
}
if (dmodel.Grade > 0) if (dmodel.Grade > 0)
{ {
where += $@" and {nameof(RB_Distributor_HPGradeInfo.Grade)}={dmodel.Grade}"; where += $@" and {nameof(RB_Distributor_HPGradeInfo.Grade)}={dmodel.Grade}";
......
...@@ -361,11 +361,37 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -361,11 +361,37 @@ namespace Mall.WebApi.Controllers.MallBase
return ApiResult.ParamIsNull(); return ApiResult.ParamIsNull();
} }
int UserId = prams.GetInt("UserId", 0); int UserId = prams.GetInt("UserId", 0);
var Robj = productModule.GetAppletGoodsInfo_V2(GoodsId, UserId, req.TenantId, req.MallBaseId);
return ApiResult.Success("", Robj);
}
/// <summary>
/// 获取小程序商品详情备份
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetAppletGoodsInfoBack(object requestMsg)
{
var req = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
if (req.MallBaseId <= 0)
{
return ApiResult.ParamIsNull();
}
JObject prams = JObject.Parse(req.msg.ToString());
int GoodsId = prams.GetInt("GoodsId", 0);
if (GoodsId <= 0)
{
return ApiResult.ParamIsNull();
}
int UserId = prams.GetInt("UserId", 0);
RB_Member_User_Extend userModel = new RB_Member_User_Extend(); RB_Member_User_Extend userModel = new RB_Member_User_Extend();
List<RB_Member_Grade_Extend> memeberList = new List<RB_Member_Grade_Extend>(); List<RB_Member_Grade_Extend> memeberList = new List<RB_Member_Grade_Extend>();
if (UserId > 0) { if (UserId > 0)
{
userModel = productModule.GetMemberUserInfo(UserId); userModel = productModule.GetMemberUserInfo(UserId);
if (userModel.MemberGrade > 0) { if (userModel.MemberGrade > 0)
{
memeberList = productModule.GetMemberGradeList(new RB_Member_Grade_Extend() { Enabled = 1, TenantId = req.TenantId, MallBaseId = req.MallBaseId }); memeberList = productModule.GetMemberGradeList(new RB_Member_Grade_Extend() { Enabled = 1, TenantId = req.TenantId, MallBaseId = req.MallBaseId });
} }
} }
...@@ -422,9 +448,11 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -422,9 +448,11 @@ namespace Mall.WebApi.Controllers.MallBase
} }
} }
} }
else { else
{
//根据会员等级查找会员价格 //根据会员等级查找会员价格
foreach (var qitem in memeberList) { foreach (var qitem in memeberList)
{
var mprice = Math.Round((item.SellingPrice ?? 0) * (qitem.Discount ?? 0) / 10, 2, MidpointRounding.AwayFromZero); var mprice = Math.Round((item.SellingPrice ?? 0) * (qitem.Discount ?? 0) / 10, 2, MidpointRounding.AwayFromZero);
member_price_list.Add(new member_price_list.Add(new
{ {
...@@ -460,7 +488,8 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -460,7 +488,8 @@ namespace Mall.WebApi.Controllers.MallBase
} }
} }
} }
else { else
{
decimal price_member = model.SellingPrice ?? 0;//未设会员价格的话 就为销售价格 decimal price_member = model.SellingPrice ?? 0;//未设会员价格的话 就为销售价格
List<object> member_price_list = new List<object>(); List<object> member_price_list = new List<object>();
if (model.EnjoyMember == 1 && model.SeparateSetMember == 1) if (model.EnjoyMember == 1 && model.SeparateSetMember == 1)
...@@ -481,7 +510,8 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -481,7 +510,8 @@ namespace Mall.WebApi.Controllers.MallBase
var gmodel = mlist.Where(x => x.MemberGrade == userModel.MemberGrade).FirstOrDefault(); var gmodel = mlist.Where(x => x.MemberGrade == userModel.MemberGrade).FirstOrDefault();
price_member = gmodel.MemberPrice ?? 0; price_member = gmodel.MemberPrice ?? 0;
} }
else { else
{
price_member = mlist.Max(x => x.MemberPrice ?? 0); price_member = mlist.Max(x => x.MemberPrice ?? 0);
} }
} }
...@@ -503,7 +533,7 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -503,7 +533,7 @@ namespace Mall.WebApi.Controllers.MallBase
var gmodel = memeberList.Where(x => x.Grade == userModel.MemberGrade).FirstOrDefault(); var gmodel = memeberList.Where(x => x.Grade == userModel.MemberGrade).FirstOrDefault();
price_member = Math.Round((model.SellingPrice ?? 0) * (gmodel?.Discount ?? 10) / 10, 2, MidpointRounding.AwayFromZero); price_member = Math.Round((model.SellingPrice ?? 0) * (gmodel?.Discount ?? 10) / 10, 2, MidpointRounding.AwayFromZero);
} }
else if(memeberList.Any()) else if (memeberList.Any())
{ {
price_member = Math.Round((model.SellingPrice ?? 0) * (memeberList.Max(x => x.Discount) ?? 10) / 10, 2, MidpointRounding.AwayFromZero); price_member = Math.Round((model.SellingPrice ?? 0) * (memeberList.Max(x => x.Discount) ?? 10) / 10, 2, MidpointRounding.AwayFromZero);
} }
...@@ -519,9 +549,9 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -519,9 +549,9 @@ namespace Mall.WebApi.Controllers.MallBase
price = model.SellingPrice ?? 0, price = model.SellingPrice ?? 0,
no = model.GoodsNumbers, no = model.GoodsNumbers,
weight = model.GoodsWeight, weight = model.GoodsWeight,
pic_url="", pic_url = "",
is_delete = 0, is_delete = 0,
attr_list=new List<object>(){ new attr_list = new List<object>(){ new
{ {
attr_group_name = "规格", attr_group_name = "规格",
attr_group_id = 0, attr_group_id = 0,
...@@ -535,9 +565,11 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -535,9 +565,11 @@ namespace Mall.WebApi.Controllers.MallBase
#endregion #endregion
#region 赠送积分 #region 赠送积分
int Integral = 0; int Integral = 0;
if (model.IntegralPresent > 0) { if (model.IntegralPresent > 0)
{
Integral = model.IntegralPresent ?? 0; Integral = model.IntegralPresent ?? 0;
if (model.IntegralPresentType == 2) { if (model.IntegralPresentType == 2)
{
Integral = Convert.ToInt32(Math.Floor((model.SellingPrice ?? 0) * (model.IntegralPresent ?? 0) / 100)); Integral = Convert.ToInt32(Math.Floor((model.SellingPrice ?? 0) * (model.IntegralPresent ?? 0) / 100));
} }
} }
...@@ -554,14 +586,16 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -554,14 +586,16 @@ namespace Mall.WebApi.Controllers.MallBase
price_max = model.MemberPriceList.Where(x => x.MemberGrade == userModel.MemberGrade).Max(x => x.MemberPrice ?? 0); price_max = model.MemberPriceList.Where(x => x.MemberGrade == userModel.MemberGrade).Max(x => x.MemberPrice ?? 0);
} }
} }
else { else
{
if (model.IsCustomSpecification == 1) if (model.IsCustomSpecification == 1)
{ {
price_member_min = price_min = model.SpecificationPriceList.Min(x => x.SellingPrice ?? 0); price_member_min = price_min = model.SpecificationPriceList.Min(x => x.SellingPrice ?? 0);
price_member_max = price_max = model.SpecificationPriceList.Max(x => x.SellingPrice ?? 0); price_member_max = price_max = model.SpecificationPriceList.Max(x => x.SellingPrice ?? 0);
} }
else { else
{
price_member_min = price_member_max = price_min = price_max = model.SellingPrice ?? 0; price_member_min = price_member_max = price_min = price_max = model.SellingPrice ?? 0;
} }
if (memeberList.Any()) if (memeberList.Any())
...@@ -628,7 +662,7 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -628,7 +662,7 @@ namespace Mall.WebApi.Controllers.MallBase
forehead_integral = model.PointsDeduction,//暂 积分抵扣 forehead_integral = model.PointsDeduction,//暂 积分抵扣
forehead_integral_type = model.PointsDeductionType,//暂 积分抵扣类型 forehead_integral_type = model.PointsDeductionType,//暂 积分抵扣类型
accumulative = model.IsMultipleDeduction,//多件抵扣 accumulative = model.IsMultipleDeduction,//多件抵扣
individual_share = userModel?.IsDistributor??2,// 是否分销商 individual_share = userModel?.IsDistributor ?? 2,// 是否分销商
attr_setting_type = model.SeparateDistributionType,//分销类型 attr_setting_type = model.SeparateDistributionType,//分销类型
is_level = model.EnjoyMember,//是否销售会员价格 is_level = model.EnjoyMember,//是否销售会员价格
is_level_alone = model.SeparateSetMember,//是否单独设置会员价 is_level_alone = model.SeparateSetMember,//是否单独设置会员价
...@@ -661,7 +695,7 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -661,7 +695,7 @@ namespace Mall.WebApi.Controllers.MallBase
unit = model.Unit, unit = model.Unit,
detail = model.GoodsDetails, detail = model.GoodsDetails,
video_url = model.VideoAddress, video_url = model.VideoAddress,
level_show = (userModel?.MemberGrade??0)>0?1:2,//是否显示会员价 level_show = (userModel?.MemberGrade ?? 0) > 0 ? 1 : 2,//是否显示会员价
is_sales = model.GoodsStatus == 1 && model.InventoryNum > 0 ? 1 : 2,//是否可购买 is_sales = model.GoodsStatus == 1 && model.InventoryNum > 0 ? 1 : 2,//是否可购买
attr = priceList, attr = priceList,
//goods_num = model.InventoryNum, //goods_num = model.InventoryNum,
...@@ -712,7 +746,7 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -712,7 +746,7 @@ namespace Mall.WebApi.Controllers.MallBase
is_quick_shop = model.IsQuickBuy, is_quick_shop = model.IsQuickBuy,
is_sell_well = model.IsSellWell, is_sell_well = model.IsSellWell,
is_negotiable = model.IsGoodsNegotiable, is_negotiable = model.IsGoodsNegotiable,
cats = model.CategoryList.Select(x=>new { cats = model.CategoryList.Select(x => new {
x.CategoryId, x.CategoryId,
x.CategoryName x.CategoryName
})//分类 })//分类
......
...@@ -1391,6 +1391,8 @@ namespace Mall.WebApi.Controllers.User ...@@ -1391,6 +1391,8 @@ namespace Mall.WebApi.Controllers.User
x.ThreeNum, x.ThreeNum,
x.GradeId, x.GradeId,
x.GradeName, x.GradeName,
x.HPGradeId,
x.HPGradeName,
x.AuditStatus, x.AuditStatus,
AuditStatusName = x.AuditStatus.GetEnumName(), AuditStatusName = x.AuditStatus.GetEnumName(),
x.Remark, x.Remark,
...@@ -2206,6 +2208,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -2206,6 +2208,7 @@ namespace Mall.WebApi.Controllers.User
x.Id, x.Id,
x.Grade, x.Grade,
x.GradeName, x.GradeName,
x.IsGuest,
UpdateDate = x.UpdateDate.HasValue ? x.UpdateDate.Value.ToString("yyyy-MM-dd") : "" UpdateDate = x.UpdateDate.HasValue ? x.UpdateDate.Value.ToString("yyyy-MM-dd") : ""
}); });
return ApiResult.Success("", pagelist); return ApiResult.Success("", pagelist);
...@@ -2227,6 +2230,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -2227,6 +2230,7 @@ namespace Mall.WebApi.Controllers.User
return ApiResult.Success("", list.Select(x => new return ApiResult.Success("", list.Select(x => new
{ {
x.Id, x.Id,
x.Grade,
x.GradeName x.GradeName
})); }));
} }
...@@ -2249,6 +2253,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -2249,6 +2253,7 @@ namespace Mall.WebApi.Controllers.User
demodel.TenantId = req.TenantId; demodel.TenantId = req.TenantId;
demodel.MallBaseId = req.MallBaseId; demodel.MallBaseId = req.MallBaseId;
demodel.Status = 0; demodel.Status = 0;
demodel.IsGuest ??= 2;
demodel.CreateDate = DateTime.Now; demodel.CreateDate = DateTime.Now;
demodel.UpdateDate = DateTime.Now; demodel.UpdateDate = DateTime.Now;
bool flag = userModule.SetHpDistributorGradeInfo(demodel); bool flag = userModule.SetHpDistributorGradeInfo(demodel);
...@@ -2304,6 +2309,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -2304,6 +2309,7 @@ namespace Mall.WebApi.Controllers.User
x.Name, x.Name,
x.DecimalType, x.DecimalType,
x.Enabled, x.Enabled,
x.IsCommon,
CategoryList = x.CategoryList.Select(y=>new { CategoryList = x.CategoryList.Select(y=>new {
y.Id, y.Id,
y.CategoryId, y.CategoryId,
...@@ -2320,6 +2326,46 @@ namespace Mall.WebApi.Controllers.User ...@@ -2320,6 +2326,46 @@ namespace Mall.WebApi.Controllers.User
return ApiResult.Success("", pagelist); return ApiResult.Success("", pagelist);
} }
/// <summary>
/// 获取详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetHpdistributorInfo() {
var req = RequestParm;
JObject parms = JObject.Parse(req.msg.ToString());
int CommissionId = parms.GetInt("CommissionId", 0);
if (CommissionId <= 0)
{
return ApiResult.ParamIsNull();
}
var model = userModule.GetHpdistributorInfo(CommissionId, req.TenantId, req.MallBaseId);
return ApiResult.Success("", new
{
model.Id,
model.Name,
model.DecimalType,
model.Enabled,
model.IsCommon,
CategoryList = model.CategoryList.Select(y => new
{
y.Id,
y.CategoryId,
y.CategoryName
}),
RatioList = model.RatioList.Select(z => new
{
z.Id,
z.GradeId,
z.GradeName,
z.CommissionRatio
}),
UpdateDate = model.UpdateDate.HasValue ? model.UpdateDate.Value.ToString("yyyy-MM-dd") : ""
});
}
/// <summary> /// <summary>
/// 新增修改和平分销返佣 /// 新增修改和平分销返佣
/// </summary> /// </summary>
...@@ -2348,6 +2394,10 @@ namespace Mall.WebApi.Controllers.User ...@@ -2348,6 +2394,10 @@ namespace Mall.WebApi.Controllers.User
return ApiResult.ParamIsNull("返佣比例有误,不能大于100"); return ApiResult.ParamIsNull("返佣比例有误,不能大于100");
} }
} }
demodel.IsCommon = 2;
if (demodel.CategoryList == null && !demodel.CategoryList.Any()) {
demodel.IsCommon = 1;//通用
}
demodel.TenantId = req.TenantId; demodel.TenantId = req.TenantId;
demodel.MallBaseId = req.MallBaseId; 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