order.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. // 订单相关接口
  2. import { get, post } from '@/core/http/http-client'
  3. import { buildRestPath } from '@/core/config/api-paths'
  4. /**
  5. * 获取确认订单商品列表
  6. * 对接 88live 的 /wanlshop/order/getOrderGoodsList 接口
  7. */
  8. export async function postOrderGetGoodsList({ data, address_id = 0 } = {}) {
  9. const { data: resData } = await post(buildRestPath('order/getOrderGoodsList'), {
  10. data,
  11. address_id
  12. })
  13. return resData
  14. }
  15. /**
  16. * 提交订单
  17. * 对接 88live 的 /wanlshop/order/addOrder 接口
  18. */
  19. export async function postOrderAddOrder({ order, token } = {}) {
  20. const { data: resData } = await post(buildRestPath('order/addOrder'), {
  21. order,
  22. token
  23. })
  24. return resData
  25. }
  26. /**
  27. * 获取订单列表
  28. * state: 0=全部, 1=待付款, 2=待发货, 3=待收货, 4=待评价
  29. * page: 分页页码
  30. */
  31. export async function pullOrderList({ state = 0, page = 1 } = {}) {
  32. const { data } = await get(buildRestPath('order/getOrderList'), { state, page })
  33. return {
  34. rows: Array.isArray(data.data) ? data.data : [],
  35. currentPage: data.current_page || 1,
  36. lastPage: data.last_page || 1,
  37. total: data.total || 0
  38. }
  39. }
  40. /**
  41. * 获取订单详情
  42. * id: 订单ID
  43. */
  44. export async function pullOrderInfo({ id } = {}) {
  45. const { data } = await get(buildRestPath('order/getOrderInfo'), { id })
  46. return data
  47. }
  48. /**
  49. * 取消订单
  50. * id: 订单ID
  51. */
  52. export async function postOrderCancel({ id } = {}) {
  53. const { data } = await post(buildRestPath('order/cancelOrder'), { id })
  54. return data
  55. }
  56. /**
  57. * 删除订单(已关闭的订单才能删除)
  58. * id: 订单ID
  59. */
  60. export async function postOrderDelete({ id } = {}) {
  61. const { data } = await post(buildRestPath('order/delOrder'), { id })
  62. return data
  63. }
  64. /**
  65. * 确认收货
  66. * id: 订单ID
  67. */
  68. export async function postOrderConfirm({ id } = {}) {
  69. const { data } = await post(buildRestPath('order/confirmOrder'), { id })
  70. return data
  71. }
  72. /**
  73. * 提交订单评价
  74. * data: { order_id, shop: { id, describe, logistics, service, deliver }, goodsList: [...] }
  75. */
  76. export async function postOrderComment(data) {
  77. const { data: resData } = await post(buildRestPath('order/commentOrder'), data)
  78. return resData
  79. }
  80. /**
  81. * 获取物流信息
  82. * id: 订单ID
  83. */
  84. export async function pullOrderLogistics({ id } = {}) {
  85. const { data } = await post(buildRestPath('order/getLogistics'), { id })
  86. return data
  87. }
  88. /**
  89. * 修改订单收货地址
  90. * id: 订单ID
  91. * address_id: 新地址ID
  92. */
  93. export async function postOrderEditAddress({ id, address_id } = {}) {
  94. const { data } = await post(buildRestPath('order/editOrderAddress'), { id, address_id })
  95. return data
  96. }
  97. /**
  98. * 获取订单统计
  99. * 对接 88live 的 /wanlshop/order/getOrderStats 接口
  100. * */
  101. export async function fetchOrderStats() {
  102. const states = [
  103. { key: 'pay', state: 1 },
  104. { key: 'delive', state: 2 },
  105. { key: 'receiving', state: 3 },
  106. { key: 'evaluate', state: 4 }
  107. ]
  108. const results = await Promise.all(
  109. states.map(async ({ key, state }) => {
  110. try {
  111. const { total } = await pullOrderList({ state, page: 1 })
  112. return { key, total: total || 0 }
  113. } catch (_) {
  114. return { key, total: 0 }
  115. }
  116. })
  117. )
  118. const stats = { pay: 0, delive: 0, receiving: 0, evaluate: 0, customer: 0, whole: 0, groups: 0 }
  119. results.forEach(({ key, total }) => { stats[key] = total })
  120. return stats
  121. }