PayStore.ts 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. import {
  2. APP_PAYMENT_ORDER,
  3. APP_PAY_ORDER_LIST,
  4. APP_RECHARGE_CONFIG,
  5. APP_WITHDRAW_BASE_INFO,
  6. APP_WITHDRAW_PAYOUT,
  7. APP_WITHDRAW_RECORD,
  8. APP_WITHDRAW_SET_INFO,
  9. success,
  10. } from '@scripts/api';
  11. import { ApiEnvelope, Http } from '@scripts/request';
  12. import {
  13. IGoodsConfig,
  14. IPaymentOrder,
  15. IPaymentOrderRequest,
  16. IPayOrderItem,
  17. IPayOrderPageData,
  18. IRechargeConfigData,
  19. IWithdrawBaseInfo,
  20. IWithdrawBaseInfoRequest,
  21. IWithdrawPayoutRequest,
  22. IWithdrawRecordItem,
  23. IWithdrawRecordPageData,
  24. IWithdrawRecordRequest,
  25. IWithdrawSetInfoRequest,
  26. } from './data';
  27. class PayStore {
  28. private _config: IGoodsConfig[] = [];
  29. private _payOrderList: IPayOrderItem[] = [];
  30. private _withdrawBaseInfo: IWithdrawBaseInfo = null;
  31. private _withdrawRecord: IWithdrawRecordItem[] = [];
  32. public get config() { return this._config; }
  33. public get payOrderList() { return this._payOrderList; }
  34. public get withdrawBaseInfo() { return this._withdrawBaseInfo; }
  35. public get withdrawRecord() { return this._withdrawRecord; }
  36. async reqRechargeConfig() {
  37. const res = await Http.call<IRechargeConfigData>(APP_RECHARGE_CONFIG);
  38. if (success(res) && res.data) {
  39. let icon_id = 1;
  40. const goods_list = Array.isArray(res.data.list) ? res.data.list : [];
  41. this._config = [...goods_list, ...goods_list].map(goods => {
  42. goods.gears = JSON.parse(goods.gear);
  43. goods.cp = Number(goods.cp);
  44. goods.cp_reward = Number(goods.cp_reward);
  45. goods.cp_reward_display_percent = Number(goods.cp_reward_display_percent);
  46. goods.gc = Number(goods.gc);
  47. goods.gc_reward = Number(goods.gc_reward);
  48. goods.gc_reward_display_percent = Number(goods.gc_reward_display_percent);
  49. goods.sc = Number(goods.sc);
  50. goods.sc_reward = Number(goods.sc_reward);
  51. goods.sc_reward_display_percent = Number(goods.sc_reward_display_percent);
  52. goods.icon_id = icon_id;
  53. icon_id++;
  54. return goods;
  55. });
  56. return true
  57. }
  58. return false;
  59. }
  60. async reqPaymentOrder(params: IPaymentOrderRequest): Promise<boolean> {
  61. const res = await Http.call<Record<string, unknown>>(APP_PAYMENT_ORDER, params as any);
  62. if (success(res) && res.data && !Array.isArray(res.data)) {
  63. return true;
  64. }
  65. return false;
  66. }
  67. async reqPayOrderList(page = 1, pageSize = 10) {
  68. const res = await Http.call<IPayOrderPageData>(APP_PAY_ORDER_LIST, { page, pageSize });
  69. if (success(res) && res.data) {
  70. this._payOrderList = Array.isArray(res.data.data) ? res.data.data : [];
  71. return true;
  72. }
  73. return false;
  74. }
  75. async reqWithdrawBaseInfo(arg: IWithdrawBaseInfoRequest = {}): Promise<boolean> {
  76. const res = await Http.call<IWithdrawBaseInfo>(APP_WITHDRAW_BASE_INFO, {
  77. paypass: arg.paypass || '',
  78. });
  79. if (success(res) && res.data) {
  80. this._withdrawBaseInfo = this.parseWithdrawBaseInfo(res.data);
  81. return true;
  82. }
  83. return false;
  84. }
  85. async reqWithdrawRecord(arg: IWithdrawRecordRequest = {}) {
  86. const params: Record<string, unknown> = {
  87. paypass: arg.paypass || '',
  88. };
  89. if (arg.score_type !== undefined) params.score_type = arg.score_type;
  90. if (arg.sort_by !== undefined) params.sort_by = arg.sort_by;
  91. if (arg.sort !== undefined) params.sort = arg.sort;
  92. const res = await Http.call<IWithdrawRecordPageData>(APP_WITHDRAW_RECORD, params);
  93. if (success(res) && res.data) {
  94. this._withdrawRecord = Array.isArray(res.data.data) ? res.data.data : [];
  95. return true;
  96. }
  97. return false;
  98. }
  99. async reqWithdrawSetInfo(arg: IWithdrawSetInfoRequest): Promise<boolean> {
  100. const params = {
  101. paypass: arg.paypass || '',
  102. cbPixType: arg.PixType,
  103. bank: arg.bank,
  104. account: arg.account,
  105. userName: arg.userName,
  106. phone: arg.phone,
  107. PAN: arg.PAN,
  108. email: arg.email,
  109. IFSC: arg.IFSC,
  110. adhaar: arg.adhaar,
  111. branceBank: arg.branceBank,
  112. PixNum: arg.PixNum,
  113. code: arg.code || '',
  114. };
  115. const res = await Http.call(APP_WITHDRAW_SET_INFO, params);
  116. if (success(res)) {
  117. await this.reqWithdrawBaseInfo({ paypass: arg.paypass });
  118. return true;
  119. }
  120. return false;
  121. }
  122. async reqWithdrawPayout(arg: IWithdrawPayoutRequest): Promise<boolean> {
  123. const res = await Http.call(APP_WITHDRAW_PAYOUT, {
  124. paypass: arg.paypass || '',
  125. score: arg.score,
  126. });
  127. if (success(res)) {
  128. await this.reqWithdrawBaseInfo({ paypass: arg.paypass });
  129. return true;
  130. }
  131. return false;
  132. }
  133. clear() {
  134. this._payOrderList = [];
  135. this._withdrawBaseInfo = null;
  136. this._withdrawRecord = [];
  137. }
  138. private parseWithdrawBaseInfo(data: IWithdrawBaseInfo): IWithdrawBaseInfo {
  139. const info = { ...data };
  140. if (Number(info.SumCanExchange) < 0) info.SumCanExchange = 0;
  141. const defaultCooldown = Number(info.withdraw_info_cooldown_seconds || 0);
  142. const cashappCooldown = Number(
  143. info.withdraw_info_precheck?.cashapp?.cooldown_seconds ?? defaultCooldown,
  144. );
  145. const paypalCooldown = Number(
  146. info.withdraw_info_precheck?.paypal?.cooldown_seconds ?? defaultCooldown,
  147. );
  148. info.cashapp_update_cd = cashappCooldown > 0 ? Date.now() + cashappCooldown * 1000 : 0;
  149. info.paypal_update_cd = paypalCooldown > 0 ? Date.now() + paypalCooldown * 1000 : 0;
  150. info.lastUpdateTs = Date.now() - Number(info.withdraw_info_update_time_pass || 0) * 1000;
  151. return info;
  152. }
  153. }
  154. export const payStore = new PayStore();