validate()){ return $this->getModelError(); } while (Cart::cacheStatusGet()) { // 购物车的编辑、删除等操作完成之后,才可以获取购物车列表 usleep(500); } $list = Cart::find()->alias('c')->where([ 'c.cx_mch_id' => $this->cx_mch_id, 'c.is_delete' => 0, 'c.user_id' => $this->user_id, 'c.plugin_sign' => $this->plugin_sign, ]) ->with(['goods.goodsHub']) ->orderBy(['c.created_at' => SORT_DESC])->all(); $newList = []; foreach ($list as $item) { if($item->goods->plugin_sign != $this->plugin_sign){ continue; } $newItem = ArrayHelper::toArray($item); $newItem['goods'] = ArrayHelper::toArray($item->goods); $newItem['attrs'] = $item->attrs ? ArrayHelper::toArray($item->attrs) : $item->attrs; $newItem['reduce_price'] = 0; if ($item->attrs) { // 还存在的商品 $newItem['attrs']['attr'] = (new Goods())->signToAttr($item->attrs->sign_id, $item->goods->attr_groups); $newItem['attr_str'] = 0; if ($item->attr_info) { try { $attrInfo = (new Serializer())->decode($item->attr_info); $reducePrice = $attrInfo['price'] - $item->attrs->price; if ($attrInfo['price'] - $item->attrs->price) { $newItem['reduce_price'] = sprintf("%.2f",$reducePrice); } } catch (\Exception $exception) { } } } else { $newItem['attr_str'] = 1; } $newItem['attrs']['price'] = \Yii::$app->user->identity->touristGuide ? $newItem['attrs']['tourist'] : $newItem['attrs']['price']; $newItem['goods']['name'] = $item->goods->name; $newItem['goods']['cover_pic'] = $item->goods->coverPic; $newList[] = $newItem; } return $this->apiReturnSuccess("ok", $newList); } }