// api/modules/order.ts import { mainClient } from '@/api/clients/main' import type { IApiResponse } from '@/api/types' import type { ICreateOrderParams, IGooglePayVerifyParams, ICreateOrderResponse, IOrderGoods, ICoupon, ICourseOrderCreateParams, IOrderInitData } from '@/types/order' import type { IUserInfo } from '@/types/user' /** * 订单相关 API */ export const orderApi = { /** * 创建订单 * @param data 订单数据 */ async createOrder(data: ICreateOrderParams) { const res = await mainClient.request>({ url: 'bookAbroad/order/placeOrder', method: 'POST', data }) return res }, /** * 验证 Google Pay 支付 * @param params 支付验证参数 */ async verifyGooglePay(params: IGooglePayVerifyParams) { const res = await mainClient.request({ url: 'pay/googlepay/googleVerify', method: 'POST', data: params }) return res }, /** * 获取用户信息(包含虚拟币余额) */ async getUserInfo() { const res = await mainClient.request>({ url: 'common/user/getUserInfo', method: 'POST' }) return res }, /** * 刷新用户信息 * @param userId 用户ID */ async refreshUserInfo(userId: number) { const res = await mainClient.request>({ url: `book/user/info/${userId}`, method: 'POST' }) return res }, /** * 初始化订单准备数据 * @param params 初始化参数 */ async initPrepareOrder(params: { uid: number; productList: Array<{ productId: number; quantity: number }> }) { const res = await mainClient.request>({ url: 'common/buyOrder/initPrepareOrder', method: 'POST', data: params }) return res }, /** * 根据商品ID获取商品详情列表 * @param productIds 商品ID字符串(逗号分隔) */ async getShopProductListByIds(productIds: string) { const res = await mainClient.request>({ 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>({ 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>({ 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>({ 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({ url: 'book/ordercart/update', method: 'POST', data }) return res }, /** * 创建课程订单 * @param data 订单数据 */ async placeCourseOrder(data: ICourseOrderCreateParams) { const res = await mainClient.request>({ url: 'book/buyOrder/placeOrder', method: 'POST', data }) return res } }