后台【修复】:修复库存显示数据错误,链接错误,商品库存异常列表数据错误的问题。

This commit is contained in:
大灰灰
2025-05-04 21:45:09 +08:00
parent 10429bc9a3
commit 3308a49977
7 changed files with 102 additions and 26 deletions

View File

@@ -29,6 +29,12 @@ namespace CoreCms.Net.IRepository
/// <returns></returns> /// <returns></returns>
Task<int> GoodsStaticsTotalWarn(int goodsStocksWarn); Task<int> GoodsStaticsTotalWarn(int goodsStocksWarn);
/// <summary>
/// 获取库存报警数量(返回商品序列)
/// </summary>
/// <param name="goodsStocksWarn"></param>
/// <returns></returns>
Task<List<int>> GoodsStaticsTotalWarnByGoodIds(int goodsStocksWarn);
/// <summary> /// <summary>
/// 获取关联商品的货品列表数据 /// 获取关联商品的货品列表数据

View File

@@ -52,6 +52,12 @@ namespace CoreCms.Net.IServices
/// <returns></returns> /// <returns></returns>
Task<int> GoodsStaticsTotalWarn(int goodsStocksWarn); Task<int> GoodsStaticsTotalWarn(int goodsStocksWarn);
/// <summary>
/// 获取库存报警数量(返回商品序列)
/// </summary>
/// <param name="goodsStocksWarn"></param>
/// <returns></returns>
Task<List<int>> GoodsStaticsTotalWarnByGoodIds(int goodsStocksWarn);
/// <summary> /// <summary>
/// 获取关联商品的货品列表数据 /// 获取关联商品的货品列表数据

View File

@@ -74,25 +74,72 @@ namespace CoreCms.Net.Repository
/// <returns></returns> /// <returns></returns>
public async Task<int> GoodsStaticsTotalWarn(int goodsStocksWarn) public async Task<int> GoodsStaticsTotalWarn(int goodsStocksWarn)
{ {
var sql = @"SELECT COUNT(*) AS number var sql = @"SELECT COUNT(id) FROM dbo.CoreCmsGoods WHERE id IN
FROM ( SELECT t.goodsId (SELECT goodsId
FROM ( SELECT goodsId , FROM
( CASE WHEN stock < freezeStock THEN 0 (
ELSE stock - freezeStock SELECT t.goodsId
END ) AS number FROM
FROM CoreCmsProducts (
) t SELECT goodsId,
WHERE t.number < " + goodsStocksWarn + @" (CASE
GROUP BY t.goodsId WHEN stock < freezeStock THEN
) d"; 0
ELSE
stock - freezeStock
END
) AS number,
isDel
FROM CoreCmsProducts
WHERE isDel = 0
) t
WHERE t.number < @goodsStocksWarnNumber
GROUP BY t.goodsId
) d) AND isDel =0 ";
var dt = await DbClient.Ado.GetDataTableAsync(sql); var dt = await DbClient.Ado.GetDataTableAsync(sql, new { goodsStocksWarnNumber = goodsStocksWarn });
var number = dt.Rows[0][0].ObjectToInt(0); var number = dt.Rows[0][0].ObjectToInt(0);
return number; return number;
} }
#endregion #endregion
#region
/// <summary>
/// 获取库存报警数量(返回商品序列)
/// </summary>
/// <param name="goodsStocksWarn"></param>
/// <returns></returns>
public async Task<List<int>> GoodsStaticsTotalWarnByGoodIds(int goodsStocksWarn)
{
var sql = @"SELECT id FROM dbo.CoreCmsGoods WHERE id IN
(SELECT goodsId
FROM
(
SELECT t.goodsId
FROM
(
SELECT goodsId,
(CASE
WHEN stock < freezeStock THEN
0
ELSE
stock - freezeStock
END
) AS number,
isDel
FROM CoreCmsProducts
WHERE isDel = 0
) t
WHERE t.number < @goodsStocksWarnNumber
GROUP BY t.goodsId
) d) AND isDel =0 ";
var result = await DbClient.Ado.SqlQueryAsync<int>(sql, new { goodsStocksWarnNumber = goodsStocksWarn });
return result;
}
#endregion
#region #region
/// <summary> /// <summary>
/// 获取关联商品的货品列表数据 /// 获取关联商品的货品列表数据

View File

@@ -318,6 +318,17 @@ namespace CoreCms.Net.Services
} }
/// <summary>
/// 获取库存报警数量(返回商品序列)
/// </summary>
/// <param name="goodsStocksWarn"></param>
/// <returns></returns>
public async Task<List<int>> GoodsStaticsTotalWarnByGoodIds(int goodsStocksWarn)
{
return await _dal.GoodsStaticsTotalWarnByGoodIds(goodsStocksWarn);
}
#region #region
/// <summary> /// <summary>
/// 获取关联商品的货品列表数据 /// 获取关联商品的货品列表数据

View File

@@ -1930,7 +1930,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
//库存报警 //库存报警
var goodsStaticsTotalWarn = await _productsServices.GoodsStaticsTotalWarn(goodsStocksWarn); var goodsStaticsTotalWarn = await _productsServices.GoodsStaticsTotalWarn(goodsStocksWarn);
//返回数据 //返回数据
jm.code = 0; jm.code = 0;
jm.msg = "数据调用成功!"; jm.msg = "数据调用成功!";
@@ -1939,11 +1939,9 @@ namespace CoreCms.Net.Web.Admin.Controllers
unpaidCount, unpaidCount,
unshipCount, unshipCount,
aftersalesCount, aftersalesCount,
goodsStaticsTotalWarn goodsStaticsTotalWarn,
}; };
return jm; return jm;
} }

View File

@@ -231,14 +231,22 @@ namespace CoreCms.Net.Web.Admin.Controllers
//获取库存 //获取库存
var allConfigs = await _settingServices.GetConfigDictionaries(); var allConfigs = await _settingServices.GetConfigDictionaries();
var kc = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.GoodsStocksWarn); var kc = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.GoodsStocksWarn);
var kcNumer = kc.ObjectToInt();
if (kc != null) if (kc != null)
{ {
var kcNumer = kc.ObjectToInt(); var ids = await _productsServices.GoodsStaticsTotalWarnByGoodIds(kcNumer);
where = where.And(p => p.stock <= kcNumer && p.isDel == false && p.isMarketable); if (ids.Any())
{
where = where.And(p=>ids.Contains(p.id));
}
} }
else else
{ {
where = where.And(p => p.stock <= 0 && p.isDel == false && p.isMarketable); var ids = await _productsServices.GoodsStaticsTotalWarnByGoodIds(0);
if (ids.Any())
{
where = where.And(p => ids.Contains(p.id));
}
} }
} }
@@ -295,13 +303,13 @@ namespace CoreCms.Net.Web.Admin.Controllers
if (kc != null) if (kc != null)
{ {
var kcNumer = kc.ObjectToInt(); var kcNumer = kc.ObjectToInt();
totalWarn = await _coreCmsGoodsServices.GetCountAsync(p => //返回数量
p.stock <= kcNumer && p.isDel == false && p.isMarketable); totalWarn = await _productsServices.GoodsStaticsTotalWarn(kcNumer);
} }
else else
{ {
totalWarn = await _coreCmsGoodsServices.GetCountAsync(p => //返回数量
p.stock <= 0 && p.isDel == false && p.isMarketable); totalWarn = await _productsServices.GoodsStaticsTotalWarn(0);
} }
//获取商品分类 //获取商品分类

View File

@@ -229,7 +229,7 @@
</a> </a>
</li> </li>
<li class="layui-col-xs6"> <li class="layui-col-xs6">
<a lay-href="/order/orders/" class="layadmin-backlog-body"> <a lay-href="/good/goods/" class="layadmin-backlog-body">
<h3>库存报警</h3> <h3>库存报警</h3>
<p><cite style="color: #FF5722;">{{d.goodsStaticsTotalWarn || '0'}}</cite></p> <p><cite style="color: #FF5722;">{{d.goodsStaticsTotalWarn || '0'}}</cite></p>
</a> </a>