value('customer_id'); foreach ($data['variety'] as $item) { if(count($item) != 6 || empty(floatval($item['num']))) throw new \Exception('参数有误!'); $specs = ProductConfig::where('id', $item['spec_id'])->field('weight,box_id')->find(); if(!$specs) throw new \Exception('参数有误!'); $weight = bcmul((string)$specs->weight, $item['num'], 2); $result[] = [ 'user_id' => $uid, 'customer_id' => $customer_id, 'shop_id' => $data['shop_id'], 'plat_id' => $data['plat_id'], 'variety_id' => $item['variety_id'], 'spec_id' => $item['spec_id'], 'num' => $item['num'], 'weigh' => $weight, 'total_price' => bcmul($item['price'], $item['num'], 2) ]; //根据品种扣除库存 StockDetail::setStockConfigNum((int)$item['variety_id'], (string)-$weight, StockConfig::VarietyName); //根据规格扣除包装箱 StockDetail::setStockConfigNum($specs->box_id, (string)-$item['num'], StockConfig::PackingBox); } return $result; } }