98 lines
2.5 KiB
TypeScript
98 lines
2.5 KiB
TypeScript
import request from '@/utils/request'
|
|
import type { ApiResult } from '@/api/auth'
|
|
|
|
/** 会员商品项类型(后端返回) */
|
|
export interface MemberProduct {
|
|
id: number
|
|
/** 商品名称 */
|
|
productName: string
|
|
/** 标签,如"限时优惠"、"最划算" */
|
|
tag: string
|
|
/** 主推标识 0=否 1=是 */
|
|
isFeatured: number
|
|
/** 购买按钮文字 */
|
|
buyButtonText: string
|
|
/** 实付价格(分) */
|
|
price: number
|
|
/** 划线价(分) */
|
|
originalPrice: number
|
|
/** 折算月价(分) */
|
|
monthlyPrice: number
|
|
/** 有效天数 */
|
|
durationDays: number
|
|
/** 排序,越小越靠前 */
|
|
sortOrder: number
|
|
/** 状态 0=下架 1=上架 */
|
|
status: number
|
|
/** 创建时间 */
|
|
createTime: { seconds: number; nanos: number }
|
|
/** 更新时间 */
|
|
updateTime: { seconds: number; nanos: number }
|
|
/** 逻辑删除 0=正常 非0=已删除 */
|
|
isDelete: number
|
|
}
|
|
|
|
/**
|
|
* 查询会员商品列表
|
|
* GET /member/product/list
|
|
*/
|
|
export function fetchMemberProductList() {
|
|
return request.get<any, ApiResult<MemberProduct[]>>('/member/product/list')
|
|
}
|
|
|
|
/** 创建订单请求参数 */
|
|
export interface CreateOrderParams {
|
|
/** 商品ID */
|
|
productId: string
|
|
/** 支付渠道 1=微信 2=支付宝 */
|
|
payChannel: number
|
|
}
|
|
|
|
/** 创建订单返回数据 */
|
|
export interface CreateOrderResult {
|
|
/** 订单ID,用于轮询状态 */
|
|
orderId: string
|
|
/** 支付渠道 */
|
|
payChannel: number
|
|
/** 支付数据(支付宝表单HTML / 微信二维码链接) */
|
|
payData: string
|
|
}
|
|
|
|
/**
|
|
* 创建会员订单
|
|
* POST /member/product/createOrder
|
|
*/
|
|
export function createMemberOrder(data: CreateOrderParams) {
|
|
return request.post<any, ApiResult<CreateOrderResult>>('/member/product/createOrder', data)
|
|
}
|
|
|
|
/** 订单详情返回数据 */
|
|
export interface OrderDetailResult {
|
|
/** 订单ID */
|
|
orderId: string
|
|
/** 订单编号 */
|
|
orderNo: string
|
|
/** 商品名称 */
|
|
productName: string
|
|
/** 实付金额(分) */
|
|
payAmount: number
|
|
/** 订单状态 0=待支付 1=已支付 2=已退款 3=已关闭 */
|
|
status: number
|
|
/** 支付渠道 1=微信 2=支付宝 */
|
|
payChannel: number
|
|
/** 支付时间 */
|
|
payTime: { seconds: number; nanos: number }
|
|
/** 下单时间 */
|
|
createTime: { seconds: number; nanos: number }
|
|
}
|
|
|
|
/**
|
|
* 查询订单详情
|
|
* GET /member/product/orderDetail
|
|
*/
|
|
export function fetchOrderDetail(orderId: string) {
|
|
return request.get<any, ApiResult<OrderDetailResult>>('/member/product/orderDetail', {
|
|
params: { orderId },
|
|
})
|
|
}
|