turnplateSlice.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import {createSlice} from "@reduxjs/toolkit";
  2. import {buildReqReducer, reqGameList, reqTurnplateBonus, reqTurnplateIndex, reqTurnplateKan} from "@features/api";
  3. import {REQ_STATUS} from "@api/config";
  4. const reducerTurnplateIndex=(state,action,arg)=>{
  5. let payload=action.payload;
  6. if (payload&&payload.code===200){
  7. let data=payload.data;
  8. if (data){
  9. state.turnplate=data.turnplate;
  10. state.record=data.record;
  11. state.link=data.link;
  12. state.numbers=data.numbers;
  13. state.myRecord=data.myRecord;
  14. }
  15. }
  16. }
  17. const reducerTurnplateKan=(state,action,arg)=>{
  18. let payload=action.payload;
  19. // payload={
  20. // "data": {
  21. // "type": 2,
  22. // "bonus": 9414,
  23. // "times": 0,
  24. // "collect_amount": 9414
  25. // },
  26. // "result": "",
  27. // "msg": "success",
  28. // "code": 200
  29. // }
  30. if (payload&&payload.code===200){
  31. let callback=arg;
  32. if (callback)callback(payload.data);
  33. }
  34. }
  35. const turnplateKanStatus=(state,status,arg)=>{
  36. state.status.TURNPLATE_KAN=status;
  37. }
  38. const reducerTurnplateBonus=(state,action,arg)=>{
  39. let payload=action.payload;
  40. if (payload&&payload.code===200){
  41. }
  42. }
  43. const turnplateBonusStatus=(state,status,arg)=>{
  44. state.status.TURNPLATE_BONUS=status;
  45. }
  46. export const Turnplate=createSlice({
  47. name: 'turnplate',
  48. initialState: {
  49. turnplate:null,
  50. record:[],
  51. link:null,
  52. numbers:[],
  53. myRecord:[],
  54. status:{
  55. TURNPLATE_KAN:REQ_STATUS.NONE,
  56. TURNPLATE_BONUS:REQ_STATUS.NONE
  57. }
  58. },
  59. reducers: {
  60. updateTimes:((state, action) => {
  61. let payload=action.payload;
  62. if (payload){
  63. let times=payload.times;
  64. state.turnplate.times=times;
  65. }
  66. }),
  67. updateCollect:((state, action) => {
  68. let payload=action.payload;
  69. if (payload){
  70. let collect_amount=payload.collect_amount;
  71. state.turnplate.collect_amount=collect_amount;
  72. }
  73. }),
  74. },
  75. extraReducers: (builder) => {
  76. buildReqReducer(builder,reqTurnplateIndex,reducerTurnplateIndex,null);
  77. buildReqReducer(builder,reqTurnplateKan,reducerTurnplateKan,turnplateKanStatus);
  78. buildReqReducer(builder,reqTurnplateBonus,reducerTurnplateBonus,turnplateBonusStatus);
  79. },
  80. })
  81. export const {updateTimes,updateCollect} = Turnplate.actions;
  82. export const getTurnplate=(state)=>{
  83. return state.turnplate.turnplate;
  84. }
  85. export const getRecord=(state)=>{
  86. return state.turnplate.record;
  87. }
  88. export const getMyRecord=(state)=>{
  89. return state.turnplate.myRecord;
  90. }
  91. export const getShareUrl=(state)=>{
  92. return state.turnplate.link;
  93. }
  94. export const getTotalAmount=(state)=>{
  95. if (state.turnplate.turnplate){
  96. return state.turnplate.turnplate.total_amount;
  97. }
  98. else return 0;
  99. }
  100. export const getNumbers=(state)=>{
  101. if (state.turnplate.numbers){
  102. let numbers=state.turnplate.numbers;
  103. let temp=numbers.slice(0);
  104. let random=[];
  105. for (let i = 0; i <20 ; i++) {
  106. let rand=Math.floor(Math.random()*temp.length);
  107. random.push(temp[rand]);
  108. temp.splice(rand,1);
  109. }
  110. return random;
  111. }
  112. return [];
  113. }
  114. export default Turnplate.reducer;