/** * 往购物车里面增加一个商品 * * @param int $goodsId 商品ID * @param int $buyCount 购买数量 * @param string $specStr 商品组合列表 比如 "白色,ML码,男款",用逗号分隔 * @param string $goodsSn 商品的 sn 号 */ public function addGoods($goodsId, $buyCount, $specStr = null, $goodsSn = null) { // 先删除旧的记录 $this->removeGoods($goodsId, $specStr); // 添加商品 $orderGoods = new OrderGoods(); $orderGoods->setValue('goods_id', $goodsId); $orderGoods->setValue('goods_number', $buyCount); $orderGoods->setValue('goods_attr', $specStr); if (!empty($goodsSn)) { $orderGoods->setValue('goods_sn', $goodsSn); } $this->orderGoodsArray[] = $orderGoods; // 对商品做排序 $orderIdMapArray = array(); foreach ($this->orderGoodsArray as $orderGoodsItem) { if (!isset($orderIdMapArray[$orderGoodsItem->getValue('goods_id')])) { $orderIdMapArray[$orderGoodsItem->getValue('goods_id')] = array(); } $orderIdMapArray[$orderGoodsItem->getValue('goods_id')][] = $orderGoodsItem; } $this->orderGoodsArray = array(); foreach ($orderIdMapArray as $array) { $this->orderGoodsArray = array_merge($this->orderGoodsArray, $array); } unset($orderIdMapArray); }