Эх сурвалжийг харах

Refactor order status handling and enhance internationalization support

- Expanded OrderStatus type to include additional statuses: 'none', 'pending', 'refunded', 'accepted', 'refused', 'processed'.
- Updated mapApiStatus function to handle new status codes and return corresponding OrderStatus.
- Added statusPlaymateKeyMap for improved localization of order statuses.
- Enhanced translation files for English, Indonesian, and Chinese to include new status keys for both standard and playmate orders.
0es 3 сар өмнө
parent
commit
08643e3fc7

+ 1 - 1
app/types/api/skill.ts

@@ -247,7 +247,7 @@ export interface SkillOrderInfoVo {
   // 购买数量
   purchaseQty: number
   // 状态:0:待支付,1:已支付,2:完成,3:退款/取消
-  status: 0 | 1 | 2 | 3
+  status: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
   // 下单时间
   createTime: number
   // 评分

+ 52 - 11
app/types/order.ts

@@ -1,20 +1,61 @@
 import type { SkillOrderInfoVo } from './api'
 
-export type OrderStatus = 'processing' | 'completed' | 'cancelled'
+export type OrderStatus
+  = | 'none'
+    | 'pending'
+    | 'completed'
+    | 'refunded'
+    | 'accepted'
+    | 'refused'
+    | 'processing'
+    | 'processed'
+    | 'cancelled'
 
 export const statusKeyMap: Record<OrderStatus, string> = {
-  cancelled: 'order.status.cancelled',
-  processing: 'order.status.processing',
+  none: 'order.status.none',
+  pending: 'order.status.pending',
   completed: 'order.status.completed',
+  refunded: 'order.status.refunded',
+  accepted: 'order.status.accepted',
+  refused: 'order.status.refused',
+  processing: 'order.status.processing',
+  processed: 'order.status.processed',
+  cancelled: 'order.status.cancelled',
 }
 
-export const mapApiStatus = (status: SkillOrderInfoVo['status']): OrderStatus => {
-  if (status === 2)
-    return 'completed'
-
-  if (status === 3)
-    return 'cancelled'
+export const statusPlaymateKeyMap: Record<OrderStatus, string> = {
+  none: 'order.statusPlaymate.none',
+  pending: 'order.statusPlaymate.pending',
+  completed: 'order.statusPlaymate.completed',
+  refunded: 'order.statusPlaymate.refunded',
+  accepted: 'order.statusPlaymate.accepted',
+  refused: 'order.statusPlaymate.refused',
+  processing: 'order.statusPlaymate.processing',
+  processed: 'order.statusPlaymate.processed',
+  cancelled: 'order.statusPlaymate.cancelled',
+}
 
-  // 0:待支付,1:已支付 -> 视为进行中
-  return 'processing'
+export const mapApiStatus = (status: SkillOrderInfoVo['status']): OrderStatus => {
+  switch (status) {
+    case 0:
+      return 'none'
+    case 1:
+      return 'pending'
+    case 2:
+      return 'completed'
+    case 3:
+      return 'refunded'
+    case 4:
+      return 'accepted'
+    case 5:
+      return 'refused'
+    case 6:
+      return 'processing'
+    case 7:
+      return 'processed'
+    case 8:
+      return 'cancelled'
+    default:
+      return 'none'
+  }
 }

+ 18 - 1
i18n/locales/en.json

@@ -12,11 +12,28 @@
       "myOrders": "My Orders"
     },
     "status": {
-      "processing": "In progress",
+      "none": "None",
+      "pending": "Pending Order",
       "completed": "Completed",
+      "refunded": "Refunded",
+      "accepted": "Accepted",
+      "refused": "Refused",
+      "processing": "In progress",
+      "processed": "In progress",
       "cancelled": "Canceled",
       "all": "All"
     },
+    "statusPlaymate": {
+      "none": "None",
+      "pending": "Pending Order",
+      "completed": "Completed",
+      "refunded": "Refunded",
+      "accepted": "Order Received",
+      "refused": "Refused",
+      "processing": "In Service",
+      "processed": "Completed",
+      "cancelled": "Canceled"
+    },
     "detail": {
       "productType": "Product type",
       "quantity": "Quantity",

+ 18 - 1
i18n/locales/id.json

@@ -12,11 +12,28 @@
       "myOrders": "Pesanan Saya"
     },
     "status": {
-      "processing": "Proses",
+      "none": "Tidak ada",
+      "pending": "Pesanan tertunda",
       "completed": "Selesai",
+      "refunded": "Refund",
+      "accepted": "Diterima",
+      "refused": "Ditolak",
+      "processing": "Proses",
+      "processed": "Proses",
       "cancelled": "Dibatalkan",
       "all": "Semua"
     },
+    "statusPlaymate": {
+      "none": "Tidak ada",
+      "pending": "Pesanan tertunda",
+      "completed": "Selesai",
+      "refunded": "Refund",
+      "accepted": "Pesanan diterima",
+      "refused": "Ditolak",
+      "processing": "Dalam layanan",
+      "processed": "Selesai",
+      "cancelled": "Dibatalkan"
+    },
     "detail": {
       "productType": "Tipe produk",
       "quantity": "Jumlah pembelian",

+ 18 - 1
i18n/locales/zh.json

@@ -12,11 +12,28 @@
       "myOrders": "我的订单"
     },
     "status": {
-      "processing": "进行中",
+      "none": "无",
+      "pending": "待支付",
       "completed": "已完成",
+      "refunded": "已退款",
+      "accepted": "已接单",
+      "refused": "已拒绝",
+      "processing": "进行中",
+      "processed": "进行中",
       "cancelled": "已取消",
       "all": "全部"
     },
+    "statusPlaymate": {
+      "none": "无",
+      "pending": "待接单",
+      "completed": "已完成",
+      "refunded": "已退款",
+      "accepted": "已接单",
+      "refused": "已拒绝",
+      "processing": "服务中",
+      "processed": "已完成",
+      "cancelled": "已取消"
+    },
     "detail": {
       "productType": "产品类型",
       "quantity": "购买数量",