92 lines
3.5 KiB
PHP
92 lines
3.5 KiB
PHP
<?php
|
|
/**
|
|
* SaaSMall商城系统 - 团队十年电商经验汇集巨献!
|
|
* =========================================================
|
|
* Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
|
|
* ----------------------------------------------
|
|
* 官方网址: https://www.gobuysaas.com
|
|
* =========================================================
|
|
*/
|
|
namespace app\model\stock;
|
|
/**
|
|
* 库存model (公共的库存相关改动和查询)
|
|
* @author Administrator
|
|
*
|
|
*/
|
|
class SaleStock extends GoodsStock
|
|
{
|
|
/**
|
|
* 减少库存(存在已经)
|
|
* @param $params
|
|
*/
|
|
public function decGoodsStock($params)
|
|
{
|
|
$site_id = $params['site_id'];
|
|
$store_id = $params['store_id'] ?? 0;
|
|
$sku_id = $params['sku_id'];
|
|
$temp_stock = $params['stock'];
|
|
$sku_info = model('goods_sku')->getInfo([['site_id', '=', $site_id], ['sku_id', '=', $sku_id]], 'goods_id,stock');
|
|
if (empty($sku_info)) {
|
|
return $this->error([], '找不到商品');
|
|
}
|
|
$goods_id = $sku_info['goods_id'];
|
|
$stock = $sku_info['stock'];
|
|
if ($store_id > 0) {//店铺库存
|
|
$return_info = $this->isNotExistCreateStoreStock(['store_id' => $store_id, 'sku_id' => $sku_id, 'goods_id' => $goods_id])['data'] ?? [];
|
|
$sku_info = $return_info['sku_info'];
|
|
$stock = $sku_info['stock'] ?? 0;
|
|
if ($stock < $temp_stock) return $this->error([], '库存不足');
|
|
$sku_condition = array(
|
|
['sku_id', '=', $sku_id],
|
|
['store_id', '=', $store_id]
|
|
);
|
|
model('store_goods_sku')->setDec($sku_condition, 'stock', $temp_stock);
|
|
$goods_condition = array(
|
|
['goods_id', '=', $goods_id],
|
|
['store_id', '=', $store_id]
|
|
);
|
|
model('store_goods')->setDec($goods_condition, 'stock', $temp_stock);
|
|
} else {
|
|
if ($stock < $temp_stock) return $this->error([], '库存不足');
|
|
model('goods_sku')->setDec([['sku_id', '=', $sku_id]], 'stock', $temp_stock);
|
|
model('goods')->setDec([['goods_id', '=', $goods_id]], 'goods_stock', $temp_stock);
|
|
}
|
|
//todo维护公共的销售库存
|
|
return $this->success();
|
|
}
|
|
|
|
/**
|
|
* 增加库存
|
|
* @param $params
|
|
* @return array
|
|
*/
|
|
public function incGoodsStock($params)
|
|
{
|
|
$sku_id = $params['sku_id'];
|
|
$site_id = $params['site_id'] ?? 1;
|
|
$store_id = $params['store_id'] ?? 0;
|
|
$temp_stock = $params['stock'];
|
|
$sku_info = model('goods_sku')->getInfo([['site_id', '=', $site_id], ['sku_id', '=', $sku_id]], 'goods_id');
|
|
if (empty($sku_info)) {
|
|
return $this->error([], '找不到商品');
|
|
}
|
|
$goods_id = $sku_info['goods_id'];
|
|
if ($store_id > 0) {
|
|
$sku_condition = array(
|
|
['sku_id', '=', $sku_id],
|
|
['store_id', '=', $store_id]
|
|
);
|
|
model('store_goods_sku')->setInc($sku_condition, 'stock', $temp_stock);
|
|
$goods_condition = array(
|
|
['goods_id', '=', $goods_id],
|
|
['store_id', '=', $store_id]
|
|
);
|
|
model('store_goods')->setInc($goods_condition, 'stock', $temp_stock);
|
|
} else {
|
|
model('goods_sku')->setInc([['sku_id', '=', $sku_id]], 'stock', $temp_stock);
|
|
model('goods')->setInc([['goods_id', '=', $goods_id]], 'goods_stock', $temp_stock);
|
|
}
|
|
return $this->success();
|
|
}
|
|
}
|