api.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
  1. import {createAsyncThunk} from "@reduxjs/toolkit";
  2. import {
  3. APP_ACCOUNTS_PAY_INFO, APP_AGENT_CHECK, APP_AGENT_GET, APP_AGENT_HISTORY,
  4. APP_CHANGE_EMAIL,
  5. APP_CHANGE_INFO,
  6. APP_CHANGE_PASS,
  7. APP_CHANGE_PAY_PASS,
  8. APP_CHANGE_PHONE, APP_CUSTOMER_LEAVEMSG,
  9. APP_CUSTOMER_SERVICE,
  10. APP_FIRSTPAY_CONFIG, APP_GAME_ACTIVITY,
  11. APP_GAME_INFO,
  12. APP_GAME_LIST,
  13. APP_LOGIN,
  14. APP_LOGOUT, APP_MAIL_CHECK, APP_MAIL_DEL, APP_MAIL_LIST, APP_MAIL_READ, APP_MAIL_TAKE,
  15. APP_PAGE_MODULES, APP_PAY_ORDER_LIST,
  16. APP_PAYMENT_ORDER,
  17. APP_RECHARGE_CONFIG, APP_REDPACK_CHECK, APP_REDPACK_CONFIG, APP_REDPACK_RECEIVE,
  18. APP_REGISTER,
  19. APP_ROUTES, APP_TURNPLATE_BONUS, APP_TURNPLATE_HELP, APP_TURNPLATE_INDEX, APP_TURNPLATE_KAN,
  20. APP_WITHDRAW_BASE_INFO,
  21. APP_WITHDRAW_INFO, APP_WITHDRAW_PAYOUT, APP_WITHDRAW_RECORD, APP_WITHDRAW_SET_INFO,
  22. APP_WITHDRAW_TAX,
  23. REQ_STATUS
  24. } from "@api/config";
  25. import Http from "@api/request";
  26. import {updateGameList} from "@features/pageSlice";
  27. // import {APP_CHANNEL} from "@constants/app";
  28. import {updateAddScore, updateInsurePass, updateUserInfo, updateUserScore} from "@features/mainSlice";
  29. import {formatCash, localStorageGet, sleep} from "@utils/helpers";
  30. import {LOCAL_ACTIVITY_C, LOCAL_CUSTOM_LOCK, LOCAL_WHEEL_INVITE_CODE} from "@constants/localkey";
  31. import {toast} from "react-toastify";
  32. import {preDelMail} from "@features/mailSlice";
  33. const i18n=global.i18n;
  34. export const buildReqReducer=(builder,thunk,callback,statusCB=null)=>{
  35. if (builder==null||thunk==null)return;
  36. builder
  37. .addCase(thunk.pending, (state,action) => {
  38. //正在请求
  39. // state.status=REQ_STATUS.LOADING;
  40. if (statusCB)statusCB(state,REQ_STATUS.LOADING,action.meta.arg);
  41. })
  42. .addCase(thunk.fulfilled, (state, action) => {
  43. //请求成功
  44. if (statusCB)statusCB(state,REQ_STATUS.IDLE,action.meta.arg);
  45. if (callback)callback(state,action,action.meta.arg);
  46. // state.status=REQ_STATUS.IDLE;
  47. })
  48. .addCase(thunk.rejected, (state,action) => {
  49. //请求失败
  50. // state.status=REQ_STATUS.FAILED;
  51. if (statusCB)statusCB(state,REQ_STATUS.FAILED,action.meta.arg);
  52. });
  53. }
  54. //api
  55. //路由
  56. export const reqGetRoutes = createAsyncThunk(
  57. APP_ROUTES,
  58. async (thunkAPI) => {
  59. const response = await Http.get({url:APP_ROUTES})
  60. return response;
  61. },
  62. )
  63. //page 信息 pageID 为路由ID
  64. export const reqPageModules=createAsyncThunk(
  65. APP_PAGE_MODULES,
  66. async (pageID,thunkAPI) => {
  67. const response = await Http.get({url:APP_PAGE_MODULES+"/"+pageID});
  68. if (response){
  69. response.pageID=pageID;
  70. }
  71. return response;
  72. },
  73. )
  74. //gamelist more
  75. export const reqGameList=createAsyncThunk(
  76. APP_GAME_LIST,
  77. async (arg,thunkAPI) => {
  78. const {mkey,tabtype,page}=arg;
  79. // https://api.ouro777.com/game/gameList/?type=2&page=2
  80. const url=APP_GAME_LIST+"?type="+tabtype+"&page="+page;
  81. const response = await Http.get({url:url});
  82. if (response)response.mkey=mkey;
  83. thunkAPI.dispatch(updateGameList(response));
  84. return response;
  85. },
  86. )
  87. //login
  88. export const reqLogin=createAsyncThunk(
  89. APP_LOGIN,
  90. async (arg,thunkAPI)=>{
  91. //https://api.ouro777.com/game/login?country=55&account=12345678911&password=123456
  92. let lang=global.i18n.getCurrLang();
  93. let data={
  94. country:arg.country,
  95. account:arg.account,
  96. password:arg.password,
  97. lang:lang
  98. }
  99. let params={
  100. url:APP_LOGIN,
  101. data:data
  102. }
  103. const response = await Http.post(params);
  104. // const response = await Http.get(params);
  105. return response;
  106. },
  107. )
  108. //register
  109. export const reqRegister=createAsyncThunk(
  110. APP_REGISTER,
  111. async (arg,thunkAPI)=>{
  112. //https://api.ouro777.com/game/register?country=55&phone=12345678911&password=123456&&repassword=123456
  113. let lang=global.i18n.getCurrLang();
  114. let data={
  115. country:arg.country,
  116. phone:arg.account,
  117. password:arg.password,
  118. repassword:arg.repassword,
  119. lang:lang
  120. }
  121. let act=localStorageGet(LOCAL_WHEEL_INVITE_CODE);
  122. if (act!=null&&act!==""){
  123. data["act"]=act;
  124. }
  125. let c=localStorageGet(LOCAL_ACTIVITY_C);
  126. if (c!=null&&c!==""){
  127. data["c"]=c;
  128. }
  129. let params={
  130. url:APP_REGISTER,
  131. data:data
  132. }
  133. const response = await Http.post(params);
  134. return response;
  135. },
  136. )
  137. //logout
  138. export const reqLogout=createAsyncThunk(
  139. APP_LOGOUT,
  140. async (arg,thunkAPI)=>{
  141. let params={
  142. url:APP_LOGOUT,
  143. }
  144. const response = await Http.get(params);
  145. return response;
  146. },
  147. )
  148. //changeInfo
  149. export const reqChangeInfo=createAsyncThunk(
  150. APP_CHANGE_INFO,
  151. async (arg,thunkAPI)=>{
  152. let data={...arg};
  153. delete data.callback;
  154. let params={
  155. url:APP_CHANGE_INFO,
  156. data:data
  157. }
  158. const response = await Http.post(params);
  159. return response;
  160. },
  161. )
  162. //changePass
  163. export const reqChangePass=createAsyncThunk(
  164. APP_CHANGE_PASS,
  165. async (arg,thunkAPI)=>{
  166. let data={...arg};
  167. delete data.callback;
  168. let params={
  169. url:APP_CHANGE_PASS,
  170. data:data
  171. }
  172. const response = await Http.post(params);
  173. return response;
  174. },
  175. )
  176. //changePhone
  177. export const reqChangePhone=createAsyncThunk(
  178. APP_CHANGE_PHONE,
  179. async (arg,thunkAPI)=>{
  180. let data={...arg};
  181. delete data.callback;
  182. let params={
  183. url:APP_CHANGE_PHONE,
  184. data:data
  185. }
  186. const response = await Http.post(params);
  187. return response;
  188. },
  189. )
  190. //changeEmail
  191. export const reqChangeEmail=createAsyncThunk(
  192. APP_CHANGE_EMAIL,
  193. async (arg,thunkAPI)=>{
  194. let data={...arg};
  195. delete data.callback;
  196. let params={
  197. url:APP_CHANGE_EMAIL,
  198. data:data
  199. }
  200. const response = await Http.post(params);
  201. return response;
  202. },
  203. )
  204. //pay
  205. export const reqRechargeConfig=createAsyncThunk(
  206. APP_RECHARGE_CONFIG,
  207. async (arg,thunkAPI)=>{
  208. let params={
  209. url:APP_RECHARGE_CONFIG
  210. }
  211. const response=await Http.get(params);
  212. return response;
  213. }
  214. )
  215. export const reqFirstPayConfig=createAsyncThunk(
  216. APP_FIRSTPAY_CONFIG,
  217. async (arg,thunkAPI)=>{
  218. let params={
  219. url:APP_FIRSTPAY_CONFIG,
  220. params:{
  221. // Channel:APP_CHANNEL.Channel,
  222. // ChannelNumber:APP_CHANNEL.ChannelNumber,
  223. // UserID:arg
  224. }
  225. }
  226. const response=await Http.get(params);
  227. return response;
  228. }
  229. )
  230. export const reqGetAccountsPayInfo=createAsyncThunk(
  231. APP_ACCOUNTS_PAY_INFO,
  232. async (arg,thunkAPI)=>{
  233. let params={
  234. url:APP_ACCOUNTS_PAY_INFO,
  235. params:{
  236. // UserID:arg
  237. }
  238. }
  239. const response=await Http.get(params);
  240. return response;
  241. }
  242. )
  243. export const reqPaymentOrder=createAsyncThunk(
  244. APP_PAYMENT_ORDER,
  245. async (arg,thunkAPI)=>{
  246. let {user,price,goodsName,payType,GiftsID}=arg;
  247. let params={
  248. url:APP_PAYMENT_ORDER,
  249. params:{
  250. // userID:user.UserID,
  251. tranType:"0502",
  252. payAmt:price,
  253. goodsName:goodsName,
  254. buyIp:"",
  255. pay_type:payType,
  256. GiftsID:GiftsID,
  257. // pck:APP_CHANNEL.Channel,
  258. eventType:1,
  259. AdId:user.GlobalUID,
  260. userName:user.NickName,
  261. userEmail:user.Email,
  262. userPhone:user.Phone,
  263. rand_str:Date.now()
  264. }
  265. }
  266. const response=await Http.get(params);
  267. return response;
  268. }
  269. )
  270. export const reqPayOrderList=createAsyncThunk(
  271. APP_PAY_ORDER_LIST,
  272. async (arg,thunkAPI)=>{
  273. let params= {
  274. url: APP_PAY_ORDER_LIST,
  275. params:{
  276. page:2,
  277. pageSize:10
  278. }
  279. }
  280. const response=await Http.get(params);
  281. return response;
  282. }
  283. )
  284. //pay
  285. //withdraw
  286. export const reqWithdrawTax=createAsyncThunk(
  287. APP_WITHDRAW_TAX,
  288. async (arg, thunkAPI) => {
  289. let params={
  290. url:APP_WITHDRAW_TAX
  291. }
  292. const response=await Http.get(params);
  293. return response;
  294. }
  295. )
  296. export const reqWithdrawBaseInfo=createAsyncThunk(
  297. APP_WITHDRAW_BASE_INFO,
  298. async (arg, thunkAPI) => {
  299. let pass=global.getWDPass();
  300. let params={
  301. url:APP_WITHDRAW_BASE_INFO,
  302. data:{
  303. paypass:pass
  304. }
  305. }
  306. const response=await Http.post(params);
  307. return response;
  308. }
  309. )
  310. export const reqWithdrawInfo=createAsyncThunk(
  311. APP_WITHDRAW_INFO,
  312. async (arg, thunkAPI) => {
  313. let {UserID}=arg;
  314. let pass=global.getWDPass();
  315. let params={
  316. url:APP_WITHDRAW_INFO,
  317. data:{
  318. // UserID:UserID
  319. paypass:pass
  320. }
  321. }
  322. const response=await Http.post(params);
  323. return response;
  324. }
  325. )
  326. export const reqChangePayPass=createAsyncThunk(
  327. APP_CHANGE_PAY_PASS,
  328. async (arg, thunkAPI) => {
  329. let params={
  330. url:APP_CHANGE_PAY_PASS,
  331. data:{
  332. newpassword:arg.newpassword,
  333. renewpassword:arg.renewpassword,
  334. }
  335. }
  336. if (arg.oldpassword!=null){
  337. params.data.oldpassword=arg.oldpassword;
  338. }
  339. const response=await Http.post(params);
  340. thunkAPI.dispatch(updateUserInfo(response));
  341. return response;
  342. }
  343. )
  344. export const reqWithdrawRecord=createAsyncThunk(
  345. APP_WITHDRAW_RECORD,
  346. async (arg,thunkAPI) => {
  347. let pass=global.getWDPass();
  348. let params={
  349. url:APP_WITHDRAW_RECORD,
  350. data:{
  351. paypass:pass
  352. }
  353. }
  354. const response=await Http.post(params);
  355. return response;
  356. }
  357. )
  358. export const reqWithdrawSetInfo=createAsyncThunk(
  359. APP_WITHDRAW_SET_INFO,
  360. async (arg,thunkAPI) => {
  361. let pass=global.getWDPass();
  362. let params={
  363. url:APP_WITHDRAW_SET_INFO,
  364. data:{
  365. paypass:pass,
  366. cbPixType:arg.PixType,
  367. bank:arg.bank,
  368. account:arg.account,
  369. userName:arg.userName,
  370. phone:arg.phone,
  371. PAN:arg.PAN,
  372. email:arg.email,
  373. IFSC:arg.IFSC,
  374. adhaar:arg.adhaar,
  375. branceBank:arg.branceBank,
  376. PixNum:arg.PixNum
  377. }
  378. }
  379. const response=await Http.post(params);
  380. if (response&&response.code===200){
  381. thunkAPI.dispatch(reqWithdrawBaseInfo());
  382. }
  383. return response;
  384. }
  385. )
  386. export const reqWithdrawPayout=createAsyncThunk(
  387. APP_WITHDRAW_PAYOUT,
  388. async (arg,thunkAPI) => {
  389. let pass=global.getWDPass();
  390. let params={
  391. url:APP_WITHDRAW_PAYOUT,
  392. data:{
  393. paypass:pass,
  394. score:arg.score
  395. }
  396. }
  397. const response=await Http.post(params);
  398. if (response&&response.code===200){
  399. thunkAPI.dispatch(reqWithdrawBaseInfo());
  400. }
  401. return response;
  402. }
  403. )
  404. //withdraw
  405. //用户信息
  406. export const reqGameInfo=createAsyncThunk(
  407. APP_GAME_INFO,
  408. async (arg,thunkAPI)=>{
  409. let params={
  410. url:APP_GAME_INFO
  411. }
  412. const response=await Http.get(params);
  413. return response;
  414. }
  415. )
  416. //custom
  417. export const reqCustomService=createAsyncThunk(
  418. APP_CUSTOMER_SERVICE,
  419. async (arg,thunkAPI)=>{
  420. let params={
  421. url:APP_CUSTOMER_SERVICE
  422. }
  423. const response=await Http.get(params);
  424. return response;
  425. }
  426. )
  427. export const reqCustomLeaveMsg=createAsyncThunk(
  428. APP_CUSTOMER_LEAVEMSG,
  429. async (arg,thunkAPI)=>{
  430. let preTime=localStorageGet(LOCAL_CUSTOM_LOCK,"0");
  431. let now=Date.now();
  432. preTime=Number(preTime);
  433. if (now-preTime<180000){
  434. toast.error(i18n.t("customer.TopTip_timerFail"));
  435. return null;
  436. }
  437. let params={
  438. url:APP_CUSTOMER_LEAVEMSG,
  439. params:arg
  440. }
  441. const response=await Http.get(params);
  442. return response;
  443. }
  444. )
  445. //Turnplate
  446. export const reqTurnplateIndex=createAsyncThunk(
  447. APP_TURNPLATE_INDEX,
  448. async (arg,thunkAPI)=>{
  449. let params={
  450. url:APP_TURNPLATE_INDEX
  451. }
  452. const response=await Http.get(params);
  453. return response;
  454. }
  455. )
  456. export const reqTurnplateKan=createAsyncThunk(
  457. APP_TURNPLATE_KAN,
  458. async (arg,thunkAPI)=>{
  459. // let act=localStorageGet(LOCAL_WHEEL_INVITE_CODE);
  460. let params={
  461. url:APP_TURNPLATE_KAN
  462. }
  463. let ishelp=false;
  464. const response=await Http.get(params);
  465. response.ishelp=ishelp;
  466. return response;
  467. }
  468. )
  469. export const reqTurnplateBonus=createAsyncThunk(
  470. APP_TURNPLATE_BONUS,
  471. async (arg,thunkAPI)=>{
  472. let params={
  473. url:APP_TURNPLATE_BONUS
  474. }
  475. const response=await Http.get(params);
  476. if (response&&response.code===200){
  477. thunkAPI.dispatch(reqGameInfo());
  478. thunkAPI.dispatch(reqTurnplateIndex());
  479. }
  480. return response;
  481. }
  482. )
  483. export const reqTurnplateHelp=createAsyncThunk(
  484. APP_TURNPLATE_HELP,
  485. async (arg,thunkAPI)=>{
  486. let act=localStorageGet(LOCAL_WHEEL_INVITE_CODE);
  487. let params={
  488. url:APP_TURNPLATE_HELP,
  489. params:{
  490. act:act
  491. }
  492. }
  493. const response=await Http.get(params);
  494. return response;
  495. }
  496. )
  497. //mail
  498. export const reqMailList=createAsyncThunk(
  499. APP_MAIL_LIST,
  500. async (arg,thunkAPI)=>{
  501. let params={
  502. url:APP_MAIL_LIST
  503. }
  504. const response=await Http.get(params);
  505. return response;
  506. }
  507. )
  508. export const reqMailCheck=createAsyncThunk(
  509. APP_MAIL_CHECK,
  510. async (arg,thunkAPI)=>{
  511. let params={
  512. url:APP_MAIL_CHECK
  513. }
  514. const response=await Http.get(params);
  515. return response;
  516. }
  517. )
  518. export const reqMailRead=createAsyncThunk(
  519. APP_MAIL_READ,
  520. async (arg,thunkAPI)=>{
  521. let params={
  522. url:APP_MAIL_READ,
  523. params:{
  524. MailID:arg
  525. }
  526. }
  527. const response=await Http.get(params);
  528. return response;
  529. }
  530. )
  531. export const reqMailDel=createAsyncThunk(
  532. APP_MAIL_DEL,
  533. async (arg,thunkAPI)=>{
  534. let params={
  535. url:APP_MAIL_DEL,
  536. params:{
  537. MailID:arg
  538. }
  539. }
  540. thunkAPI.dispatch(preDelMail(arg));
  541. const response=await Http.get(params);
  542. // const response={code:200};
  543. return response;
  544. }
  545. )
  546. export const reqMailTake=createAsyncThunk(
  547. APP_MAIL_TAKE,
  548. async (arg,thunkAPI)=>{
  549. let params={
  550. url:APP_MAIL_TAKE,
  551. params:{
  552. MailID:arg
  553. }
  554. }
  555. const response=await Http.get(params);
  556. if (response&&response.code===200){
  557. let data=response.data;
  558. if (data){
  559. let NowScore=data.NowScore;
  560. if (NowScore!=null){
  561. NowScore=Number(formatCash(NowScore));
  562. thunkAPI.dispatch(updateUserScore(NowScore));
  563. }
  564. }
  565. }
  566. return response;
  567. }
  568. )
  569. //redpack
  570. export const reqRedpackCheck=createAsyncThunk(
  571. APP_REDPACK_CHECK,
  572. async (arg,thunkAPI)=>{
  573. let params={
  574. url:APP_REDPACK_CHECK,
  575. }
  576. const response=await Http.get(params);
  577. return response;
  578. }
  579. )
  580. export const reqRedpackRecive=createAsyncThunk(
  581. APP_REDPACK_RECEIVE,
  582. async (arg,thunkAPI)=>{
  583. let params={
  584. url:APP_REDPACK_RECEIVE,
  585. }
  586. const response=await Http.get(params);
  587. if (response&&response.code===200){
  588. let data=response.data;
  589. if (data){
  590. let amount=data.amount;
  591. if (amount!=null){
  592. let score=amount/global.CASH_BASE;
  593. thunkAPI.dispatch(updateAddScore(score));
  594. }
  595. }
  596. }
  597. return response;
  598. }
  599. )
  600. export const reqRedpackConfig=createAsyncThunk(
  601. APP_REDPACK_CONFIG,
  602. async (arg,thunkAPI)=>{
  603. let params={
  604. url:APP_REDPACK_CONFIG,
  605. }
  606. const response=await Http.get(params);
  607. return response;
  608. }
  609. )
  610. export const reqAgentCheck=createAsyncThunk(
  611. APP_AGENT_CHECK,
  612. async (arg,thunkAPI)=>{
  613. let params={
  614. url:APP_AGENT_CHECK,
  615. }
  616. const response=await Http.get(params);
  617. return response;
  618. }
  619. )
  620. export const reqAgentGet=createAsyncThunk(
  621. APP_AGENT_GET,
  622. async (arg,thunkAPI)=>{
  623. let params={
  624. url:APP_AGENT_GET,
  625. params:{
  626. ID:arg
  627. }
  628. }
  629. const response=await Http.get(params);
  630. if (response&&response.code===200){
  631. let data=response.data;
  632. if (data){
  633. let bonus=data.bonus;
  634. if (bonus!=null){
  635. let score=bonus/global.CASH_BASE;
  636. thunkAPI.dispatch(updateAddScore(score));
  637. }
  638. }
  639. }
  640. return response;
  641. }
  642. )
  643. export const reqAgentHistory=createAsyncThunk(
  644. APP_AGENT_HISTORY,
  645. async (arg,thunkAPI)=>{
  646. let params={
  647. url:APP_AGENT_HISTORY
  648. }
  649. const response=await Http.get(params);
  650. return response;
  651. }
  652. )
  653. //activity
  654. export const reqGameActivity=createAsyncThunk(
  655. APP_GAME_ACTIVITY,
  656. async (arg,thunkAPI)=>{
  657. let params={
  658. url:APP_GAME_ACTIVITY
  659. }
  660. const response=await Http.get(params);
  661. return response;
  662. }
  663. )
  664. //api