import { message } from 'antd'; import { routerRedux } from 'dva/router'; import { querySnapshotList, queryTerminalBuyMsg, queryOrderList, queryOrderItem, querySubOrderItem, createOrderItem, invalidOrderItem, payOrderItem, sendOrderItem, receiveOrderItem, } from '../services/trade'; export default { namespace: 'trade', state: { list: [], pageNo: 1, pageSize: 15, totalSize: 0, currentItem: {}, }, effects: { *fetchSnapshotList({ payload }, { call, put }) { const response = yield call(querySnapshotList, payload); if (response.success) { yield put({ type: 'querySuccess', payload: { list: response.data.list || [], pageSize: response.data.pageSize, totalSize: response.data.totalSize, pageNo: response.data.pageNo, }, }); } }, *fetchTerminalBuyMsg({ payload }, { call, put }) { const response = yield call(queryTerminalBuyMsg, payload); if (response.success) { yield put({ type: 'querySuccess', payload: { list: response.data || [], }, }); } }, *fetchOrderList({ payload }, { call, put }) { const response = yield call(queryOrderList, payload); if (response.success) { yield put({ type: 'querySuccess', payload: { list: response.data.list || [], pageSize: response.data.pageSize, totalSize: response.data.totalSize, pageNo: response.data.pageNo, }, }); } }, *fetchOrderItem({ payload }, { call, put }) { const response = yield call(queryOrderItem, payload); if (response.success) { yield put({ type: 'querySuccess', payload: { currentItem: response.data, }, }); } }, *createOrderItem({ payload }, { call, put }) { const response = yield call(createOrderItem, payload); if (response.success) { message.success('创建订单成功'); const { id } = response.data; yield put(routerRedux.push({ pathname: `/trade/order/view/${id}`, })); } }, *invalidOrderItem({ payload, states }, { call, put }) { const response = yield call(invalidOrderItem, payload); if (response.success) { message.success('作废订单成功'); const { orderId } = states; // 详情页作废成功刷新详情页,列表页支付成功刷新列表页 if (orderId) { yield put({ type: 'fetchOrderItem', payload: { id: orderId }, }); } else { yield put({ type: 'fetchOrderList', payload: states.Queryers, }); } } }, *payOrderItem({ payload, states }, { call, put }) { const response = yield call(payOrderItem, payload); if (response.success) { message.success('支付订单成功'); const { orderId } = states; // 详情页支付成功刷新详情页,列表页支付成功刷新列表页 if (orderId) { yield put({ type: 'fetchOrderItem', payload: { id: orderId }, }); } else { yield put({ type: 'fetchOrderList', payload: states.Queryers, }); } } }, *fetchSubOrderItem({ payload }, { call, put }) { const response = yield call(querySubOrderItem, payload); if (response.success) { yield put({ type: 'querySuccess', payload: { currentItem: response.data, }, }); } }, *sendOrderItem({ payload, states }, { call, put }) { const response = yield call(sendOrderItem, payload); if (response.success) { message.success('发货成功'); const { orderId } = states; if (orderId) { yield put({ type: 'fetchSubOrderItem', payload: { id: orderId }, }); } else { yield put({ type: 'fetchOrderList', payload: states.Queryers, }); } } }, *receiveOrderItem({ payload, states }, { call, put }) { const response = yield call(receiveOrderItem, payload); if (response.success) { message.success('确认收货成功'); const { orderId } = states; if (orderId) { yield put({ type: 'fetchSubOrderItem', payload: { id: orderId }, }); } else { yield put({ type: 'fetchOrderList', payload: states.Queryers, }); } } }, }, reducers: { querySuccess(state, action) { return { ...state, ...action.payload, }; }, fixList(state, action) { return { ...state, ...action.payload, }; }, fixCurrentItem(state, action) { const { currentItem } = state; return { ...state, currentItem: { ...currentItem, ...action.payload, }, }; }, cleanState(state) { return { ...state, currentItem: {}, list: [], }; }, }, };