更新:课程确认订单和订单支付功能初步完成

This commit is contained in:
2025-11-24 17:15:28 +08:00
parent b357225703
commit bfe0c09242
16 changed files with 2022 additions and 63 deletions

View File

@@ -4,7 +4,11 @@ import type { IApiResponse } from '@/api/types'
import type {
ICreateOrderParams,
IGooglePayVerifyParams,
ICreateOrderResponse
ICreateOrderResponse,
IOrderGoods,
ICoupon,
ICourseOrderCreateParams,
IOrderInitData
} from '@/types/order'
import type { IUserInfo } from '@/types/user'
@@ -59,5 +63,96 @@ export const orderApi = {
method: 'POST'
})
return res
},
/**
* 初始化订单准备数据
* @param params 初始化参数
*/
async initPrepareOrder(params: { uid: number; productList: Array<{ productId: number; quantity: number }> }) {
const res = await mainClient.request<IApiResponse<IOrderInitData>>({
url: 'common/buyOrder/initPrepareOrder',
method: 'POST',
data: params
})
return res
},
/**
* 根据商品ID获取商品详情列表
* @param productIds 商品ID字符串逗号分隔
*/
async getShopProductListByIds(productIds: string) {
const res = await mainClient.request<IApiResponse<{ shopProductList: IOrderGoods[] }>>({
url: 'book/buyOrder/getShopProductListByIds',
method: 'POST',
data: { productIds }
})
return res
},
/**
* 获取VIP优惠金额
* @param productList 商品列表
*/
async getVipDiscountAmount(productList: Array<{ productId: number; quantity: number }>) {
const res = await mainClient.request<IApiResponse<{ discountAmount: number }>>({
url: 'book/buyOrder/getVipDiscountAmount',
method: 'POST',
data: { productList }
})
return res
},
/**
* 获取地区优惠金额
* @param productList 商品列表
*/
async getDistrictAmount(productList: Array<{ productId: number; quantity: number }>) {
const res = await mainClient.request<IApiResponse<{ districtAmount: number }>>({
url: 'book/buyOrder/getDistrictAmount',
method: 'POST',
data: { productList }
})
return res
},
/**
* 获取可用优惠券列表
* @param shopProductInfos 商品信息字符串格式productId:price:quantity,productId:price:quantity
*/
async getCouponListPayment(shopProductInfos: string) {
const res = await mainClient.request<IApiResponse<{ couponHistoryList: ICoupon[] }>>({
url: 'common/coupon/getCouponListPayment',
method: 'POST',
data: { shopProductInfos }
})
return res
},
/**
* 更新购物车商品
* @param data 商品数据
*/
async updateCart(data: { productId: number; productAmount: number; price: number }) {
const res = await mainClient.request<IApiResponse>({
url: 'book/ordercart/update',
method: 'POST',
data
})
return res
},
/**
* 创建课程订单
* @param data 订单数据
*/
async placeCourseOrder(data: ICourseOrderCreateParams) {
const res = await mainClient.request<IApiResponse<{ orderSn: string; money: number }>>({
url: 'book/buyOrder/placeOrder',
method: 'POST',
data
})
return res
}
}