[Snow Team] frontend-fixer-2: auto-commit work
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { apiClient } from '@/shared/api/client'
|
||||
import type { ApiResponse } from '@/shared/types/types'
|
||||
import type { ApiResponse, PaginatedResult } from '@/shared/types/types'
|
||||
import type { HandoffStatus, OrderStatus, SettlementStatus } from '@/shared/types/status'
|
||||
import { yuanToCent } from '@/shared/utils/money'
|
||||
|
||||
export interface Order {
|
||||
id: number
|
||||
@@ -25,6 +26,14 @@ export interface Order {
|
||||
deposit_original_amount_cent: number
|
||||
deposit_waived_amount_cent: number
|
||||
platform_fee_cent?: number
|
||||
// Legacy yuan fields may be present from cached/older API payloads during rollout.
|
||||
display_amount?: number
|
||||
rent_amount?: number
|
||||
owner_rent_amount?: number
|
||||
deposit_amount?: number
|
||||
deposit_original_amount?: number
|
||||
deposit_waived_amount?: number
|
||||
platform_fee?: number
|
||||
account_snapshot?: Record<string, unknown>
|
||||
listing_snapshot?: string
|
||||
checkout_info?: string
|
||||
@@ -55,6 +64,16 @@ export interface Checkout {
|
||||
deposit_deduct_amount_cent: number
|
||||
renter_refund_amount_cent?: number
|
||||
owner_income_amount_cent?: number
|
||||
display_amount?: number
|
||||
rent_amount?: number
|
||||
owner_rent_amount?: number
|
||||
platform_fee?: number
|
||||
deposit_amount?: number
|
||||
consumable_amount?: number
|
||||
other_amount?: number
|
||||
deposit_deduct_amount?: number
|
||||
renter_refund_amount?: number
|
||||
owner_income_amount?: number
|
||||
content: string
|
||||
evidence_urls: string[]
|
||||
owner_adjustment_reason: string
|
||||
@@ -98,13 +117,77 @@ export interface PaymentOrder {
|
||||
updated_at: string
|
||||
}
|
||||
|
||||
// API functions below remain the same, TypeScript will catch any mismatches
|
||||
export interface OrderAgreements {
|
||||
virtual_asset_purchase: { title: string; content: string }
|
||||
renter_agreement: { title: string; content: string }
|
||||
}
|
||||
|
||||
export interface PostRentalNotice {
|
||||
title: string
|
||||
content: string
|
||||
}
|
||||
|
||||
export interface SubmitCheckoutPayload {
|
||||
content: string
|
||||
consumable_amount?: number
|
||||
coin_consumed_m: number
|
||||
other_amount?: number
|
||||
deposit_deduct_amount?: number
|
||||
evidence_urls: string[]
|
||||
reason?: string
|
||||
}
|
||||
|
||||
interface SubmitCheckoutRequest {
|
||||
content: string
|
||||
consumable_amount_cent?: number
|
||||
coin_consumed_m: number
|
||||
other_amount_cent?: number
|
||||
deposit_deduct_amount_cent?: number
|
||||
evidence_urls: string[]
|
||||
reason?: string
|
||||
}
|
||||
|
||||
export interface StartOrderPaymentRequest {
|
||||
pay_way?: string
|
||||
jspay_flag?: string
|
||||
}
|
||||
|
||||
export interface RefundStatus {
|
||||
order_id: number
|
||||
refund_status: string
|
||||
refund_amount_cent: number
|
||||
refund_no?: string
|
||||
refunded_at?: string
|
||||
}
|
||||
|
||||
function toCheckoutRequest(payload: SubmitCheckoutPayload): SubmitCheckoutRequest {
|
||||
return {
|
||||
content: payload.content,
|
||||
consumable_amount_cent: yuanToCent(payload.consumable_amount),
|
||||
coin_consumed_m: payload.coin_consumed_m,
|
||||
other_amount_cent: yuanToCent(payload.other_amount),
|
||||
deposit_deduct_amount_cent: yuanToCent(payload.deposit_deduct_amount),
|
||||
evidence_urls: payload.evidence_urls,
|
||||
reason: payload.reason,
|
||||
}
|
||||
}
|
||||
|
||||
export async function fetchOrderAgreements() {
|
||||
const { data } = await apiClient.get<ApiResponse<OrderAgreements>>('/order-agreements')
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function fetchPostRentalNotice() {
|
||||
const { data } = await apiClient.get<ApiResponse<PostRentalNotice>>('/post-rental-notice')
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function fetchOrders() {
|
||||
const { data } = await apiClient.get<ApiResponse<Order[]>>('/orders')
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function fetchOrder(id: number) {
|
||||
export async function fetchOrder(id: string | number) {
|
||||
const { data } = await apiClient.get<ApiResponse<Order>>(`/orders/${id}`)
|
||||
return data.data
|
||||
}
|
||||
@@ -119,16 +202,8 @@ export async function cancelOrder(id: number) {
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function startPayment(orderId: number, payWay: string, jsPayFlag?: string) {
|
||||
const { data } = await apiClient.post<ApiResponse<PaymentOrder>>(`/orders/${orderId}/pay`, {
|
||||
pay_way: payWay,
|
||||
jspay_flag: jsPayFlag || '',
|
||||
})
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function queryPayment(orderId: number) {
|
||||
const { data } = await apiClient.post<ApiResponse<PaymentOrder>>(`/orders/${orderId}/pay/query`)
|
||||
export async function submitHandoff(id: number, content: string) {
|
||||
const { data } = await apiClient.post<ApiResponse<HandoffRecord>>(`/orders/${id}/handoffs`, { content })
|
||||
return data.data
|
||||
}
|
||||
|
||||
@@ -140,32 +215,108 @@ export async function confirmHandoff(orderId: number, type: string, content: str
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function createCheckout(
|
||||
orderId: number,
|
||||
payload: {
|
||||
consumable_amount: number
|
||||
coin_consumed_m: number
|
||||
other_amount: number
|
||||
deposit_deduct_amount: number
|
||||
content: string
|
||||
evidence_urls: string[]
|
||||
}
|
||||
) {
|
||||
const { data } = await apiClient.post<ApiResponse<Checkout>>(`/orders/${orderId}/checkout`, payload)
|
||||
export async function fetchHandoffRecords(id: string | number) {
|
||||
const { data } = await apiClient.get<ApiResponse<HandoffRecord[]>>(`/orders/${id}/handoffs`)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function acceptCheckout(orderId: number) {
|
||||
const { data } = await apiClient.post<ApiResponse<{ accepted: boolean }>>(`/orders/${orderId}/checkout/accept`)
|
||||
export async function confirmReceive(id: number) {
|
||||
const { data } = await apiClient.post<ApiResponse<{ confirmed: boolean }>>(`/orders/${id}/receive`)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function rejectCheckout(orderId: number) {
|
||||
const { data } = await apiClient.post<ApiResponse<{ rejected: boolean }>>(`/orders/${orderId}/checkout/reject`)
|
||||
export async function startOrderPayment(orderId: number, req: StartOrderPaymentRequest = {}) {
|
||||
const { data } = await apiClient.post<ApiResponse<PaymentOrder>>(`/orders/${orderId}/pay`, {
|
||||
pay_way: req.pay_way || 'wechat',
|
||||
jspay_flag: req.jspay_flag || '',
|
||||
})
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function counterCheckout(orderId: number, checkoutId: number) {
|
||||
const { data } = await apiClient.post<ApiResponse<Checkout>>(`/orders/${orderId}/checkout/${checkoutId}/counter`)
|
||||
export function startPayment(orderId: number, payWay: string, jsPayFlag?: string) {
|
||||
return startOrderPayment(orderId, { pay_way: payWay, jspay_flag: jsPayFlag || '' })
|
||||
}
|
||||
|
||||
export async function queryOrderPayment(orderId: number) {
|
||||
const { data } = await apiClient.post<ApiResponse<PaymentOrder>>(`/orders/${orderId}/pay/query`)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export function queryPayment(orderId: number) {
|
||||
return queryOrderPayment(orderId)
|
||||
}
|
||||
|
||||
export async function submitCheckout(id: number, payload: SubmitCheckoutPayload) {
|
||||
const { data } = await apiClient.post<ApiResponse<Checkout>>(
|
||||
`/orders/${id}/checkout`,
|
||||
toCheckoutRequest(payload)
|
||||
)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export function createCheckout(id: number, payload: SubmitCheckoutPayload) {
|
||||
return submitCheckout(id, payload)
|
||||
}
|
||||
|
||||
export async function confirmCheckout(id: number) {
|
||||
const { data } = await apiClient.post<ApiResponse<{ confirmed: boolean }>>(
|
||||
`/orders/${id}/checkout/confirm`
|
||||
)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function acceptCheckout(id: number) {
|
||||
const { data } = await apiClient.post<ApiResponse<{ accepted: boolean }>>(`/orders/${id}/checkout/accept`)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function rejectCheckout(id: number) {
|
||||
const { data } = await apiClient.post<ApiResponse<{ rejected: boolean }>>(`/orders/${id}/checkout/reject`)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function counterCheckout(id: number, payload: SubmitCheckoutPayload) {
|
||||
const { data } = await apiClient.post<ApiResponse<Checkout>>(
|
||||
`/orders/${id}/checkout/counter`,
|
||||
toCheckoutRequest(payload)
|
||||
)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function fetchAdminOrders(page = 1, pageSize = 20) {
|
||||
const { data } = await apiClient.get<ApiResponse<PaginatedResult<Order>>>('/admin/orders', {
|
||||
params: { page, page_size: pageSize },
|
||||
})
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function fetchAdminOrder(id: string | number) {
|
||||
const { data } = await apiClient.get<ApiResponse<Order>>(`/admin/orders/${id}`)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function fetchAdminHandoffRecords(id: string | number) {
|
||||
const { data } = await apiClient.get<ApiResponse<HandoffRecord[]>>(`/admin/orders/${id}/handoffs`)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function adminCloseOrder(id: number, reason: string) {
|
||||
const { data } = await apiClient.post<ApiResponse<Order>>(`/admin/orders/${id}/close`, { reason })
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function adminMarkOrderAbnormal(id: number, reason: string) {
|
||||
const { data } = await apiClient.post<ApiResponse<Order>>(`/admin/orders/${id}/abnormal`, { reason })
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function adminRefundStatus(id: number) {
|
||||
const { data } = await apiClient.get<ApiResponse<RefundStatus>>(`/admin/orders/${id}/refund-status`)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function adminRefundOrder(id: number) {
|
||||
const { data } = await apiClient.post<ApiResponse<RefundStatus>>(`/admin/orders/${id}/refund`)
|
||||
return data.data
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user