Browse Source

产品360头部统计

GOIAggregation
shanji 2 years ago
parent
commit
70eeb02cdc
  1. 13
      SiNan.API/Controllers/GOIController.cs
  2. 90
      SiNan.Business/GOIBusiness.cs
  3. 893
      SiNan.Model/Db/JDXX/Skus.cs
  4. 147
      SiNan.Model/Db/JDXX/Spuchange.cs
  5. 68
      SiNan.Model/Db/Order/OrderSku.cs
  6. 2
      SiNan.Model/Dto/Request/GOI/Product360PopularizeAnalysisRequest.cs
  7. 10
      SiNan.Model/Dto/Request/JDXX/JDXXHistogramRequest.cs
  8. 15
      SiNan.Model/Dto/Request/Statistics/Product360TopStatisticsRequest.cs
  9. 4
      SiNan.Model/Dto/Response/JDXX/JDXXHistogramResponse.cs
  10. 30
      SiNan.Model/Dto/Response/Statistics/Product360TopStatisticsResponse.cs

13
SiNan.API/Controllers/GOIController.cs

@ -41,9 +41,20 @@ namespace SiNan.API.Controllers
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public ListResponse<JDXXHistogramResponse> QueryProduct360HistogramStatistics([FromBody]JDXXHistogramRequest request)
public JDXXHistogramResponse QueryProduct360HistogramStatistics([FromBody]JDXXHistogramRequest request)
{
return goiBusiness.QueryProduct360HistogramStatistics(request);
}
/// <summary>
/// 产品360分析-头部统计
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public Product360TopStatisticsResponse QueryProduct360TopStatistics([FromBody]Product360TopStatisticsRequest request)
{
return goiBusiness.QueryProduct360TopStatistics(request);
}
}
}

90
SiNan.Business/GOIBusiness.cs

@ -437,23 +437,87 @@ namespace SiNan.Business
};
}
public ListResponse<JDXXHistogramResponse> QueryProduct360HistogramStatistics(JDXXHistogramRequest request)
public JDXXHistogramResponse QueryProduct360HistogramStatistics(JDXXHistogramRequest request)
{
List<string> skuIdList = null;
if (!string.IsNullOrEmpty(request.Sku))
{
request.Spu = string.Empty;
skuIdList = new List<string>() { request.Sku };
}
if (!string.IsNullOrEmpty(request.Spu))
{
skuIdList = fsql.Select<ProductSku>().Where(ps => ps.ProductId == request.Spu).ToList(ps => ps.Id);
}
var startDate = DateTime.Now.Date.AddDays(-14);
var endDate = DateTime.Now.Date.AddSeconds(-1);
var list = fsql.Select<Server.Model.Db.Skus>().Where(s => request.SkuList.Contains(s.Sku))
.Where(s => s.CreateTime >= startDate && s.CreateTime <= endDate)
.ToList(s => new JDXXHistogramResponse()
{
UV = s.Uv,
Sales = s.Sales,
Profit = s.Profits,
TotalCost = s.TotalCost
});
return new ListResponse<JDXXHistogramResponse>()
var data = fsql.Select<Skus>().Where(s => skuIdList.Contains(s.Sku))
.Where(s => s.CreateTime >= startDate && s.CreateTime <= endDate)
.ToAggregate(s => new JDXXHistogramResponse()
{
UV = s.Sum(s.Key.Uv),
Sales = s.Sum(s.Key.Sales),
Profit = s.Sum(s.Key.Profits),
TotalCost = s.Sum(s.Key.TotalCost)
});
return data;
}
public Product360TopStatisticsResponse QueryProduct360TopStatistics(Product360TopStatisticsRequest request)
{
if (string.IsNullOrEmpty(request.Sku) && string.IsNullOrEmpty(request.Spu))
throw new BusinessException("缺少必要参数");
if (!string.IsNullOrEmpty(request.Sku))
request.Spu = string.Empty;
Product p = null;
ProductSku productSku = null;
if (!string.IsNullOrEmpty(request.Spu))
p = fsql.Select<Product>(request.Spu).ToOne();
var psList = fsql.Select<ProductSku>().WhereIf(!string.IsNullOrEmpty(request.Spu), ps => ps.ProductId == request.Spu)
.WhereIf(!string.IsNullOrEmpty(request.Sku), ps => ps.Id == request.Sku)
.ToList();
if (!string.IsNullOrEmpty(request.Sku))
productSku = psList.FirstOrDefault(ps => ps.Id == request.Sku);
var skuIdList = psList.Select(ps => ps.Id).ToList();
var spu = psList.FirstOrDefault().ProductId;
var noOrderStateList = new List<Enums.OrderState?>()
{
Enums.OrderState.,
Enums.OrderState.
};
var saleQueryTime = DateTime.Now.Date.AddDays(-30);
var saleCount = fsql.Select<Order, OrderSku>()
.InnerJoin((o, osku) => o.Id == osku.OrderId)
.Where((o, osku) => !noOrderStateList.Contains(o.OrderState) &&
o.StartTime >= saleQueryTime)
.WhereIf(!string.IsNullOrEmpty(request.Spu), (o, osku) => osku.ProductId == request.Spu)
.WhereIf(!string.IsNullOrEmpty(request.Sku), (o, osku) => osku.SkuId == request.Sku)
.Sum((o, osku) => osku.ItemTotal);
var pingjia = fsql.Select<Spuchange>().Where(x => x.SpusId == spu).OrderByDescending(x => x.CreateTime).ToOne(x => x.TotalCount);
var historyPopularizeLevelGOIList = StatisticsPopularizeLevelGOI(skuIdList, null, null);
var totalDeficit = historyPopularizeLevelGOIList.Sum(x => x.Profit) - historyPopularizeLevelGOIList.Sum(x => x.Cost);
return new Product360TopStatisticsResponse()
{
Count = list.Count,
ItemList = list
CreateTime = p?.CreateTime ?? productSku?.CreateTime,
EvaluateCount = pingjia,
MaxDeficit = p?.MaxDeficitThreshold ?? productSku?.MaxDeficitThreshold,
MonthSaleCount = saleCount,
TotalDeficit = totalDeficit
};
}
}

893
SiNan.Model/Db/JDXX/Skus.cs

@ -1,452 +1,459 @@
using FreeSql.DataAnnotations;
namespace SiNan.Server.Model.Db
namespace SiNan.Model.Db
{
/// <summary>
/// sku表
/// </summary>
[ Table(Name = "skus", DisableSyncStructure = true)]
public partial class Skus {
/// <summary>
/// Id
/// </summary>
[Column(StringLength = 50, IsPrimary = true, IsNullable = false)]
public string Id { get; set; }
/// <summary>
/// 加购物车数量
/// </summary>
[Column(DbType = "int")]
public int? AddCardCount { get; set; }
/// <summary>
/// 加购人数
/// </summary>
[Column(DbType = "int")]
public int? AddCardMember { get; set; }
/// <summary>
/// 加购率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? AddCardRate { get; set; }
/// <summary>
/// 点击次数
/// </summary>
[Column(DbType = "int")]
public int? ClickCount { get; set; }
/// <summary>
/// 点击率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ClickRate { get; set; }
/// <summary>
/// 栏目订单
/// </summary>
[Column(DbType = "int")]
public int? ColumnOrder { get; set; }
/// <summary>
/// 转化率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ConversionRate { get; set; }
/// <summary>
/// 收费流量
/// </summary>
[Column(DbType = "int")]
public int? CostUv { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime CreateTime { get; set; }
/// <summary>
/// 创建人Id
/// </summary>
[Column(StringLength = 50)]
public string CreatorId { get; set; }
/// <summary>
/// 创建人
/// </summary>
[Column(StringLength = 50, IsNullable = false)]
public string CreatorRealName { get; set; }
/// <summary>
/// 盈亏小节
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? EarningsPrice { get; set; }
/// <summary>
/// 曝光量
/// </summary>
[Column(DbType = "int")]
public int? Exposure { get; set; }
/// <summary>
/// 快车点击率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ExposureClickRate { get; set; }
/// <summary>
/// 快车点击
/// </summary>
[Column(DbType = "int")]
public int? ExpressClick { get; set; }
/// <summary>
/// 快车花费
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? ExpressCost { get; set; }
/// <summary>
/// 快车展现
/// </summary>
public decimal? ExpressExposure { get; set; }
/// <summary>
/// 快车订单
/// </summary>
[Column(DbType = "int")]
public int? ExpressOrder { get; set; }
/// <summary>
/// 快车成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? ExpressPayPrice { get; set; }
/// <summary>
/// 快车人均点击
/// </summary>
[Column(DbType = "decimal(11,4)")]
public decimal? ExpressPeopleClick { get; set; }
/// <summary>
/// 快车访客
/// </summary>
[Column(DbType = "int")]
public int? ExpressUv { get; set; }
/// <summary>
/// 免费订单
/// </summary>
[Column(DbType = "int")]
public int? FreeOrder { get; set; }
/// <summary>
/// 免费成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? FreePayPrice { get; set; }
/// <summary>
/// 免费流量
/// </summary>
[Column(DbType = "int")]
public int? FreeUv { get; set; }
/// <summary>
/// 首页访客
/// </summary>
[Column(DbType = "int")]
public int? IndexUv { get; set; }
/// <summary>
/// 是否收藏
/// </summary>
[Column(DbType = "tinyint")]
public sbyte? IsStar { get; set; }
/// <summary>
/// 新品交易榜单
/// </summary>
[Column(DbType = "int")]
public int? NewSaleTopIndex { get; set; }
/// <summary>
/// 新品人气榜单
/// </summary>
[Column(DbType = "int")]
public int? NewUvTopIndex { get; set; }
/// <summary>
/// 一级类目
/// </summary>
[Column(StringLength = 50)]
public string OneCatId { get; set; }
/// <summary>
/// 其他订单
/// </summary>
[Column(DbType = "int")]
public int? OtherOrder { get; set; }
/// <summary>
/// 其他成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? OtherPrice { get; set; }
/// <summary>
/// 其他访客
/// </summary>
[Column(DbType = "int")]
public int? OtherUv { get; set; }
/// <summary>
/// 流量路径
/// </summary>
[Column(StringLength = -2)]
public string PathList { get; set; }
/// <summary>
/// 下单商品件数
/// </summary>
[Column(DbType = "int")]
public int? PayItemCount { get; set; }
/// <summary>
/// 下单客户数
/// </summary>
[Column(DbType = "int")]
public int? PayMember { get; set; }
/// <summary>
/// 下单数
/// </summary>
[Column(DbType = "int")]
public int? PayOrder { get; set; }
/// <summary>
/// 下单金额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? PayPrice { get; set; }
/// <summary>
/// 下单转化率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? PayRate { get; set; }
/// <summary>
/// 毛利
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? Profits { get; set; }
/// <summary>
/// 流量
/// </summary>
[Column(DbType = "int")]
public int? Pv { get; set; }
/// <summary>
/// 真实转化率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? RealConversionRate { get; set; }
/// <summary>
/// 真实成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? RealPrice { get; set; }
/// <summary>
/// 成交客户数
/// </summary>
[Column(DbType = "int")]
public int? SaleMember { get; set; }
/// <summary>
/// 成交金额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? SalePrice { get; set; }
/// <summary>
/// 成交转化率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? SaleRate { get; set; }
/// <summary>
/// 成交件数
/// </summary>
[Column(DbType = "int")]
public int? Sales { get; set; }
/// <summary>
/// 交易榜单排名
/// </summary>
[Column(DbType = "int")]
public int? SaleTopIndex { get; set; }
/// <summary>
/// 风向标
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ScoreRank { get; set; }
/// <summary>
/// 刷单花费
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? SdCost { get; set; }
/// <summary>
/// 刷单单量
/// </summary>
[Column(DbType = "int")]
public int? SdOrder { get; set; }
/// <summary>
/// 刷单成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? SdPrice { get; set; }
/// <summary>
/// 搜索访客
/// </summary>
[Column(DbType = "int")]
public int? SearchUv { get; set; }
/// <summary>
/// 二级类目
/// </summary>
[Column(StringLength = 50)]
public string SecondCatId { get; set; }
/// <summary>
/// 自主订单
/// </summary>
[Column(DbType = "int")]
public int? SelfOrder { get; set; }
/// <summary>
/// 店铺Id
/// </summary>
[Column(StringLength = 50)]
public string ShopsId { get; set; }
/// <summary>
/// 海投点击
/// </summary>
[Column(DbType = "int")]
public int? ShotgunClick { get; set; }
/// <summary>
/// 海投点击率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ShotgunClickRate { get; set; }
/// <summary>
/// 海投花费
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? ShotgunCost { get; set; }
/// <summary>
/// 海投展现
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ShotgunExposure { get; set; }
/// <summary>
/// 海投订单
/// </summary>
[Column(DbType = "int")]
public int? ShotgunOrder { get; set; }
/// <summary>
/// 海投成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? ShotgunPayPrice { get; set; }
/// <summary>
/// 海投人均点击
/// </summary>
[Column(DbType = "decimal(11,4)")]
public decimal? ShotgunPeopleClick { get; set; }
/// <summary>
/// 海投访客
/// </summary>
[Column(DbType = "int")]
public int? ShotgunUv { get; set; }
/// <summary>
/// sku
/// </summary>
[Column(StringLength = 50)]
public string Sku { get; set; }
/// <summary>
/// Spu
/// </summary>
[Column(StringLength = 50)]
public string Spu { get; set; }
/// <summary>
/// SpuId
/// </summary>
[Column(StringLength = 50)]
public string SpusId { get; set; }
/// <summary>
/// 推荐访客
/// </summary>
[Column(DbType = "int")]
public int? StarUv { get; set; }
/// <summary>
/// 三级类目
/// </summary>
[Column(StringLength = 50)]
public string ThirdCatId { get; set; }
/// <summary>
/// 标题
/// </summary>
[Column(StringLength = -1)]
public string Title { get; set; }
/// <summary>
/// 总花费
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? TotalCost { get; set; }
/// <summary>
/// 访客
/// </summary>
[Column(DbType = "int")]
public int? Uv { get; set; }
/// <summary>
/// 人气榜单排名
/// </summary>
[Column(DbType = "int")]
public int? UvTopIndex { get; set; }
}
[Table(Name = "skus", DisableSyncStructure = true)]
public partial class Skus
{
/// <summary>
/// Id
/// </summary>
[Column(StringLength = 50, IsPrimary = true, IsNullable = false)]
public string Id { get; set; }
/// <summary>
/// 加购物车数量
/// </summary>
[Column(DbType = "int")]
public int? AddCardCount { get; set; }
/// <summary>
/// 加购人数
/// </summary>
[Column(DbType = "int")]
public int? AddCardMember { get; set; }
/// <summary>
/// 加购率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? AddCardRate { get; set; }
/// <summary>
/// 点击次数
/// </summary>
[Column(DbType = "int")]
public int? ClickCount { get; set; }
/// <summary>
/// 点击率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ClickRate { get; set; }
/// <summary>
/// 栏目订单
/// </summary>
[Column(DbType = "int")]
public int? ColumnOrder { get; set; }
/// <summary>
/// 转化率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ConversionRate { get; set; }
/// <summary>
/// 收费流量
/// </summary>
[Column(DbType = "int")]
public int? CostUv { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime CreateTime { get; set; }
/// <summary>
/// 创建人Id
/// </summary>
[Column(StringLength = 50)]
public string CreatorId { get; set; }
/// <summary>
/// 创建人
/// </summary>
[Column(StringLength = 50, IsNullable = false)]
public string CreatorRealName { get; set; }
/// <summary>
/// 盈亏小节
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? EarningsPrice { get; set; }
/// <summary>
/// 曝光量
/// </summary>
[Column(DbType = "int")]
public int? Exposure { get; set; }
/// <summary>
/// 快车点击率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ExposureClickRate { get; set; }
/// <summary>
/// 快车点击
/// </summary>
[Column(DbType = "int")]
public int? ExpressClick { get; set; }
/// <summary>
/// 快车花费
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? ExpressCost { get; set; }
/// <summary>
/// 快车展现
/// </summary>
public decimal? ExpressExposure { get; set; }
/// <summary>
/// 快车订单
/// </summary>
[Column(DbType = "int")]
public int? ExpressOrder { get; set; }
/// <summary>
/// 快车成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? ExpressPayPrice { get; set; }
/// <summary>
/// 快车人均点击
/// </summary>
[Column(DbType = "decimal(11,4)")]
public decimal? ExpressPeopleClick { get; set; }
/// <summary>
/// 快车访客
/// </summary>
[Column(DbType = "int")]
public int? ExpressUv { get; set; }
/// <summary>
/// 免费订单
/// </summary>
[Column(DbType = "int")]
public int? FreeOrder { get; set; }
/// <summary>
/// 免费成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? FreePayPrice { get; set; }
/// <summary>
/// 免费流量
/// </summary>
[Column(DbType = "int")]
public int? FreeUv { get; set; }
/// <summary>
/// 首页访客
/// </summary>
[Column(DbType = "int")]
public int? IndexUv { get; set; }
/// <summary>
/// 是否收藏
/// </summary>
[Column(DbType = "tinyint")]
public sbyte? IsStar { get; set; }
/// <summary>
/// 新品交易榜单
/// </summary>
[Column(DbType = "int")]
public int? NewSaleTopIndex { get; set; }
/// <summary>
/// 新品人气榜单
/// </summary>
[Column(DbType = "int")]
public int? NewUvTopIndex { get; set; }
/// <summary>
/// 一级类目
/// </summary>
[Column(StringLength = 50)]
public string OneCatId { get; set; }
/// <summary>
/// 其他订单
/// </summary>
[Column(DbType = "int")]
public int? OtherOrder { get; set; }
/// <summary>
/// 其他成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? OtherPrice { get; set; }
/// <summary>
/// 其他访客
/// </summary>
[Column(DbType = "int")]
public int? OtherUv { get; set; }
/// <summary>
/// 流量路径
/// </summary>
[Column(StringLength = -2)]
public string PathList { get; set; }
/// <summary>
/// 下单商品件数
/// </summary>
[Column(DbType = "int")]
public int? PayItemCount { get; set; }
/// <summary>
/// 下单客户数
/// </summary>
[Column(DbType = "int")]
public int? PayMember { get; set; }
/// <summary>
/// 下单数
/// </summary>
[Column(DbType = "int")]
public int? PayOrder { get; set; }
/// <summary>
/// 下单金额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? PayPrice { get; set; }
/// <summary>
/// 下单转化率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? PayRate { get; set; }
/// <summary>
/// 毛利
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? Profits { get; set; }
/// <summary>
/// 流量
/// </summary>
[Column(DbType = "int")]
public int? Pv { get; set; }
/// <summary>
/// 真实转化率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? RealConversionRate { get; set; }
/// <summary>
/// 真实成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? RealPrice { get; set; }
/// <summary>
/// 成交客户数
/// </summary>
[Column(DbType = "int")]
public int? SaleMember { get; set; }
/// <summary>
/// 成交金额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? SalePrice { get; set; }
/// <summary>
/// 成交转化率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? SaleRate { get; set; }
/// <summary>
/// 成交件数
/// </summary>
[Column(DbType = "int")]
public int? Sales { get; set; }
/// <summary>
/// 交易榜单排名
/// </summary>
[Column(DbType = "int")]
public int? SaleTopIndex { get; set; }
/// <summary>
/// 风向标
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ScoreRank { get; set; }
/// <summary>
/// 刷单花费
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? SdCost { get; set; }
/// <summary>
/// 刷单单量
/// </summary>
[Column(DbType = "int")]
public int? SdOrder { get; set; }
/// <summary>
/// 刷单成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? SdPrice { get; set; }
/// <summary>
/// 搜索访客
/// </summary>
[Column(DbType = "int")]
public int? SearchUv { get; set; }
/// <summary>
/// 二级类目
/// </summary>
[Column(StringLength = 50)]
public string SecondCatId { get; set; }
/// <summary>
/// 自主订单
/// </summary>
[Column(DbType = "int")]
public int? SelfOrder { get; set; }
/// <summary>
/// 店铺ID
/// </summary>
[Column(StringLength = 50)]
public string ShopId { get; set; }
/// <summary>
/// 店铺Id
/// </summary>
[Column(StringLength = 50)]
public string ShopsId { get; set; }
/// <summary>
/// 海投点击
/// </summary>
[Column(DbType = "int")]
public int? ShotgunClick { get; set; }
/// <summary>
/// 海投点击率
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ShotgunClickRate { get; set; }
/// <summary>
/// 海投花费
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? ShotgunCost { get; set; }
/// <summary>
/// 海投展现
/// </summary>
[Column(DbType = "decimal(11,2)")]
public decimal? ShotgunExposure { get; set; }
/// <summary>
/// 海投订单
/// </summary>
[Column(DbType = "int")]
public int? ShotgunOrder { get; set; }
/// <summary>
/// 海投成交额
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? ShotgunPayPrice { get; set; }
/// <summary>
/// 海投人均点击
/// </summary>
[Column(DbType = "decimal(11,4)")]
public decimal? ShotgunPeopleClick { get; set; }
/// <summary>
/// 海投访客
/// </summary>
[Column(DbType = "int")]
public int? ShotgunUv { get; set; }
/// <summary>
/// sku
/// </summary>
[Column(StringLength = 50)]
public string Sku { get; set; }
/// <summary>
/// Spu
/// </summary>
[Column(StringLength = 50)]
public string Spu { get; set; }
/// <summary>
/// SpuId
/// </summary>
[Column(StringLength = 50)]
public string SpusId { get; set; }
/// <summary>
/// 推荐访客
/// </summary>
[Column(DbType = "int")]
public int? StarUv { get; set; }
/// <summary>
/// 三级类目
/// </summary>
[Column(StringLength = 50)]
public string ThirdCatId { get; set; }
/// <summary>
/// 标题
/// </summary>
[Column(StringLength = -1)]
public string Title { get; set; }
/// <summary>
/// 总花费
/// </summary>
[Column(DbType = "decimal(19,4)")]
public decimal? TotalCost { get; set; }
/// <summary>
/// 访客
/// </summary>
[Column(DbType = "int")]
public int? Uv { get; set; }
/// <summary>
/// 人气榜单排名
/// </summary>
[Column(DbType = "int")]
public int? UvTopIndex { get; set; }
}
}

147
SiNan.Model/Db/JDXX/Spuchange.cs

@ -0,0 +1,147 @@
using FreeSql.DataAnnotations;
namespace SiNan.Model.Db
{
/// <summary>
/// spu评论数据变更表
/// </summary>
[Table(Name = "spuchange", DisableSyncStructure = true)]
public partial class Spuchange
{
/// <summary>
/// Id
/// </summary>
[Column(StringLength = 50, IsPrimary = true, IsNullable = false)]
public string Id { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime CreateTime { get; set; }
/// <summary>
/// 创建人Id
/// </summary>
[Column(StringLength = 50)]
public string CreatorId { get; set; }
/// <summary>
/// 好评率
/// </summary>
[Column(StringLength = 11)]
public string GoodRate { get; set; }
/// <summary>
/// 差评
/// </summary>
[Column(StringLength = 11)]
public string HasBad { get; set; }
/// <summary>
/// 好评
/// </summary>
[Column(StringLength = 11)]
public string HasGood { get; set; }
/// <summary>
/// 有图评价
/// </summary>
[Column(StringLength = 11)]
public string HasImg { get; set; }
/// <summary>
/// 中评
/// </summary>
[Column(StringLength = 11)]
public string HasMedium { get; set; }
/// <summary>
/// 追评
/// </summary>
[Column(StringLength = 11)]
public string HasMore { get; set; }
/// <summary>
/// 带视频评价
/// </summary>
[Column(StringLength = 11)]
public string HasVideo { get; set; }
/// <summary>
/// 旧的好评率
/// </summary>
[Column(StringLength = 11)]
public string OldGoodRate { get; set; }
/// <summary>
/// 旧的差评
/// </summary>
[Column(StringLength = 11)]
public string OldHasBad { get; set; }
/// <summary>
/// 旧的好评
/// </summary>
[Column(StringLength = 11)]
public string OldHasGood { get; set; }
/// <summary>
/// 旧的有图评价
/// </summary>
[Column(StringLength = 11)]
public string OldHasImg { get; set; }
/// <summary>
/// 旧的中评
/// </summary>
[Column(StringLength = 11)]
public string OldHasMedium { get; set; }
/// <summary>
/// 旧的追评
/// </summary>
[Column(StringLength = 11)]
public string OldHasMore { get; set; }
/// <summary>
/// 旧的带视频评价
/// </summary>
[Column(StringLength = 11)]
public string OldHasVideo { get; set; }
/// <summary>
/// 旧的全部评价
/// </summary>
[Column(StringLength = 11)]
public string OldTotalCount { get; set; }
/// <summary>
/// Spu
/// </summary>
[Column(StringLength = 50)]
public string Spu { get; set; }
/// <summary>
/// Spu表Id
/// </summary>
[Column(StringLength = 50)]
public string SpusId { get; set; }
/// <summary>
/// 团队ID
/// </summary>
[Column(StringLength = 50)]
public string TeamId { get; set; }
/// <summary>
/// 全部评价
/// </summary>
[Column(StringLength = 11)]
public string TotalCount { get; set; }
}
}

68
SiNan.Model/Db/Order/OrderSku.cs

@ -0,0 +1,68 @@
using FreeSql.DataAnnotations;
namespace SiNan.Model.Db
{
[Table(Name = "ordersku", DisableSyncStructure = true)]
public partial class OrderSku
{
[Column(DbType = "bigint(1)", IsPrimary = true)]
public long Id { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 销售数量
/// </summary>
[Column(DbType = "int(1)")]
public int? ItemTotal { get; set; }
[Column(StringLength = 50)]
public string OrderId { get; set; }
/// <summary>
/// 销售单价
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? Price { get; set; }
[Column(StringLength = 50)]
public string ProductId { get; set; }
/// <summary>
/// 货号
/// </summary>
[Column(StringLength = 50)]
public string ProductNo { get; set; }
[Column(StringLength = 50, IsNullable = false)]
public string SkuId { get; set; }
/// <summary>
/// Sku标题
/// </summary>
[Column(StringLength = 255)]
public string Title { get; set; }
[Column(StringLength = 255)]
public string Logo { get; set; }
/// <summary>
/// 代发信息Id
/// </summary>
[Column(DbType = "bigint(1)", IsNullable = true)]
public long? OrderDropShippingId { get; set; }
/// <summary>
/// 是否售后
/// </summary>
[Column(DbType = "bit")]
public bool IsRefund { get; set; } = false;
[Column(IsIgnore = true)]
public long ShopId { get; set; }
}
}

2
SiNan.Model/Dto/Request/GOI/Product360PopularizeAnalysisRequest.cs

@ -10,7 +10,7 @@
public string Spu { get; set; }
/// <summary>
/// 按SKU条件查询时传值该字段,SPU和SKU同时有值会忽略SPU条件
/// 按SKU条件查询时传值该字段,同时有值会忽略SPU
/// </summary>
public string Sku { get; set; }

10
SiNan.Model/Dto/Request/JDXX/JDXXHistogramRequest.cs

@ -2,6 +2,14 @@
{
public class JDXXHistogramRequest
{
public IList<string> SkuList { get; set; }
/// <summary>
/// 按SPU条件查询时传值该字段
/// </summary>
public string Spu { get; set; }
/// <summary>
/// 按SKU条件查询时传值该字段,同时有值会忽略SPU
/// </summary>
public string Sku { get; set; }
}
}

15
SiNan.Model/Dto/Request/Statistics/Product360TopStatisticsRequest.cs

@ -0,0 +1,15 @@
namespace SiNan.Model.Dto
{
public class Product360TopStatisticsRequest
{
/// <summary>
/// 按SPU查询传该值
/// </summary>
public string Spu { get; set; }
/// <summary>
/// 按SKU查询传该值,同时有值会忽略SPU
/// </summary>
public string Sku { get; set; }
}
}

4
SiNan.Model/Dto/Response/JDXX/JDXXHistogramResponse.cs

@ -5,12 +5,12 @@
/// <summary>
/// 访客
/// </summary>
public long? UV { get; set; }
public decimal? UV { get; set; }
/// <summary>
/// 销量
/// </summary>
public long? Sales { get; set; }
public decimal? Sales { get; set; }
/// <summary>
/// 花费

30
SiNan.Model/Dto/Response/Statistics/Product360TopStatisticsResponse.cs

@ -0,0 +1,30 @@
namespace SiNan.Model.Dto
{
public class Product360TopStatisticsResponse
{
/// <summary>
/// 月销量(近30天销量)
/// </summary>
public decimal? MonthSaleCount { get; set; }
/// <summary>
/// 评价数,string类型
/// </summary>
public string EvaluateCount { get; set; }
/// <summary>
/// 累计亏损
/// </summary>
public decimal? TotalDeficit { get; set; }
/// <summary>
/// 最大亏损阈值
/// </summary>
public decimal? MaxDeficit { get; set; }
/// <summary>
/// 上架时间
/// </summary>
public DateTime? CreateTime { get; set; }
}
}
Loading…
Cancel
Save