init
- 框架初始化 - 安装插件 - 修复PHP8.4报错
This commit is contained in:
120
application/admin/controller/shopro/goods/StockWarning.php
Normal file
120
application/admin/controller/shopro/goods/StockWarning.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller\shopro\goods;
|
||||
|
||||
use app\admin\controller\shopro\Common;
|
||||
use think\Db;
|
||||
use app\admin\model\shopro\goods\SkuPrice as SkuPriceModel;
|
||||
use app\admin\model\shopro\goods\StockWarning as StockWarningModel;
|
||||
use addons\shopro\traits\StockWarning as StockWarningTrait;
|
||||
|
||||
/**
|
||||
* 库存预警
|
||||
*/
|
||||
class StockWarning extends Common
|
||||
{
|
||||
use StockWarningTrait;
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
parent::_initialize();
|
||||
$this->model = new StockWarningModel;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 库存预警列表
|
||||
*
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
if (!$this->request->isAjax()) {
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
$skuPriceTableName = (new SkuPriceModel())->getQuery()->getTable();
|
||||
$stockWarnings = $this->model->sheepFilter()->alias('g')->with(['goods' => function ($query) {
|
||||
$query->removeOption('soft_delete');
|
||||
}])
|
||||
->join($skuPriceTableName . ' sp', 'g.goods_sku_price_id = sp.id', 'left')
|
||||
->field('g.*,sp.stock')
|
||||
->paginate($this->request->param('list_rows', 10));
|
||||
|
||||
$warning_total = $this->model->sheepFilter(false, function ($filters) {
|
||||
$filters['stock_type'] = 'no_enough';
|
||||
return $filters;
|
||||
})->alias('g')
|
||||
->join($skuPriceTableName . ' sp', 'g.goods_sku_price_id = sp.id', 'left')
|
||||
->field('g.*,sp.stock')
|
||||
->count();
|
||||
$over_total = $this->model->sheepFilter(false, function ($filters) {
|
||||
$filters['stock_type'] = 'over';
|
||||
return $filters;
|
||||
})->alias('g')
|
||||
->join($skuPriceTableName . ' sp', 'g.goods_sku_price_id = sp.id', 'left')
|
||||
->field('g.*,sp.stock')
|
||||
->count();
|
||||
|
||||
$result = [
|
||||
'rows' => $stockWarnings,
|
||||
'warning_total' => $warning_total,
|
||||
'over_total' => $over_total,
|
||||
];
|
||||
|
||||
$this->success('获取成功', null, $result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 补货
|
||||
*
|
||||
* @param [type] $ids
|
||||
* @param [type] $stock
|
||||
* @return void
|
||||
*/
|
||||
public function addStock ($id) {
|
||||
if ($this->request->isAjax()) {
|
||||
$params = $this->request->only(['stock']);
|
||||
$this->svalidate($params, ".add");
|
||||
|
||||
$stockWarning = $this->model->with(['sku_price'])->where('id', $id)->find();
|
||||
if (!$stockWarning) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
if (!$stockWarning->sku_price) {
|
||||
$this->error('库存规格不存在');
|
||||
}
|
||||
|
||||
Db::transaction(function () use ($stockWarning, $params) {
|
||||
// 补货
|
||||
$this->addStockToSkuPrice($stockWarning->sku_price, $params['stock'], 'stock_warning');
|
||||
});
|
||||
|
||||
$this->success('补货成功');
|
||||
}
|
||||
|
||||
return $this->view->fetch();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function recyclebin()
|
||||
{
|
||||
if ($this->request->isAjax()) {
|
||||
$skuPriceTableName = (new SkuPriceModel())->getQuery()->getTable();
|
||||
$stockWarnings = $this->model->onlyTrashed()->sheepFilter()->alias('g')->with(['goods' => function ($query) {
|
||||
$query->removeOption('soft_delete');
|
||||
}])
|
||||
->join($skuPriceTableName . ' sp', 'g.goods_sku_price_id = sp.id', 'left')
|
||||
->field('g.*,sp.stock')
|
||||
->paginate($this->request->param('list_rows', 10));
|
||||
|
||||
$this->success('获取成功', null, $stockWarnings);
|
||||
}
|
||||
|
||||
return $this->view->fetch();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user