/**
 * 订单模块 - 订单、抽奖、支付相关接口
 */
import RequestManager from '../request';

/**
 * 获取订单状态
 * @param {String} order_num 订单号
 * @returns {Promise} 订单状态
 */
export const getOrderStatus = async (order_num) => {
	const res = await RequestManager.get('/get_order_status', {
		order_num
	}, true);
	return res;
};

/**
 * 获取订单列表
 * @param {Object} data 请求参数
 * @returns {Promise} 订单列表
 */
export const getOrderList = async (data) => {
	const res = await RequestManager.get('/get_order_list', data, true);
	return res;
};

/**
 * 创建网页支付订单
 * @param {Object} data 请求参数
 * @returns {Promise} 订单信息
 */
export const createWebPayOrder = async (data) => {
	const res = await RequestManager.post('/create_web_pay_order', data, true);
	return res;
};

/**
 * 获取订单链接
 * @param {String} order_num 订单号
 * @returns {Promise} 订单链接
 */
export const getOrderUrlLink = async (order_num) => {
	const res = await RequestManager.post('/get_order_url_link', {
		order_num: order_num
	}, true);
	return res;
};

/**
 * 获取账号token（测试用）
 * @param {Number} user_id 用户ID
 * @returns {Promise} token信息
 */
export const getUserTest = async (user_id) => {
	const res = await RequestManager.post('/get_user_test', { user_id: user_id }, true);
	return res;
};

/**
 * 一番赏金额计算
 * @param {Object} params 计算参数
 * @param {Number} params.goods_id 商品ID
 * @param {Number} params.num 购买数量
 * @param {Number} params.coupon_id 优惠券ID
 * @param {Number} params.use_integral 是否使用积分
 * @param {Number} params.use_money2_is 是否使用余额
 * @returns {Promise} 金额计算结果
 */
export const calcOrderMoney = async (params = {}) => {
	return await RequestManager.post('/ordermoney', params);
};

/**
 * 一番赏下单
 * @param {Object} params 下单参数
 * @param {Number} params.goods_id 商品ID
 * @param {Number} params.num 购买数量
 * @param {Number} params.coupon_id 优惠券ID
 * @param {Number} params.use_integral 是否使用积分
 * @param {Number} params.use_money2_is 是否使用余额
 * @param {Number} params.goods_num 箱号
 * @returns {Promise} 下单结果
 */
export const createOrder = async (params = {}) => {
	return await RequestManager.post('/orderbuy', params);
};

/**
 * 无限赏金额计算
 * @param {Object} params 计算参数
 * @param {Number} params.goods_id 商品ID
 * @param {Number} params.num 购买数量
 * @param {Number} params.coupon_id 优惠券ID
 * @param {Number} params.use_integral 是否使用积分
 * @param {Number} params.use_money2_is 是否使用余额
 * @returns {Promise} 金额计算结果
 */
export const calcInfiniteOrderMoney = async (params = {}) => {
	return await RequestManager.post('/infinite_ordermoney', params);
};

/**
 * 无限赏下单
 * @param {Object} params 下单参数
 * @returns {Promise} 下单结果
 */
export const createInfiniteOrder = async (params = {}) => {
	return await RequestManager.post('/infinite_orderbuy', params);
};

/**
 * 商城金额计算
 * @param {Object} params 计算参数
 * @param {Number} params.goods_id 商品ID
 * @param {Number} params.num 购买数量
 * @param {Number} params.coupon_id 优惠券ID
 * @param {Number} params.use_integral 是否使用积分
 * @param {Number} params.use_money2_is 是否使用余额
 * @returns {Promise} 金额计算结果
 */
export const calcMallOrderMoney = async (params = {}) => {
	return await RequestManager.post('/mall_ordermoney', params);
};

/**
 * 商城下单
 * @param {Object} params 下单参数
 * @returns {Promise} 下单结果
 */
export const createMallOrder = async (params = {}) => {
	return await RequestManager.post('/mall_orderbuy', params);
};

/**
 * 获取订单详情
 * @param {String} orderId 订单ID
 * @returns {Promise} 订单详情
 */
export const getOrderDetail = async (orderId) => {
	return await RequestManager.get('/order_detail', {
		order_id: orderId
	}, true);
};

/**
 * 获取一番赏抽奖结果
 * @param {String} orderId 订单ID
 * @returns {Promise} 抽奖结果
 */
export const getPrizeOrderLog = async (orderId) => {
	return await RequestManager.get('/prize_order_log', {
		order_id: orderId
	}, true);
};

/**
 * 获取一番赏抽奖结果（通过订单号）
 * @param {String} orderNum 订单号
 * @returns {Promise} 抽奖结果
 */
export const getPrizeOrderLogByNum = async (orderNum) => {
	return await RequestManager.post('/prizeorderlog', {
		order_num: orderNum
	}, false);
};

/**
 * 获取无限赏抽奖结果
 * @param {Object} params 查询参数
 * @param {Number} params.goods_id 商品ID
 * @param {Number} params.page 页码
 * @returns {Promise} 抽奖结果
 */
export const getInfinitePrizeOrderLog = async (params = {}) => {
	return await RequestManager.get('/infinite_shang_log', params, true);
};

/**
 * 获取无限赏抽奖结果（通过订单号）
 * @param {String} orderNum 订单号
 * @returns {Promise} 抽奖结果
 */
export const getInfinitePrizeOrderLogByNum = async (orderNum) => {
	return await RequestManager.post('/infinite_prizeorderlog', {
		order_num: orderNum
	}, false);
};

/**
 * 道具卡抽奖
 * @param {Object} params 抽奖参数
 * @param {Number} params.goods_id 商品ID
 * @param {Number} params.item_card_id 道具卡ID
 * @param {Number} params.num 抽奖次数
 * @returns {Promise} 抽奖结果
 */
export const useItemCard = async (params = {}) => {
	return await RequestManager.post('/item_card_chou', params);
};

/**
 * 获取道具卡列表
 * @param {Object} params 查询参数
 * @param {Number} params.page 页码
 * @param {Number} params.pageSize 每页数量
 * @returns {Promise} 道具卡列表
 */
export const getItemCardList = async (params = {}) => {
	return await RequestManager.get('/item_card_list', params, true);
};

/**
 * 使用优惠券下单
 * @param {Object} data 下单参数
 * @returns {Promise} 下单结果
 */
export const useCouponOrder = async (data) => {
	return await RequestManager.post('/used', data, true);
};

/**
 * 获取订单详情（通过订单号）
 * @param {String} orderNum 订单号
 * @returns {Promise} 订单详情
 */
export const getOrderDetailByNum = async (orderNum) => {
	return await RequestManager.post('/order_detail', {
		order_num: orderNum
	}, true);
};

/**
 * 获取订单列表（分页）
 * @param {Object} params 查询参数
 * @param {Number} params.page 页码
 * @param {Number} params.page_size 每页数量
 * @returns {Promise} 订单列表
 */
export const getOrderListPaged = async (params = {}) => {
	return await RequestManager.post('/order_list', params, true);
};

/**
 * 获取无限赏中奖记录
 * @param {Object} params 查询参数
 * @param {Number} params.goods_id 商品ID
 * @returns {Promise} 中奖记录
 */
export const getInfinitePrizeRecords = async (params = {}) => {
	return await RequestManager.post('/infinite_prizerecords', params, true);
};

/**
 * 连击赏秘宝下单
 * @param {Object} params 下单参数
 * @param {Number} params.goods_id 商品ID
 * @param {Number} params.prize_num 抽奖次数
 * @param {Number} params.is_mibao 是否秘宝池
 * @returns {Promise} 下单结果
 */
export const createInfiniteMibaoOrder = async (params = {}) => {
	return await RequestManager.post('/infinite_mibao_orderbuy', params);
};

