$mall_id]))->getSetting(); if (empty($config['is_enable_shopping_cart_settle'])) return $data; $source_list = []; $rate = 1; foreach ($data as $k => $v) { $list = $v['list']; foreach ($list as $lk => $item) { if ($item['goods_source'] == AddonsEnum::ADDONS_NAME_QI_JUHE) { // 取出当前商品所属供应链 $sku = GoodsSkuModel::getSku($item['goods_id'], $item['attr_id']); $g = GoodsModel::findOne(['goods_id' => $sku->supply_goods_id, 'mall_id' => $mall_id]); $item['cost_price'] = $item['price']; // 销售价 $item['member_buy_limit_num'] = $g->min_buy_qty; // 最低加购量 if ($g->source == QiJuheEnum::FREE_SHIPPING_SOURCE && $g->source_name == QiJuheEnum::FREE_SHIPPING_SOURCE_NAME) { // 满59 免邮 $item['supply_chain'] = $g->source; // $supply = SupplysModel::findOne(['id' => $sku->supply_id]); // $sell = Json::decode(!empty($supply->sell) ? $supply->sell : '[]'); // if (!empty($sell['sell_agreement'])) { // $rate = bcmul($sell['sell_agreement'], 0.01, 2); // } // $item['cost_price'] = bcmul($g->agreement_price, $rate * 0.01, 2); // $api = ApiService::getConnect($mall_id, $sku->supply_id); // $goodsInfo = $api->goodsInfo([$sku->supply_goods_id]); // if (!empty($goodsInfo[0])) { // $item['cost_price'] = bcmul($goodsInfo[0]['agreement_price'], $rate * 0.01, 2); // 取协议价 // } } // 需要加一个 $source_list[] = $item; unset($list[$lk]); } } if (!empty($list)) { $data[$k]['list'] = $list; } else { unset($data[$k]); } } if (!empty($source_list)) { $data[] = [ 'id' => AddonsEnum::ADDONS_NAME_QI_JUHE, 'mch_name' => $config['shopping_cart_mall_name'], 'mch_pic' => $config['shopping_cart_mall_logo'], 'list' => $source_list, 'deduct' => [ 'free_shipping' => [ 120 => bcmul($config['shopping_cart_free_amount'] ?? 59, $rate, 2) ] ] ]; } foreach ($data as &$datum) { $datum['list'] = array_values($datum['list']); } $data = array_values($data); return $data; } /** * @param array $params * @return array */ public function globalGoodsDetail($params) { if (empty($params)) return $params; $goods = $params['goods']; if (!empty($goods['goods_source']) && $goods['goods_source'] != QiJuheEnum::PLUGIN_SIGN) return $params; $mall_id = $params['mall_id']; $params['goods'] = ShoppingCartService::getCanAddToCart($params['goods'], $mall_id); return $params; } /** * 判断是否能过加入到购物车 * @param $goods * @param $mall_id * @return mixed */ public static function getCanAddToCart($goods, $mall_id) { $config = (new SettingService(['mall_id' => $mall_id]))->getSetting(); if (!empty($config['is_enable_shopping_cart_settle'])) $goods['can_add_to_cart'] = StatusEnum::ENABLED; // 最低限购 $sku = GoodsSkuModel::findOne(['goods_id' => $goods['id'], 'mall_id' => $mall_id]); if (!empty($sku)) { $goods['member_buy_limit_setting']['nums'] = (int) GoodsModel::find()->where(['goods_id' => $sku->supply_goods_id, 'mall_id' => $mall_id]) ->select('min_buy_qty')->scalar(); } return $goods; } }