car.js 5.22 KB
/*
 * @Date: 2025-07-09 14:58:51
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2025-07-15 11:55:43
 * @FilePath: /jgdl/src/api/car.js
 * @Description: 车辆相关API接口
 */
import { fn, fetch } from './fn';

const Api = {
  ADD_VEHICLE: '/srv/?a=vehicle&t=add',
  EDIT_VEHICLE: '/srv/?a=vehicle&t=edit',
  RECOMMEND_VEHICLE: '/srv/?a=vehicle&t=recommendation',
  LIST_VEHICLE: '/srv/?a=vehicle&t=list',
  DETAIL_VEHICLE: '/srv/?a=vehicle&t=detail',
  MY_LISTING_VEHICLE: '/srv/?a=vehicle&t=my_listings',
  CHANGE_STATUS_VEHICLE: '/srv/?a=vehicle&t=change_status',
}

/**
 * @description: 添加车辆
 * @param id 车辆ID(编辑时必填)
 * @param title 标题
 * @param brand 品牌
 * @param model 型号
 * @param manufacture_year 出厂年份
 * @param new_level 新旧程度;1到5分
 * @param range_km 续航里程
 * @param total_mileage_km 总里程
 * @param max_speed_kmh 最大车速
 * @param battery_capacity_ah 电池容量
 * @param brake_wear_level 制动磨损程度;1到5分
 * @param price 出让价格
 * @param market_price 市场价格
 * @param verification_status 认证状态(1=不认证, 3=认证待审核, 5=已认证, 7=认证失败)
 * @param note 车辆描述
 * @param photo_meta_ids 照片的附件ID数组(编辑时可选)
 * @returns
 */

export const addVehicleAPI = (params) => fn(fetch.post(Api.ADD_VEHICLE, params));

/**
 * @description: 编辑车辆
 * @param id 车辆ID(编辑时必填)
 * @param title 标题
 * @param brand 品牌
 * @param model 型号
 * @param manufacture_year 出厂年份
 * @param new_level 新旧程度;1到5分
 * @param range_km 续航里程
 * @param total_mileage_km 总里程
 * @param max_speed_kmh 最大车速
 * @param battery_capacity_ah 电池容量
 * @param brake_wear_level 制动磨损程度;1到5分
 * @param price 出让价格
 * @param market_price 市场价格
 * @param verification_status 认证状态(1=不认证, 3=认证待审核, 5=已认证, 7=认证失败)
 * @param note 车辆描述
 * @param photo_meta_ids 照片的附件ID数组(编辑时可选)
 * @returns
 */

export const editVehicleAPI = (params) => fn(fetch.post(Api.EDIT_VEHICLE, params));

/**
 * @description: 首页轮播/最新上架/特价好车
 * @param section 推荐的位置,1=首页轮播, 2=特价好车, 3=精品推荐
 * @param school_id 学校ID
 * @param brand 品牌
 * @param manufacture_year 出厂年份
 * @param verification_status 认证状态(1=不认证, 3=认证待审核, 5=已认证, 7=认证失败)
 * @param keyword 搜索关键字(品牌/型号/描述)
 * @param page 页码
 * @param limit 每页数量
 * @returns data[{ id, seller_id, school_id, school_name, title, brand, model, manufacture_year, new_level, range_km, total_mileage_km, max_speed_kmh, battery_capacity_ah, brake_wear_level, tire_wear_level, price, market_price, verification_status, rejection_reason, note, photos, is_favorite }]
 */

export const getRecommendVehicleAPI = (params) => fn(fetch.get(Api.RECOMMEND_VEHICLE, params));

/**
 * @description: 车辆列表/认证车源
 * @param school_id 学校ID
 * @param brand 品牌
 * @param manufacture_year 出厂年份
 * @param verification_status 认证状态(1=不认证, 3=认证待审核, 5=已认证, 7=认证失败)
 * @param keyword 搜索关键字(品牌/型号/描述)
 * @param page 页码
 * @param limit 每页数量
 * @returns data[{ id, seller_id, school_id, school_name, title, brand, model, manufacture_year, new_level, range_km, total_mileage_km, max_speed_kmh, battery_capacity_ah, brake_wear_level, tire_wear_level, price, market_price, verification_status, rejection_reason, note, photos, is_favorite }]
 */

export const getVehicleListAPI = (params) => fn(fetch.get(Api.LIST_VEHICLE, params));

/**
 * @description: 获取我卖的车/我的认证
 * @param page 页码
 * @param limit 每页数量
 * @returns data[{ id, seller_id, school_id, school_name, title, brand, model, manufacture_year, new_level, range_km, total_mileage_km, max_speed_kmh, battery_capacity_ah, brake_wear_level, tire_wear_level, price, market_price, verification_status, rejection_reason, note, photos, is_favorite }]
 */
export const getMyListingVehicleAPI = (params) => fn(fetch.get(Api.MY_LISTING_VEHICLE, params));

/**
 * @description: 获取车辆详情
 * @param id 车辆ID
 * @returns data{ id, seller_id, school_id, school_name, title, brand, model, manufacture_year, new_level, range_km, total_mileage_km, max_speed_kmh, battery_capacity_ah, brake_wear_level, tire_wear_level, price, market_price, verification_status, rejection_reason, note, photos, is_favorite, seller { id, name, avatar, school_id, school_name, phone, email } }
 */
export const getVehicleDetailAPI = (params) => fn(fetch.get(Api.DETAIL_VEHICLE, params));


/**
 * @description: 下架/上架车辆
 * @param id 车辆ID
 * @param status 状态(3=待审核, 7=上架, 9=下架)
 * @returns data[{ id, seller_id, school_id, school_name, title, brand, model, manufacture_year, new_level, range_km, total_mileage_km, max_speed_kmh, battery_capacity_ah, brake_wear_level, tire_wear_level, price, market_price, verification_status, rejection_reason, note, photos, is_favorite }]
 */

export const changeVehicleStatusAPI = (params) => fn(fetch.post(Api.CHANGE_STATUS_VEHICLE, params));