order.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. payChannel?: string; // 支付渠道:wechat/alipay/balance/wechat_payscore
  36. payScoreOrderId?: string; // 微信支付分服务订单号
  37. status: number;
  38. statusText?: string;
  39. createTime: string;
  40. payTime?: string;
  41. storeName?: string; // 门店名称
  42. videoUrl?: string;
  43. confidence?: number;
  44. products: OrderProduct[];
  45. }
  46. /**
  47. * 订单列表请求参数
  48. */
  49. export interface OrderListRequest {
  50. status?: number; // 0-待支付,1-已完成,2-已取消
  51. }
  52. /**
  53. * 订单详情请求参数
  54. */
  55. export interface OrderDetailRequest {
  56. orderId?: string;
  57. orderNo?: string;
  58. outTradeNo?: string;
  59. }
  60. /**
  61. * 取消订单请求参数
  62. */
  63. export interface CancelOrderRequest {
  64. orderId: string;
  65. }
  66. /**
  67. * 获取订单列表
  68. * @param params 查询参数
  69. */
  70. export const getOrderList = (params?: OrderListRequest): Promise<OrderInfo[]> => {
  71. return post<OrderInfo[]>(API_PATHS.getOrders, params || {});
  72. };
  73. /**
  74. * 获取订单详情
  75. * @param params 查询参数(必须包含orderId、orderNo或outTradeNo之一)
  76. */
  77. export const getOrderDetail = (params: OrderDetailRequest): Promise<OrderInfo> => {
  78. return post<OrderInfo>(API_PATHS.getOrderDetail, params);
  79. };
  80. /**
  81. * 取消订单
  82. * @param orderId 订单ID
  83. */
  84. export const cancelOrder = (orderId: string): Promise<void> => {
  85. return post<void>(API_PATHS.cancelOrder, { orderId });
  86. };