order.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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. refundedQuantity?: number; // 已退款数量
  15. refundQuantity?: number; // 退款数量(用户选择)
  16. image?: string;
  17. subtotal?: number;
  18. }
  19. /**
  20. * 订单信息
  21. */
  22. export interface OrderInfo {
  23. id: string;
  24. orderNo: string;
  25. orderName?: string; // 订单名称
  26. outTradeNo: string;
  27. hahaOrderNo: string;
  28. deviceId: string;
  29. /** 订单总金额(原价) */
  30. totalAmount: number;
  31. /** 订单优惠金额(营销活动优惠 + 优惠券优惠) */
  32. discountAmount?: number;
  33. /** 实付总金额 = totalAmount - discountAmount */
  34. paidAmount?: number;
  35. payStatus: string;
  36. payChannel?: string; // 支付渠道:wechat/alipay/balance/wechat_payscore
  37. payScoreOrderId?: string; // 微信支付分服务订单号
  38. payScoreValue?: number; // 微信支付分分数值
  39. refundStatus?: string; // 退款状态
  40. refundAmount?: number; // 累计退款金额
  41. currentRefundId?: string; // 当前退款记录ID
  42. status: number;
  43. statusText?: string;
  44. createTime: string;
  45. payTime?: string;
  46. storeName?: string; // 门店名称
  47. videoUrl?: string;
  48. confidence?: number;
  49. products: OrderProduct[];
  50. refunds?: RefundRecord[]; // 退款记录列表
  51. }
  52. /** 退款记录 */
  53. export interface RefundRecord {
  54. id: string;
  55. refundNo: string;
  56. refundAmount: number;
  57. status: string; // PENDING / REFUNDED / REJECTED
  58. reason: string;
  59. remark?: string; // 审核备注(拒绝原因)
  60. createTime: string;
  61. reviewTime?: string;
  62. items?: RefundRecordItem[];
  63. }
  64. /** 退款商品明细 */
  65. export interface RefundRecordItem {
  66. productName: string;
  67. quantity: number;
  68. price: number;
  69. refundAmount: number;
  70. }
  71. /**
  72. * 订单列表请求参数
  73. */
  74. export interface OrderListRequest {
  75. status?: number; // 0-待支付,1-已完成,2-已取消
  76. }
  77. /**
  78. * 订单详情请求参数
  79. */
  80. export interface OrderDetailRequest {
  81. orderId?: string;
  82. orderNo?: string;
  83. outTradeNo?: string;
  84. }
  85. /**
  86. * 取消订单请求参数
  87. */
  88. export interface CancelOrderRequest {
  89. orderId: string;
  90. }
  91. /**
  92. * 获取订单列表
  93. * @param params 查询参数
  94. */
  95. export const getOrderList = (params?: OrderListRequest): Promise<OrderInfo[]> => {
  96. return post<OrderInfo[]>(API_PATHS.getOrders, params || {});
  97. };
  98. /**
  99. * 获取订单详情
  100. * @param params 查询参数(必须包含orderId、orderNo或outTradeNo之一)
  101. */
  102. export const getOrderDetail = (params: OrderDetailRequest): Promise<OrderInfo> => {
  103. return post<OrderInfo>(API_PATHS.getOrderDetail, params);
  104. };
  105. /**
  106. * 取消订单
  107. * @param orderId 订单ID
  108. */
  109. export const cancelOrder = (orderId: string): Promise<void> => {
  110. return post<void>(API_PATHS.cancelOrder, { orderId });
  111. };