[['id' => $marketing_ids]], 'index' => 'id','with'=>['secondaryCard']]); } // 判断是否安装了预约服务插件 if (MallAddons::isInstall($params['mall_id'], AddonsEnum::ADDONS_NAME_RESERVATION_SERVICE)) { $order_ids = array_column($params['order'],'id'); $reservation_service_order_list = ReservationServiceOrder::lists(['where'=>[['order_id'=>$order_ids]],'index'=>'order_id']); $reservation_service_order_ids = array_column($reservation_service_order_list,'id'); $use_log_list = SecondaryCardUseLog::lists(['where'=>[['reservation_service_order_id'=>$reservation_service_order_ids]],'index'=>'reservation_service_order_id']); } foreach ($params['order'] as &$item) { if ($item['order_source'] == 'Reserve' && $item['marketing_type'] == 'SecondaryCard') { if (!empty($secondary_card_order_list) && isset($secondary_card_order_list[$item['marketing_id']])) { $item['is_secondary_card'] = 1; $secondary_card_order = $secondary_card_order_list[$item['marketing_id']]; $item['secondary_card'] = [ 'name' => $secondary_card_order['secondaryCard']['name'], 'font_color' => $secondary_card_order['secondaryCard']['font_color'], 'background' => $secondary_card_order['secondaryCard']['background'], 'reservation_cancel_hour' => $secondary_card_order['secondaryCard']['reservation_cancel_hour'], 'appointment_interval_duration' => $secondary_card_order['secondaryCard']['appointment_interval_duration'], 'service' => json_decode($secondary_card_order['secondaryCard']['service'],true), 'order_no' => $secondary_card_order['order_no'], 'secondary_card_order_order_id' => $secondary_card_order['id'], 'main_order_id' => $item['id'], 'reservation_cancel_type' => $secondary_card_order['secondaryCard']['reservation_cancel_type'], 'reservation_cancel_deduct' => $secondary_card_order['secondaryCard']['reservation_cancel_deduct'], ]; $item['secondary_card']['order_source'] = SecondaryCardOrderService::getSourceName($secondary_card_order,$secondary_card_order['secondaryCard']['use_type']); $service_times = 1; if (isset($reservation_service_order_list[$item['id']])) { $reservation_service_order_id = $reservation_service_order_list[$item['id']]['id']; if (isset($use_log_list[$reservation_service_order_id])) { $service_times = $use_log_list[$reservation_service_order_id]['clerk_nums']; } } $item['secondary_card']['service_times'] = $service_times; $item['secondary_card_order_no'] = $secondary_card_order['order_no']; } } } return $params['order']; } }