卢春龙
2026-07-29 f22f27175205c72ee3be4f0266fb79b128156846
Merge branch 'feature/xj-730-fragrance-hv' into 'feature_v2.4.0'

feat: 添加车控联调打印 (甄雪君)

See merge request robotaxi1/xp-robotaxi-miniprogram!205
1个文件已添加
3个文件已修改
71 ■■■■■ 已修改文件
src/robotaxi/api/begin-route.ts 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/api/fragrance.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/api/seat-hv.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/utils/api-logger.ts 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/api/begin-route.ts
@@ -42,6 +42,7 @@
    OrderPaymentResponse,
    QueryOrderPaymentResultResponse
} from './types/begin-route';
import { withApiLog } from '../utils/api-logger';
// 导航-获取路线和费用
export const queryRouteAndFare = async (payload: QueryRouteAndFarePayload): Promise<QueryRouteAndFareResponse> => {
@@ -142,23 +143,23 @@
// 设置温度
export const setTemperature = async (payload: SetTemperaturePayload): Promise<SetTemperatureResponse> => {
    return request({
    return withApiLog('设置空调温度', 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('设置空调温度(忽略业务异常)', payload, request({
        url: _ROBOTAXI_HOST + '/vehicleConvoy/api/v1/mini-program/order/ac/set-temperature',
        method: 'POST',
        payload,
        skipException: true,
        showToast: false
    }, true);
    }, true));
}
// 解锁车辆
@@ -176,32 +177,32 @@
export const queryTemperatureByOrderId = async (
    payload: OrderIdPayload
): Promise<QueryTemperatureByOrderIdResponse> => {
    return request({
    return withApiLog('查询车辆温度', 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('查询空调开关状态', 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('空调开关控制', payload, request({
        url: _ROBOTAXI_HOST + '/vehicleConvoy/api/v1/mini-program/order/airConditionerUnlock',
        method: 'POST',
        payload,
        showToast: false
    }, true);
    }, true));
}
// 查询后备箱开启状态
src/robotaxi/api/fragrance.ts
@@ -1,5 +1,6 @@
import request from '../../utils/request';
import { _ROBOTAXI_HOST } from '../../constants/api';
import { withApiLog } from '../utils/api-logger';
import type {
    QueryCabinFragranceResponse,
    SetCabinFragrancePayload
@@ -9,21 +10,22 @@
export const queryCabinFragrance = async (
    orderId: string
): Promise<QueryCabinFragranceResponse> => {
    return request({
    const payload = { orderId };
    return withApiLog('查询车载香氛状态', 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('设置车载香氛', payload, request({
        url: _ROBOTAXI_HOST + '/vehicleConvoy/base/v1/mini-program/cabin/fragrance',
        method: 'POST',
        payload,
        skipException: true
    }, true);
    }, true));
};
src/robotaxi/api/seat-hv.ts
@@ -1,22 +1,24 @@
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('查询座椅通风加热状态', 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('设置座椅通风加热', payload, request({
        url: _ROBOTAXI_HOST + '/vehicleConvoy/base/v1/mini-program/cabin/seat/hv',
        method: 'POST',
        payload,
        skipException: true
    }, true);
    }, true));
};
src/robotaxi/utils/api-logger.ts
New file
@@ -0,0 +1,26 @@
/**
 * 座舱控制类接口(座椅通风加热、空调控温、香氛等)请求/响应日志工具。
 * 统一打印请求入参、响应结果与异常,方便调试和线上问题定位。
 */
/** 日志统一前缀,便于在控制台按关键字过滤。 */
const LOG_PREFIX = '[座舱控制接口]';
/**
 * 包裹接口请求 Promise,打印请求入参、响应与异常后透传结果(不改变原有 resolve/reject 行为)。
 * @param tag 接口中文名,如 '查询座椅通风加热状态'
 * @param payload 请求入参(用于日志展示)
 * @param promise request(...) 返回的 Promise
 */
export function withApiLog<T>(tag: string, payload: any, promise: Promise<T>): Promise<T> {
    console.log(`${LOG_PREFIX}【${tag}】请求参数:`, payload);
    return promise
        .then((res) => {
            console.log(`${LOG_PREFIX}【${tag}】响应结果:`, res);
            return res;
        })
        .catch((err) => {
            console.error(`${LOG_PREFIX}【${tag}】请求异常:`, err);
            return Promise.reject(err);
        });
}