order.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /**
  2. * 订单相关API
  3. */
  4. import { post } from '../utils/request';
  5. import { API_PATHS } from '../utils/config';
  6. /**
  7. * 订单商品信息
  8. */
  9. export interface OrderProduct {
  10. id: string;
  11. name: string;
  12. price: number;
  13. quantity: number; // 购买数量
  14. refundQuantity?: number; // 退款数量(用户选择)
  15. image?: string;
  16. subtotal?: number;
  17. }
  18. /**
  19. * 订单信息
  20. */
  21. export interface OrderInfo {
  22. id: string;
  23. orderNo: string;
  24. orderName?: string; // 订单名称
  25. outTradeNo: string;
  26. hahaOrderNo: string;
  27. deviceId: string;
  28. /** 订单总金额(原价) */
  29. totalAmount: number;
  30. /** 订单优惠金额(营销活动优惠 + 优惠券优惠) */
  31. discountAmount?: number;
  32. /** 实付总金额 = totalAmount - discountAmount */
  33. paidAmount?: number;
  34. payStatus: string;
  35. status: number;
  36. statusText?: string;
  37. createTime: string;
  38. payTime?: string;
  39. videoUrl?: string;
  40. confidence?: number;
  41. products: OrderProduct[];
  42. }
  43. /**
  44. * 订单列表请求参数
  45. */
  46. export interface OrderListRequest {
  47. status?: number; // 0-待支付,1-已完成,2-已取消
  48. }
  49. /**
  50. * 订单详情请求参数
  51. */
  52. export interface OrderDetailRequest {
  53. orderId?: string;
  54. orderNo?: string;
  55. outTradeNo?: string;
  56. }
  57. /**
  58. * 取消订单请求参数
  59. */
  60. export interface CancelOrderRequest {
  61. orderId: string;
  62. }
  63. /**
  64. * 获取订单列表
  65. * @param params 查询参数
  66. */
  67. export const getOrderList = (params?: OrderListRequest): Promise<OrderInfo[]> => {
  68. return post<OrderInfo[]>(API_PATHS.getOrders, params || {});
  69. };
  70. /**
  71. * 获取订单详情
  72. * @param params 查询参数(必须包含orderId、orderNo或outTradeNo之一)
  73. */
  74. export const getOrderDetail = (params: OrderDetailRequest): Promise<OrderInfo> => {
  75. return post<OrderInfo>(API_PATHS.getOrderDetail, params);
  76. };
  77. /**
  78. * 取消订单
  79. * @param orderId 订单ID
  80. */
  81. export const cancelOrder = (orderId: string): Promise<void> => {
  82. return post<void>(API_PATHS.cancelOrder, { orderId });
  83. };