diff --git a/src/containers/statistics/AbnormalSituationContainer.js b/src/containers/statistics/AbnormalSituationContainer.js index a684a6a..2240d13 100644 --- a/src/containers/statistics/AbnormalSituationContainer.js +++ b/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 }) diff --git a/src/containers/statistics/FlightContainer.js b/src/containers/statistics/FlightContainer.js index 6e23119..2ae84d5 100644 --- a/src/containers/statistics/FlightContainer.js +++ b/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 }) diff --git a/src/containers/statistics/FlightResultContainer.js b/src/containers/statistics/FlightResultContainer.js index 90242dd..2480dcc 100644 --- a/src/containers/statistics/FlightResultContainer.js +++ b/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 }) diff --git a/src/modules/basis/group/actions/basisGroupAction.ts b/src/modules/basis/group/actions/basisGroupAction.ts index a896a9d..7811f40 100644 --- a/src/modules/basis/group/actions/basisGroupAction.ts +++ b/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( // )(); )(); +export const ENTIRE_GROUP_LIST = createAsyncAction( + ENTIRE_GROUP_LIST_REQUEST, + ENTIRE_GROUP_LIST_SUCCESS, + ENTIRE_GROUP_LIST_FAILURE +)(); + 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, diff --git a/src/modules/basis/group/models/basisGroupModel.ts b/src/modules/basis/group/models/basisGroupModel.ts index a7c9285..8c75fed 100644 --- a/src/modules/basis/group/models/basisGroupModel.ts +++ b/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, diff --git a/src/modules/basis/group/reducers/basisGroupReducer.ts b/src/modules/basis/group/reducers/basisGroupReducer.ts index aaec57e..fdb7bd1 100644 --- a/src/modules/basis/group/reducers/basisGroupReducer.ts +++ b/src/modules/basis/group/reducers/basisGroupReducer.ts @@ -77,6 +77,13 @@ export const groupReducer = createReducer( 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; diff --git a/src/modules/basis/group/sagas/basisGroupSaga.ts b/src/modules/basis/group/sagas/basisGroupSaga.ts index 407d37b..0eba516 100644 --- a/src/modules/basis/group/sagas/basisGroupSaga.ts +++ b/src/modules/basis/group/sagas/basisGroupSaga.ts @@ -314,6 +314,38 @@ function* listGroupSaga(action: ActionType) { } } +function* entireGroupListSaga( + action: ActionType +) { + 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 ) { @@ -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);