promo.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. import { server } from "@/utils/client";
  2. export interface RedPacketParams {
  3. /**
  4. * 活动id
  5. */
  6. id: number;
  7. // 红包索引
  8. index: number;
  9. }
  10. export interface RedPacketInfoType {
  11. red_packets: RedPacket[];
  12. /**
  13. * 历史领取红包总次数
  14. */
  15. total_receive_red_packet: number;
  16. /**
  17. * 历史红包总金额
  18. */
  19. total_red_packet: number;
  20. }
  21. export interface RedPacket {
  22. /**
  23. * 红包雨结束时间
  24. */
  25. end_time: number;
  26. /**
  27. * 图片
  28. */
  29. icon: string;
  30. /**
  31. * 活动ID
  32. */
  33. id: number;
  34. /**
  35. * 红包索引,抢红包时用
  36. */
  37. index: number;
  38. /**
  39. * 是否领取
  40. */
  41. is_receive: boolean;
  42. /**
  43. * 活动是否开始
  44. */
  45. is_start: boolean;
  46. rewards: Reward[];
  47. /**
  48. * 红包雨开始时间
  49. */
  50. start_time: number;
  51. }
  52. export interface Reward {
  53. /**
  54. * 红包等级
  55. */
  56. level: number;
  57. /**
  58. * 红包随机范围上限
  59. */
  60. max_amount: number;
  61. /**
  62. * vip范围的上限
  63. */
  64. max_vip: number;
  65. /**
  66. * 红包随机范围下限
  67. */
  68. min_amount: number;
  69. /**
  70. * vip范围的下限
  71. */
  72. min_vip: number;
  73. /**
  74. * 打码倍数
  75. */
  76. multiple: number;
  77. /**
  78. * 红包总金额
  79. */
  80. total: number;
  81. }
  82. // 未登陆的红包信息
  83. export const redPacketApi = () => {
  84. return server.request<any>({
  85. url: "/v1/api/front/activity/red_packet",
  86. data: { renter_id: "10000" },
  87. method: "POST",
  88. });
  89. };
  90. // 登陆后的红包状态信息
  91. export const lredPacketApi = () => {
  92. return server.request<any>({
  93. url: "/v1/api/user/activity/red_packet",
  94. data: { renter_id: "10000" },
  95. method: "POST",
  96. });
  97. };
  98. export const receiveRedPacketApi = (data: RedPacketParams) => {
  99. return server.request<any>({
  100. url: "/v1/api/user/receive_red_packet",
  101. data,
  102. method: "POST",
  103. });
  104. };
  105. export interface PayDataType {
  106. first_pay: FirstPay[];
  107. pay: Pay[];
  108. }
  109. export interface FirstPay {
  110. /**
  111. * 奖励条件
  112. */
  113. condition: FirstPayCondition[];
  114. /**
  115. * 优惠类型(1固定金额2百分比)
  116. */
  117. discount_type: number;
  118. /**
  119. * 时长(分) 0表示不限制时间
  120. */
  121. duration: number;
  122. /**
  123. * 活动ID
  124. */
  125. id: number;
  126. /**
  127. * 活动名称
  128. */
  129. name: string;
  130. /**
  131. * 可参与次数 -1表示不限制次数
  132. */
  133. num: number;
  134. /**
  135. * 支付类型
  136. */
  137. pay_type: string[];
  138. end_time: number;
  139. }
  140. export interface FirstPayCondition {
  141. /**
  142. * 参加金额
  143. */
  144. amount: string;
  145. /**
  146. * 奖励代币类型1现金2彩金3免费币4重玩币
  147. */
  148. coin_type: string;
  149. /**
  150. * 最多获取奖励
  151. */
  152. max_reward: string;
  153. /**
  154. * 充值奖励 1固定额度奖励2比百分奖励(放大100倍)
  155. */
  156. reward: string;
  157. /**
  158. * 打码倍率
  159. */
  160. rollover: string;
  161. [property: string]: any;
  162. }
  163. export interface Pay {
  164. /**
  165. * 奖励条件
  166. */
  167. condition: PayCondition[];
  168. /**
  169. * 优惠类型(1固定金额2百分比)
  170. */
  171. discount_type: number;
  172. /**
  173. * 截止时间
  174. */
  175. end_time: number;
  176. /**
  177. * 活动ID
  178. */
  179. id: number;
  180. /**
  181. * 活动名称
  182. */
  183. name: string;
  184. /**
  185. * 可参与次数 -1表示不限制次数
  186. */
  187. num: number;
  188. /**
  189. * 支付类型
  190. */
  191. pay_type: string[];
  192. /**
  193. * 开始时间
  194. */
  195. start_time: number;
  196. }
  197. export interface PayCondition {
  198. /**
  199. * 参加金额
  200. */
  201. amount: number;
  202. /**
  203. * 奖励代币类型1现金2彩金3免费币4重玩币
  204. */
  205. coin_type: string;
  206. /**
  207. * 最多获取奖励
  208. */
  209. max_reward: string;
  210. /**
  211. * 充值奖励 1固定额度奖励2比百分奖励(放大100倍)
  212. */
  213. reward: string;
  214. /**
  215. * 打码倍率
  216. */
  217. rollover: string;
  218. }
  219. export const getPaysApi = async () => {
  220. return server.post<PayDataType>({
  221. url: "/v1/api/front/activity/pay",
  222. });
  223. };