paySlice.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. import {createSlice} from "@reduxjs/toolkit";
  2. import {REQ_STATUS} from "@api/config";
  3. import {
  4. buildReqReducer,
  5. reqChangePayPass,
  6. reqFirstPayConfig,
  7. reqGetAccountsPayInfo,
  8. reqPaymentOrder,
  9. reqPayOrderList,
  10. reqRechargeConfig,
  11. reqWithdrawBaseInfo,
  12. reqWithdrawInfo,
  13. reqWithdrawPayout,
  14. reqWithdrawRecord,
  15. reqWithdrawSetInfo,
  16. reqWithdrawTax
  17. } from "@features/api";
  18. import {getHttpMsg} from "@utils/helpers";
  19. import {toast} from "react-toastify";
  20. const i18n=global.i18n;
  21. const reducerRechargeConfig=(state,action,arg)=>{
  22. let payload=action.payload;
  23. if (payload!=null&&payload.code===200){
  24. let data=payload.data;
  25. if (data.list){
  26. state.config=data.list;
  27. state.showBonus=data.bonus_show;
  28. // state.showBonus=true;
  29. }
  30. }
  31. }
  32. const rechargeConfigStatus=(state,status,arg)=>{
  33. state.status.RechargeConfig=status;
  34. }
  35. const reducerFirstPayConfig=(state,action,arg)=>{
  36. let payload=action.payload;
  37. // payload={
  38. // "data": {
  39. // "first_pay": {
  40. // "id": "1017",
  41. // "money": "10",
  42. // "gear": "[{\"id\":\"28\",\"name\":\"PIX\\u76f4\\u8fde\",\"status\":1,\"type\":3}]",
  43. // "status": "1",
  44. // "created_at": "2022-06-09 13:57:58.000",
  45. // "favorable_price": 20,
  46. // "image": "11",
  47. // "give": "10",
  48. // "first_pay": "1",
  49. // "name": "\u9996\u5145\u6863\u4f4d\u914d\u7f6e",
  50. // "gift_id": "201",
  51. // "channels": "-1"
  52. // },
  53. // "recomendar_recharge": "7"
  54. // },
  55. // "result": "",
  56. // "msg": "success",
  57. // "code": 200
  58. // };
  59. if (payload!=null&&payload.code===200){
  60. let data=payload.data;
  61. state.firstconfig=data;
  62. }
  63. }
  64. const firstPayConfigStatus=(state,status,arg)=>{
  65. state.status.FirstPayConfig=status;
  66. }
  67. const reducerGetAccountsPayInfo=(state,action,arg)=>{
  68. let payload=action.payload;
  69. if (payload!=null&&payload.code===200){
  70. let data=payload.data;
  71. state.payconfig=data;
  72. }
  73. }
  74. const getAccountsPayInfoStatus=(state,status,arg)=>{
  75. state.status.GetAccountsPayInfo=status;
  76. }
  77. const reducerPaymentOrder=(state,action,arg)=>{
  78. let payload=action.payload;
  79. // payload={
  80. // "data": {
  81. // "content": "00020101021226830014br.gov.bcb.pix2561pix.delbank.com.br\/v1\/qrcode\/vcharge22e43499260b46a9a5f303ca55204000053039865802BR5907DELBANK6007ARACAJU62070503***6304F3DF",
  82. // "money": 10,
  83. // "prdOrdNo": "BR5050013857473344515256"
  84. // },
  85. // "result": "",
  86. // "msg": "success",
  87. // "code": 200
  88. // };
  89. if (payload!=null&&payload.code===200){
  90. let data=payload.data;
  91. data.createAt=Date.now();
  92. data.deadline=15*60;
  93. data.status="pending";
  94. state.currPayOrder=data;
  95. if (arg.callback!=null)arg.callback();
  96. }
  97. }
  98. const paymentOrderStatus=(state,status,arg)=>{
  99. state.status.PaymentOrder=status;
  100. }
  101. const reducerPayOrderList=(state,action,arg)=>{
  102. let payload=action.payload;
  103. if (payload!=null&&payload.code===200){
  104. let data=payload.data;
  105. if (data){
  106. state.payOrderList=data.data;
  107. }
  108. }
  109. }
  110. const payOrderListStatus=(state,status,arg)=>{
  111. state.status.PayOrderList=status;
  112. }
  113. const reducerWithdrawTax=(state,action,arg)=>{
  114. let payload=action.payload;
  115. if (payload&&payload.code===200){
  116. let data=payload.data;
  117. if (data){
  118. state.WithDrawTax=data.WithDrawTax;
  119. }
  120. }
  121. }
  122. const reducerWithdrawBaseInfo=(state,action,arg)=>{
  123. let payload=action.payload;
  124. if (payload&&payload.code===200){
  125. let data=payload.data;
  126. if (data){
  127. state.withdrawBaseInfo=data;
  128. }
  129. }
  130. let callback=arg;
  131. if (callback!=null){
  132. callback(payload);
  133. }
  134. }
  135. const withdrawBaseInfoStatus=(state,status,arg)=>{
  136. state.status.WithdrawBaseInfo=status;
  137. }
  138. const reducerWithdrawInfo=(state,action,arg)=>{
  139. let payload=action.payload;
  140. if (payload&&payload.code===200){
  141. let data=payload.data;
  142. if (data){
  143. if (data.info)state.withdrawInfo=data.info;
  144. }
  145. }
  146. }
  147. const withdrawInfoStatus=(state,status,arg)=>{
  148. state.status.WithdrawInfo=status;
  149. }
  150. const reducerChangePayPass=(state,action,arg)=>{
  151. let payload=action.payload;
  152. let msg=getHttpMsg(payload);
  153. if (payload&&payload.code===200){
  154. let data=payload.data;
  155. if (data){
  156. // state.withdrawInfo=data;
  157. }
  158. if (arg){
  159. if (arg.newpassword!=null){
  160. global.setWDPass(arg.newpassword);
  161. }
  162. }
  163. toast.success(msg);
  164. }
  165. else{
  166. toast.error(msg);
  167. }
  168. if (arg&&arg.callback!=null){
  169. arg.callback(payload);
  170. }
  171. }
  172. const changePayPassStatus=(state,status,arg)=>{
  173. state.status.ChangePayPass=status;
  174. }
  175. const reducerWithdrawRecord=(state,action,arg)=>{
  176. let payload=action.payload;
  177. if (payload&&payload.code===200){
  178. let data=payload.data;
  179. if (data&&data.data){
  180. state.withdrawRecord=data.data;
  181. }
  182. }
  183. }
  184. const withdrawRecordStatus=(state,status,arg)=>{
  185. state.status.WithdrawRecoard=status;
  186. }
  187. const reducerWithdrawSetInfo=(state,action,arg)=>{
  188. let payload=action.payload;
  189. let msg=payload.msg;
  190. if (msg==null)msg="";
  191. if (payload&&payload.code===200){
  192. let data=payload.data;
  193. toast.success(msg);
  194. }
  195. else {
  196. toast.error(msg);
  197. }
  198. if (arg&&arg.callback!=null){
  199. arg.callback(payload);
  200. }
  201. }
  202. const withdrawSetInfoStatus=(state,status,arg)=>{
  203. state.status.WithdrawSetInfo=status;
  204. }
  205. const reducerWithdrawPayout=(state,action,arg)=>{
  206. let payload=action.payload;
  207. let msg=getHttpMsg(payload);
  208. if (payload&&payload.code===200){
  209. // toast.success(msg);
  210. toast.success(i18n.t("withdraw.tip.success"));
  211. }
  212. else
  213. {
  214. toast.error(msg);
  215. }
  216. if (arg&&arg.callback!=null){
  217. arg.callback(payload);
  218. }
  219. }
  220. const withdrawPayoutStatus=(state,status,arg)=>{
  221. state.status.WithdrawPayout=status;
  222. }
  223. export const Pay=createSlice({
  224. name: 'pay',
  225. initialState: {
  226. status:{
  227. RechargeConfig:REQ_STATUS.NONE,
  228. FirstPayConfig:REQ_STATUS.NONE,
  229. GetAccountsPayInfo:REQ_STATUS.NONE,
  230. PaymentOrder:REQ_STATUS.NONE,
  231. ChangePayPass:REQ_STATUS.NONE,
  232. PayOrderList:REQ_STATUS.NONE,
  233. WithdrawRecoard:REQ_STATUS.NONE,
  234. WithdrawBaseInfo:REQ_STATUS.NONE,
  235. WithdrawInfo:REQ_STATUS.NONE,
  236. WithdrawSetInfo:REQ_STATUS.NONE,
  237. WithdrawPayout:REQ_STATUS.NONE,
  238. },
  239. config:[],
  240. payconfig:null,
  241. firstconfig:null,
  242. payType:null,
  243. currPayOrder:null,
  244. WithDrawTax:4,
  245. withdrawBaseInfo:null,
  246. withdrawInfo:null,
  247. payOrderList:null,
  248. withdrawRecord:null,
  249. changePayPassType:0,
  250. showBonus:false
  251. },
  252. reducers: {
  253. updatePayFinish:((state, action) => {
  254. if (state.currPayOrder!=null){
  255. state.currPayOrder.status="success";
  256. }
  257. //充值完成 message={Golds:12.xx,PayNum:10}
  258. toast.success(i18n.t("deposit.order_info.success"));
  259. }),
  260. setChangePayPassType:((state, action) => {
  261. state.changePayPassType=action.payload;
  262. }),
  263. onSliceChangeUser:((state, action) => {
  264. state.isInit=false;
  265. })
  266. },
  267. extraReducers: (builder) => {
  268. buildReqReducer(builder,reqRechargeConfig,reducerRechargeConfig,rechargeConfigStatus);
  269. buildReqReducer(builder,reqFirstPayConfig,reducerFirstPayConfig,firstPayConfigStatus);
  270. buildReqReducer(builder,reqGetAccountsPayInfo,reducerGetAccountsPayInfo,getAccountsPayInfoStatus);
  271. buildReqReducer(builder,reqPaymentOrder,reducerPaymentOrder,paymentOrderStatus);
  272. buildReqReducer(builder,reqWithdrawTax,reducerWithdrawTax,null);
  273. buildReqReducer(builder,reqWithdrawBaseInfo,reducerWithdrawBaseInfo,withdrawBaseInfoStatus);
  274. buildReqReducer(builder,reqWithdrawInfo,reducerWithdrawInfo,withdrawInfoStatus);
  275. buildReqReducer(builder,reqChangePayPass,reducerChangePayPass,changePayPassStatus);
  276. buildReqReducer(builder,reqPayOrderList,reducerPayOrderList,payOrderListStatus);
  277. buildReqReducer(builder,reqWithdrawRecord,reducerWithdrawRecord,withdrawRecordStatus);
  278. buildReqReducer(builder,reqWithdrawSetInfo,reducerWithdrawSetInfo,withdrawSetInfoStatus);
  279. buildReqReducer(builder,reqWithdrawPayout,reducerWithdrawPayout,withdrawPayoutStatus);
  280. },
  281. })
  282. export const {updatePayFinish,setChangePayPassType} = Pay.actions;
  283. export const getConfig=(state)=>{
  284. return state.pay.config;
  285. }
  286. export const getFirstPay=(state)=>{
  287. let firstconfig=state.pay.firstconfig;
  288. let config=state.pay.config;
  289. let order=null;
  290. if (firstconfig!=null){
  291. let first_pay=firstconfig.first_pay;
  292. let recomendar_recharge=firstconfig.recomendar_recharge;
  293. if (first_pay!=null){
  294. let gear=JSON.parse(first_pay.gear);
  295. if (gear)gear=gear[0];
  296. order={
  297. goodsName:"firstpay",
  298. goodsPrice:first_pay.money,
  299. GiftsID: 201,
  300. cpf_first:0,
  301. give:first_pay.give,
  302. gear:gear
  303. }
  304. }
  305. else
  306. {
  307. for (let i = 0; i <config.length ; i++) {
  308. const elem = config[i];
  309. if (elem.id===recomendar_recharge){
  310. let gear=JSON.parse(elem.gear);
  311. if (gear)gear=gear[0];
  312. order={
  313. goodsName: "chip",
  314. goodsPrice: elem.money,
  315. GiftsID:elem.gift_id,
  316. cpf_first:0,
  317. give:elem.give,
  318. gear:gear
  319. }
  320. break;
  321. }
  322. }
  323. }
  324. }
  325. return order;
  326. }
  327. export const getPaymentOrderStatus=(state)=>{
  328. return state.pay.status.PaymentOrder;
  329. }
  330. export const getCurrPayOrder=(state)=>{
  331. return state.pay.currPayOrder;
  332. }
  333. export const getWithdrawBaseInfo=(state)=>{
  334. return state.pay.withdrawBaseInfo;
  335. }
  336. export const getWithdrawInfo=(state)=>{
  337. return state.pay.withdrawInfo;
  338. }
  339. export const getChangePayPassStatus=(state)=>{
  340. return state.pay.status.ChangePayPass;
  341. }
  342. export const getPayOrderStatus=(state)=>{
  343. return state.pay.status.PayOrderList;
  344. }
  345. export const getPayOrderList=(state)=>{
  346. return state.pay.payOrderList;
  347. }
  348. export const getWithdrawRecordStatus=(state)=>{
  349. return state.pay.status.WithdrawRecoard;
  350. }
  351. export const getWithdrawRecord=(state)=>{
  352. return state.pay.withdrawRecord;
  353. }
  354. export const getWithdrawTax=(state)=>{
  355. return state.pay.WithDrawTax;
  356. }
  357. export const getWDBaseInfoStatus=(state)=>{
  358. return state.pay.status.WithdrawBaseInfo;
  359. }
  360. export const getWDSetInfoStatus=(state)=>{
  361. return state.pay.status.WithdrawSetInfo;
  362. }
  363. export const getWDInfoStatus=(state)=>{
  364. return state.pay.status.WithdrawInfo;
  365. }
  366. export const getChangePayPassType=(state)=>{
  367. return state.pay.changePayPassType;
  368. }
  369. export const getWDPayoutStatus=(state)=>{
  370. return state.pay.status.WithdrawPayout;
  371. }
  372. export const getShowBonus=(state)=>{
  373. return state.pay.showBonus;
  374. }
  375. export const getPayConfigStatus=(state)=>{
  376. return state.pay.status.RechargeConfig;
  377. }
  378. export default Pay.reducer;
  379. export const reqPayConfig=(dispatch,userInfo)=>{
  380. dispatch(reqRechargeConfig());
  381. dispatch(reqFirstPayConfig(userInfo.UserID));
  382. // dispatch(reqGetAccountsPayInfo(userInfo.UserID));
  383. // dispatch(reqWithdrawTax());
  384. }