jh-admin/app/model/stock/SaleStock.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();
}
}