paySlice.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  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. }
  211. else
  212. {
  213. toast.error(msg);
  214. }
  215. if (arg&&arg.callback!=null){
  216. arg.callback(payload);
  217. }
  218. }
  219. const withdrawPayoutStatus=(state,status,arg)=>{
  220. state.status.WithdrawPayout=status;
  221. }
  222. export const Pay=createSlice({
  223. name: 'pay',
  224. initialState: {
  225. status:{
  226. RechargeConfig:REQ_STATUS.NONE,
  227. FirstPayConfig:REQ_STATUS.NONE,
  228. GetAccountsPayInfo:REQ_STATUS.NONE,
  229. PaymentOrder:REQ_STATUS.NONE,
  230. ChangePayPass:REQ_STATUS.NONE,
  231. PayOrderList:REQ_STATUS.NONE,
  232. WithdrawRecoard:REQ_STATUS.NONE,
  233. WithdrawBaseInfo:REQ_STATUS.NONE,
  234. WithdrawInfo:REQ_STATUS.NONE,
  235. WithdrawSetInfo:REQ_STATUS.NONE,
  236. WithdrawPayout:REQ_STATUS.NONE,
  237. },
  238. config:[],
  239. payconfig:null,
  240. firstconfig:null,
  241. payType:null,
  242. currPayOrder:null,
  243. WithDrawTax:4,
  244. withdrawBaseInfo:null,
  245. withdrawInfo:null,
  246. payOrderList:null,
  247. withdrawRecord:null,
  248. changePayPassType:0,
  249. showBonus:false
  250. },
  251. reducers: {
  252. updatePayFinish:((state, action) => {
  253. if (state.currPayOrder!=null){
  254. state.currPayOrder.status="success";
  255. }
  256. //充值完成 message={Golds:12.xx,PayNum:10}
  257. toast.success(i18n.t("deposit.order_info.success"));
  258. }),
  259. setChangePayPassType:((state, action) => {
  260. state.changePayPassType=action.payload;
  261. }),
  262. onSliceChangeUser:((state, action) => {
  263. state.isInit=false;
  264. })
  265. },
  266. extraReducers: (builder) => {
  267. buildReqReducer(builder,reqRechargeConfig,reducerRechargeConfig,rechargeConfigStatus);
  268. buildReqReducer(builder,reqFirstPayConfig,reducerFirstPayConfig,firstPayConfigStatus);
  269. buildReqReducer(builder,reqGetAccountsPayInfo,reducerGetAccountsPayInfo,getAccountsPayInfoStatus);
  270. buildReqReducer(builder,reqPaymentOrder,reducerPaymentOrder,paymentOrderStatus);
  271. buildReqReducer(builder,reqWithdrawTax,reducerWithdrawTax,null);
  272. buildReqReducer(builder,reqWithdrawBaseInfo,reducerWithdrawBaseInfo,withdrawBaseInfoStatus);
  273. buildReqReducer(builder,reqWithdrawInfo,reducerWithdrawInfo,withdrawInfoStatus);
  274. buildReqReducer(builder,reqChangePayPass,reducerChangePayPass,changePayPassStatus);
  275. buildReqReducer(builder,reqPayOrderList,reducerPayOrderList,payOrderListStatus);
  276. buildReqReducer(builder,reqWithdrawRecord,reducerWithdrawRecord,withdrawRecordStatus);
  277. buildReqReducer(builder,reqWithdrawSetInfo,reducerWithdrawSetInfo,withdrawSetInfoStatus);
  278. buildReqReducer(builder,reqWithdrawPayout,reducerWithdrawPayout,withdrawPayoutStatus);
  279. },
  280. })
  281. export const {updatePayFinish,setChangePayPassType} = Pay.actions;
  282. export const getConfig=(state)=>{
  283. return state.pay.config;
  284. }
  285. export const getFirstPay=(state)=>{
  286. let firstconfig=state.pay.firstconfig;
  287. let config=state.pay.config;
  288. let order=null;
  289. if (firstconfig!=null){
  290. let first_pay=firstconfig.first_pay;
  291. let recomendar_recharge=firstconfig.recomendar_recharge;
  292. if (first_pay!=null){
  293. let gear=JSON.parse(first_pay.gear);
  294. if (gear)gear=gear[0];
  295. order={
  296. goodsName:"firstpay",
  297. goodsPrice:first_pay.money,
  298. GiftsID: 201,
  299. cpf_first:0,
  300. give:first_pay.give,
  301. gear:gear
  302. }
  303. }
  304. else
  305. {
  306. for (let i = 0; i <config.length ; i++) {
  307. const elem = config[i];
  308. if (elem.id===recomendar_recharge){
  309. let gear=JSON.parse(elem.gear);
  310. if (gear)gear=gear[0];
  311. order={
  312. goodsName: "chip",
  313. goodsPrice: elem.money,
  314. GiftsID:elem.gift_id,
  315. cpf_first:0,
  316. give:elem.give,
  317. gear:gear
  318. }
  319. break;
  320. }
  321. }
  322. }
  323. }
  324. return order;
  325. }
  326. export const getPaymentOrderStatus=(state)=>{
  327. return state.pay.status.PaymentOrder;
  328. }
  329. export const getCurrPayOrder=(state)=>{
  330. return state.pay.currPayOrder;
  331. }
  332. export const getWithdrawBaseInfo=(state)=>{
  333. return state.pay.withdrawBaseInfo;
  334. }
  335. export const getWithdrawInfo=(state)=>{
  336. return state.pay.withdrawInfo;
  337. }
  338. export const getChangePayPassStatus=(state)=>{
  339. return state.pay.status.ChangePayPass;
  340. }
  341. export const getPayOrderStatus=(state)=>{
  342. return state.pay.status.PayOrderList;
  343. }
  344. export const getPayOrderList=(state)=>{
  345. return state.pay.payOrderList;
  346. }
  347. export const getWithdrawRecordStatus=(state)=>{
  348. return state.pay.status.WithdrawRecoard;
  349. }
  350. export const getWithdrawRecord=(state)=>{
  351. return state.pay.withdrawRecord;
  352. }
  353. export const getWithdrawTax=(state)=>{
  354. return state.pay.WithDrawTax;
  355. }
  356. export const getWDBaseInfoStatus=(state)=>{
  357. return state.pay.status.WithdrawBaseInfo;
  358. }
  359. export const getWDSetInfoStatus=(state)=>{
  360. return state.pay.status.WithdrawSetInfo;
  361. }
  362. export const getWDInfoStatus=(state)=>{
  363. return state.pay.status.WithdrawInfo;
  364. }
  365. export const getChangePayPassType=(state)=>{
  366. return state.pay.changePayPassType;
  367. }
  368. export const getWDPayoutStatus=(state)=>{
  369. return state.pay.status.WithdrawPayout;
  370. }
  371. export const getShowBonus=(state)=>{
  372. return state.pay.showBonus;
  373. }
  374. export const getPayConfigStatus=(state)=>{
  375. return state.pay.status.RechargeConfig;
  376. }
  377. export default Pay.reducer;
  378. export const reqPayConfig=(dispatch,userInfo)=>{
  379. dispatch(reqRechargeConfig());
  380. dispatch(reqFirstPayConfig(userInfo.UserID));
  381. // dispatch(reqGetAccountsPayInfo(userInfo.UserID));
  382. // dispatch(reqWithdrawTax());
  383. }