$v) { $data[] = implode(' ', $v); } return implode(' ', $data); } /** * @param $goodsId * @param $count * @param null $skuId * @throws BadRequestHttpException * @throws NotFoundHttpException * 判断库存 */ public static function checkStock($goodsId, $count, $skuId = null) { $sku = GoodsSku::findOne($skuId); $goods = Goods::findOne($goodsId); if (!$goods) { throw new NotFoundHttpException('商品未找到'); } if (!$sku && $goods->stock == Goods::UNLIMITED_STOCK) { return; } $stock = $sku ? $sku->stock : $goods->stock; if ($stock < $count) { throw new BadRequestHttpException("商品{$goods->name}库存不足"); } return; } public static function createdResponse($model, $view) { $response = Yii::$app->getResponse()->setStatusCode(201); $id = implode(',', array_values($model->getPrimaryKey(true))); $response->getHeaders()->set('Location', Url::toRoute([$view, 'id' => $id], true)); } /** * @param $goodsId * @param $skuId * @return int * @throws NotFoundHttpException * 计算商品价格 */ public static function countPrice($goodsId, $skuId) { $goods = Goods::findOne($goodsId); if (!$goods) { throw new NotFoundHttpException('商品未找到'); } $price = $goods->price; $sku = GoodsSku::findOne($skuId); if ($sku) { $price = $sku->price; } return $price; } /** * @param $skuId * @return string * @throws NotFoundHttpException */ public static function skuValue($skuId) { $sku = GoodsSku::findOne($skuId); if (!$sku) { return ''; } $data = []; $goodsAttr = array_filter(explode(',', $sku->goods_attr)); if (empty($goodsAttr)) { throw new NotFoundHttpException('sku无对应商品属性'); } foreach ($goodsAttr as $k => $v) { $attr = GoodsAttr::findOne($v); if (!$attr) { throw new NotFoundHttpException('商品属性未找到'); } $data[] = $attr->attr_value; } return implode(',', $data); } }