mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2025-04-06 03:58:04 +08:00
修改商品管理
This commit is contained in:
parent
20207e50f1
commit
f75ba9fe78
@ -179,10 +179,14 @@ class ShopGoods extends Controller
|
|||||||
/**
|
/**
|
||||||
* 表单结果处理
|
* 表单结果处理
|
||||||
* @param boolean $result
|
* @param boolean $result
|
||||||
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
|
* @throws \think\db\exception\DbException
|
||||||
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
*/
|
*/
|
||||||
protected function _form_result($result)
|
protected function _form_result($result)
|
||||||
{
|
{
|
||||||
if ($result && $this->request->isPost()) {
|
if ($result && $this->request->isPost()) {
|
||||||
|
GoodsService::instance()->syncStock(input('code'));
|
||||||
$this->success('商品编辑成功!', 'javascript:history.back()');
|
$this->success('商品编辑成功!', 'javascript:history.back()');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,16 +21,16 @@ class GoodsService extends Service
|
|||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
*/
|
*/
|
||||||
public function syncStock($code)
|
public function syncStock(string $code)
|
||||||
{
|
{
|
||||||
// 商品入库统计
|
// 商品入库统计
|
||||||
$query = $this->app->db->name('ShopGoodsStock');
|
$query = $this->app->db->name('ShopGoodsStock');
|
||||||
$query->field('goods_code,goods_spec,ifnull(sum(number_stock),0) number_stock');
|
$query->field('goods_code,goods_spec,ifnull(sum(number_stock),0) number_stock');
|
||||||
$stockList = $query->where(['code' => $code])->group('goods_id,goods_spec')->select()->toArray();
|
$stockList = $query->where(['goods_code' => $code])->group('goods_code,goods_spec')->select()->toArray();
|
||||||
// 商品销量统计
|
// 商品销量统计
|
||||||
$query = $this->app->db->table('shop_order a')->field('b.goods_code,b.goods_spec,ifnull(sum(b.stock_sales),0) stock_sales');
|
$query = $this->app->db->table('shop_order a')->field('b.goods_code,b.goods_spec,ifnull(sum(b.stock_sales),0) stock_sales');
|
||||||
$query->leftJoin('shop_order_item b', 'a.order_no=b.order_no')->where([['b.code', '=', $code], ['a.status', 'in', [1, 2, 3, 4, 5]]]);
|
$query->leftJoin('shop_order_item b', 'a.order_no=b.order_no')->where([['b.goods_code', '=', $code], ['a.status', 'in', [1, 2, 3, 4, 5]]]);
|
||||||
$salesList = $query->group('b.goods_id,b.goods_spec')->select()->toArray();
|
$salesList = $query->group('b.goods_code,b.goods_spec')->select()->toArray();
|
||||||
// 组装更新数据
|
// 组装更新数据
|
||||||
$dataList = [];
|
$dataList = [];
|
||||||
foreach (array_merge($stockList, $salesList) as $vo) {
|
foreach (array_merge($stockList, $salesList) as $vo) {
|
||||||
@ -50,25 +50,24 @@ class GoodsService extends Service
|
|||||||
$this->app->db->name('ShopGoods')->where(['code' => $code])->update([
|
$this->app->db->name('ShopGoods')->where(['code' => $code])->update([
|
||||||
'stock_total' => intval(array_sum(array_column($dataList, 'stock_total'))),
|
'stock_total' => intval(array_sum(array_column($dataList, 'stock_total'))),
|
||||||
'stock_sales' => intval(array_sum(array_column($dataList, 'stock_sales'))),
|
'stock_sales' => intval(array_sum(array_column($dataList, 'stock_sales'))),
|
||||||
|
'stock_virtual' => $this->app->db->name('ShopGoodsItem')->where(['goods_code' => $code])->sum('number_virtual'),
|
||||||
]);
|
]);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取分类数据
|
* 获取分类数据
|
||||||
* @param string $type 数据类型
|
* @param string $type 操作函数
|
||||||
* @return array
|
* @return array
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
*/
|
*/
|
||||||
public function getCateList($type = 'arr2tree'): array
|
public function getCateList(string $type = 'arr2tree'): array
|
||||||
{
|
{
|
||||||
$map = ['deleted' => 0, 'status' => 1];
|
$map = ['deleted' => 0, 'status' => 1];
|
||||||
$query = $this->app->db->name('ShopGoodsCate');
|
$query = $this->app->db->name('ShopGoodsCate')->where($map)->order('sort desc,id desc');
|
||||||
$query->where($map)->order('sort desc,id desc');
|
return DataExtend::$type($query->withoutField('sort,status,deleted,create_at')->select()->toArray());
|
||||||
$query->withoutField('sort,status,deleted,create_at');
|
|
||||||
return DataExtend::$type($query->select()->toArray());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user