import { APP_FIRST_PACK, APP_FIRST_PACK_VISIBLE, APP_PAYMENT_ORDER, APP_PAY_ORDER_LIST, APP_RECHARGE_CONFIG, APP_WEEKLY_PASS, } from '@scripts/api'; import { success } from '@scripts/api/ApiHelper'; import { ApiEnvelope, Http } from '@scripts/request'; import { IFirstPack, IFirstPackVisible, IGoodsConfig, IPaymentOrder, IPaymentOrderRequest, IPayOrderItem, IPayOrderPageData, IRechargeConfigData, } from './data'; function formatGoods(list: IGoodsConfig[], callbackfn?: (item: IGoodsConfig, index: number) => void) { list.forEach((goods, index) => { goods.gears = JSON.parse(goods.gear); goods.cp = Number(goods.cp); goods.cp_reward = Number(goods.cp_reward); goods.cp_reward_display_percent = Number(goods.cp_reward_display_percent); goods.gc = Number(goods.gc); goods.gc_reward = Number(goods.gc_reward); goods.gc_reward_display_percent = Number(goods.gc_reward_display_percent); goods.gc_vip_reward = Number(goods.gc_vip_reward); goods.gc_vip_reward_display_percent = Number(goods.gc_vip_reward_display_percent); goods.sc = Number(goods.sc); goods.sc_reward = Number(goods.sc_reward); goods.sc_reward_display_percent = Number(goods.sc_reward_display_percent); callbackfn && callbackfn(goods, index); }) return list; } class PayStore { private _config: IGoodsConfig[] = []; private _payOrderList: IPayOrderItem[] = []; private _firstPackVisible = false; public get config() { return this._config; } public get payOrderList() { return this._payOrderList; } public get firstPackVisible() { return this._firstPackVisible; } async reqRechargeConfig() { const res = await Http.call(APP_RECHARGE_CONFIG); if (success(res) && res.data) { let icon_id = 1; const goods_list = Array.isArray(res.data.list) ? res.data.list : []; this._config = formatGoods(goods_list, goods => { goods.icon_id = icon_id; icon_id++; }) return true } return false; } async reqPaymentOrder(params: IPaymentOrderRequest): Promise { const res = await Http.call>(APP_PAYMENT_ORDER, params as any); if (success(res) && res.data && !Array.isArray(res.data)) { return true; } return false; } async reqPayOrderList(page = 1, pageSize = 10) { const res = await Http.call(APP_PAY_ORDER_LIST, { page, pageSize }); if (success(res) && res.data) { this._payOrderList = Array.isArray(res.data.data) ? res.data.data : []; return true; } return false; } /** 首冲入口是否可见 */ async reqFirstPackVisible() { const res = await Http.call(APP_FIRST_PACK_VISIBLE); if (success(res)) { this._firstPackVisible = res.data.show; return res.data.show; } return false; } async reqFirstPackInfo() { const res = await Http.call(APP_FIRST_PACK); if (success(res)) { formatGoods(res.data.list); } return res; } async reqWeeklyPass() { const res = await Http.call(APP_WEEKLY_PASS); } clear() { this._payOrderList = []; } } export const payStore = new PayStore();