接口端【优化】:优化接口端提供给小程序显示的销量数据。

This commit is contained in:
jianweie code
2024-11-18 22:48:59 +08:00
parent d5a1d09406
commit b1e8626e9a
3 changed files with 36 additions and 3 deletions

View File

@@ -241,5 +241,16 @@ namespace CoreCms.Net.IRepository
Expression<Func<GoodListDTO, object>> orderByPredicate, OrderByType orderByType, bool blUseNoLock = false,
bool isDataCache = false, int cacheTimes = int.MaxValue);
#region
/// <summary>
/// 获取单个商品的销售数量
/// </summary>
/// <param name="goodId"></param>
/// <returns></returns>
Task<int> QueryOneGoodSalesVolume(int goodId);
#endregion
}
}

View File

@@ -2221,7 +2221,7 @@ namespace CoreCms.Net.Repository
unit = good.unit,
commentsCount = good.commentsCount,
viewCount = good.viewCount,
buyCount = SqlFunc.Subqueryable<CoreCmsOrderItem>()
buyCount = good.initialSales + SqlFunc.Subqueryable<CoreCmsOrderItem>()
.LeftJoin<CoreCmsOrder>((sOrderItem, sOrder) => sOrder.orderId == sOrderItem.orderId)
.Where((sOrderItem, sOrder) => sOrderItem.goodsId == good.id && (sOrder.payStatus == (int)GlobalEnumVars.OrderPayStatus.Yes || sOrder.payStatus == (int)GlobalEnumVars.OrderPayStatus.PartialYes))
.Sum((sOrderItem, sOrder) => sOrderItem.nums),
@@ -2265,7 +2265,7 @@ namespace CoreCms.Net.Repository
unit = good.unit,
commentsCount = good.commentsCount,
viewCount = good.viewCount,
buyCount = SqlFunc.Subqueryable<CoreCmsOrderItem>()
buyCount = good.initialSales + SqlFunc.Subqueryable<CoreCmsOrderItem>()
.LeftJoin<CoreCmsOrder>((sOrderItem, sOrder) => sOrder.orderId == sOrderItem.orderId)
.Where((sOrderItem, sOrder) => sOrderItem.goodsId == good.id && (sOrder.payStatus == (int)GlobalEnumVars.OrderPayStatus.Yes || sOrder.payStatus == (int)GlobalEnumVars.OrderPayStatus.PartialYes))
.Sum((sOrderItem, sOrder) => sOrderItem.nums),
@@ -2404,5 +2404,26 @@ namespace CoreCms.Net.Repository
}
#endregion
#region
/// <summary>
/// 获取单个商品的销售数量
/// </summary>
/// <param name="goodId"></param>
/// <returns></returns>
public async Task<int> QueryOneGoodSalesVolume(int goodId)
{
var count = 0;
count = await DbClient.Queryable<CoreCmsOrderItem>()
.LeftJoin<CoreCmsOrder>((sOrderItem, sOrder) => sOrder.orderId == sOrderItem.orderId)
.Where((sOrderItem, sOrder) => sOrderItem.goodsId == goodId &&
(sOrder.payStatus == (int)GlobalEnumVars.OrderPayStatus.Yes ||
sOrder.payStatus == (int)GlobalEnumVars.OrderPayStatus.PartialYes))
.SumAsync((sOrderItem, sOrder) => sOrderItem.nums);
return count;
}
#endregion
}
}

View File

@@ -583,7 +583,8 @@ namespace CoreCms.Net.Services
good.brand = await _brandServices.QueryByIdAsync(good.brandId, true, true);
//取出销量
good.buyCount = good.initialSales + await _orderItemServices.GetSumAsync(p => p.goodsId == good.id, o => o.nums, true);
good.buyCount = good.initialSales + await _dal.QueryOneGoodSalesVolume(good.id);
return good;
}
#endregion