|
|
@@ -17,6 +17,7 @@ class GoodsClass extends BaseClass
|
|
|
|
|
|
public static $baseFile = '\bizHd\goods\models\Goods';
|
|
|
|
|
|
+ const LOCK_STOCK_GOODS = 'lock_stock_goods_';//修改库存锁
|
|
|
//获取商品完整详情,包括商品的分类 ssh 2019.12.3
|
|
|
public static function getGoodsInfo($id)
|
|
|
{
|
|
|
@@ -242,4 +243,60 @@ class GoodsClass extends BaseClass
|
|
|
util::fail('此商品您没有权限查看哦');
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ //库存变动入口
|
|
|
+ //加库存
|
|
|
+ public static function addStock($goodsId,$mainId,$num)
|
|
|
+ {
|
|
|
+ $key = self::LOCK_STOCK_GOODS . '_' . $goodsId;
|
|
|
+ $lock = util::lock($key);
|
|
|
+ if (!$lock) {
|
|
|
+ util::fail("系统繁忙中,请稍后再试!");
|
|
|
+ }
|
|
|
+ $goodsData = self::getById($goodsId);
|
|
|
+ if (!$goodsData) {
|
|
|
+ util::unlock($key);
|
|
|
+ util::fail("成品不存在");
|
|
|
+ }
|
|
|
+ $goodsMainId = $goodsData['mainId'];
|
|
|
+ if($mainId !== $goodsMainId){
|
|
|
+ util::unlock($key);
|
|
|
+ util::fail("非法参数");
|
|
|
+ }
|
|
|
+
|
|
|
+ //改库存
|
|
|
+ $newStock = $goodsData['stock'] + $num;
|
|
|
+ $data['stock'] = $newStock;
|
|
|
+ self::updateById($goodsId,$data);
|
|
|
+ util::unlock($key);
|
|
|
+ return ['oldStock' => $goodsData['stock'], 'newStock' => $newStock];
|
|
|
+ }
|
|
|
+
|
|
|
+ //减库存
|
|
|
+ public static function decreaseStock($goodsId,$mainId,$num)
|
|
|
+ {
|
|
|
+ $key = self::LOCK_STOCK_GOODS . '_' . $goodsId;
|
|
|
+ $lock = util::lock($key);
|
|
|
+ if (!$lock) {
|
|
|
+ util::fail("系统繁忙中,请稍后再试!");
|
|
|
+ }
|
|
|
+ $goodsData = self::getById($goodsId);
|
|
|
+ if (!$goodsData) {
|
|
|
+ util::unlock($key);
|
|
|
+ util::fail("成品不存在");
|
|
|
+ }
|
|
|
+ $goodsMainId = $goodsData['mainId'];
|
|
|
+ if($mainId !== $goodsMainId){
|
|
|
+ util::unlock($key);
|
|
|
+ util::fail("非法参数");
|
|
|
+ }
|
|
|
+
|
|
|
+ //改库存
|
|
|
+ $newStock = $goodsData['stock'] - $num;
|
|
|
+ $data['stock'] = $newStock;
|
|
|
+ self::updateById($goodsId,$data);
|
|
|
+ util::unlock($key);
|
|
|
+ return ['oldStock' => $goodsData['stock'], 'newStock' => $newStock];
|
|
|
+ }
|
|
|
+
|
|
|
}
|