GoodsStock.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\model\goods;
  11. use app\model\BaseModel;
  12. use think\facade\Db;
  13. /**
  14. * 商品库存
  15. */
  16. class GoodsStock extends BaseModel
  17. {
  18. /**
  19. * 增加库存
  20. * @param $param
  21. */
  22. public function incStock($param)
  23. {
  24. $condition = array (
  25. [ "sku_id", "=", $param[ "sku_id" ] ]
  26. );
  27. $num = $param[ "num" ];
  28. $sku_info = model('goods_sku')->getInfo($condition, "goods_id,stock");
  29. if (empty($sku_info))
  30. return $this->error(-1, "");
  31. //编辑sku库存
  32. $result = model('goods_sku')->setInc($condition, "stock", $num);
  33. //编辑商品总库存(暂不考虑查询判断)
  34. $goods_condition = array (
  35. [ "goods_id", "=", $sku_info[ "goods_id" ] ]
  36. );
  37. $res = model('goods')->setInc($goods_condition, "goods_stock", $num);
  38. return $this->success($result);
  39. }
  40. /**
  41. * 减少库存
  42. * @param $param
  43. */
  44. public function decStock($param)
  45. {
  46. $num = $param[ "num" ];
  47. $condition = array (
  48. [ "sku_id", "=", $param[ "sku_id" ] ]
  49. );
  50. $sku_info = Db::name("goods_sku")->where($condition)->field("goods_id,stock,sku_name")->lock(true)->find();
  51. if (empty($sku_info)) {
  52. return $this->error();
  53. }
  54. if ($sku_info[ "stock" ] < $num) {
  55. return $this->error('', $sku_info[ "sku_name" ] . "库存不足!");
  56. }
  57. //编辑sku库存
  58. $result = model('goods_sku')->setDec($condition, "stock", $num);
  59. if ($result === false) {
  60. return $this->error();
  61. }
  62. //编辑商品总库存(暂不考虑查询判断)
  63. $goods_condition = array (
  64. [ "goods_id", "=", $sku_info[ "goods_id" ] ]
  65. );
  66. $res = model('goods')->setDec($goods_condition, "goods_stock", $num);
  67. return $this->success($res);
  68. }
  69. }