belongsTo(WarehouseInfo::class,"wsm_code","wsm_code")->bind(["wsm_name"=>"name","wsm_supplierNo"=>"supplierNo","wsm_supplierName"=>"supplierName"]); } //组合商品占用 库存 0 库存返回 1 库存占用 public function stockSub($spuCode,$num,$flag =1){ $row =$this->withJoin(['wsminfo'],'left') ->field('good_stock.id,usable_stock') ->where(['spuCode' => $spuCode, 'warehouse_info.wsm_type'=>[2,5]]) ->findOrEmpty(); if($row->isEmpty()) throw new \Exception('未找到对应子商品库存信息'); if($flag==1){ if($row->usable_stock < $num)throw new \Exception('对应子商品库存数不足'); $row->usabel_stock = bcsub($row->usabel_stock,$num); }else{ $row->usabel_stock = bcadd($row->usabel_stock,$num); } $sa=$row->save(); if($sa==false) throw new \Exception('对应子商品库存更新失败'); } }