|
|
|
@ -7,14 +7,14 @@ import { HT_HOST } from '../config';
|
|
|
|
import { resultDataCb } from '../components/DateGroupRadio/date';
|
|
|
|
import { resultDataCb } from '../components/DateGroupRadio/date';
|
|
|
|
import { groupBy, isEmpty } from '../utils/commons';
|
|
|
|
import { groupBy, isEmpty } from '../utils/commons';
|
|
|
|
|
|
|
|
|
|
|
|
const SERVICETYPE_TRAINSBOOKING = 2; // 火车票服务
|
|
|
|
const SERVICETYPE_TRAINSBOOKING = '2'; // 火车票服务
|
|
|
|
const FORM_TRAINSBOOKING = 32024; // 火车票预定
|
|
|
|
const FORM_TRAINSBOOKING = 32024; // 火车票预定
|
|
|
|
const FORM_TRAINSUPSELL = 32214; // 火车票Upsell
|
|
|
|
const FORM_TRAINSUPSELL = 32214; // 火车票Upsell
|
|
|
|
|
|
|
|
|
|
|
|
const defaultParams = { WebCode: 'all', IncludeTickets: 1, IncludeInternal: 1 };
|
|
|
|
const defaultParams = { WebCode: 'all', IncludeTickets: 1, IncludeInternal: 1 };
|
|
|
|
const _res = { ordercount1: [], ordercount2: [] };
|
|
|
|
const _res = { ordercount1: [], ordercount2: [] };
|
|
|
|
|
|
|
|
|
|
|
|
export const fetchBizTrainsOrderSummaryByType = async (params) => {
|
|
|
|
export const fetchBizTrainsOrderSummaryByType = async (params, type = 'Form', typeVal = '') => {
|
|
|
|
const { errcode, errmsg, ...result } = await fetchJSON(HT_HOST + '/service-web/QueryData/GetOrderCountByType_biz', {
|
|
|
|
const { errcode, errmsg, ...result } = await fetchJSON(HT_HOST + '/service-web/QueryData/GetOrderCountByType_biz', {
|
|
|
|
...defaultParams,
|
|
|
|
...defaultParams,
|
|
|
|
...params,
|
|
|
|
...params,
|
|
|
|
@ -22,17 +22,17 @@ export const fetchBizTrainsOrderSummaryByType = async (params) => {
|
|
|
|
COLI_ApplyDate2: params.Date2,
|
|
|
|
COLI_ApplyDate2: params.Date2,
|
|
|
|
COLI_ApplyDateOld1: params.DateDiff1 || '',
|
|
|
|
COLI_ApplyDateOld1: params.DateDiff1 || '',
|
|
|
|
COLI_ApplyDateOld2: params.DateDiff2 || '',
|
|
|
|
COLI_ApplyDateOld2: params.DateDiff2 || '',
|
|
|
|
OrderType: 'Form',
|
|
|
|
OrderType: type,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
const res = errcode !== 0 ? _res : result || _res;
|
|
|
|
const res = errcode !== 0 ? _res : result || _res;
|
|
|
|
const dateStr = [params.Date1, params.Date2].map((d) => d.substring(0, 10)).join('~');
|
|
|
|
const dateStr = [params.Date1, params.Date2].map((d) => d.substring(0, 10)).join('~');
|
|
|
|
const ret = [
|
|
|
|
const ret = [
|
|
|
|
{ dateRangeStr: dateStr, data: res.ordercount1.find((row) => row.OrderTypeSN === FORM_TRAINSBOOKING) },
|
|
|
|
{ dateRangeStr: dateStr, data: res.ordercount1.find((row) => row.OrderTypeSN === typeVal) },
|
|
|
|
// { dateRangeStr: dateDiffStr, data: res.ordercount2.find((row) => row.OrderTypeSN === FORM_TRAINSBOOKING) },
|
|
|
|
// { dateRangeStr: dateDiffStr, data: res.ordercount2.find((row) => row.OrderTypeSN === typeVal) },
|
|
|
|
];
|
|
|
|
];
|
|
|
|
const dateDiffStr = isEmpty(params.DateDiff1) ? '' : [params.DateDiff1, params.DateDiff2].map((d) => d.substring(0, 10)).join('~');
|
|
|
|
const dateDiffStr = isEmpty(params.DateDiff1) ? '' : [params.DateDiff1, params.DateDiff2].map((d) => d.substring(0, 10)).join('~');
|
|
|
|
if (!isEmpty(dateDiffStr)) {
|
|
|
|
if (!isEmpty(dateDiffStr)) {
|
|
|
|
ret.push({ dateRangeStr: dateDiffStr, data: res.ordercount2.find((row) => row.OrderTypeSN === FORM_TRAINSBOOKING) });
|
|
|
|
ret.push({ dateRangeStr: dateDiffStr, data: res.ordercount2.find((row) => row.OrderTypeSN === typeVal) });
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return ret;
|
|
|
|
return ret;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
@ -40,7 +40,7 @@ export const fetchBizTrainsOrderSummaryByType = async (params) => {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 从传统订单中获取upsell数据
|
|
|
|
* 从传统订单中获取upsell数据
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
export const fetchTrainsUpsellTSummaryByType = async (params) => {
|
|
|
|
export const fetchTrainsUpsellTSummaryByType = async (params, type = 'Form', typeVal = '') => {
|
|
|
|
const { errcode, errmsg, ...result } = await fetchJSON(HT_HOST + '/service-web/QueryData/GetOrderCountByType', {
|
|
|
|
const { errcode, errmsg, ...result } = await fetchJSON(HT_HOST + '/service-web/QueryData/GetOrderCountByType', {
|
|
|
|
...defaultParams,
|
|
|
|
...defaultParams,
|
|
|
|
...params,
|
|
|
|
...params,
|
|
|
|
@ -48,25 +48,26 @@ export const fetchTrainsUpsellTSummaryByType = async (params) => {
|
|
|
|
COLI_ApplyDate2: params.Date2,
|
|
|
|
COLI_ApplyDate2: params.Date2,
|
|
|
|
COLI_ApplyDateOld1: params.DateDiff1 || '',
|
|
|
|
COLI_ApplyDateOld1: params.DateDiff1 || '',
|
|
|
|
COLI_ApplyDateOld2: params.DateDiff2 || '',
|
|
|
|
COLI_ApplyDateOld2: params.DateDiff2 || '',
|
|
|
|
OrderType: 'Form',
|
|
|
|
OrderType: type,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
const res = errcode !== 0 ? _res : result || _res;
|
|
|
|
const res = errcode !== 0 ? _res : result || _res;
|
|
|
|
const dateStr = [params.Date1, params.Date2].map((d) => d.substring(0, 10)).join('~');
|
|
|
|
const dateStr = [params.Date1, params.Date2].map((d) => d.substring(0, 10)).join('~');
|
|
|
|
const ret = [
|
|
|
|
const ret = [
|
|
|
|
{ dateRangeStr: dateStr, data: res.ordercount1.find((row) => row.OrderTypeSN === FORM_TRAINSUPSELL) },
|
|
|
|
{ dateRangeStr: dateStr, data: res.ordercount1.find((row) => row.OrderTypeSN === typeVal) },
|
|
|
|
// { dateRangeStr: dateDiffStr, data: res.ordercount2.find((row) => row.OrderTypeSN === FORM_TRAINSUPSELL) },
|
|
|
|
// { dateRangeStr: dateDiffStr, data: res.ordercount2.find((row) => row.OrderTypeSN === typeVal) },
|
|
|
|
];
|
|
|
|
];
|
|
|
|
const dateDiffStr = isEmpty(params.DateDiff1) ? '' : [params.DateDiff1, params.DateDiff2].map((d) => d.substring(0, 10)).join('~');
|
|
|
|
const dateDiffStr = isEmpty(params.DateDiff1) ? '' : [params.DateDiff1, params.DateDiff2].map((d) => d.substring(0, 10)).join('~');
|
|
|
|
if (!isEmpty(dateDiffStr)) {
|
|
|
|
if (!isEmpty(dateDiffStr)) {
|
|
|
|
ret.push({ dateRangeStr: dateDiffStr, data: res.ordercount2.find((row) => row.OrderTypeSN === FORM_TRAINSUPSELL) });
|
|
|
|
ret.push({ dateRangeStr: dateDiffStr, data: res.ordercount2.find((row) => row.OrderTypeSN === typeVal) });
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return ret;
|
|
|
|
return ret;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
export const fetchTrainsWithUpsellSummary = async (params) => {
|
|
|
|
export const fetchTrainsWithUpsellSummary = async (params) => {
|
|
|
|
const [trains, upsell] = await Promise.all([
|
|
|
|
const [trains, upsell] = await Promise.all([
|
|
|
|
fetchBizTrainsOrderSummaryByType(params), // todo: 换成servicetype=2
|
|
|
|
// fetchBizTrainsOrderSummaryByType(params, 'Form', FORM_TRAINSBOOKING), // todo: 换成servicetype=2
|
|
|
|
fetchTrainsUpsellTSummaryByType(params)
|
|
|
|
fetchBizTrainsOrderSummaryByType(params, 'servicetype', SERVICETYPE_TRAINSBOOKING),
|
|
|
|
|
|
|
|
fetchTrainsUpsellTSummaryByType(params, 'Form', FORM_TRAINSUPSELL),
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
if (!isEmpty(trains[1])) {
|
|
|
|
if (!isEmpty(trains[1])) {
|
|
|
|
trains[0].data.diff = trains[1].data;
|
|
|
|
trains[0].data.diff = trains[1].data;
|
|
|
|
@ -136,92 +137,42 @@ const initialState = {
|
|
|
|
|
|
|
|
|
|
|
|
const useTrainsStore = create(
|
|
|
|
const useTrainsStore = create(
|
|
|
|
devtools(
|
|
|
|
devtools(
|
|
|
|
immer(
|
|
|
|
immer((set, get) => ({
|
|
|
|
(set, get) => ({
|
|
|
|
...initialState,
|
|
|
|
...initialState,
|
|
|
|
reset: () => set(initialState),
|
|
|
|
reset: () => set(initialState),
|
|
|
|
|
|
|
|
|
|
|
|
setLoading: (loading) => set({ loading }),
|
|
|
|
setLoading: (loading) => set({ loading }),
|
|
|
|
setTypeLoading: (typeLoading) => set({ typeLoading }),
|
|
|
|
setTypeLoading: (typeLoading) => set({ typeLoading }),
|
|
|
|
|
|
|
|
|
|
|
|
setSearchValues: (obj, values) => set((state) => ({ searchValues: values, searchValuesToSub: obj })),
|
|
|
|
setSearchValues: (obj, values) => set((state) => ({ searchValues: values, searchValuesToSub: obj })),
|
|
|
|
setSearchValuesToSub: (values) => set((state) => ({ searchValuesToSub: values })),
|
|
|
|
setSearchValuesToSub: (values) => set((state) => ({ searchValuesToSub: values })),
|
|
|
|
setActiveTab: (tab) => set({ activeTab: tab }),
|
|
|
|
setActiveTab: (tab) => set({ activeTab: tab }),
|
|
|
|
|
|
|
|
|
|
|
|
setOrderCountDataLines: (data) => set({ orderCountDataLines: data }),
|
|
|
|
setOrderCountDataLines: (data) => set({ orderCountDataLines: data }),
|
|
|
|
setOrderCountDataByType: (type, data) =>
|
|
|
|
setOrderCountDataByType: (type, data) =>
|
|
|
|
set((state) => {
|
|
|
|
set((state) => {
|
|
|
|
state.orderCountDataByType[type] = data;
|
|
|
|
state.orderCountDataByType[type] = data;
|
|
|
|
}),
|
|
|
|
}),
|
|
|
|
|
|
|
|
|
|
|
|
// data ----
|
|
|
|
// data ----
|
|
|
|
|
|
|
|
onChangeDateGroup: (value, data, avg1) => {
|
|
|
|
// site effects
|
|
|
|
// const { lines, dateRadioValue, avgLineValue } = calculateLineData(value, data, avg1);
|
|
|
|
getTrainsWithUpsell: async (params, type, typeVal) => {
|
|
|
|
// set({ orderCountDataLines: lines, avgLineValue, activeDateGroupRadio: dateRadioValue });
|
|
|
|
const { setLoading } = get();
|
|
|
|
},
|
|
|
|
setLoading(true);
|
|
|
|
onChangeDateGroupSub: (value, data, avg1) => {
|
|
|
|
set({ trainsOrdersSummary: [] });
|
|
|
|
// const { lines, dateRadioValue, avgLineValue } = calculateLineData(value, data, avg1);
|
|
|
|
try {
|
|
|
|
// set({ orderCountDataLinesSub: lines, avgLineValueSub: avgLineValue, activeDateGroupRadioSub: dateRadioValue });
|
|
|
|
const res = await fetchTrainsWithUpsellSummary(params);
|
|
|
|
},
|
|
|
|
set({ trainsOrdersSummary: res });
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
// site effects
|
|
|
|
} finally {
|
|
|
|
getBizOrderCount: async (params, type, typeVal) => {
|
|
|
|
setLoading(false);
|
|
|
|
const { setLoading } = get();
|
|
|
|
}
|
|
|
|
setLoading(true);
|
|
|
|
},
|
|
|
|
set({ trainsOrdersSummary: [] });
|
|
|
|
|
|
|
|
try {
|
|
|
|
// sub
|
|
|
|
const res = await fetchTrainsWithUpsellSummary(params);
|
|
|
|
})),
|
|
|
|
// 第一次得到数据
|
|
|
|
{ name: 'trains' }
|
|
|
|
// const { lines, dateRadioValue, avgLineValue } = resultDataCb(res, 'day', orderCountDataMapper, orderCountDataFieldMapper, calculateLineData);
|
|
|
|
|
|
|
|
// if (isEmpty(type)) {
|
|
|
|
|
|
|
|
// // index page
|
|
|
|
|
|
|
|
set({ trainsOrdersSummary: res });
|
|
|
|
|
|
|
|
// set({ orderCountDataLines: lines, avgLineValue, activeDateGroupRadio: dateRadioValue });
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// // sub page
|
|
|
|
|
|
|
|
// set({ orderCountDataRawSub: res });
|
|
|
|
|
|
|
|
// set({ orderCountDataLinesSub: lines, avgLineValueSub: avgLineValue, activeDateGroupRadioSub: dateRadioValue });
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
setLoading(false);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getBizOrderCount_type: async (type) => {
|
|
|
|
|
|
|
|
const { setTypeLoading, searchValuesToSub, setOrderCountDataByType } = get();
|
|
|
|
|
|
|
|
setTypeLoading(true);
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// const res = await fetchBizOrderCountByType(type, searchValuesToSub);
|
|
|
|
|
|
|
|
// setOrderCountDataByType(type, res);
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
setTypeLoading(false);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
onTabChange: async (tab) => {
|
|
|
|
|
|
|
|
const { setActiveTab, getBizOrderCount_type } = get();
|
|
|
|
|
|
|
|
setActiveTab(tab);
|
|
|
|
|
|
|
|
await getBizOrderCount_type(tab);
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// sub
|
|
|
|
|
|
|
|
getBizOrderDetailByType: async (params, type, typeVal) => {
|
|
|
|
|
|
|
|
const { setTypeLoading } = get();
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
setTypeLoading(true);
|
|
|
|
|
|
|
|
// const res = await fetchBizOrderDetailByType(params, type, typeVal, 'detail');
|
|
|
|
|
|
|
|
// console.log('💥111', res);
|
|
|
|
|
|
|
|
// set({ orderDetails: res });
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
setTypeLoading(false);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}),
|
|
|
|
|
|
|
|
{ name: 'bizOrder' }
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
export default useTrainsStore;
|
|
|
|
export default useTrainsStore;
|
|
|
|
|