Browse Source

통계 페이지 전체 그룹 조회 작업

pull/2/head
hhjk00 10 months ago
parent
commit
ccb27fd7c1
  1. 10
      src/containers/statistics/AbnormalSituationContainer.js
  2. 10
      src/containers/statistics/FlightContainer.js
  3. 10
      src/containers/statistics/FlightResultContainer.js
  4. 11
      src/modules/basis/group/actions/basisGroupAction.ts
  5. 2
      src/modules/basis/group/models/basisGroupModel.ts
  6. 7
      src/modules/basis/group/reducers/basisGroupReducer.ts
  7. 33
      src/modules/basis/group/sagas/basisGroupSaga.ts

10
src/containers/statistics/AbnormalSituationContainer.js

@ -2,6 +2,7 @@ import { CustomMainLayout } from '../../components/layout/CustomMainLayout';
import { useCallback, useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import * as StcsActions from '../../modules/statistics/actions';
import * as GroupActions from '../../modules/basis/group/actions/basisGroupAction';
import StatisticsSearch from '../../components/statistics/StatisticsSearch';
import StatisticsTotal from '../../components/statistics/StatisticsTotal';
@ -10,6 +11,8 @@ export default function AbnormalSituationContainer() {
const { abnormal, abnormalSearch } = useSelector(
state => state.statisticsState
);
const { user } = useSelector(state => state.authState);
const { entireGroupList } = useSelector(state => state.groupState);
const [searchType, setSearchType] = useState({
category: 'PLAN',
@ -32,6 +35,13 @@ export default function AbnormalSituationContainer() {
CRASH: '충돌위험'
};
useEffect(() => {
if (user) {
user.authId === 'SUPER' &&
dispatch(GroupActions.ENTIRE_GROUP_LIST.request());
}
}, []);
useEffect(() => {
dispatch(
StcsActions.ABNORMAL_STCS.request({ serviceType: searchType.serviceType })

10
src/containers/statistics/FlightContainer.js

@ -2,12 +2,15 @@ import { CustomMainLayout } from '../../components/layout/CustomMainLayout';
import { useCallback, useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import * as StcsActions from '../../modules/statistics/actions';
import * as GroupActions from '../../modules/basis/group/actions/basisGroupAction';
import StatisticsTotal from '../../components/statistics/StatisticsTotal';
import StatisticsSearch from '../../components/statistics/StatisticsSearch';
export default function FlightContainer() {
const dispatch = useDispatch();
const { flight, flightSearch } = useSelector(state => state.statisticsState);
const { user } = useSelector(state => state.authState);
const { entireGroupList } = useSelector(state => state.groupState);
const [searchType, setSearchType] = useState({
category: 'TIME',
@ -30,6 +33,13 @@ export default function FlightContainer() {
FLT_COUNT: '비행 횟수'
};
useEffect(() => {
if (user) {
user.authId === 'SUPER' &&
dispatch(GroupActions.ENTIRE_GROUP_LIST.request());
}
}, []);
useEffect(() => {
dispatch(
StcsActions.FLIGHT_STCS.request({ serviceType: searchType.serviceType })

10
src/containers/statistics/FlightResultContainer.js

@ -2,12 +2,15 @@ import { CustomMainLayout } from '../../components/layout/CustomMainLayout';
import { useCallback, useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import * as StcsActions from '../../modules/statistics/actions';
import * as GroupActions from '../../modules/basis/group/actions/basisGroupAction';
import StatisticsTotal from '../../components/statistics/StatisticsTotal';
import StatisticsSearch from '../../components/statistics/StatisticsSearch';
export default function ResultContainer() {
const dispatch = useDispatch();
const { result, resultSearch } = useSelector(state => state.statisticsState);
const { user } = useSelector(state => state.authState);
const { entireGroupList } = useSelector(state => state.groupState);
const [searchType, setSearchType] = useState({
category: 'FLT_RESULT',
@ -30,6 +33,13 @@ export default function ResultContainer() {
FLT_PLAN_APRVN: '비행 승인'
};
useEffect(() => {
if (user) {
user.authId === 'SUPER' &&
dispatch(GroupActions.ENTIRE_GROUP_LIST.request());
}
}, []);
useEffect(() => {
dispatch(
StcsActions.RESULT_STCS.request({ serviceType: searchType.serviceType })

11
src/modules/basis/group/actions/basisGroupAction.ts

@ -48,6 +48,10 @@ const GROUP_LIST_REQUEST = 'basis/group/GROUP_LIST_REQUEST';
const GROUP_LIST_SUCCESS = 'basis/group/GROUP_LIST_SUCCESS';
const GROUP_LIST_FAILURE = 'basis/group/GROUP_LIST_FAILURE';
const ENTIRE_GROUP_LIST_REQUEST = 'basis/group/ENTIRE_GROUP_LIST_REQUEST';
const ENTIRE_GROUP_LIST_SUCCESS = 'basis/group/ENTIRE_GROUP_LIST_SUCCESS';
const ENTIRE_GROUP_LIST_FAILURE = 'basis/group/ENTIRE_GROUP_LIST_FAILURE';
//# 그룹코드 발급
const GROUP_CREATEID_REQUEST = 'basis/group/GROUP_CREATEID_REQUEST';
const GROUP_CREATEID_SUCCESS = 'basis/group/GROUP_CREATEID_SUCCESS';
@ -160,6 +164,12 @@ export const GROUP_LIST = createAsyncAction(
// )<GroupState, { data: GroupData[]; count: number }, AxiosError>();
)<string, { data: GroupData[]; count: number }, AxiosError>();
export const ENTIRE_GROUP_LIST = createAsyncAction(
ENTIRE_GROUP_LIST_REQUEST,
ENTIRE_GROUP_LIST_SUCCESS,
ENTIRE_GROUP_LIST_FAILURE
)<string, { data: GroupData[]; count: number }, AxiosError>();
export const GROUP_CREATEID = createAsyncAction(
GROUP_CREATEID_REQUEST,
GROUP_CREATEID_SUCCESS,
@ -234,6 +244,7 @@ const actions = {
GROUP_UPDATE,
GROUP_DELETE,
GROUP_LIST,
ENTIRE_GROUP_LIST,
GROUP_CREATEID,
GROUP_JOINLIST,
GROUP_JOIN,

2
src/modules/basis/group/models/basisGroupModel.ts

@ -6,6 +6,7 @@ export interface GroupState {
joinList: JoinGroupData[] | undefined;
mainList: MainGroupData[] | undefined;
groupList: GroupData[] | undefined;
entireGroupList: GroupData[] | undefined;
aprvList: AprvGroupData[] | undefined;
userList: UserGroupData[] | undefined;
groupId: string | '';
@ -117,6 +118,7 @@ export const initGroup = {
mainListCount: 0,
groupList: undefined,
groupListCount: 0,
entireGroupList: undefined,
aprvList: undefined,
aprvCount: 0,
userList: undefined,

7
src/modules/basis/group/reducers/basisGroupReducer.ts

@ -77,6 +77,13 @@ export const groupReducer = createReducer<GroupState, Actions.GroupAction>(
draft.groupListCount = count;
})
)
.handleAction(Actions.ENTIRE_GROUP_LIST.success, (state, action) =>
produce(state, draft => {
const { data, count } = action.payload;
draft.entireGroupList = data;
// draft.entireGroupList = count;
})
)
.handleAction(Actions.GROUP_JOINLIST.success, (state, action) =>
produce(state, draft => {
const { data, count } = action.payload;

33
src/modules/basis/group/sagas/basisGroupSaga.ts

@ -314,6 +314,38 @@ function* listGroupSaga(action: ActionType<typeof Actions.GROUP_LIST.request>) {
}
}
function* entireGroupListSaga(
action: ActionType<typeof Actions.ENTIRE_GROUP_LIST.request>
) {
try {
const payload = action.payload;
const res = yield call(Apis.groupAPI.listGroup, payload);
const { data, count, errorCode } = res;
if (errorCode) {
// 오류메시지 호출
yield put(
MessageActions.IS_ERROR({
errorCode: errorCode,
errorMessage: '처리중 오류가 발생하였습니다',
isHistoryBack: false,
isRefresh: false
})
);
return;
}
yield put(
Actions.ENTIRE_GROUP_LIST.success({
data,
count
})
);
} catch (error) {
yield put(Actions.ENTIRE_GROUP_LIST.failure(error));
}
}
function* groupJoinListSaga(
action: ActionType<typeof Actions.GROUP_JOINLIST.request>
) {
@ -560,6 +592,7 @@ export function* basGroupSaga() {
yield takeEvery(Actions.GROUP_DELETE.request, deleteGroupSaga);
yield takeEvery(Actions.GROUP_CREATEID.request, createIdSaga);
yield takeEvery(Actions.GROUP_LIST.request, listGroupSaga);
yield takeEvery(Actions.ENTIRE_GROUP_LIST.request, entireGroupListSaga);
yield takeEvery(Actions.GROUP_JOINLIST.request, groupJoinListSaga);
yield takeEvery(Actions.APPROVAL_LIST.request, aprvListSaga);
yield takeEvery(Actions.USER_LIST.request, userListSaga);

Loading…
Cancel
Save