shanji 3 years ago
parent
commit
1e8fb1ed65
  1. 97
      BBWY.Server.API/Controllers/JDReportFormStatisticsController.cs
  2. 835
      BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs
  3. 22
      BBWY.Server.Model/Dto/Response/Statistics/JDReportForm/JDMultiLevelGOIResponse.cs

97
BBWY.Server.API/Controllers/JDReportFormStatisticsController.cs

@ -17,7 +17,7 @@ namespace BBWY.Server.API.Controllers
} }
/// <summary> /// <summary>
/// 计划维度GOI计算,支持快车和京速推 /// 计划维度GOI,支持快车和京速推
/// </summary> /// </summary>
/// <param name="gOIRequest"></param> /// <param name="gOIRequest"></param>
/// <returns></returns> /// <returns></returns>
@ -28,7 +28,29 @@ namespace BBWY.Server.API.Controllers
} }
/// <summary> /// <summary>
/// 单元维度GOI计算,仅支持快车 /// 计划维度商品GOI
/// </summary>
/// <param name="gOIRequest"></param>
/// <returns></returns>
[HttpPost]
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationCampaignLevelProductGOI([FromBody] GOIRequest gOIRequest)
{
return jDReportFormStatisticsBusiness.CalculationCampaignLevelProductGOI(gOIRequest);
}
/// <summary>
/// 计划维度推广GOI
/// </summary>
/// <param name="gOIRequest"></param>
/// <returns></returns>
[HttpPost]
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationCampaignLevelPopularizeGOI([FromBody] GOIRequest gOIRequest)
{
return jDReportFormStatisticsBusiness.CalculationCampaignLevelPopularizeGOI(gOIRequest);
}
/// <summary>
/// 单元维度GOI,仅支持快车
/// </summary> /// </summary>
/// <param name="gOIRequest"></param> /// <param name="gOIRequest"></param>
/// <returns></returns> /// <returns></returns>
@ -39,7 +61,29 @@ namespace BBWY.Server.API.Controllers
} }
/// <summary> /// <summary>
/// 创意维度GOI计算,仅支持快车 /// 单元维度商品GOI
/// </summary>
/// <param name="gOIRequest"></param>
/// <returns></returns>
[HttpPost]
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdGroupLevelProductGOI([FromBody] GOIRequest gOIRequest)
{
return jDReportFormStatisticsBusiness.CalculationAdGroupLevelProductGOI(gOIRequest);
}
/// <summary>
/// 单元维度推广GOI
/// </summary>
/// <param name="gOIRequest"></param>
/// <returns></returns>
[HttpPost]
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdGroupLevelPopularizeGOI([FromBody] GOIRequest gOIRequest)
{
return jDReportFormStatisticsBusiness.CalculationAdGroupLevelPopularizeGOI(gOIRequest);
}
/// <summary>
/// 创意维度GOI,仅支持快车
/// </summary> /// </summary>
/// <param name="gOIRequest"></param> /// <param name="gOIRequest"></param>
/// <returns></returns> /// <returns></returns>
@ -50,14 +94,57 @@ namespace BBWY.Server.API.Controllers
} }
/// <summary> /// <summary>
/// SKU维度GOI计算,仅支持京速推 /// 创意维度商品GOI
/// </summary> /// </summary>
/// <param name="gOIRequest"></param> /// <param name="gOIRequest"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public IList<JDSkuLevelGOIResponse> CalculationSkuLevelGOI(SkuGOIRequest gOIRequest) public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdLevelProductGOI([FromBody] GOIRequest gOIRequest)
{
return jDReportFormStatisticsBusiness.CalculationAdLevelProductGOI(gOIRequest);
}
/// <summary>
/// 创意维度推广GOI
/// </summary>
/// <param name="gOIRequest"></param>
/// <returns></returns>
[HttpPost]
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdLevelPopularizeGOI([FromBody] GOIRequest gOIRequest)
{
return jDReportFormStatisticsBusiness.CalculationAdLevelPopularizeGOI(gOIRequest);
}
/// <summary>
/// SKU维度GOI,仅支持京速推
/// </summary>
/// <param name="gOIRequest"></param>
/// <returns></returns>
[HttpPost]
public IList<JDSkuLevelGOIResponse> CalculationSkuLevelGOI([FromBody] SkuGOIRequest gOIRequest)
{ {
return jDReportFormStatisticsBusiness.CalculationSkuLevelGOI(gOIRequest); return jDReportFormStatisticsBusiness.CalculationSkuLevelGOI(gOIRequest);
} }
/// <summary>
/// SKU维度商品GOI
/// </summary>
/// <param name="gOIRequest"></param>
/// <returns></returns>
[HttpPost]
public IList<JDSkuLevelProductAndPopularizeGOIResponse> CalculationSkuLevelProductGOI([FromBody] SkuGOIRequest gOIRequest)
{
return jDReportFormStatisticsBusiness.CalculationSkuLevelProductGOI(gOIRequest);
}
/// <summary>
/// SKU维度推广GOI
/// </summary>
/// <param name="gOIRequest"></param>
/// <returns></returns>
public IList<JDSkuLevelProductAndPopularizeGOIResponse> CalculationSkuLevelPopularizeGOI([FromBody] SkuGOIRequest gOIRequest)
{
return jDReportFormStatisticsBusiness.CalculationSkuLevelPopularizeGOI(gOIRequest);
}
} }
} }

835
BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs

@ -405,5 +405,840 @@ namespace BBWY.Server.Business.Statistics
} }
return list; return list;
} }
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationCampaignLevelProductGOI(GOIRequest gOIRequest)
{
var _7dEndDate = DateTime.Now.Date.AddDays(-1);
var _7dStartDate = _7dEndDate.AddDays(-6);
var _7dEndTime = _7dEndDate.AddDays(1).AddSeconds(-1);
var _30dEndDate = DateTime.Now.Date.AddDays(-1);
var _30dStartDate = _30dEndDate.AddDays(-29);
var _30dEndTime = _30dEndDate.AddDays(1).AddSeconds(-1);
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1);
var _7dCampaignCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) &&
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate)
.GroupBy((jas1, jas2) => jas1.CampaignId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
CampaignId = g.Key
});
var _7dCampaignProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.CampaignId.Value) &&
ocd.IsEnabled &&
ocd.CreateTime >= _7dStartDate &&
ocd.CreateTime <= _7dEndTime)
.GroupBy((jas, ocd) => jas.CampaignId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
CampaignId = g.Key
});
var _30dCampaignCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) &&
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate)
.GroupBy((jas1, jas2) => jas1.CampaignId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
CampaignId = g.Key
});
var _30dCampaignProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.CampaignId.Value) &&
ocd.IsEnabled &&
ocd.CreateTime >= _30dStartDate &&
ocd.CreateTime <= _30dEndTime)
.GroupBy((jas, ocd) => jas.CampaignId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
CampaignId = g.Key
});
var _customCampaignCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) &&
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate)
.GroupBy((jas1, jas2) => jas1.CampaignId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
CampaignId = g.Key
});
var _customCampaignProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.CampaignId.Value) &&
ocd.IsEnabled &&
ocd.CreateTime >= gOIRequest.StartDate &&
ocd.CreateTime <= customEndTime)
.GroupBy((jas, ocd) => jas.CampaignId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
CampaignId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
var goiResponse = new JDProductAndPopularizeLevelGOIResponse()
{
LevelId = levelId
};
goiResponse._7GOI.Cost = _7dCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
goiResponse._7GOI.Profit = _7dCampaignProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M;
goiResponse._30GOI.Cost = _30dCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
goiResponse._30GOI.Profit = _30dCampaignProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M;
goiResponse.CustomDaysGOI.Cost = _customCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customCampaignProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M;
list.Add(goiResponse);
}
return list;
}
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdGroupLevelProductGOI(GOIRequest gOIRequest)
{
var _7dEndDate = DateTime.Now.Date.AddDays(-1);
var _7dStartDate = _7dEndDate.AddDays(-6);
var _7dEndTime = _7dEndDate.AddDays(1).AddSeconds(-1);
var _30dEndDate = DateTime.Now.Date.AddDays(-1);
var _30dStartDate = _30dEndDate.AddDays(-29);
var _30dEndTime = _30dEndDate.AddDays(1).AddSeconds(-1);
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1);
var _7dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) &&
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate)
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var _7dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdGroupId.Value) &&
ocd.IsEnabled &&
ocd.CreateTime >= _7dStartDate &&
ocd.CreateTime <= _7dEndTime)
.GroupBy((jas, ocd) => jas.AdGroupId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
AdGroupId = g.Key
});
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) &&
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate)
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var _30dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdGroupId.Value) &&
ocd.IsEnabled &&
ocd.CreateTime >= _30dStartDate &&
ocd.CreateTime <= _30dEndTime)
.GroupBy((jas, ocd) => jas.AdGroupId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
AdGroupId = g.Key
});
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) &&
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate)
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var _customProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdGroupId.Value) &&
ocd.IsEnabled &&
ocd.CreateTime >= gOIRequest.StartDate &&
ocd.CreateTime <= customEndTime)
.GroupBy((jas, ocd) => jas.AdGroupId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
AdGroupId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
var goiResponse = new JDProductAndPopularizeLevelGOIResponse()
{
LevelId = levelId
};
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
list.Add(goiResponse);
}
return list;
}
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdLevelProductGOI(GOIRequest gOIRequest)
{
var _7dEndDate = DateTime.Now.Date.AddDays(-1);
var _7dStartDate = _7dEndDate.AddDays(-6);
var _7dEndTime = _7dEndDate.AddDays(1).AddSeconds(-1);
var _30dEndDate = DateTime.Now.Date.AddDays(-1);
var _30dStartDate = _30dEndDate.AddDays(-29);
var _30dEndTime = _30dEndDate.AddDays(1).AddSeconds(-1);
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1);
var _7dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) &&
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate)
.GroupBy((jas1, jas2) => jas1.AdId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdId = g.Key
});
var _7dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdId.Value) &&
ocd.IsEnabled &&
ocd.CreateTime >= _7dStartDate &&
ocd.CreateTime <= _7dEndTime)
.GroupBy((jas, ocd) => jas.AdId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
AdId = g.Key
});
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) &&
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate)
.GroupBy((jas1, jas2) => jas1.AdId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdId = g.Key
});
var _30dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdId.Value) &&
ocd.IsEnabled &&
ocd.CreateTime >= _30dStartDate &&
ocd.CreateTime <= _30dEndTime)
.GroupBy((jas, ocd) => jas.AdId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
AdId = g.Key
});
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) &&
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate)
.GroupBy((jas1, jas2) => jas1.AdId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdId = g.Key
});
var _customProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdId.Value) &&
ocd.IsEnabled &&
ocd.CreateTime >= gOIRequest.StartDate &&
ocd.CreateTime <= customEndTime)
.GroupBy((jas, ocd) => jas.AdId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
AdId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
var goiResponse = new JDProductAndPopularizeLevelGOIResponse()
{
LevelId = levelId
};
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M;
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M;
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M;
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M;
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M;
list.Add(goiResponse);
}
return list;
}
public IList<JDSkuLevelProductAndPopularizeGOIResponse> CalculationSkuLevelProductGOI(SkuGOIRequest gOIRequest)
{
var _7dEndDate = DateTime.Now.Date.AddDays(-1);
var _7dStartDate = _7dEndDate.AddDays(-6);
var _7dEndTime = _7dEndDate.AddDays(1).AddSeconds(-1);
var _30dEndDate = DateTime.Now.Date.AddDays(-1);
var _30dStartDate = _30dEndDate.AddDays(-29);
var _30dEndTime = _30dEndDate.AddDays(1).AddSeconds(-1);
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1);
var _7dCosts = fsql.Select<JDPopularizeAdSku>()
.Where(jas => gOIRequest.LevelIdList.Contains(jas.Sku) &&
jas.Date >= _7dStartDate && jas.Date <= _7dEndDate)
.GroupBy(jas => jas.Sku)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
Sku = g.Key
});
var _7dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.Sku) &&
ocd.IsEnabled &&
ocd.CreateTime >= _7dStartDate &&
ocd.CreateTime <= _7dEndTime)
.GroupBy((jas, ocd) => jas.Sku)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
Sku = g.Key
});
var _30dCosts = fsql.Select<JDPopularizeAdSku>()
.Where(jas => gOIRequest.LevelIdList.Contains(jas.Sku) &&
jas.Date >= _30dStartDate && jas.Date <= _30dEndDate)
.GroupBy(jas => jas.Sku)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
Sku = g.Key
});
var _30dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.Sku) &&
ocd.IsEnabled &&
ocd.CreateTime >= _30dStartDate &&
ocd.CreateTime <= _30dEndTime)
.GroupBy((jas, ocd) => jas.Sku)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
Sku = g.Key
});
var _customCosts = fsql.Select<JDPopularizeAdSku>()
.Where(jas => gOIRequest.LevelIdList.Contains(jas.Sku) &&
jas.Date >= gOIRequest.StartDate && jas.Date <= gOIRequest.EndDate)
.GroupBy(jas => jas.Sku)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
Sku = g.Key
});
var _customProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>()
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId)
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.Sku) &&
ocd.IsEnabled &&
ocd.CreateTime >= gOIRequest.StartDate &&
ocd.CreateTime <= customEndTime)
.GroupBy((jas, ocd) => jas.Sku)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
Sku = g.Key
});
var list = new List<JDSkuLevelProductAndPopularizeGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
var goiResponse = new JDSkuLevelProductAndPopularizeGOIResponse()
{
LevelId = levelId
};
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.Sku == levelId)?.Profit ?? 0M;
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.Sku == levelId)?.Profit ?? 0M;
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.Sku == levelId)?.Profit ?? 0M;
list.Add(goiResponse);
}
return list;
}
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationCampaignLevelPopularizeGOI(GOIRequest gOIRequest)
{
var _7dEndDate = DateTime.Now.Date.AddDays(-1);
var _7dStartDate = _7dEndDate.AddDays(-6);
var _7dEndTime = _7dEndDate.AddDays(1).AddSeconds(-1);
var _30dEndDate = DateTime.Now.Date.AddDays(-1);
var _30dStartDate = _30dEndDate.AddDays(-29);
var _30dEndTime = _30dEndDate.AddDays(1).AddSeconds(-1);
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1);
var _7dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) &&
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate)
.GroupBy((jas1, jas2) => jas1.CampaignId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
CampaignId = g.Key
});
var _7dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.CampaignId.Value) &&
jr.CookieTime >= _7dStartDate && jr.CookieTime <= _7dEndDate &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.CampaignId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
CampaignId = g.Key
});
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) &&
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate)
.GroupBy((jas1, jas2) => jas1.CampaignId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
CampaignId = g.Key
});
var _30dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.CampaignId.Value) &&
jr.CookieTime >= _30dStartDate && jr.CookieTime <= _30dEndDate &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.CampaignId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
CampaignId = g.Key
});
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) &&
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate)
.GroupBy((jas1, jas2) => jas1.CampaignId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
CampaignId = g.Key
});
var _customProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.CampaignId.Value) &&
jr.CookieTime >= gOIRequest.StartDate && jr.CookieTime <= customEndTime &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.CampaignId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
CampaignId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
var goiResponse = new JDProductAndPopularizeLevelGOIResponse()
{
LevelId = levelId
};
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M;
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M;
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M;
list.Add(goiResponse);
}
return list;
}
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdGroupLevelPopularizeGOI(GOIRequest gOIRequest)
{
var _7dEndDate = DateTime.Now.Date.AddDays(-1);
var _7dStartDate = _7dEndDate.AddDays(-6);
var _7dEndTime = _7dEndDate.AddDays(1).AddSeconds(-1);
var _30dEndDate = DateTime.Now.Date.AddDays(-1);
var _30dStartDate = _30dEndDate.AddDays(-29);
var _30dEndTime = _30dEndDate.AddDays(1).AddSeconds(-1);
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1);
var _7dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) &&
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate)
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var _7dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdGroupId.Value) &&
jr.CookieTime >= _7dStartDate && jr.CookieTime <= _7dEndDate &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.AdGroupId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
AdGroupId = g.Key
});
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) &&
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate)
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var _30dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdGroupId.Value) &&
jr.CookieTime >= _30dStartDate && jr.CookieTime <= _30dEndDate &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.AdGroupId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
AdGroupId = g.Key
});
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) &&
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate)
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var _customProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdGroupId.Value) &&
jr.CookieTime >= gOIRequest.StartDate && jr.CookieTime <= customEndTime &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.AdGroupId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
AdGroupId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
var goiResponse = new JDProductAndPopularizeLevelGOIResponse()
{
LevelId = levelId
};
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
list.Add(goiResponse);
}
return list;
}
public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdLevelPopularizeGOI(GOIRequest gOIRequest)
{
var _7dEndDate = DateTime.Now.Date.AddDays(-1);
var _7dStartDate = _7dEndDate.AddDays(-6);
var _7dEndTime = _7dEndDate.AddDays(1).AddSeconds(-1);
var _30dEndDate = DateTime.Now.Date.AddDays(-1);
var _30dStartDate = _30dEndDate.AddDays(-29);
var _30dEndTime = _30dEndDate.AddDays(1).AddSeconds(-1);
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1);
var _7dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) &&
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate)
.GroupBy((jas1, jas2) => jas1.AdId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var _7dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdId.Value) &&
jr.CookieTime >= _7dStartDate && jr.CookieTime <= _7dEndDate &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.AdGroupId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
AdGroupId = g.Key
});
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) &&
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate)
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var _30dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdGroupId.Value) &&
jr.CookieTime >= _30dStartDate && jr.CookieTime <= _30dEndDate &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.AdGroupId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
AdGroupId = g.Key
});
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) &&
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate)
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var _customProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdGroupId.Value) &&
jr.CookieTime >= gOIRequest.StartDate && jr.CookieTime <= customEndTime &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.AdGroupId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
AdGroupId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
var goiResponse = new JDProductAndPopularizeLevelGOIResponse()
{
LevelId = levelId
};
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
list.Add(goiResponse);
}
return list;
}
public IList<JDSkuLevelProductAndPopularizeGOIResponse> CalculationSkuLevelPopularizeGOI(SkuGOIRequest gOIRequest)
{
var _7dEndDate = DateTime.Now.Date.AddDays(-1);
var _7dStartDate = _7dEndDate.AddDays(-6);
var _7dEndTime = _7dEndDate.AddDays(1).AddSeconds(-1);
var _30dEndDate = DateTime.Now.Date.AddDays(-1);
var _30dStartDate = _30dEndDate.AddDays(-29);
var _30dEndTime = _30dEndDate.AddDays(1).AddSeconds(-1);
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1);
var _7dCosts = fsql.Select<JDPopularizeAdSku>()
.Where(jas => gOIRequest.LevelIdList.Contains(jas.Sku) &&
jas.Date >= _7dStartDate && jas.Date <= _7dEndDate)
.GroupBy(jas => jas.Sku)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
Sku = g.Key
});
var _7dProfits = fsql.Select<JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jr, ocd) => gOIRequest.LevelIdList.Contains(jr.PopularizeSku) &&
ocd.IsEnabled &&
jr.CookieTime >= _7dStartDate &&
jr.CookieTime <= _7dEndTime)
.GroupBy((jr, ocd) => jr.PopularizeSku)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
Sku = g.Key
});
var _30dCosts = fsql.Select<JDPopularizeAdSku>()
.Where(jas => gOIRequest.LevelIdList.Contains(jas.Sku) &&
jas.Date >= _30dStartDate && jas.Date <= _30dEndDate)
.GroupBy(jas => jas.Sku)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
Sku = g.Key
});
var _30dProfits = fsql.Select<JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jr, ocd) => gOIRequest.LevelIdList.Contains(jr.PopularizeSku) &&
ocd.IsEnabled &&
jr.CookieTime >= _30dStartDate &&
jr.CookieTime <= _30dEndTime)
.GroupBy((jr, ocd) => jr.PopularizeSku)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
Sku = g.Key
});
var _customCosts = fsql.Select<JDPopularizeAdSku>()
.Where(jas => gOIRequest.LevelIdList.Contains(jas.Sku) &&
jas.Date >= gOIRequest.StartDate && jas.Date <= gOIRequest.EndDate)
.GroupBy(jas => jas.Sku)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
Sku = g.Key
});
var _customProfits = fsql.Select<JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jr, ocd) => jr.OrderId == ocd.OrderId)
.Where((jr, ocd) => gOIRequest.LevelIdList.Contains(jr.PopularizeSku) &&
ocd.IsEnabled &&
jr.CookieTime >= gOIRequest.StartDate &&
jr.CookieTime <= customEndTime)
.GroupBy((jr, ocd) => jr.PopularizeSku)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item2.SkuGrossProfit),
Sku = g.Key
});
var list = new List<JDSkuLevelProductAndPopularizeGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
var goiResponse = new JDSkuLevelProductAndPopularizeGOIResponse()
{
LevelId = levelId
};
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.Sku == levelId)?.Profit ?? 0M;
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.Sku == levelId)?.Profit ?? 0M;
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.Sku == levelId)?.Profit ?? 0M;
list.Add(goiResponse);
}
return list;
}
} }
} }

22
BBWY.Server.Model/Dto/Response/Statistics/JDReportForm/JDMultiLevelGOIResponse.cs

@ -25,7 +25,29 @@
public class JDSkuLevelGOIResponse : JDMultiLevelGOIResponse public class JDSkuLevelGOIResponse : JDMultiLevelGOIResponse
{ {
public new string LevelId { get; set; }
}
public class JDProductAndPopularizeLevelGOIResponse
{
public JDProductAndPopularizeLevelGOIResponse()
{
_7GOI = new GOIResponse();
_30GOI = new GOIResponse();
CustomDaysGOI = new GOIResponse();
}
public long LevelId { get; set; }
public GOIResponse _7GOI { get; set; }
public GOIResponse _30GOI { get; set; }
public GOIResponse CustomDaysGOI { get; set; }
}
public class JDSkuLevelProductAndPopularizeGOIResponse : JDProductAndPopularizeLevelGOIResponse
{
public new string LevelId { get; set; } public new string LevelId { get; set; }
} }
} }

Loading…
Cancel
Save