trade.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. import { message } from 'antd';
  2. import { routerRedux } from 'dva/router';
  3. import {
  4. querySnapshotList,
  5. queryTerminalBuyMsg,
  6. queryOrderList,
  7. queryOrderItem,
  8. querySubOrderItem,
  9. createOrderItem,
  10. invalidOrderItem,
  11. payOrderItem,
  12. sendOrderItem,
  13. receiveOrderItem,
  14. } from '../services/trade';
  15. export default {
  16. namespace: 'trade',
  17. state: {
  18. list: [],
  19. pageNo: 1,
  20. pageSize: 15,
  21. totalSize: 0,
  22. currentItem: {},
  23. },
  24. effects: {
  25. *fetchSnapshotList({ payload }, { call, put }) {
  26. const response = yield call(querySnapshotList, payload);
  27. if (response.success) {
  28. yield put({
  29. type: 'querySuccess',
  30. payload: {
  31. list: response.data.list || [],
  32. pageSize: response.data.pageSize,
  33. totalSize: response.data.totalSize,
  34. pageNo: response.data.pageNo,
  35. },
  36. });
  37. }
  38. },
  39. *fetchTerminalBuyMsg({ payload }, { call, put }) {
  40. const response = yield call(queryTerminalBuyMsg, payload);
  41. if (response.success) {
  42. yield put({
  43. type: 'querySuccess',
  44. payload: {
  45. list: response.data || [],
  46. },
  47. });
  48. }
  49. },
  50. *fetchOrderList({ payload }, { call, put }) {
  51. const response = yield call(queryOrderList, payload);
  52. if (response.success) {
  53. yield put({
  54. type: 'querySuccess',
  55. payload: {
  56. list: response.data.list || [],
  57. pageSize: response.data.pageSize,
  58. totalSize: response.data.totalSize,
  59. pageNo: response.data.pageNo,
  60. },
  61. });
  62. }
  63. },
  64. *fetchOrderItem({ payload }, { call, put }) {
  65. const response = yield call(queryOrderItem, payload);
  66. if (response.success) {
  67. yield put({
  68. type: 'querySuccess',
  69. payload: {
  70. currentItem: response.data,
  71. },
  72. });
  73. }
  74. },
  75. *createOrderItem({ payload }, { call, put }) {
  76. const response = yield call(createOrderItem, payload);
  77. if (response.success) {
  78. message.success('创建订单成功');
  79. const { id } = response.data;
  80. yield put(routerRedux.push({
  81. pathname: `/trade/order/view/${id}`,
  82. }));
  83. }
  84. },
  85. *invalidOrderItem({ payload, states }, { call, put }) {
  86. const response = yield call(invalidOrderItem, payload);
  87. if (response.success) {
  88. message.success('作废订单成功');
  89. const { orderId } = states;
  90. // 详情页作废成功刷新详情页,列表页支付成功刷新列表页
  91. if (orderId) {
  92. yield put({
  93. type: 'fetchOrderItem',
  94. payload: { id: orderId },
  95. });
  96. } else {
  97. yield put({
  98. type: 'fetchOrderList',
  99. payload: states.Queryers,
  100. });
  101. }
  102. }
  103. },
  104. *payOrderItem({ payload, states }, { call, put }) {
  105. const response = yield call(payOrderItem, payload);
  106. if (response.success) {
  107. message.success('支付订单成功');
  108. const { orderId } = states;
  109. // 详情页支付成功刷新详情页,列表页支付成功刷新列表页
  110. if (orderId) {
  111. yield put({
  112. type: 'fetchOrderItem',
  113. payload: { id: orderId },
  114. });
  115. } else {
  116. yield put({
  117. type: 'fetchOrderList',
  118. payload: states.Queryers,
  119. });
  120. }
  121. }
  122. },
  123. *fetchSubOrderItem({ payload }, { call, put }) {
  124. const response = yield call(querySubOrderItem, payload);
  125. if (response.success) {
  126. yield put({
  127. type: 'querySuccess',
  128. payload: {
  129. currentItem: response.data,
  130. },
  131. });
  132. }
  133. },
  134. *sendOrderItem({ payload, states }, { call, put }) {
  135. const response = yield call(sendOrderItem, payload);
  136. if (response.success) {
  137. message.success('发货成功');
  138. const { orderId } = states;
  139. if (orderId) {
  140. yield put({
  141. type: 'fetchSubOrderItem',
  142. payload: { id: orderId },
  143. });
  144. } else {
  145. yield put({
  146. type: 'fetchOrderList',
  147. payload: states.Queryers,
  148. });
  149. }
  150. }
  151. },
  152. *receiveOrderItem({ payload, states }, { call, put }) {
  153. const response = yield call(receiveOrderItem, payload);
  154. if (response.success) {
  155. message.success('确认收货成功');
  156. const { orderId } = states;
  157. if (orderId) {
  158. yield put({
  159. type: 'fetchSubOrderItem',
  160. payload: { id: orderId },
  161. });
  162. } else {
  163. yield put({
  164. type: 'fetchOrderList',
  165. payload: states.Queryers,
  166. });
  167. }
  168. }
  169. },
  170. },
  171. reducers: {
  172. querySuccess(state, action) {
  173. return {
  174. ...state,
  175. ...action.payload,
  176. };
  177. },
  178. fixList(state, action) {
  179. return {
  180. ...state,
  181. ...action.payload,
  182. };
  183. },
  184. fixCurrentItem(state, action) {
  185. const { currentItem } = state;
  186. return {
  187. ...state,
  188. currentItem: {
  189. ...currentItem,
  190. ...action.payload,
  191. },
  192. };
  193. },
  194. cleanState(state) {
  195. return {
  196. ...state,
  197. currentItem: {},
  198. list: [],
  199. };
  200. },
  201. },
  202. };