Commit c67adeb7 authored by 吴春's avatar 吴春
parents 4b9546dd 50df1b85
using System;
using VT.FW.DB;
namespace Mall.Model.Entity.Product
{
/// <summary>
/// 商品关联区域表实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_GroupBuy_Area
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 商品id
/// </summary>
public int? GoodsId
{
get;
set;
}
/// <summary>
/// 区域id
/// </summary>
public int? AreaId
{
get;
set;
}
/// <summary>
/// 区域类型 1国家 2省 3市 4区
/// </summary>
public int? AreaType
{
get;
set;
}
/// <summary>
/// 删除状态
/// </summary>
public int? Status
{
get;
set;
}
/// <summary>
/// 商户号
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// CreateDate
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
}
}

using VT.FW.DB;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
namespace Mall.Model.Extend.Product
{
/// <summary>
/// 商品关联区域表扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_GroupBuy_Area_Extend : RB_GroupBuy_Area
{
/// <summary>
/// 区域名称
/// </summary>
public string AreaName { get; set; }
/// <summary>
/// 商品ids
/// </summary>
public string GoodsIds { get; set; }
}
}
\ No newline at end of file
...@@ -131,5 +131,10 @@ namespace Mall.Model.Extend.Product ...@@ -131,5 +131,10 @@ namespace Mall.Model.Extend.Product
/// 服务列表 /// 服务列表
/// </summary> /// </summary>
public List<RB_ImageCommonModel> ServiceList { get; set; } public List<RB_ImageCommonModel> ServiceList { get; set; }
/// <summary>
/// 区域列表
/// </summary>
public List<RB_GroupBuy_Area_Extend> AreaList { get; set; }
} }
} }
...@@ -12,360 +12,8 @@ namespace Mall.Module.Product ...@@ -12,360 +12,8 @@ namespace Mall.Module.Product
/// <summary> /// <summary>
/// 拼团活动处理类 /// 拼团活动处理类
/// </summary> /// </summary>
public class GroupBuyActivityModule public partial class GroupBuyActivityModule
{ {
/// <summary>
/// 拼团活动仓储层对象
/// </summary>
private readonly RB_Groupbuy_ActivityRepository groupbuy_ActivityRepository = new RB_Groupbuy_ActivityRepository();
/// <summary>
/// 拼团活动商品规格价格仓储层对象
/// </summary>
private RB_Groupbuy_Activity_SpecificationPriceRepository groupbuy_Activity_SpecificationPriceRepository = new RB_Groupbuy_Activity_SpecificationPriceRepository();
/// <summary>
/// 拼团活动商品关联规格值仓储层对象
/// </summary>
private RB_Groupbuy_Activity_SpecificationValueRepository groupbuy_Activity_SpecificationValueRepository = new RB_Groupbuy_Activity_SpecificationValueRepository();
/// <summary>
/// 拼团商品关联规格仓储层对象
/// </summary>
private RB_Groupbuy_Activity_SpecificationRepository groupbuy_Activity_SpecificationRepository = new RB_Groupbuy_Activity_SpecificationRepository();
/// <summary>
/// 阶梯团仓储层对象
/// </summary>
private RB_Groupbuy_Activity_StepRepository stepRepository = new RB_Groupbuy_Activity_StepRepository();
/// <summary>
/// 拼团活动商品阶梯价格仓储层对象
/// </summary>
private RB_Groupbuy_Activity_Step_PriceRepository groupbuy_Activity_Step_PriceRepository = new RB_Groupbuy_Activity_Step_PriceRepository();
/// <summary>
/// 拼团活动商品关联分销佣金表仓储对象
/// </summary>
private RB_GroupBuy_DistributioncommissionRepository groupBuy_DistributioncommissionRepository = new RB_GroupBuy_DistributioncommissionRepository();
/// <summary>
/// 拼团活动商品关联会员价格表仓储对象
/// </summary>
private RB_Groupbuy_MemberpriceRepository groupbuy_MemberpriceRepository = new RB_Groupbuy_MemberpriceRepository();
/// <summary>
/// 获取拼团活动商品分销佣金
/// </summary>
/// <returns></returns>
public List<RB_Groupbuy_Memberprice_Extend> GetGroupBuyMemberpriceModule(RB_Groupbuy_Memberprice_Extend query)
{
return groupbuy_MemberpriceRepository.GetGroupBuyMemberpriceRepository(query);
}
/// <summary>
/// 获取拼团活动商品分销佣金
/// </summary>
/// <returns></returns>
public List<RB_GroupBuy_Distributioncommission_Extend> GetGroupBuyCommissionRepository(RB_GroupBuy_Distributioncommission_Extend query)
{
return groupBuy_DistributioncommissionRepository.GetGroupBuyCommissionRepository(query);
}
/// <summary>
/// 获取拼团活动商品规格价格列表
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Step_Price_Extend> GetGroupbuyActivitySpecificationpriceListModule(RB_Groupbuy_Activity_Step_Price_Extend query)
{
return groupbuy_Activity_Step_PriceRepository.GetGroupbuyActivitySpecificationpriceListRepository(query);
}
/// <summary>
/// 获取拼团活动阶梯价列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Step_Extend> GetGroupBuyActivityListModule(RB_Groupbuy_Activity_Step_Extend query)
{
return stepRepository.GetGroupBuyActivityListRepository(query);
}
/// <summary>
/// 获取拼团活动商品规格价格列表
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Specificationprice_Extend> GetGroupbuyActivitySpecificationpriceListModule(RB_Groupbuy_Activity_Specificationprice_Extend dmodel)
{
return groupbuy_Activity_SpecificationPriceRepository.GetGroupbuyActivitySpecificationpriceListRepository(dmodel);
}
/// <summary>
/// 获取拼团活动商品关联规格值列表
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Specificationvalue_Extend> GetGroupbuyActivitySpecificationValueListModule(RB_Groupbuy_Activity_Specificationvalue_Extend dmodel)
{
return groupbuy_Activity_SpecificationValueRepository.GetGroupbuyActivitySpecificationValueListRepository(dmodel);
}
/// <summary>
/// 获取拼团商品关联规格列表
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Specification_Extend> GetGroupbuyActivitySpecificationListModule(RB_Groupbuy_Activity_Specification_Extend dmodel)
{
return groupbuy_Activity_SpecificationRepository.GetGroupbuyActivitySpecificationListRepository(dmodel);
}
/// <summary>
/// 获取拼团活动分页列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowsCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Extend> GetGroupbuyActivityPageListModule(int pageIndex, int pageSize, out long rowsCount, RB_Groupbuy_Activity_Extend query)
{
var list = groupbuy_ActivityRepository.GetGroupbuyActivityPageListRepository(pageIndex, pageSize, out rowsCount, query);
if (list != null && list.Count > 0)
{
string Ids = string.Join(",", list.Select(qitem => qitem.GoodId));
//拼团阶梯基础设置列表
List<RB_Groupbuy_Activity_Step_Extend> groupStepList = GetGroupBuyActivityListModule(new RB_Groupbuy_Activity_Step_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodIds = Ids,
});
//拼团阶梯价格设置列表
List<RB_Groupbuy_Activity_Step_Price_Extend> StepPriceList = GetGroupbuyActivitySpecificationpriceListModule(new RB_Groupbuy_Activity_Step_Price_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsIds = Ids,
});
if (groupStepList != null && groupStepList.Count > 0)
{
foreach (var item in groupStepList)
{
item.StepPriceList = StepPriceList?.Where(qitem => qitem.GoodId == item.GoodId && qitem.StepId == item.StepId)?.ToList() ?? new List<RB_Groupbuy_Activity_Step_Price_Extend>();
}
}
foreach (var item in list)
{
item.GroupList = groupStepList?.Where(qitem => qitem.GoodId == item.GoodId)?.ToList() ?? new List<RB_Groupbuy_Activity_Step_Extend>();
}
}
return list;
}
/// <summary>
/// 获取活动实体类
/// </summary>
/// <param name="query"></param>
/// <param name="isGetSpec">是否获取规格信息</param>
/// <returns></returns>
public RB_Groupbuy_Activity_Extend GetGroupbuyActivityEntityModule(RB_Groupbuy_Activity_Extend query, bool isGetSpec = false)
{
var extModel = groupbuy_ActivityRepository.GetGroupbuyActivityEntityRepository(query);
if (extModel == null)
{
extModel = new RB_Groupbuy_Activity_Extend();
}
if (!string.IsNullOrWhiteSpace(extModel.GoodsService))
{
extModel.ServiceList = Common.Plugin.JsonHelper.DeserializeObject<List<RB_ImageCommonModel>>(extModel.GoodsService);
}
if (isGetSpec)
{
//获取规格列表
List<RB_Groupbuy_Activity_Specification_Extend> specificationList = GetGroupbuyActivitySpecificationListModule(new RB_Groupbuy_Activity_Specification_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
//规格值列表
List<RB_Groupbuy_Activity_Specificationvalue_Extend> specificationvalueList = GetGroupbuyActivitySpecificationValueListModule(new RB_Groupbuy_Activity_Specificationvalue_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
if (specificationList != null && specificationList.Count > 0)
{
foreach (var item in specificationList)
{
item.SpecificationValueList = specificationvalueList?.Where(qitem => qitem.SpecificationId == item.Id)?.ToList() ?? new List<RB_Groupbuy_Activity_Specificationvalue_Extend>();
}
}
//规格价格列表
List<RB_Groupbuy_Activity_Specificationprice_Extend> specPriceList = GetGroupbuyActivitySpecificationpriceListModule(new RB_Groupbuy_Activity_Specificationprice_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
if (specPriceList != null && specPriceList.Count > 0)
{
foreach (var item in specPriceList)
{
int SortNum = 1;
if (!string.IsNullOrEmpty(item.SpecificationSort))
{
item.AttrList = GetGroupBuyGoodsAttr(item.SpecificationSort, specificationList); ;
}
item.SortNum = SortNum;
SortNum++;
}
}
//拼团阶梯基础设置列表
List<RB_Groupbuy_Activity_Step_Extend> groupStepList = GetGroupBuyActivityListModule(new RB_Groupbuy_Activity_Step_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodId = extModel.GoodId,
});
//拼团阶梯价格设置列表
List<RB_Groupbuy_Activity_Step_Price_Extend> StepPriceList = GetGroupbuyActivitySpecificationpriceListModule(new RB_Groupbuy_Activity_Step_Price_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodId = extModel.GoodId,
});
//分销佣金列表
List<RB_GroupBuy_Distributioncommission_Extend> commissionList = GetGroupBuyCommissionRepository(new RB_GroupBuy_Distributioncommission_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
//会员价设置列表
List<RB_Groupbuy_Memberprice_Extend> memberpriceList = GetGroupBuyMemberpriceModule(new RB_Groupbuy_Memberprice_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
if (groupStepList != null && groupStepList.Count > 0)
{
foreach (var item in groupStepList)
{
item.StepPriceList = StepPriceList?.Where(qitem => qitem.StepId == item.StepId)?.ToList() ?? new List<RB_Groupbuy_Activity_Step_Price_Extend>();
foreach (var subItem in item.StepPriceList)
{
int SortNum = 1;
if (!string.IsNullOrEmpty(subItem.SpecificationSort))
{
subItem.AttrList = GetGroupBuyGoodsAttr(subItem.SpecificationSort, specificationList);
}
subItem.SortNum = SortNum;
SortNum++;
}
//分销普通类型
if (extModel.SeparateDistributionType == 1)
{
item.DistributioncommissionList = commissionList?.Where(qitem => qitem.StepId == item.StepId)?.ToList() ?? new List<RB_GroupBuy_Distributioncommission_Extend>();
}
//分销详细设置
else if (extModel.SeparateDistributionType == 2)
{
item.DistributionCommissionTreeList = new List<RB_GroupBuy_Distributioncommission_Extend>();
var gradeList = commissionList.Where(qitem => qitem.StepId == item.StepId).GroupBy(qitem => new { qitem.SpecificationSort, qitem.StepId }).ToList();
foreach (var subItem in gradeList)
{
var tempModel = commissionList.Where(qitem => qitem.StepId == subItem.Key.StepId && qitem.SpecificationSort == subItem.Key.SpecificationSort).FirstOrDefault();
item.DistributionCommissionTreeList.Add(new RB_GroupBuy_Distributioncommission_Extend()
{
SpecificationSort = tempModel.SpecificationSort,
GradeCommissionList =
commissionList.Where(qitem => qitem.StepId == subItem.Key.StepId && qitem.SpecificationSort == subItem.Key.SpecificationSort)
.OrderBy(qitem => qitem.DistributorGrade).ToList()
});
}
foreach (var subItem in item.DistributionCommissionTreeList)
{
if (!string.IsNullOrWhiteSpace(subItem.SpecificationSort))
{
subItem.AttrList = GetGroupBuyGoodsAttr(subItem.SpecificationSort, specificationList);
}
}
}
//会员价设置
item.MemberpriceList = new List<RB_Groupbuy_Memberprice_Extend>();
var gradeMemberList = memberpriceList.Where(qitem => qitem.StepId == item.StepId).GroupBy(qitem => new { qitem.SpecificationSort, qitem.StepId }).ToList();
foreach (var subItem in gradeMemberList)
{
var tempModel = memberpriceList.Where(qitem => qitem.StepId == subItem.Key.StepId && qitem.SpecificationSort == subItem.Key.SpecificationSort).FirstOrDefault();
item.MemberpriceList.Add(new RB_Groupbuy_Memberprice_Extend()
{
SpecificationSort = tempModel.SpecificationSort,
GradeMemberPriceList =
memberpriceList.Where(qitem => qitem.StepId == subItem.Key.StepId && qitem.SpecificationSort == subItem.Key.SpecificationSort)
.OrderBy(qitem => qitem.MemberGrade).ToList()
});
}
foreach (var subItem in item.MemberpriceList)
{
if (!string.IsNullOrWhiteSpace(subItem.SpecificationSort))
{
subItem.AttrList = GetGroupBuyGoodsAttr(subItem.SpecificationSort, specificationList);
}
}
}
}
extModel.SpecificationList = specificationList;
extModel.SpecificationPriceList = specPriceList;
extModel.GroupList = groupStepList;
}
return extModel;
}
/// <summary>
/// 获取拼团商品的商品规格属性
/// </summary>
/// <param name="SpecificationSort">商品规格</param>
/// <param name="specificationList">规格值</param>
/// <returns></returns>
public List<object> GetGroupBuyGoodsAttr(string SpecificationSort, List<RB_Groupbuy_Activity_Specification_Extend> specificationList)
{
List<object> AttrList = new List<object>();
if (!string.IsNullOrEmpty(SpecificationSort))
{
var ssarr = SpecificationSort.Split(':');
int Sort = Convert.ToInt32(ssarr[0]);
string pic_url = specificationList[0].SpecificationValueList.Where(x => x.Sort == Sort).FirstOrDefault()?.ImagePath;
for (int i = 0; i < ssarr.Length; i++)
{
var smodel = specificationList[i];
var svmodel = smodel.SpecificationValueList.Where(x => x.Sort == Convert.ToInt32(ssarr[i])).FirstOrDefault();
AttrList.Add(new
{
SName = smodel.Name,
SId = smodel.Id,
SVId = svmodel?.Sort??0,
SVName = svmodel?.Name??"",
});
}
}
return AttrList;
}
/// <summary> /// <summary>
/// 新增修改拼团活动 /// 新增修改拼团活动
/// </summary> /// </summary>
...@@ -375,12 +23,12 @@ namespace Mall.Module.Product ...@@ -375,12 +23,12 @@ namespace Mall.Module.Product
public virtual bool SetGroupbuyActivityModule(RB_Groupbuy_Activity_Extend extModel) public virtual bool SetGroupbuyActivityModule(RB_Groupbuy_Activity_Extend extModel)
{ {
bool flag = false; bool flag = false;
var oldModel = GetGroupbuyActivityEntityModule(new RB_Groupbuy_Activity_Extend() { ActivityId=extModel.ActivityId}, isGetSpec: false); var oldModel = GetGroupbuyActivityEntityModule(new RB_Groupbuy_Activity_Extend() { ActivityId = extModel.ActivityId }, isGetSpec: false);
int oldSeparateDistributionType = 0; int oldSeparateDistributionType = 0;
if (oldModel != null ) if (oldModel != null)
{ {
oldSeparateDistributionType = oldModel?.SeparateDistributionType??0; oldSeparateDistributionType = oldModel?.SeparateDistributionType ?? 0;
} }
if (extModel.ActivityId > 0) if (extModel.ActivityId > 0)
{ {
...@@ -409,7 +57,7 @@ namespace Mall.Module.Product ...@@ -409,7 +57,7 @@ namespace Mall.Module.Product
{ nameof(RB_Groupbuy_Activity_Extend.Pieces),extModel.Pieces}, { nameof(RB_Groupbuy_Activity_Extend.Pieces),extModel.Pieces},
{ nameof(RB_Groupbuy_Activity_Extend.Forehead),extModel.Forehead}, { nameof(RB_Groupbuy_Activity_Extend.Forehead),extModel.Forehead},
{ nameof(RB_Groupbuy_Activity_Extend.Is_Area_Limit),extModel.Is_Area_Limit}, { nameof(RB_Groupbuy_Activity_Extend.Is_Area_Limit),extModel.Is_Area_Limit},
{ nameof(RB_Groupbuy_Activity_Extend.Area_limit),extModel.Area_limit}, //{ nameof(RB_Groupbuy_Activity_Extend.Area_limit),extModel.Area_limit},
{ nameof(RB_Groupbuy_Activity_Extend.Is_quick_shop),extModel.Is_quick_shop}, { nameof(RB_Groupbuy_Activity_Extend.Is_quick_shop),extModel.Is_quick_shop},
{ nameof(RB_Groupbuy_Activity_Extend.Give_integral),extModel.Give_integral}, { nameof(RB_Groupbuy_Activity_Extend.Give_integral),extModel.Give_integral},
{ nameof(RB_Groupbuy_Activity_Extend.Give_integral_type),extModel.Give_integral_type}, { nameof(RB_Groupbuy_Activity_Extend.Give_integral_type),extModel.Give_integral_type},
...@@ -436,12 +84,45 @@ namespace Mall.Module.Product ...@@ -436,12 +84,45 @@ namespace Mall.Module.Product
} }
if (flag) if (flag)
{ {
flag = SetGroupBuyAreaModule(extModel);
flag = SetGoodsSpecificationModule(extModel, out bool isChange); flag = SetGoodsSpecificationModule(extModel, out bool isChange);
flag = SetGoodGroupStepModule(extModel, isChange, oldSeparateDistributionType); flag = SetGoodGroupStepModule(extModel, isChange, oldSeparateDistributionType);
} }
return flag; return flag;
} }
/// <summary>
/// 新增修改区域
/// </summary>
/// <param name="extModel"></param>
/// <returns></returns>
private bool SetGroupBuyAreaModule(RB_Groupbuy_Activity_Extend extModel)
{
bool flag = false;
var alist = GetGroupBuyAreaModule(new RB_GroupBuy_Area_Extend() { GoodsId = extModel.GoodId, TenantId = extModel.TenantId, MallBaseId = extModel.MallBaseId });
var insertList1 = extModel.AreaList.Where(x => !alist.Select(y => y.AreaId).Contains(x.AreaId)).ToList();
var deleteList1 = alist.Where(x => !extModel.AreaList.Select(y => y.AreaId).Contains(x.AreaId)).ToList();
foreach (var item in insertList1)
{
flag = groupbuy_AreaRepository.Insert(new RB_GroupBuy_Area_Extend()
{
AreaId = item.AreaId,
AreaType = item.AreaType,
CreateDate = DateTime.Now,
GoodsId = extModel.GoodId,
Id = 0,
MallBaseId = extModel.MallBaseId,
Status = 0,
TenantId = extModel.TenantId
}) > 0;
}
foreach (var item in deleteList1)
{
flag= groupbuy_AreaRepository.Delete(item.Id)>0;
}
return false;
}
/// <summary> /// <summary>
/// 添加修改商品规格 /// 添加修改商品规格
/// </summary> /// </summary>
...@@ -452,7 +133,7 @@ namespace Mall.Module.Product ...@@ -452,7 +133,7 @@ namespace Mall.Module.Product
{ {
isChange = false; isChange = false;
bool flag = true; bool flag = true;
var old_SpecificationList = groupbuy_Activity_SpecificationRepository.GetGroupbuyActivitySpecificationListRepository( var old_SpecificationList = GetGroupbuyActivitySpecificationListModule(
new RB_Groupbuy_Activity_Specification_Extend() { GoodsId = extModel.GoodId, TenantId = extModel.TenantId, MallBaseId = extModel.MallBaseId }); new RB_Groupbuy_Activity_Specification_Extend() { GoodsId = extModel.GoodId, TenantId = extModel.TenantId, MallBaseId = extModel.MallBaseId });
if (extModel.IsCustomSpecification == 1) if (extModel.IsCustomSpecification == 1)
{ {
...@@ -538,27 +219,18 @@ namespace Mall.Module.Product ...@@ -538,27 +219,18 @@ namespace Mall.Module.Product
} }
else else
{ {
var specValuelist = groupbuy_Activity_SpecificationValueRepository.GetGroupbuyActivitySpecificationValueListRepository(new RB_Groupbuy_Activity_Specificationvalue_Extend() { GoodsId = extModel.GoodId, TenantId = extModel.TenantId, MallBaseId = extModel.MallBaseId }); var specValuelist = GetGroupbuyActivitySpecificationValueListModule(new RB_Groupbuy_Activity_Specificationvalue_Extend() { GoodsId = extModel.GoodId, TenantId = extModel.TenantId, MallBaseId = extModel.MallBaseId });
var specPricelist = groupbuy_Activity_SpecificationPriceRepository.GetGroupbuyActivitySpecificationpriceListRepository(new RB_Groupbuy_Activity_Specificationprice_Extend() { GoodsId = extModel.GoodId, TenantId = extModel.TenantId, MallBaseId = extModel.MallBaseId }); var specPricelist = GetGroupbuyActivitySpecificationpriceListModule(new RB_Groupbuy_Activity_Specificationprice_Extend() { GoodsId = extModel.GoodId, TenantId = extModel.TenantId, MallBaseId = extModel.MallBaseId });
foreach (var item in old_SpecificationList) foreach (var item in old_SpecificationList)
{ {
var supmodel = extModel.SpecificationList.Where(x => x.Id == item.Id).FirstOrDefault(); var supmodel = extModel.SpecificationList.Where(x => x.Id == item.Id).FirstOrDefault();
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() Dictionary<string, object> specFileds = new Dictionary<string, object>()
{ {
{ nameof(RB_Groupbuy_Activity_Specification_Extend.EnabledImage),supmodel.EnabledImage}, { nameof(RB_Groupbuy_Activity_Specification_Extend.EnabledImage),supmodel.EnabledImage},
{ nameof(RB_Groupbuy_Activity_Specification_Extend.Name),supmodel.Name}, { nameof(RB_Groupbuy_Activity_Specification_Extend.Name),supmodel.Name},
{ nameof(RB_Groupbuy_Activity_Specification_Extend.Sort),supmodel.Sort} { nameof(RB_Groupbuy_Activity_Specification_Extend.Sort),supmodel.Sort}
}; };
List<WhereHelper> wheres1 = new List<WhereHelper>() flag = groupbuy_Activity_SpecificationRepository.Update(specFileds, new WhereHelper(nameof(RB_Groupbuy_Activity_Specification_Extend.Id), item.Id));
{
new WhereHelper()
{
FiledName=nameof(RB_Groupbuy_Activity_Specification_Extend.Id),
FiledValue=item.Id,
OperatorEnum=OperatorEnum.Equal
}
};
flag = groupbuy_Activity_SpecificationRepository.Update(keyValues1, wheres1);
if (flag) if (flag)
{ {
var sv2list = specValuelist.Where(x => x.SpecificationId == item.Id).ToList(); var sv2list = specValuelist.Where(x => x.SpecificationId == item.Id).ToList();
...@@ -588,22 +260,13 @@ namespace Mall.Module.Product ...@@ -588,22 +260,13 @@ namespace Mall.Module.Product
foreach (var qitem in sv2list) foreach (var qitem in sv2list)
{ {
var supModel1 = supmodel.SpecificationValueList.Where(x => x.Id == qitem.Id).FirstOrDefault(); var supModel1 = supmodel.SpecificationValueList.Where(x => x.Id == qitem.Id).FirstOrDefault();
Dictionary<string, object> keyValues2 = new Dictionary<string, object>() Dictionary<string, object> specValueFileds = new Dictionary<string, object>()
{ {
{ nameof(RB_Groupbuy_Activity_Specificationvalue_Extend.Image),supModel1.Image}, { nameof(RB_Groupbuy_Activity_Specificationvalue_Extend.Image),supModel1.Image},
{ nameof(RB_Groupbuy_Activity_Specificationvalue_Extend.Name),supModel1.Name}, { nameof(RB_Groupbuy_Activity_Specificationvalue_Extend.Name),supModel1.Name},
{ nameof(RB_Groupbuy_Activity_Specificationvalue_Extend.Sort),supModel1.Sort} { nameof(RB_Groupbuy_Activity_Specificationvalue_Extend.Sort),supModel1.Sort}
}; };
List<WhereHelper> wheres2 = new List<WhereHelper>() flag = groupbuy_Activity_SpecificationValueRepository.Update(specValueFileds, new WhereHelper(nameof(RB_Groupbuy_Activity_Specificationvalue_Extend.Id), qitem.Id));
{
new WhereHelper()
{
FiledName=nameof(RB_Groupbuy_Activity_Specificationvalue_Extend.Id),
FiledValue=qitem.Id,
OperatorEnum=OperatorEnum.Equal
}
};
flag = groupbuy_Activity_SpecificationValueRepository.Update(keyValues2, wheres2);
} }
} }
} }
...@@ -644,7 +307,7 @@ namespace Mall.Module.Product ...@@ -644,7 +307,7 @@ namespace Mall.Module.Product
var pupmodel = extModel.SpecificationPriceList.Where(x => x.SpecificationSort == item.SpecificationSort).FirstOrDefault(); var pupmodel = extModel.SpecificationPriceList.Where(x => x.SpecificationSort == item.SpecificationSort).FirstOrDefault();
if (item.Commission != pupmodel.Commission || item.CostMoney != pupmodel.CostMoney || item.SellingPrice != pupmodel.SellingPrice || item.InventoryNum != pupmodel.InventoryNum || item.GoodsNumbers != pupmodel.GoodsNumbers || item.GoodsWeight != pupmodel.GoodsWeight) if (item.Commission != pupmodel.Commission || item.CostMoney != pupmodel.CostMoney || item.SellingPrice != pupmodel.SellingPrice || item.InventoryNum != pupmodel.InventoryNum || item.GoodsNumbers != pupmodel.GoodsNumbers || item.GoodsWeight != pupmodel.GoodsWeight)
{ {
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() Dictionary<string, object> specPriceFileds = new Dictionary<string, object>()
{ {
{ nameof(RB_Groupbuy_Activity_Specificationprice_Extend.SellingPrice),pupmodel.SellingPrice}, { nameof(RB_Groupbuy_Activity_Specificationprice_Extend.SellingPrice),pupmodel.SellingPrice},
{ nameof(RB_Groupbuy_Activity_Specificationprice_Extend.InventoryNum),pupmodel.InventoryNum}, { nameof(RB_Groupbuy_Activity_Specificationprice_Extend.InventoryNum),pupmodel.InventoryNum},
...@@ -653,16 +316,7 @@ namespace Mall.Module.Product ...@@ -653,16 +316,7 @@ namespace Mall.Module.Product
{ nameof(RB_Groupbuy_Activity_Specificationprice_Extend.Commission),pupmodel.Commission}, { nameof(RB_Groupbuy_Activity_Specificationprice_Extend.Commission),pupmodel.Commission},
{ nameof(RB_Groupbuy_Activity_Specificationprice_Extend.CostMoney),pupmodel.CostMoney}, { nameof(RB_Groupbuy_Activity_Specificationprice_Extend.CostMoney),pupmodel.CostMoney},
}; };
List<WhereHelper> wheres1 = new List<WhereHelper>() flag = groupbuy_Activity_SpecificationPriceRepository.Update(specPriceFileds, new WhereHelper(nameof(RB_Groupbuy_Activity_Specificationprice_Extend.Id),item.Id));
{
new WhereHelper()
{
FiledName=nameof(RB_Groupbuy_Activity_Specificationprice_Extend.Id),
FiledValue=item.Id,
OperatorEnum=OperatorEnum.Equal
}
};
flag = groupbuy_Activity_SpecificationPriceRepository.Update(keyValues1, wheres1);
} }
} }
} }
...@@ -678,10 +332,10 @@ namespace Mall.Module.Product ...@@ -678,10 +332,10 @@ namespace Mall.Module.Product
/// <param name="isChange"></param> /// <param name="isChange"></param>
/// <param name="oldSeparateDistributionType"></param> /// <param name="oldSeparateDistributionType"></param>
/// <returns></returns> /// <returns></returns>
private bool SetGoodGroupStepModule(RB_Groupbuy_Activity_Extend extModel, bool isChange,int oldSeparateDistributionType) private bool SetGoodGroupStepModule(RB_Groupbuy_Activity_Extend extModel, bool isChange, int oldSeparateDistributionType)
{ {
bool flag = true; bool flag = true;
var stepList = stepRepository.GetGroupBuyActivityListRepository(new RB_Groupbuy_Activity_Step_Extend() { GoodId = extModel.GoodId, MallBaseId = extModel.MallBaseId, TenantId = extModel.TenantId }); var stepList = GetGroupBuyActivityListModule(new RB_Groupbuy_Activity_Step_Extend() { GoodId = extModel.GoodId, MallBaseId = extModel.MallBaseId, TenantId = extModel.TenantId });
if (isChange || (stepList.Count() != extModel.GroupList.Count() || stepList.Count() != extModel.GroupList.Where(qitem => qitem.StepId > 0).Count())) if (isChange || (stepList.Count() != extModel.GroupList.Count() || stepList.Count() != extModel.GroupList.Where(qitem => qitem.StepId > 0).Count()))
{ {
stepRepository.DeleteOne(new WhereHelper(nameof(RB_Groupbuy_Activity_Step_Extend.GoodId), extModel.GoodId)); stepRepository.DeleteOne(new WhereHelper(nameof(RB_Groupbuy_Activity_Step_Extend.GoodId), extModel.GoodId));
...@@ -762,18 +416,22 @@ namespace Mall.Module.Product ...@@ -762,18 +416,22 @@ namespace Mall.Module.Product
} }
else else
{ {
var stepPriceList = groupbuy_Activity_Step_PriceRepository.GetGroupbuyActivitySpecificationpriceListRepository(new RB_Groupbuy_Activity_Step_Price_Extend() var stepPriceList = GetGroupbuyActivitySpecificationpriceListModule(new RB_Groupbuy_Activity_Step_Price_Extend()
{ {
GoodId = extModel.GoodId, GoodId = extModel.GoodId,
TenantId = extModel.TenantId, TenantId = extModel.TenantId,
MallBaseId = extModel.MallBaseId MallBaseId = extModel.MallBaseId
}); });
var memberPriceList = groupbuy_MemberpriceRepository.GetGroupBuyMemberpriceRepository(new RB_Groupbuy_Memberprice_Extend() var memberPriceList = GetGroupBuyMemberpriceModule(new RB_Groupbuy_Memberprice_Extend()
{ {
GoodsId = extModel.GoodId, GoodsId = extModel.GoodId,
TenantId = extModel.TenantId, TenantId = extModel.TenantId,
MallBaseId = extModel.MallBaseId MallBaseId = extModel.MallBaseId
}); });
if (oldSeparateDistributionType != extModel.SeparateDistributionType)
{
groupBuy_DistributioncommissionRepository.DeleteOne(new WhereHelper(nameof(RB_GroupBuy_Distributioncommission_Extend.GoodsId), extModel.GoodId));
}
foreach (var item in stepList) foreach (var item in stepList)
{ {
var stepModel = extModel.GroupList.Where(qitem => qitem.StepId == item.StepId).FirstOrDefault(); var stepModel = extModel.GroupList.Where(qitem => qitem.StepId == item.StepId).FirstOrDefault();
...@@ -784,12 +442,12 @@ namespace Mall.Module.Product ...@@ -784,12 +442,12 @@ namespace Mall.Module.Product
{ nameof(RB_Groupbuy_Activity_Step_Extend.Pintuan_Time),stepModel.Pintuan_Time}, { nameof(RB_Groupbuy_Activity_Step_Extend.Pintuan_Time),stepModel.Pintuan_Time},
{ nameof(RB_Groupbuy_Activity_Step_Extend.Group_Num),stepModel.Group_Num}, { nameof(RB_Groupbuy_Activity_Step_Extend.Group_Num),stepModel.Group_Num},
}; };
flag= stepRepository.Update(stepFileds, new WhereHelper(nameof(RB_Groupbuy_Activity_Step_Extend.StepId), item.StepId)); flag = stepRepository.Update(stepFileds, new WhereHelper(nameof(RB_Groupbuy_Activity_Step_Extend.StepId), item.StepId));
//更新价格和库存 //更新价格和库存
foreach (var subItem in stepModel.StepPriceList) foreach (var subItem in stepModel.StepPriceList)
{ {
var subPriceModel = stepPriceList.Where(qitem => qitem.StepId == item.StepId&&qitem.SpecificationSort==subItem.SpecificationSort).FirstOrDefault(); var subPriceModel = stepPriceList.Where(qitem => qitem.StepId == item.StepId && qitem.SpecificationSort == subItem.SpecificationSort).FirstOrDefault();
Dictionary<string, object> stepPriceFileds = new Dictionary<string, object>() Dictionary<string, object> stepPriceFileds = new Dictionary<string, object>()
{ {
{ nameof(RB_Groupbuy_Activity_Step_Price_Extend.PinTuanPrice),subItem.PinTuanPrice}, { nameof(RB_Groupbuy_Activity_Step_Price_Extend.PinTuanPrice),subItem.PinTuanPrice},
...@@ -804,7 +462,7 @@ namespace Mall.Module.Product ...@@ -804,7 +462,7 @@ namespace Mall.Module.Product
{ {
foreach (var childItem in subItem.GradeMemberPriceList) foreach (var childItem in subItem.GradeMemberPriceList)
{ {
var memberPriceModel = memberPriceList.Where(qitem => qitem.StepId == item.StepId && qitem.SpecificationSort == subItem.SpecificationSort).FirstOrDefault(); var memberPriceModel = memberPriceList.Where(qitem => qitem.StepId == item.StepId &&qitem.MemberGrade==childItem.MemberGrade && qitem.SpecificationSort == subItem.SpecificationSort).FirstOrDefault();
if (memberPriceModel != null) if (memberPriceModel != null)
{ {
Dictionary<string, object> memberPriceFileds = new Dictionary<string, object>() Dictionary<string, object> memberPriceFileds = new Dictionary<string, object>()
...@@ -828,9 +486,9 @@ namespace Mall.Module.Product ...@@ -828,9 +486,9 @@ namespace Mall.Module.Product
} }
} }
} }
if (oldSeparateDistributionType !=extModel.SeparateDistributionType)
if (oldSeparateDistributionType != extModel.SeparateDistributionType)
{ {
groupbuy_MemberpriceRepository.DeleteOne(new WhereHelper(nameof(RB_Groupbuy_Memberprice_Extend.GoodsId), extModel.GoodId));
//设置分销佣金 //设置分销佣金
SetDistributioncommissionModule(extModel, stepModel, item.StepId, isCreate: true); SetDistributioncommissionModule(extModel, stepModel, item.StepId, isCreate: true);
} }
...@@ -851,7 +509,7 @@ namespace Mall.Module.Product ...@@ -851,7 +509,7 @@ namespace Mall.Module.Product
/// <param name="groupItem"></param> /// <param name="groupItem"></param>
/// <param name="StepId"></param> /// <param name="StepId"></param>
/// <returns></returns> /// <returns></returns>
private bool SetDistributioncommissionModule(RB_Groupbuy_Activity_Extend extModel, RB_Groupbuy_Activity_Step_Extend groupItem,int StepId,bool isCreate=true) private bool SetDistributioncommissionModule(RB_Groupbuy_Activity_Extend extModel, RB_Groupbuy_Activity_Step_Extend groupItem, int StepId, bool isCreate = true)
{ {
bool flag = false; bool flag = false;
//新增分销佣金 //新增分销佣金
...@@ -923,7 +581,7 @@ namespace Mall.Module.Product ...@@ -923,7 +581,7 @@ namespace Mall.Module.Product
//修改分销佣金 //修改分销佣金
else else
{ {
var distributionList = groupBuy_DistributioncommissionRepository.GetGroupBuyCommissionRepository(new RB_GroupBuy_Distributioncommission_Extend() var distributionList = GetGroupBuyCommissionModule(new RB_GroupBuy_Distributioncommission_Extend()
{ {
GoodsId = extModel.GoodId, GoodsId = extModel.GoodId,
TenantId = extModel.TenantId, TenantId = extModel.TenantId,
...@@ -932,16 +590,40 @@ namespace Mall.Module.Product ...@@ -932,16 +590,40 @@ namespace Mall.Module.Product
//普通设置 //普通设置
if (extModel.SeparateDistributionType == 1) if (extModel.SeparateDistributionType == 1)
{ {
foreach (var item in distributionList) foreach (var item in groupItem.DistributioncommissionList)
{ {
var defaultModel = groupItem.DistributioncommissionList.Where(qitem => qitem.StepId == item.StepId && qitem.SpecificationSort == item.SpecificationSort && qitem.DistributorGrade == item.DistributorGrade).FirstOrDefault(); var defaultModel = distributionList?.Where(qitem => qitem.StepId == StepId && qitem.SpecificationSort == item.SpecificationSort && qitem.DistributorGrade == item.DistributorGrade).FirstOrDefault();
Dictionary<string, object> comFileds = new Dictionary<string, object>() if (defaultModel != null && defaultModel.Id > 0)
{ {
{ nameof(RB_GroupBuy_Distributioncommission_Extend.OneCommission),defaultModel.OneCommission}, Dictionary<string, object> comFileds = new Dictionary<string, object>()
{ nameof(RB_GroupBuy_Distributioncommission_Extend.TwoCommission),defaultModel.TwoCommission}, {
{ nameof(RB_GroupBuy_Distributioncommission_Extend.ThreeCommission),defaultModel.ThreeCommission}, { nameof(RB_GroupBuy_Distributioncommission_Extend.OneCommission),item.OneCommission},
}; { nameof(RB_GroupBuy_Distributioncommission_Extend.TwoCommission),item.TwoCommission},
flag = groupBuy_DistributioncommissionRepository.Update(comFileds,new WhereHelper(nameof(RB_GroupBuy_Distributioncommission_Extend.Id), defaultModel.Id)); { nameof(RB_GroupBuy_Distributioncommission_Extend.ThreeCommission),item.ThreeCommission},
};
flag = groupBuy_DistributioncommissionRepository.Update(comFileds, new WhereHelper(nameof(RB_GroupBuy_Distributioncommission_Extend.Id), defaultModel.Id));
}
else
{
var commissionModel = new RB_GroupBuy_Distributioncommission_Extend()
{
GoodsId = extModel.GoodId,
Status = 0,
TenantId = extModel.TenantId,
MallBaseId = extModel.MallBaseId,
StepId = StepId,
UpdateDate = DateTime.Now,
CreateDate = DateTime.Now,
SpecificationSort = item.SpecificationSort,
DistributorGrade = item.DistributorGrade,
OneCommission = item.OneCommission,
TwoCommission = item.TwoCommission,
ThreeCommission = item.ThreeCommission,
};
var newDistriId = groupBuy_DistributioncommissionRepository.Insert(commissionModel);
commissionModel.Id = newDistriId;
flag = newDistriId > 0;
}
} }
} //详细设置 } //详细设置
else if (extModel.SeparateDistributionType == 2) else if (extModel.SeparateDistributionType == 2)
...@@ -954,14 +636,38 @@ namespace Mall.Module.Product ...@@ -954,14 +636,38 @@ namespace Mall.Module.Product
{ {
foreach (var childItem in subItem.GradeCommissionList) foreach (var childItem in subItem.GradeCommissionList)
{ {
var oldModel= distributionList.Where(qitem => qitem.StepId == childItem.StepId && qitem.SpecificationSort == subItem.SpecificationSort && qitem.DistributorGrade == childItem.DistributorGrade).FirstOrDefault(); var oldModel = distributionList.Where(qitem => qitem.StepId == childItem.StepId && qitem.SpecificationSort == subItem.SpecificationSort && qitem.DistributorGrade == childItem.DistributorGrade).FirstOrDefault();
Dictionary<string, object> comFileds = new Dictionary<string, object>() if (oldModel != null && oldModel.Id > 0)
{ {
{ nameof(RB_GroupBuy_Distributioncommission_Extend.OneCommission),childItem.OneCommission}, Dictionary<string, object> comFileds = new Dictionary<string, object>()
{ nameof(RB_GroupBuy_Distributioncommission_Extend.TwoCommission),childItem.TwoCommission}, {
{ nameof(RB_GroupBuy_Distributioncommission_Extend.ThreeCommission),childItem.ThreeCommission}, { nameof(RB_GroupBuy_Distributioncommission_Extend.OneCommission),childItem.OneCommission},
}; { nameof(RB_GroupBuy_Distributioncommission_Extend.TwoCommission),childItem.TwoCommission},
flag = groupBuy_DistributioncommissionRepository.Update(comFileds, new WhereHelper(nameof(RB_GroupBuy_Distributioncommission_Extend.Id), oldModel.Id)); { nameof(RB_GroupBuy_Distributioncommission_Extend.ThreeCommission),childItem.ThreeCommission},
};
flag = groupBuy_DistributioncommissionRepository.Update(comFileds, new WhereHelper(nameof(RB_GroupBuy_Distributioncommission_Extend.Id), oldModel.Id));
}
else
{
var commissionModel = new RB_GroupBuy_Distributioncommission_Extend()
{
GoodsId = extModel.GoodId,
Status = 0,
TenantId = extModel.TenantId,
MallBaseId = extModel.MallBaseId,
StepId = StepId,
UpdateDate = DateTime.Now,
CreateDate = DateTime.Now,
SpecificationSort = subItem.SpecificationSort,
DistributorGrade = childItem.DistributorGrade,
OneCommission = childItem.OneCommission,
TwoCommission = childItem.TwoCommission,
ThreeCommission = childItem.ThreeCommission,
};
var newDistriId = groupBuy_DistributioncommissionRepository.Insert(commissionModel);
commissionModel.Id = newDistriId;
flag = newDistriId > 0;
}
} }
} }
} }
...@@ -971,7 +677,6 @@ namespace Mall.Module.Product ...@@ -971,7 +677,6 @@ namespace Mall.Module.Product
return flag; return flag;
} }
/// <summary> /// <summary>
/// 根据编号删除活动商品规格 /// 根据编号删除活动商品规格
/// </summary> /// </summary>
...@@ -1002,4 +707,4 @@ namespace Mall.Module.Product ...@@ -1002,4 +707,4 @@ namespace Mall.Module.Product
return groupbuy_Activity_SpecificationValueRepository.Delete(Id) > 0; return groupbuy_Activity_SpecificationValueRepository.Delete(Id) > 0;
} }
} }
} }
\ No newline at end of file
using Mall.Model.Entity.Product;
using Mall.Model.Extend.Product;
using Mall.Repository.Product;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Mall.Module.Product
{
/// <summary>
/// 拼团活动处理类
/// </summary>
public partial class GroupBuyActivityModule
{
/// <summary>
/// 拼团活动仓储层对象
/// </summary>
private readonly RB_Groupbuy_ActivityRepository groupbuy_ActivityRepository = new RB_Groupbuy_ActivityRepository();
/// <summary>
/// 拼团活动商品规格价格仓储层对象
/// </summary>
private readonly RB_Groupbuy_Activity_SpecificationPriceRepository groupbuy_Activity_SpecificationPriceRepository = new RB_Groupbuy_Activity_SpecificationPriceRepository();
/// <summary>
/// 拼团活动商品关联规格值仓储层对象
/// </summary>
private readonly RB_Groupbuy_Activity_SpecificationValueRepository groupbuy_Activity_SpecificationValueRepository = new RB_Groupbuy_Activity_SpecificationValueRepository();
/// <summary>
/// 拼团商品关联规格仓储层对象
/// </summary>
private readonly RB_Groupbuy_Activity_SpecificationRepository groupbuy_Activity_SpecificationRepository = new RB_Groupbuy_Activity_SpecificationRepository();
/// <summary>
/// 阶梯团仓储层对象
/// </summary>
private readonly RB_Groupbuy_Activity_StepRepository stepRepository = new RB_Groupbuy_Activity_StepRepository();
/// <summary>
/// 拼团活动商品阶梯价格仓储层对象
/// </summary>
private readonly RB_Groupbuy_Activity_Step_PriceRepository groupbuy_Activity_Step_PriceRepository = new RB_Groupbuy_Activity_Step_PriceRepository();
/// <summary>
/// 拼团活动商品关联分销佣金表仓储对象
/// </summary>
private readonly RB_GroupBuy_DistributioncommissionRepository groupBuy_DistributioncommissionRepository = new RB_GroupBuy_DistributioncommissionRepository();
/// <summary>
/// 拼团活动商品关联会员价格表仓储对象
/// </summary>
private readonly RB_Groupbuy_MemberpriceRepository groupbuy_MemberpriceRepository = new RB_Groupbuy_MemberpriceRepository();
/// <summary>
/// 拼团商品区域仓储层对象
/// </summary>
private readonly RB_GroupBuy_AreaRepository groupbuy_AreaRepository = new RB_GroupBuy_AreaRepository();
/// <summary>
/// 根据查询条件获取地区信息
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_GroupBuy_Area_Extend> GetGroupBuyAreaModule(RB_GroupBuy_Area_Extend query)
{
return groupbuy_AreaRepository.GetGroupBuyAreaRepository(query);
}
/// <summary>
/// 获取拼团活动商品分销佣金
/// </summary>
/// <returns></returns>
public List<RB_Groupbuy_Memberprice_Extend> GetGroupBuyMemberpriceModule(RB_Groupbuy_Memberprice_Extend query)
{
return groupbuy_MemberpriceRepository.GetGroupBuyMemberpriceRepository(query);
}
/// <summary>
/// 获取拼团活动商品分销佣金
/// </summary>
/// <returns></returns>
public List<RB_GroupBuy_Distributioncommission_Extend> GetGroupBuyCommissionModule(RB_GroupBuy_Distributioncommission_Extend query)
{
return groupBuy_DistributioncommissionRepository.GetGroupBuyCommissionRepository(query);
}
/// <summary>
/// 获取拼团活动商品规格价格列表
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Step_Price_Extend> GetGroupbuyActivitySpecificationpriceListModule(RB_Groupbuy_Activity_Step_Price_Extend query)
{
return groupbuy_Activity_Step_PriceRepository.GetGroupbuyActivitySpecificationpriceListRepository(query);
}
/// <summary>
/// 获取拼团活动阶梯价列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Step_Extend> GetGroupBuyActivityListModule(RB_Groupbuy_Activity_Step_Extend query)
{
return stepRepository.GetGroupBuyActivityListRepository(query);
}
/// <summary>
/// 获取拼团活动商品规格价格列表
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Specificationprice_Extend> GetGroupbuyActivitySpecificationpriceListModule(RB_Groupbuy_Activity_Specificationprice_Extend dmodel)
{
return groupbuy_Activity_SpecificationPriceRepository.GetGroupbuyActivitySpecificationpriceListRepository(dmodel);
}
/// <summary>
/// 获取拼团活动商品关联规格值列表
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Specificationvalue_Extend> GetGroupbuyActivitySpecificationValueListModule(RB_Groupbuy_Activity_Specificationvalue_Extend dmodel)
{
return groupbuy_Activity_SpecificationValueRepository.GetGroupbuyActivitySpecificationValueListRepository(dmodel);
}
/// <summary>
/// 获取拼团商品关联规格列表
/// </summary>
/// <param name="dmodel">查询条件</param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Specification_Extend> GetGroupbuyActivitySpecificationListModule(RB_Groupbuy_Activity_Specification_Extend dmodel)
{
return groupbuy_Activity_SpecificationRepository.GetGroupbuyActivitySpecificationListRepository(dmodel);
}
/// <summary>
/// 获取拼团活动分页列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowsCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Groupbuy_Activity_Extend> GetGroupbuyActivityPageListModule(int pageIndex, int pageSize, out long rowsCount, RB_Groupbuy_Activity_Extend query)
{
var list = groupbuy_ActivityRepository.GetGroupbuyActivityPageListRepository(pageIndex, pageSize, out rowsCount, query);
if (list != null && list.Count > 0)
{
string Ids = string.Join(",", list.Select(qitem => qitem.GoodId));
//拼团阶梯基础设置列表
List<RB_Groupbuy_Activity_Step_Extend> groupStepList = GetGroupBuyActivityListModule(new RB_Groupbuy_Activity_Step_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodIds = Ids,
});
//拼团阶梯价格设置列表
List<RB_Groupbuy_Activity_Step_Price_Extend> StepPriceList = GetGroupbuyActivitySpecificationpriceListModule(new RB_Groupbuy_Activity_Step_Price_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsIds = Ids,
});
if (groupStepList != null && groupStepList.Count > 0)
{
foreach (var item in groupStepList)
{
item.StepPriceList = StepPriceList?.Where(qitem => qitem.GoodId == item.GoodId && qitem.StepId == item.StepId)?.ToList() ?? new List<RB_Groupbuy_Activity_Step_Price_Extend>();
}
}
foreach (var item in list)
{
item.GroupList = groupStepList?.Where(qitem => qitem.GoodId == item.GoodId)?.ToList() ?? new List<RB_Groupbuy_Activity_Step_Extend>();
}
}
return list;
}
/// <summary>
/// 获取活动实体类
/// </summary>
/// <param name="query"></param>
/// <param name="isGetSpec">是否获取规格信息</param>
/// <returns></returns>
public RB_Groupbuy_Activity_Extend GetGroupbuyActivityEntityModule(RB_Groupbuy_Activity_Extend query, bool isGetSpec = false)
{
var extModel = groupbuy_ActivityRepository.GetGroupbuyActivityEntityRepository(query);
if (extModel == null)
{
extModel = new RB_Groupbuy_Activity_Extend();
}
if (!string.IsNullOrWhiteSpace(extModel.GoodsService))
{
extModel.ServiceList = Common.Plugin.JsonHelper.DeserializeObject<List<RB_ImageCommonModel>>(extModel.GoodsService);
}
if (isGetSpec)
{
//获取规格列表
List<RB_Groupbuy_Activity_Specification_Extend> specificationList = GetGroupbuyActivitySpecificationListModule(new RB_Groupbuy_Activity_Specification_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
//规格值列表
List<RB_Groupbuy_Activity_Specificationvalue_Extend> specificationvalueList = GetGroupbuyActivitySpecificationValueListModule(new RB_Groupbuy_Activity_Specificationvalue_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
if (specificationList != null && specificationList.Count > 0)
{
foreach (var item in specificationList)
{
item.SpecificationValueList = specificationvalueList?.Where(qitem => qitem.SpecificationId == item.Id)?.ToList() ?? new List<RB_Groupbuy_Activity_Specificationvalue_Extend>();
}
}
//规格价格列表
List<RB_Groupbuy_Activity_Specificationprice_Extend> specPriceList = GetGroupbuyActivitySpecificationpriceListModule(new RB_Groupbuy_Activity_Specificationprice_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
if (specPriceList != null && specPriceList.Count > 0)
{
foreach (var item in specPriceList)
{
int SortNum = 1;
if (!string.IsNullOrEmpty(item.SpecificationSort))
{
item.AttrList = GetGroupBuyGoodsAttr(item.SpecificationSort, specificationList); ;
}
item.SortNum = SortNum;
SortNum++;
}
}
//拼团阶梯基础设置列表
List<RB_Groupbuy_Activity_Step_Extend> groupStepList = GetGroupBuyActivityListModule(new RB_Groupbuy_Activity_Step_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodId = extModel.GoodId,
});
//拼团阶梯价格设置列表
List<RB_Groupbuy_Activity_Step_Price_Extend> StepPriceList = GetGroupbuyActivitySpecificationpriceListModule(new RB_Groupbuy_Activity_Step_Price_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodId = extModel.GoodId,
});
//分销佣金列表
List<RB_GroupBuy_Distributioncommission_Extend> commissionList = GetGroupBuyCommissionModule(new RB_GroupBuy_Distributioncommission_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
//会员价设置列表
List<RB_Groupbuy_Memberprice_Extend> memberpriceList = GetGroupBuyMemberpriceModule(new RB_Groupbuy_Memberprice_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
if (groupStepList != null && groupStepList.Count > 0)
{
foreach (var item in groupStepList)
{
item.StepPriceList = StepPriceList?.Where(qitem => qitem.StepId == item.StepId)?.ToList() ?? new List<RB_Groupbuy_Activity_Step_Price_Extend>();
foreach (var subItem in item.StepPriceList)
{
int SortNum = 1;
if (!string.IsNullOrEmpty(subItem.SpecificationSort))
{
subItem.AttrList = GetGroupBuyGoodsAttr(subItem.SpecificationSort, specificationList);
}
subItem.SortNum = SortNum;
SortNum++;
}
//分销普通类型
if (extModel.SeparateDistributionType == 1)
{
item.DistributioncommissionList = commissionList?.Where(qitem => qitem.StepId == item.StepId)?.ToList() ?? new List<RB_GroupBuy_Distributioncommission_Extend>();
}
//分销详细设置
else if (extModel.SeparateDistributionType == 2)
{
item.DistributionCommissionTreeList = new List<RB_GroupBuy_Distributioncommission_Extend>();
var gradeList = commissionList.Where(qitem => qitem.StepId == item.StepId).GroupBy(qitem => new { qitem.SpecificationSort, qitem.StepId }).ToList();
foreach (var subItem in gradeList)
{
var tempModel = commissionList.Where(qitem => qitem.StepId == subItem.Key.StepId && qitem.SpecificationSort == subItem.Key.SpecificationSort).FirstOrDefault();
item.DistributionCommissionTreeList.Add(new RB_GroupBuy_Distributioncommission_Extend()
{
SpecificationSort = tempModel.SpecificationSort,
GradeCommissionList =
commissionList.Where(qitem => qitem.StepId == subItem.Key.StepId && qitem.SpecificationSort == subItem.Key.SpecificationSort)
.OrderBy(qitem => qitem.DistributorGrade).ToList()
});
}
foreach (var subItem in item.DistributionCommissionTreeList)
{
if (!string.IsNullOrWhiteSpace(subItem.SpecificationSort))
{
subItem.AttrList = GetGroupBuyGoodsAttr(subItem.SpecificationSort, specificationList);
}
}
}
//会员价设置
item.MemberpriceList = new List<RB_Groupbuy_Memberprice_Extend>();
var gradeMemberList = memberpriceList.Where(qitem => qitem.StepId == item.StepId).GroupBy(qitem => new { qitem.SpecificationSort, qitem.StepId }).ToList();
foreach (var subItem in gradeMemberList)
{
var tempModel = memberpriceList.Where(qitem => qitem.StepId == subItem.Key.StepId && qitem.SpecificationSort == subItem.Key.SpecificationSort).FirstOrDefault();
item.MemberpriceList.Add(new RB_Groupbuy_Memberprice_Extend()
{
SpecificationSort = tempModel.SpecificationSort,
GradeMemberPriceList =
memberpriceList.Where(qitem => qitem.StepId == subItem.Key.StepId && qitem.SpecificationSort == subItem.Key.SpecificationSort)
.OrderBy(qitem => qitem.MemberGrade).ToList()
});
}
foreach (var subItem in item.MemberpriceList)
{
if (!string.IsNullOrWhiteSpace(subItem.SpecificationSort))
{
subItem.AttrList = GetGroupBuyGoodsAttr(subItem.SpecificationSort, specificationList);
}
}
}
}
extModel.AreaList = new List<RB_GroupBuy_Area_Extend>();
if (extModel.Is_Area_Limit == 1)
{
extModel.AreaList = GetGroupBuyAreaModule(new RB_GroupBuy_Area_Extend()
{
MallBaseId = query.MallBaseId,
TenantId = query.TenantId,
GoodsId = extModel.GoodId,
});
}
extModel.SpecificationList = specificationList;
extModel.SpecificationPriceList = specPriceList;
extModel.GroupList = groupStepList;
}
return extModel;
}
/// <summary>
/// 获取拼团商品的商品规格属性
/// </summary>
/// <param name="SpecificationSort">商品规格</param>
/// <param name="specificationList">规格值</param>
/// <returns></returns>
public List<object> GetGroupBuyGoodsAttr(string SpecificationSort, List<RB_Groupbuy_Activity_Specification_Extend> specificationList)
{
List<object> AttrList = new List<object>();
if (!string.IsNullOrEmpty(SpecificationSort))
{
var ssarr = SpecificationSort.Split(':');
int Sort = Convert.ToInt32(ssarr[0]);
string pic_url = specificationList[0].SpecificationValueList.Where(x => x.Sort == Sort).FirstOrDefault()?.ImagePath;
for (int i = 0; i < ssarr.Length; i++)
{
var smodel = specificationList[i];
var svmodel = smodel.SpecificationValueList.Where(x => x.Sort == Convert.ToInt32(ssarr[i])).FirstOrDefault();
AttrList.Add(new
{
SName = smodel.Name,
SId = smodel.Id,
SVId = svmodel?.Sort ?? 0,
SVName = svmodel?.Name ?? "",
});
}
}
return AttrList;
}
}
}
\ No newline at end of file
using Mall.Model.Entity.Product;
using Mall.Model.Extend.Product;
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace Mall.Repository.Product
{
/// <summary>
/// 拼团地区信息
/// </summary>
public class RB_GroupBuy_AreaRepository : BaseRepository<RB_GroupBuy_Area>
{
/// <summary>
/// 根据查询条件获取地区信息
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_GroupBuy_Area_Extend> GetGroupBuyAreaRepository(RB_GroupBuy_Area_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT ga.*,d.Name as AreaName
FROM rb_groupbuy_area ga INNER JOIN rb_destination d ON ga.AreaId=d.ID
WHERE 1=1
");
builder.Append($" and ga.{nameof(RB_GroupBuy_Area_Extend.Status)}=0 ");
if (query.TenantId > 0)
{
builder.Append($@" and ga.{nameof(RB_GroupBuy_Area_Extend.TenantId)}={query.TenantId}");
}
if (query.MallBaseId > 0)
{
builder.Append($@" and ga.{nameof(RB_GroupBuy_Area_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.Id > 0)
{
builder.Append($@" and ga.{nameof(RB_GroupBuy_Area_Extend.Id)}={query.Id}");
}
if (query.GoodsId > 0)
{
builder.Append($@" and ga.{nameof(RB_GroupBuy_Area_Extend.GoodsId)}={query.GoodsId}");
}
if (!string.IsNullOrEmpty(query.GoodsIds))
{
builder.Append($@" and ga.{nameof(RB_GroupBuy_Area_Extend.GoodsId)} in({query.GoodsIds})");
}
builder.AppendFormat(" order by ga.Id desc ");
return Get<RB_GroupBuy_Area_Extend>(builder.ToString()).ToList();
}
}
}
...@@ -45,8 +45,7 @@ namespace Mall.WebApi.Controllers.CAP ...@@ -45,8 +45,7 @@ namespace Mall.WebApi.Controllers.CAP
[DotNetCore.CAP.CapSubscribe("show.time")] [DotNetCore.CAP.CapSubscribe("show.time")]
public void CheckReceiveMessage(string result) public void CheckReceiveMessage(string result)
{ {
string str = ""; //string str = "";
Console.WriteLine(result); Console.WriteLine(result);
} }
} }
......
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_LastSelectedProfileId>F:\工作\微途\外网代码\mall.oytour.com_2\Mall.WindowsService\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId>
</PropertyGroup>
<ItemGroup>
<Compile Update="WindowsService.cs">
<SubType>Component</SubType>
</Compile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishProtocol>FileSystem</PublishProtocol>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<TargetFramework>netcoreapp3.0</TargetFramework>
<PublishDir>F:\mallservices</PublishDir>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
<PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun>False</PublishReadyToRun>
<PublishTrimmed>False</PublishTrimmed>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>
\ No newline at end of file
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