alias('g')->leftJoin(['s' => Store::tableName()], 'g.store_id = s.id') ->where(['g.is_delete' => 0, 'g.status' => 1, 's.is_delete' => 0, 'g.is_wholesale' => 0])->andWhere(['IS NOT', 'g.cloud_goods_id', NULL]); if ($goods_id) { $goods_list->andWhere(['g.id' => $goods_id]); } $goods_list = $goods_list->select('g.id, g.price, g.attr, g.cloud_goods_id')->asArray()->all(); foreach ($goods_list as $item) { //获取云仓商品 $cloud_url = "/goods/getGoodsInfo"; $cloud_data = []; $cloud_data['goods_id'] = $item['cloud_goods_id']; $domain = (new OptionSetting)->getCloudDomainName(); $cloud_info = cloud_post($domain . $cloud_url, $cloud_data); $cloud_info = json_decode($cloud_info, true); if($cloud_info['code'] != 0){ debug_log($cloud_info, 'risk_control_result.log'); }else{ $goods = Goods::findOne($item['id']); //云仓商品协议价大于商品售价 $cloud_goods = $cloud_info['data']['goods']; if ($item['price'] < $cloud_goods['platform_negotiated_price']) { if ($risk_control_model) { //原始协议价 $goods->price = $cloud_goods['platform_negotiated_price']; } else { //商品下架 $goods->status = 0; } } //规格中的云仓商品协议价大于商品售价处理 $item['attr'] = json_decode($item['attr'], true); $cloud_goods['attrs'] = json_decode($cloud_goods['attrs'], true); foreach ($cloud_goods['attrs'] as $cloud_attr_item) { $cloud_no = $cloud_attr_item['no']; foreach ($item['attr'] as &$attr_item) { $_no = $attr_item['no']; if (!empty($cloud_no) && !empty($_no)) { if (strval($cloud_no) === strval($_no) && $attr_item['price'] < (!empty($cloud_attr_item['platform_negotiated_price']) ? $cloud_attr_item['platform_negotiated_price'] : $cloud_attr_item['price'])) { if ($risk_control_model) { //原始协议价 $attr_item['price'] = (!empty($cloud_attr_item['platform_negotiated_price']) ? $cloud_attr_item['platform_negotiated_price'] : $cloud_goods['price']); } else { //商品下架 $goods->status = 0; } } } } } $goods->attr = json_encode($item['attr'], JSON_UNESCAPED_UNICODE); if (!$goods->save()) { debug_log($goods->errors, 'risk_control_result.log'); } } } } }