feat(robotaxi): 新增座舱控制接口日志工具并统一接入
Co-Authored-By: 甄雪君 <zhenxj@xiaopeng.com>
| | |
| | | OrderPaymentResponse, |
| | | QueryOrderPaymentResultResponse |
| | | } from './types/begin-route'; |
| | | import { withApiLog } from '../utils/api-logger'; |
| | | |
| | | // 导航-获取路线和费用 |
| | | export const queryRouteAndFare = async (payload: QueryRouteAndFarePayload): Promise<QueryRouteAndFareResponse> => { |
| | |
| | | |
| | | // 设置温度 |
| | | export const setTemperature = async (payload: SetTemperaturePayload): Promise<SetTemperatureResponse> => { |
| | | return request({ |
| | | return withApiLog('setTemperature', payload, request({ |
| | | url: _ROBOTAXI_HOST + '/vehicleConvoy/api/v1/mini-program/order/ac/set-temperature', |
| | | method: 'POST', |
| | | payload, |
| | | showToast: false |
| | | }, true); |
| | | }, true)); |
| | | } |
| | | |
| | | // 设置温度并跳过业务异常拦截,供初始化越界温度纠正场景使用 |
| | | export const setTemperatureIgnoreBusinessError = async (payload: SetTemperaturePayload): Promise<SetTemperatureResponse> => { |
| | | return request({ |
| | | return withApiLog('setTemperatureIgnoreBusinessError', payload, request({ |
| | | url: _ROBOTAXI_HOST + '/vehicleConvoy/api/v1/mini-program/order/ac/set-temperature', |
| | | method: 'POST', |
| | | payload, |
| | | skipException: true, |
| | | showToast: false |
| | | }, true); |
| | | }, true)); |
| | | } |
| | | |
| | | // 解锁车辆 |
| | |
| | | export const queryTemperatureByOrderId = async ( |
| | | payload: OrderIdPayload |
| | | ): Promise<QueryTemperatureByOrderIdResponse> => { |
| | | return request({ |
| | | return withApiLog('queryTemperatureByOrderId', payload, request({ |
| | | url: _ROBOTAXI_HOST + '/vehicleConvoy/api/v1/mini-program/order/queryTemperatureByOrderId', |
| | | method: 'GET', |
| | | payload |
| | | }, true); |
| | | }, true)); |
| | | } |
| | | |
| | | // 查询车辆空调开关状态 |
| | | export const queryVehicleAirConditionerSwitch = async ( |
| | | payload: OrderIdPayload |
| | | ): Promise<QueryVehicleAirConditionerSwitchResponse> => { |
| | | return request({ |
| | | return withApiLog('queryVehicleAirConditionerSwitch', payload, request({ |
| | | url: _ROBOTAXI_HOST + '/vehicleConvoy/api/v1/mini-program/order/queryVehicleAirConditionerSwitch', |
| | | method: 'GET', |
| | | payload |
| | | }, true); |
| | | }, true)); |
| | | } |
| | | |
| | | // 车辆空调开关控制 |
| | | export const airConditionerUnlock = async (payload: AirConditionerUnlockPayload): Promise<void> => { |
| | | return request({ |
| | | return withApiLog('airConditionerUnlock', payload, request({ |
| | | url: _ROBOTAXI_HOST + '/vehicleConvoy/api/v1/mini-program/order/airConditionerUnlock', |
| | | method: 'POST', |
| | | payload, |
| | | showToast: false |
| | | }, true); |
| | | }, true)); |
| | | } |
| | | |
| | | // 查询后备箱开启状态 |
| | |
| | | import request from '../../utils/request'; |
| | | import { _ROBOTAXI_HOST } from '../../constants/api'; |
| | | import { withApiLog } from '../utils/api-logger'; |
| | | import type { |
| | | QueryCabinFragranceResponse, |
| | | SetCabinFragrancePayload |
| | |
| | | export const queryCabinFragrance = async ( |
| | | orderId: string |
| | | ): Promise<QueryCabinFragranceResponse> => { |
| | | return request({ |
| | | const payload = { orderId }; |
| | | return withApiLog('queryCabinFragrance', payload, request({ |
| | | url: _ROBOTAXI_HOST + '/vehicleConvoy/base/v1/mini-program/cabin/fragrance', |
| | | method: 'GET', |
| | | payload: { orderId } |
| | | }, true); |
| | | payload |
| | | }, true)); |
| | | }; |
| | | |
| | | // 设置车载香氛(聚合下发开关状态,开启时同时下发香型通道) |
| | | export const setCabinFragrance = async ( |
| | | payload: SetCabinFragrancePayload |
| | | ): Promise<void> => { |
| | | return request({ |
| | | return withApiLog('setCabinFragrance', payload, request({ |
| | | url: _ROBOTAXI_HOST + '/vehicleConvoy/base/v1/mini-program/cabin/fragrance', |
| | | method: 'POST', |
| | | payload, |
| | | skipException: true |
| | | }, true); |
| | | }, true)); |
| | | }; |
| | |
| | | import request from '../../utils/request'; |
| | | import { _ROBOTAXI_HOST } from '../../constants/api'; |
| | | import { withApiLog } from '../utils/api-logger'; |
| | | import type { QuerySeatHvResponse, SetSeatHvPayload } from './types/seat-hv'; |
| | | |
| | | // 查询座椅通风/加热状态 |
| | | export const querySeatHv = async (orderId: string): Promise<QuerySeatHvResponse> => { |
| | | return request({ |
| | | const payload = { orderId }; |
| | | return withApiLog('querySeatHv', payload, request({ |
| | | url: _ROBOTAXI_HOST + '/vehicleConvoy/base/v1/mini-program/cabin/seat/hv', |
| | | method: 'GET', |
| | | payload: { orderId } |
| | | }, true); |
| | | payload |
| | | }, true)); |
| | | }; |
| | | |
| | | // 设置座椅通风/加热(seats 仅含被改动的座椅,通风与加热一起下发) |
| | | export const setSeatHv = async (payload: SetSeatHvPayload): Promise<void> => { |
| | | return request({ |
| | | return withApiLog('setSeatHv', payload, request({ |
| | | url: _ROBOTAXI_HOST + '/vehicleConvoy/base/v1/mini-program/cabin/seat/hv', |
| | | method: 'POST', |
| | | payload, |
| | | skipException: true |
| | | }, true); |
| | | }, true)); |
| | | }; |
| New file |
| | |
| | | /** |
| | | * 座舱控制类接口(座椅通风加热、空调控温、香氛等)请求/响应日志工具。 |
| | | * 统一打印请求入参、响应结果与异常,方便调试和线上问题定位。 |
| | | */ |
| | | |
| | | /** 日志统一前缀,便于在控制台按关键字过滤。 */ |
| | | const LOG_PREFIX = '[CabinControlAPI]'; |
| | | |
| | | /** |
| | | * 包裹接口请求 Promise,打印请求入参、响应与异常后透传结果(不改变原有 resolve/reject 行为)。 |
| | | * @param tag 接口标识,如 'querySeatHv' |
| | | * @param payload 请求入参(用于日志展示) |
| | | * @param promise request(...) 返回的 Promise |
| | | */ |
| | | export function withApiLog<T>(tag: string, payload: any, promise: Promise<T>): Promise<T> { |
| | | console.log(`${LOG_PREFIX}[${tag}] request:`, payload); |
| | | return promise |
| | | .then((res) => { |
| | | console.log(`${LOG_PREFIX}[${tag}] response:`, res); |
| | | return res; |
| | | }) |
| | | .catch((err) => { |
| | | console.error(`${LOG_PREFIX}[${tag}] error:`, err); |
| | | return Promise.reject(err); |
| | | }); |
| | | } |