From a0087a1e290ec828b1fc360b1a7d8caea4f92901 Mon Sep 17 00:00:00 2001 From: bcjang Date: Wed, 19 Mar 2025 10:56:57 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=EC=A6=88=EB=8B=88=EC=8A=A4=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=A1=B0=ED=9A=8C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/RouteInfo.js | 2 + src/apis/Log.js | 18 + src/assets/data/menuConfig.js | 6 + src/assets/data/options.js | 596 +++++++++++++++++- src/assets/data/types.js | 3 +- src/components/ServiceManage/index.js | 2 + .../ServiceManage/modal/OwnerChangeModal.js | 4 + .../searchBar/BusinessLogSearchBar.js | 211 +++++++ src/components/common/Table/ViewTableInfo.js | 44 +- .../common/button/ExcelDownButton.js | 233 +++++-- .../common/button/ExcelDownButton_bak.js | 113 ++++ src/i18n.js | 6 + src/pages/DataManage/LandInfoView.js | 1 - src/pages/UserManage/BusinessLogView.js | 277 ++++++++ src/pages/UserManage/index.js | 2 +- 15 files changed, 1464 insertions(+), 54 deletions(-) create mode 100644 src/apis/Log.js create mode 100644 src/components/ServiceManage/searchBar/BusinessLogSearchBar.js create mode 100644 src/components/common/button/ExcelDownButton_bak.js create mode 100644 src/pages/UserManage/BusinessLogView.js diff --git a/src/RouteInfo.js b/src/RouteInfo.js index 8032da7..2b30051 100644 --- a/src/RouteInfo.js +++ b/src/RouteInfo.js @@ -9,6 +9,7 @@ import { AdminView, AuthSetting, AuthSettingUpdate, + BusinessLogView, CaliumRequest, LogView, } from './pages/UserManage'; @@ -59,6 +60,7 @@ const RouteInfo = () => { } /> } /> } /> + } /> } /> diff --git a/src/apis/Log.js b/src/apis/Log.js new file mode 100644 index 0000000..980287d --- /dev/null +++ b/src/apis/Log.js @@ -0,0 +1,18 @@ +//운영 정보 관리 - 로그 api 연결 + +import { Axios } from '../utils'; + +// 비즈니스 로그 조회 +export const BusinessLogList = async (token, params) => { + try { + const res = await Axios.post(`/api/v1/log/generic/list`, params, { + headers: { Authorization: `Bearer ${token}` }, + }); + + return res.data; + } catch (e) { + if (e instanceof Error) { + throw new Error('BusinessLogList Error', e); + } + } +}; \ No newline at end of file diff --git a/src/assets/data/menuConfig.js b/src/assets/data/menuConfig.js index 388c0a5..fc6ac86 100644 --- a/src/assets/data/menuConfig.js +++ b/src/assets/data/menuConfig.js @@ -83,6 +83,12 @@ export const menuConfig = { permissions: { read: authType.cryptoRead } + }, + businesslogview: { + title: '비즈니스 로그 조회', + permissions: { + read: authType.businessLogRead + } } } }, diff --git a/src/assets/data/options.js b/src/assets/data/options.js index 39906da..1dcac03 100644 --- a/src/assets/data/options.js +++ b/src/assets/data/options.js @@ -149,6 +149,12 @@ export const userSearchType = [ { value: 'NAME', name: '닉네임' }, ]; +export const userSearchType2 = [ + { value: 'GUID', name: 'GUID' }, + { value: 'NICKNAME', name: '닉네임' }, + { value: 'ACCOUNT', name: 'Account ID' }, +]; + export const landSearchType = [ { value: 'ID', name: '랜드ID' }, { value: 'NAME', name: '랜드명' }, @@ -227,4 +233,592 @@ export const opLandInfoStatusType = [ { value: 'AUCTION_END', name: '경매 완료' }, { value: 'AUCTION_WAIT', name: '경매 대기' }, { value: 'AUCTION_RUNNING', name: '경매 진행' }, -]; \ No newline at end of file +]; + +// export const logAction = [ +// { value: "None", name: "ALL" }, +// { value: "AIChatDeleteCharacter", name: "NPC 삭제" }, +// { value: "AIChatDeleteUser", name: "유저 삭제" }, +// { value: "AIChatGetCharacter", name: "NPC 조회" }, +// { value: "AIChatIncentiveMarking", name: "인센티브 획득 마킹" }, +// { value: "AIChatIncentiveSearch", name: "인센티브 조회" }, +// { value: "AIChatJwtIssue", name: "Jwt 토큰 발행" }, +// { value: "AIChatJwtVerify", name: "Jwt 토큰 확인" }, +// { value: "AIChatPointCharge", name: "포인트 충전" }, +// { value: "AIChatPointChargeVerify", name: "포인트 충전 확인" }, +// { value: "AIChatRegisterCharacter", name: "NPC 등록" }, +// { value: "AIChatRegisterUser", name: "유저 등록" }, +// { value: "AIChatUpdateCharacter", name: "NPC 정보 업데이트" }, +// { value: "BanParty", name: "파티 추방" }, +// { value: "BattleInstanceJoin", name: "배틀 인스턴스 조인" }, +// { value: "BattleInstanceSnapshotCreate", name: "배틀 인스턴스 스냅샷 생성" }, +// { value: "BattleInstanceSnapshotSave", name: "배틀 인스턴스 스냅샷 저장" }, +// { value: "BattleObjectInteraction", name: "배틀 오브젝트 상호작용" }, +// { value: "BattleObjectStateUpdate", name: "배틀 오브젝트 상태 변경" }, +// { value: "BattlePodCombatOccupyReward", name: "포드 컴뱃 소유 보상" }, +// { value: "BattleRoundStateUpdate", name: "배틀 라운드 스테이트 업데이트" }, +// { value: "BattleUserDead", name: "유저 데드" }, +// { value: "BattleUserRespawn", name: "배틀 리스폰" }, +// { value: "BeaconAppearanceCustomize", name: "비컨 외형 커스터마이징" }, +// { value: "BeaconCreate", name: "비컨 생성" }, +// { value: "BeaconEdit", name: "비컨 편집" }, +// { value: "BeaconSell", name: "비컨 매각" }, +// { value: "BrokerApiAdmin", name: "BrokerApi 어드민 재화 지급" }, +// { value: "BrokerApiPlanetAuth", name: "BrokerApi Planet 인증" }, +// { value: "BrokerApiUserExchangeComplete", name: "BrokerApi 재화 교환 완료" }, +// { value: "BrokerApiUserExchangeOrder", name: "BrokerApi 재화 교환 주문" }, +// { value: "BrokerApiUserLogin", name: "BrokerApi 유저 로그인" }, +// { value: "BuffAdd", name: "버프 추가" }, +// { value: "BuffDelete", name: "버프 제거" }, +// { value: "CaliumSyncEchoSystem", name: "칼리움 동기화 처리" }, +// { value: "CancelFriendRequest", name: "친구요청 취소" }, +// { value: "CartAdd", name: "장바구니 추가" }, +// { value: "CartDelete", name: "장바구니 삭제" }, +// { value: "CartPurchase", name: "장바구니 구매" }, +// { value: "ChangeConvertCaliumInfo", name: "칼리움 정보 변환" }, +// { value: "CharacterAppearanceCustomize", name: "캐리터 외형 커스터마이징" }, +// { value: "CharacterAppearanceUpdate", name: "캐릭터 외형 갱신" }, +// { value: "CharacterCreate", name: "캐릭터 생성(자동 생성)" }, +// { value: "CharacterLoading", name: "캐릭터 로딩" }, +// { value: "ChatChannel", name: "채널 채팅" }, +// { value: "ChatNormal", name: "노말 채팅" }, +// { value: "ChatNotice", name: "전서버 채팅" }, +// { value: "ChatParty", name: "파티 채팅" }, +// { value: "ChatWhisper", name: "귓속말 채팅" }, +// { value: "CheatAllCraftFinish", name: "치트로 인한 모든 제작 시간 단축" }, +// { value: "CheatCommandChangeNickName", name: "치트로 인한 캐릭터 명 변경" }, +// { value: "CheatCommandCharacterInit", name: "치트로 인한 캐릭터 초기화" }, +// { value: "CheatCommandClaimReset", name: "치트로 인한 클레임 리워드 리셋" }, +// { value: "CheatCommandClaimUpdate", name: "치트로 인한 클레임 리워드 대기시간 단축" }, +// { value: "CheatCommandCraftHelpInit", name: "치트로 인한 제작 헬프 초기화" }, +// { value: "CheatCommandDeleteQuest", name: "치트로 인한 퀘스트 삭제" }, +// { value: "CheatCommandGainLand", name: "치트로 인한 랜드 획득" }, +// { value: "CheatCommandIncreaseExp", name: "치트로 인한 시즌 패스 경험치 증가" }, +// { value: "CheatCommandItem", name: "치트로 인한 아이템 추가 삭제" }, +// { value: "CheatCommandItemLevelUp", name: "치트로 인한 아이템 레벨 업" }, +// { value: "CheatCommandLandAuctionBlindSet", name: "치트로 인한 랜드 경매 블라이인드 입찰 설정" }, +// { value: "CheatCommandLandAuctionCanel", name: "치트로 인한 랜드 경매 취소" }, +// { value: "CheatCommandLandAuctionReserve", name: "치트로 인한 랜드 경매 예약" }, +// { value: "CheatCommandLandAuctionStart", name: "치트로 인한 랜드 경매 시작" }, +// { value: "CheatCommandPackageSend", name: "치트로 인한 패키지 메일 전송" }, +// { value: "CheatCommandQuestAccept", name: "치트로 인한 퀘스트 할당" }, +// { value: "CheatCommandQuestComplete", name: "치트로 인한 퀘스트 완료" }, +// { value: "CheatCommandRegisterCraftRecipe", name: "치트로 인한 레시피 등록" }, +// { value: "CheatCommandResetAllQuest", name: "치트로 인한 퀘스트 리셋" }, +// { value: "CheatCommandResetEscapePosition", name: "치트로 인한 탈출시간 리셋" }, +// { value: "CheatCommandResetMailCount", name: "치트로 인한 메일 횟수 제한 초기화" }, +// { value: "CheatCommandSeasonPassInit", name: "치트로 인한 시즌 패스 초기화" }, +// { value: "CheatCommandSendMail", name: "치트로 인한 메일 발송" }, +// { value: "CheatCommandShopProductInit", name: "치트로 인한 상점 품목 초기화" }, +// { value: "CheatCommandShopProductRenewal", name: "치트로 인한 상점 갱신 전송" }, +// { value: "ClaimReward", name: "클레임 리워드 이벤트 보상" }, +// { value: "ConvertCalium", name: "칼리움 컨버터 변환" }, +// { value: "ConvertExchangeCalium", name: "칼리움 교환소 변환" }, +// { value: "CraftFinish", name: "제작 완료" }, +// { value: "CraftHelp", name: "제작 도움" }, +// { value: "CraftRecipeRegister", name: "제작 레시피 추가" }, +// { value: "CraftStart", name: "제작 시작" }, +// { value: "CraftStop", name: "제작 취소" }, +// { value: "CreateCaliumContent", name: "칼리움 컨텐츠 생성" }, +// { value: "CreateParty", name: "파티 생성" }, +// { value: "CreatePartyInstance", name: "파티 던전 생성" }, +// { value: "DailyQuestCheck", name: "데일리 퀘스트 체크" }, +// { value: "DanceEntityStateEnd", name: "캐릭터 엔티티 스테이트 댄스 종료" }, +// { value: "DanceEntityStateStart", name: "캐릭터 엔티티 스테이트 댄스 시작" }, +// { value: "DeleteMyhome", name: "마이홈 삭제" }, +// { value: "DestroyParty", name: "파티 파괴" }, +// { value: "EndPartyVote", name: "파티 투표 종료" }, +// { value: "EnterMyhome", name: "마이홈 입장" }, +// { value: "EnterMyhomeEditRoom", name: "마이홈 에디트 룸 입장" }, +// { value: "FailCaliumEchoSystem", name: "칼리움 에코시스템 실패" }, +// { value: "FailCaliumStorageRollBack", name: "칼리움 컨버터 롤백 실패" }, +// { value: "FarmingCancel", name: "파밍 취소" }, +// { value: "FarmingComplete", name: "파밍 완료" }, +// { value: "FarmingIncompletedReward", name: "파밍 미완료 보상" }, +// { value: "FarmingStart", name: "파밍 시작" }, +// { value: "FillupCalium", name: "칼리움 총량 누적" }, +// { value: "FriendAdd", name: "친구추가" }, +// { value: "FriendDelete", name: "친구삭세" }, +// { value: "GainLandProfit", name: "랜드 수익 획득" }, +// { value: "InviteParty", name: "파티 초대" }, +// { value: "ItemBuy", name: "아이템 구매" }, +// { value: "ItemDestroy", name: "아이템 제거" }, +// { value: "ItemRandomBoxUse", name: "아이템 랜덤박스 사용" }, +// { value: "ItemTattooChangeAttribute", name: "타투 아이템 속성변환" }, +// { value: "ItemTattooLevelUp", name: "타투 아이템 강화" }, +// { value: "ItemUse", name: "아이템 사용" }, +// { value: "JoinInstance", name: "인스턴스 입장" }, +// { value: "JoinParty", name: "파티 가입" }, +// { value: "JoinPartyInstance", name: "파티 인스턴스 입장" }, +// { value: "KickFriendsFromMyhome", name: "마이홈에서 친구 내쫒기" }, +// { value: "LandAuctionActivity", name: "랜드 경매 활성화" }, +// { value: "LandAuctionBid", name: "랜드 경매 입찰" }, +// { value: "LandAuctionBidPriceRefund", name: "랜드 경매 입찰금 환급" }, +// { value: "LandAuctionCheck", name: "랜드 경매 체크" }, +// { value: "LeaveInstance", name: "인스턴스 퇴장" }, +// { value: "LeaveParty", name: "파티 탈퇴" }, +// { value: "LeavePartyInstance", name: "파티 인스턴스 퇴장" }, +// { value: "LoginToGame", name: "게임 로그인" }, +// { value: "LoginToGameSnapShot", name: "게임 로그인 스냅샷" }, +// { value: "LoginToUserAuth", name: "계정 로그인" }, +// { value: "MailAiChatIncentivePoint", name: "AI Chat 인센티브 우편 지급" }, +// { value: "MailDestroy", name: "우편 삭제" }, +// { value: "MailGetSystemMail", name: "시스템 우편 받기" }, +// { value: "MailInitSendCount", name: "우편 보내기 기회 초기화" }, +// { value: "MailRead", name: "우편 읽기" }, +// { value: "MailSend", name: "우편 발송" }, +// { value: "MailTaken", name: "우편 첨부 수령" }, +// { value: "ModifyLandInfo", name: "랜드 정보 수정" }, +// { value: "MoneyChange", name: "재화 변경" }, +// { value: "ProductGive", name: "결제 상품 지급" }, +// { value: "ProductOpenFailed", name: "결제 상품 오픈 실패" }, +// { value: "ProductOpenSuccess", name: "결제 상품 오픈 성공" }, +// { value: "QuestMailSend", name: "퀘스트 우편 발송" }, +// { value: "QuestMainAbort", name: "퀘스트 메인 포기" }, +// { value: "QuestMainAssignByDialogue", name: "대화를 통한 퀘스트 메인 수락" }, +// { value: "QuestMainAssignForce", name: "퀘스트 메인 강제 수락" }, +// { value: "QuestMainRefuse", name: "퀘스트 메인 수락 거절" }, +// { value: "QuestMainRepeatTimeInit", name: "반복가능 퀘스트 리프레시 타임 초기화" }, +// { value: "QuestMainRepeatTimeRefresh", name: "반복가능 퀘스트 리프레시 타임 갱신" }, +// { value: "QuestMainReward", name: "퀘스트 메인 보상" }, +// { value: "QuestMainTask", name: "퀘스트 메인 태스크관련" }, +// { value: "QuestTaskUpdate", name: "퀘스트 태스크 업데이트" }, +// { value: "RefuseFriendRequest", name: "친구요청 거절" }, +// { value: "RenameFriendFolder", name: "친구 폴더면 수정" }, +// { value: "RenameMyhome", name: "마이홈 이름 변경" }, +// { value: "RenewalShopProducts", name: "사용자 요청에 의한 상픔 리스트 갱심" }, +// { value: "RentFloor", name: "빌딩 층 임대" }, +// { value: "ReplyInviteParty", name: "파티 초대 응답" }, +// { value: "ReplySummonParty", name: "파티 맴버 소환 응답" }, +// { value: "ReservationEnterToServer", name: "서버 이동 예약" }, +// { value: "RewardProp", name: "리워드 프랍" }, +// { value: "SaveMyhome", name: "마이홈 저장" }, +// { value: "SeasonPassBuyCharged", name: "시즌 패스 유료 구입" }, +// { value: "SeasonPassStartNew", name: "새로운 시즌 패스 시작" }, +// { value: "SeasonPassTakeReward", name: "시즌 패스 보상 획득" }, +// { value: "SendFriendRequest", name: "친구 신청" }, +// { value: "ShopChangeProductTradingMeter", name: "상품 리스트 갱신" }, +// { value: "ShopGetProductTradingMeter", name: "상품 리스트 조회" }, +// { value: "ShopGetRePurchase", name: "판매한 상품 리스트 조회" }, +// { value: "ShopPurchase", name: "상품 구매" }, +// { value: "ShopRePurchase", name: "판매한 상품 재구매" }, +// { value: "ShopSell", name: "상품 판매" }, +// { value: "StageConcertStart", name: "콘서트 시작" }, +// { value: "StageEnter", name: "스테이지 입장" }, +// { value: "StageExit", name: "스테이지 퇴장" }, +// { value: "StartPartyVote", name: "파티 투표 시작" }, +// { value: "SummonParty", name: "파티 맴버 소환" }, +// { value: "SwitchingProp", name: "데일리 퀘스트 체크" }, +// { value: "TaskReservationComplete", name: "Task Reservation complete" }, +// { value: "TaxiMove", name: "택시 이동" }, +// { value: "TestBusinessLog", name: "테스트 비지니스 로그 전송" }, +// { value: "TestUserCreate", name: "테스트 계정으로 생성" }, +// { value: "TestUserInitial", name: "테스트 계정으로 초기화" }, +// { value: "TestWriteNoticeChat", name: "테스트 공지사항 추가" }, +// { value: "TestWriteSystemMail", name: "테스트 시스템 메일 추가" }, +// { value: "UgqAbort", name: "Ugq 포기" }, +// { value: "UgqApiAddSlot", name: "UgqApi 슬롯 추가" }, +// { value: "UgqApiAdminLogin", name: "UgqApi 어드민 로그인" }, +// { value: "UgqApiChangeState", name: "UgqApi Ugq 상태 변경" }, +// { value: "UgqApiCreatorPoint", name: "UgqApi CreatorPoint 증감" }, +// { value: "UgqApiLogin", name: "UgqApi 로그인" }, +// { value: "UgqApiLogout", name: "UgqApi 로그아웃" }, +// { value: "UgqApiQuestCraete", name: "UgqApi 퀘스트 생성" }, +// { value: "UgqAssign", name: "Ugq 수락" }, +// { value: "UgqDailyRewardCountRefresh", name: "Ugq 데일리 보상 리프레시" }, +// { value: "UgqDeregisterBookmark", name: "Ugq 북마크 해제" }, +// { value: "UgqDeregisterLike", name: "Ugq 좋아요 해제" }, +// { value: "UgqReAssign", name: "Ugq 재수락" }, +// { value: "UgqRegisterBookmark", name: "Ugq 북마크 등록" }, +// { value: "UgqRegisterLike", name: "Ugq 좋아요 등록" }, +// { value: "UgqTestAbort", name: "Test Ugq 포기" }, +// { value: "UgqTestAssign", name: "Test Ugq 수락" }, +// { value: "UgqTestDelete", name: "Test Ugq 삭제" }, +// { value: "UpdateBeaconAppearanceCustomize", name: "비컨 외형 커스터마이징" }, +// { value: "UpdateCharacterProfile", name: "캐릭터 프로필 업데이트" }, +// { value: "UpdateCustomDefineUi", name: "커스텀 UI 업데이트" }, +// { value: "UpdateEscape", name: "유저 탈출" }, +// { value: "UpdateGameOption", name: "게임 옵션 업데이트" }, +// { value: "UpdateLanguage", name: "유저 언어 업데이트" }, +// { value: "UpdateUgcNpcLike", name: "NPC Like 업데이트" }, +// { value: "UserBlock", name: "유저 차단" }, +// { value: "UserBlockCancel", name: "유저 차단 취소" }, +// { value: "UserCreate", name: "유저 생성" }, +// { value: "UserLoading", name: "유저 로딩" }, +// { value: "UserLogout", name: "유저 로그아웃" }, +// { value: "UserLogoutSnapShot", name: "게임 로그아웃 스냅샷" }, +// { value: "UserReport", name: "유저 신고" }, +// { value: "Warp", name: "워프" }, +// { value: "igmApiLogin", name: "igmApi 로그인" } +// ]; +// +// export const logDomain = [ +// { value: "BASE", name: "전체" }, +// { value: "AuthLogInOut", name: "인증 로그인/인증 로그아웃" }, +// { value: "GameLogInOut", name: "게임 로그인/게임 로그아웃" }, +// { value: "UserCreate", name: "유저 생성" }, +// { value: "User", name: "유저" }, +// { value: "UserInitial", name: "유저 초기화" }, +// { value: "CharacterCreate", name: "캐릭터 생성" }, +// { value: "Character", name: "캐릭터" }, +// { value: "Item", name: "아이템" }, +// { value: "Currency", name: "재화" }, +// { value: "Mail", name: "우편" }, +// { value: "MailStoragePeriodExpired", name: "메일 보관 기간 만료 삭제" }, +// { value: "MailProfile", name: "우편 제한 개요" }, +// { value: "Stage", name: "스테이지" }, +// { value: "ClaimReward", name: "클레임 리워드" }, +// { value: "QuestMain", name: "퀘스트 메인" }, +// { value: "QuestUgq", name: "퀘스트 Ugq" }, +// { value: "QuestMail", name: "퀘스트 메일" }, +// { value: "SocialAction", name: "소셜 액션" }, +// { value: "MyHome", name: "마이홈" }, +// { value: "Taxi", name: "택시" }, +// { value: "RewardProp", name: "리워드 프랍" }, +// { value: "Party", name: "파티" }, +// { value: "PartyMember", name: "파티 맴버" }, +// { value: "PartyVote", name: "파티 투표" }, +// { value: "PartyInstance", name: "파티 인스턴스" }, +// { value: "EscapePosition", name: "고립탈출" }, +// { value: "UserBlock", name: "유저 차단" }, +// { value: "Friend", name: "친구" }, +// { value: "UserReport", name: "유저 신고" }, +// { value: "TaskReservation", name: "처리못한 예약 테스크" }, +// { value: "SeasonPass", name: "시즌 패스" }, +// { value: "PackageLastOrderRecode", name: "패키지 마지막 획득 기록" }, +// { value: "PackageRepeat", name: "패키지 연속 지급" }, +// { value: "PackageState", name: "패키지 상태" }, +// { value: "Craft", name: "제작" }, +// { value: "CraftHelp", name: "제작 도움" }, +// { value: "Cart", name: "카트" }, +// { value: "Buff", name: "버프" }, +// { value: "UgqApi", name: "UgqApi" }, +// { value: "AIChat", name: "AI채팅" }, +// { value: "Chat", name: "채팅" }, +// { value: "Shop", name: "상점" }, +// { value: "Calium", name: "칼리움" }, +// { value: "CaliumEchoSystem", name: "칼리움 에코 시스템" }, +// { value: "CaliumStorageFail", name: "칼리움 저장 실패" }, +// { value: "Position", name: "위치" }, +// { value: "Address", name: "주소" }, +// { value: "BeaconCreate", name: "비컨 생성" }, +// { value: "Beacon", name: "비컨" }, +// { value: "CustomDefineUi", name: "CustomDefineUi" }, +// { value: "Farming", name: "파밍" }, +// { value: "FarmingReward", name: "파밍 보상" }, +// { value: "RenewalShopProducts", name: "상점 리뉴얼" }, +// { value: "CheatRenewalShopProducts", name: "상점 리뉴얼 치트" }, +// { value: "ChangeDanceEntityState", name: "댄스 엔티티 상태 변경" }, +// { value: "Land", name: "랜드" }, +// { value: "Building", name: "빌딩" }, +// { value: "SwitchingProp", name: "스위칭프랍" }, +// { value: "LandAuction", name: "랜드 경매" }, +// { value: "LandAuctionActivity", name: "랜드 경매 활성화" }, +// { value: "LandAuctionBid", name: "랜드 경매 입찰" }, +// { value: "LandAuctionBidPriceRefund", name: "랜드 경매 입찰금 환급" }, +// { value: "BrokerApi", name: "BrokerApi" }, +// { value: "Rental", name: "랜탈" }, +// { value: "BuildingProfit", name: "빌딩 수익" }, +// { value: "BattleObjectInteraction", name: "전투 오브젝트 인터렉션" }, +// { value: "BattleObjectStateUpdate", name: "전투 오브젝트 상태 업데이트" }, +// { value: "BattleReward", name: "전투 보상" }, +// { value: "BattleRespawn", name: "전투 리스폰" }, +// { value: "BattleRoomJoin", name: "전투 입장" }, +// { value: "BattleDead", name: "전투 죽음" }, +// { value: "BattleRound", name: "전투 라운드" }, +// { value: "BattleSnapshot", name: "전투 스냅샷" } +// ]; + +export const logAction = [ + { value: "None", name: "ALL" }, + { value: "AIChatDeleteCharacter", name: "AIChatDeleteCharacter" }, + { value: "AIChatDeleteUser", name: "AIChatDeleteUser" }, + { value: "AIChatGetCharacter", name: "AIChatGetCharacter" }, + { value: "AIChatIncentiveMarking", name: "AIChatIncentiveMarking" }, + { value: "AIChatIncentiveSearch", name: "AIChatIncentiveSearch" }, + { value: "AIChatJwtIssue", name: "AIChatJwtIssue" }, + { value: "AIChatJwtVerify", name: "AIChatJwtVerify" }, + { value: "AIChatPointCharge", name: "AIChatPointCharge" }, + { value: "AIChatPointChargeVerify", name: "AIChatPointChargeVerify" }, + { value: "AIChatRegisterCharacter", name: "AIChatRegisterCharacter" }, + { value: "AIChatRegisterUser", name: "AIChatRegisterUser" }, + { value: "AIChatUpdateCharacter", name: "AIChatUpdateCharacter" }, + { value: "BanParty", name: "BanParty" }, + { value: "BattleInstanceJoin", name: "BattleInstanceJoin" }, + { value: "BattleInstanceSnapshotCreate", name: "BattleInstanceSnapshotCreate" }, + { value: "BattleInstanceSnapshotSave", name: "BattleInstanceSnapshotSave" }, + { value: "BattleObjectInteraction", name: "BattleObjectInteraction" }, + { value: "BattleObjectStateUpdate", name: "BattleObjectStateUpdate" }, + { value: "BattlePodCombatOccupyReward", name: "BattlePodCombatOccupyReward" }, + { value: "BattleRoundStateUpdate", name: "BattleRoundStateUpdate" }, + { value: "BattleUserDead", name: "BattleUserDead" }, + { value: "BattleUserRespawn", name: "BattleUserRespawn" }, + { value: "BeaconAppearanceCustomize", name: "BeaconAppearanceCustomize" }, + { value: "BeaconCreate", name: "BeaconCreate" }, + { value: "BeaconEdit", name: "BeaconEdit" }, + { value: "BeaconSell", name: "BeaconSell" }, + { value: "BrokerApiAdmin", name: "BrokerApiAdmin" }, + { value: "BrokerApiPlanetAuth", name: "BrokerApiPlanetAuth" }, + { value: "BrokerApiUserExchangeComplete", name: "BrokerApiUserExchangeComplete" }, + { value: "BrokerApiUserExchangeOrder", name: "BrokerApiUserExchangeOrder" }, + { value: "BrokerApiUserLogin", name: "BrokerApiUserLogin" }, + { value: "BuffAdd", name: "BuffAdd" }, + { value: "BuffDelete", name: "BuffDelete" }, + { value: "CaliumSyncEchoSystem", name: "CaliumSyncEchoSystem" }, + { value: "CancelFriendRequest", name: "CancelFriendRequest" }, + { value: "CartAdd", name: "CartAdd" }, + { value: "CartDelete", name: "CartDelete" }, + { value: "CartPurchase", name: "CartPurchase" }, + { value: "ChangeConvertCaliumInfo", name: "ChangeConvertCaliumInfo" }, + { value: "CharacterAppearanceCustomize", name: "CharacterAppearanceCustomize" }, + { value: "CharacterAppearanceUpdate", name: "CharacterAppearanceUpdate" }, + { value: "CharacterCreate", name: "CharacterCreate" }, + { value: "CharacterLoading", name: "CharacterLoading" }, + { value: "ChatChannel", name: "ChatChannel" }, + { value: "ChatNormal", name: "ChatNormal" }, + { value: "ChatNotice", name: "ChatNotice" }, + { value: "ChatParty", name: "ChatParty" }, + { value: "ChatWhisper", name: "ChatWhisper" }, + { value: "CheatAllCraftFinish", name: "CheatAllCraftFinish" }, + { value: "CheatCommandChangeNickName", name: "CheatCommandChangeNickName" }, + { value: "CheatCommandCharacterInit", name: "CheatCommandCharacterInit" }, + { value: "CheatCommandClaimReset", name: "CheatCommandClaimReset" }, + { value: "CheatCommandClaimUpdate", name: "CheatCommandClaimUpdate" }, + { value: "CheatCommandCraftHelpInit", name: "CheatCommandCraftHelpInit" }, + { value: "CheatCommandDeleteQuest", name: "CheatCommandDeleteQuest" }, + { value: "CheatCommandGainLand", name: "CheatCommandGainLand" }, + { value: "CheatCommandIncreaseExp", name: "CheatCommandIncreaseExp" }, + { value: "CheatCommandItem", name: "CheatCommandItem" }, + { value: "CheatCommandItemLevelUp", name: "CheatCommandItemLevelUp" }, + { value: "CheatCommandLandAuctionBlindSet", name: "CheatCommandLandAuctionBlindSet" }, + { value: "CheatCommandLandAuctionCanel", name: "CheatCommandLandAuctionCanel" }, + { value: "CheatCommandLandAuctionReserve", name: "CheatCommandLandAuctionReserve" }, + { value: "CheatCommandLandAuctionStart", name: "CheatCommandLandAuctionStart" }, + { value: "CheatCommandPackageSend", name: "CheatCommandPackageSend" }, + { value: "CheatCommandQuestAccept", name: "CheatCommandQuestAccept" }, + { value: "CheatCommandQuestComplete", name: "CheatCommandQuestComplete" }, + { value: "CheatCommandRegisterCraftRecipe", name: "CheatCommandRegisterCraftRecipe" }, + { value: "CheatCommandResetAllQuest", name: "CheatCommandResetAllQuest" }, + { value: "CheatCommandResetEscapePosition", name: "CheatCommandResetEscapePosition" }, + { value: "CheatCommandResetMailCount", name: "CheatCommandResetMailCount" }, + { value: "CheatCommandSeasonPassInit", name: "CheatCommandSeasonPassInit" }, + { value: "CheatCommandSendMail", name: "CheatCommandSendMail" }, + { value: "CheatCommandShopProductInit", name: "CheatCommandShopProductInit" }, + { value: "CheatCommandShopProductRenewal", name: "CheatCommandShopProductRenewal" }, + { value: "ClaimReward", name: "ClaimReward" }, + { value: "ConvertCalium", name: "ConvertCalium" }, + { value: "ConvertExchangeCalium", name: "ConvertExchangeCalium" }, + { value: "CraftFinish", name: "CraftFinish" }, + { value: "CraftHelp", name: "CraftHelp" }, + { value: "CraftRecipeRegister", name: "CraftRecipeRegister" }, + { value: "CraftStart", name: "CraftStart" }, + { value: "CraftStop", name: "CraftStop" }, + { value: "CreateCaliumContent", name: "CreateCaliumContent" }, + { value: "CreateParty", name: "CreateParty" }, + { value: "CreatePartyInstance", name: "CreatePartyInstance" }, + { value: "DailyQuestCheck", name: "DailyQuestCheck" }, + { value: "DanceEntityStateEnd", name: "DanceEntityStateEnd" }, + { value: "DanceEntityStateStart", name: "DanceEntityStateStart" }, + { value: "DeleteMyhome", name: "DeleteMyhome" }, + { value: "DestroyParty", name: "DestroyParty" }, + { value: "EndPartyVote", name: "EndPartyVote" }, + { value: "EnterMyhome", name: "EnterMyhome" }, + { value: "EnterMyhomeEditRoom", name: "EnterMyhomeEditRoom" }, + { value: "FailCaliumEchoSystem", name: "FailCaliumEchoSystem" }, + { value: "FailCaliumStorageRollBack", name: "FailCaliumStorageRollBack" }, + { value: "FarmingCancel", name: "FarmingCancel" }, + { value: "FarmingComplete", name: "FarmingComplete" }, + { value: "FarmingIncompletedReward", name: "FarmingIncompletedReward" }, + { value: "FarmingStart", name: "FarmingStart" }, + { value: "FillupCalium", name: "FillupCalium" }, + { value: "FriendAdd", name: "FriendAdd" }, + { value: "FriendDelete", name: "FriendDelete" }, + { value: "GainLandProfit", name: "GainLandProfit" }, + { value: "InviteParty", name: "InviteParty" }, + { value: "ItemBuy", name: "ItemBuy" }, + { value: "ItemDestroy", name: "ItemDestroy" }, + { value: "ItemRandomBoxUse", name: "ItemRandomBoxUse" }, + { value: "ItemTattooChangeAttribute", name: "ItemTattooChangeAttribute" }, + { value: "ItemTattooLevelUp", name: "ItemTattooLevelUp" }, + { value: "ItemUse", name: "ItemUse" }, + { value: "JoinInstance", name: "JoinInstance" }, + { value: "JoinParty", name: "JoinParty" }, + { value: "JoinPartyInstance", name: "JoinPartyInstance" }, + { value: "KickFriendsFromMyhome", name: "KickFriendsFromMyhome" }, + { value: "LandAuctionActivity", name: "LandAuctionActivity" }, + { value: "LandAuctionBid", name: "LandAuctionBid" }, + { value: "LandAuctionBidPriceRefund", name: "LandAuctionBidPriceRefund" }, + { value: "LandAuctionCheck", name: "LandAuctionCheck" }, + { value: "LeaveInstance", name: "LeaveInstance" }, + { value: "LeaveParty", name: "LeaveParty" }, + { value: "LeavePartyInstance", name: "LeavePartyInstance" }, + { value: "LoginToGame", name: "LoginToGame" }, + { value: "LoginToGameSnapShot", name: "LoginToGameSnapShot" }, + { value: "LoginToUserAuth", name: "LoginToUserAuth" }, + { value: "MailAiChatIncentivePoint", name: "MailAiChatIncentivePoint" }, + { value: "MailDestroy", name: "MailDestroy" }, + { value: "MailGetSystemMail", name: "MailGetSystemMail" }, + { value: "MailInitSendCount", name: "MailInitSendCount" }, + { value: "MailRead", name: "MailRead" }, + { value: "MailSend", name: "MailSend" }, + { value: "MailTaken", name: "MailTaken" }, + { value: "ModifyLandInfo", name: "ModifyLandInfo" }, + { value: "MoneyChange", name: "MoneyChange" }, + { value: "ProductGive", name: "ProductGive" }, + { value: "ProductOpenFailed", name: "ProductOpenFailed" }, + { value: "ProductOpenSuccess", name: "ProductOpenSuccess" }, + { value: "QuestMailSend", name: "QuestMailSend" }, + { value: "QuestMainAbort", name: "QuestMainAbort" }, + { value: "QuestMainAssignByDialogue", name: "QuestMainAssignByDialogue" }, + { value: "QuestMainAssignForce", name: "QuestMainAssignForce" }, + { value: "QuestMainRefuse", name: "QuestMainRefuse" }, + { value: "QuestMainRepeatTimeInit", name: "QuestMainRepeatTimeInit" }, + { value: "QuestMainRepeatTimeRefresh", name: "QuestMainRepeatTimeRefresh" }, + { value: "QuestMainReward", name: "QuestMainReward" }, + { value: "QuestMainTask", name: "QuestMainTask" }, + { value: "QuestTaskUpdate", name: "QuestTaskUpdate" }, + { value: "RefuseFriendRequest", name: "RefuseFriendRequest" }, + { value: "RenameFriendFolder", name: "RenameFriendFolder" }, + { value: "RenameMyhome", name: "RenameMyhome" }, + { value: "RenewalShopProducts", name: "RenewalShopProducts" }, + { value: "RentFloor", name: "RentFloor" }, + { value: "ReplyInviteParty", name: "ReplyInviteParty" }, + { value: "ReplySummonParty", name: "ReplySummonParty" }, + { value: "ReservationEnterToServer", name: "ReservationEnterToServer" }, + { value: "RewardProp", name: "RewardProp" }, + { value: "SaveMyhome", name: "SaveMyhome" }, + { value: "SeasonPassBuyCharged", name: "SeasonPassBuyCharged" }, + { value: "SeasonPassStartNew", name: "SeasonPassStartNew" }, + { value: "SeasonPassTakeReward", name: "SeasonPassTakeReward" }, + { value: "SendFriendRequest", name: "SendFriendRequest" }, + { value: "ShopChangeProductTradingMeter", name: "ShopChangeProductTradingMeter" }, + { value: "ShopGetProductTradingMeter", name: "ShopGetProductTradingMeter" }, + { value: "ShopGetRePurchase", name: "ShopGetRePurchase" }, + { value: "ShopPurchase", name: "ShopPurchase" }, + { value: "ShopRePurchase", name: "ShopRePurchase" }, + { value: "ShopSell", name: "ShopSell" }, + { value: "StageConcertStart", name: "StageConcertStart" }, + { value: "StageEnter", name: "StageEnter" }, + { value: "StageExit", name: "StageExit" }, + { value: "StartPartyVote", name: "StartPartyVote" }, + { value: "SummonParty", name: "SummonParty" }, + { value: "SwitchingProp", name: "SwitchingProp" }, + { value: "TaskReservationComplete", name: "TaskReservationComplete" }, + { value: "TaxiMove", name: "TaxiMove" }, + { value: "TestBusinessLog", name: "TestBusinessLog" }, + { value: "TestUserCreate", name: "TestUserCreate" }, + { value: "TestUserInitial", name: "TestUserInitial" }, + { value: "TestWriteNoticeChat", name: "TestWriteNoticeChat" }, + { value: "TestWriteSystemMail", name: "TestWriteSystemMail" }, + { value: "UgqAbort", name: "UgqAbort" }, + { value: "UgqApiAddSlot", name: "UgqApiAddSlot" }, + { value: "UgqApiAdminLogin", name: "UgqApiAdminLogin" }, + { value: "UgqApiChangeState", name: "UgqApiChangeState" }, + { value: "UgqApiCreatorPoint", name: "UgqApiCreatorPoint" }, + { value: "UgqApiLogin", name: "UgqApiLogin" }, + { value: "UgqApiLogout", name: "UgqApiLogout" }, + { value: "UgqApiQuestCraete", name: "UgqApiQuestCraete" }, + { value: "UgqAssign", name: "UgqAssign" }, + { value: "UgqDailyRewardCountRefresh", name: "UgqDailyRewardCountRefresh" }, + { value: "UgqDeregisterBookmark", name: "UgqDeregisterBookmark" }, + { value: "UgqDeregisterLike", name: "UgqDeregisterLike" }, + { value: "UgqReAssign", name: "UgqReAssign" }, + { value: "UgqRegisterBookmark", name: "UgqRegisterBookmark" }, + { value: "UgqRegisterLike", name: "UgqRegisterLike" }, + { value: "UgqTestAbort", name: "UgqTestAbort" }, + { value: "UgqTestAssign", name: "UgqTestAssign" }, + { value: "UgqTestDelete", name: "UgqTestDelete" }, + { value: "UpdateBeaconAppearanceCustomize", name: "UpdateBeaconAppearanceCustomize" }, + { value: "UpdateCharacterProfile", name: "UpdateCharacterProfile" }, + { value: "UpdateCustomDefineUi", name: "UpdateCustomDefineUi" }, + { value: "UpdateEscape", name: "UpdateEscape" }, + { value: "UpdateGameOption", name: "UpdateGameOption" }, + { value: "UpdateLanguage", name: "UpdateLanguage" }, + { value: "UpdateUgcNpcLike", name: "UpdateUgcNpcLike" }, + { value: "UserBlock", name: "UserBlock" }, + { value: "UserBlockCancel", name: "UserBlockCancel" }, + { value: "UserCreate", name: "UserCreate" }, + { value: "UserLoading", name: "UserLoading" }, + { value: "UserLogout", name: "UserLogout" }, + { value: "UserLogoutSnapShot", name: "UserLogoutSnapShot" }, + { value: "UserReport", name: "UserReport" }, + { value: "Warp", name: "Warp" }, + { value: "igmApiLogin", name: "igmApiLogin" } +]; + +export const logDomain = [ + { value: "BASE", name: "전체" }, + { value: "AuthLogInOut", name: "AuthLogInOut" }, + { value: "GameLogInOut", name: "GameLogInOut" }, + { value: "UserCreate", name: "UserCreate" }, + { value: "User", name: "User" }, + { value: "UserInitial", name: "UserInitial" }, + { value: "CharacterCreate", name: "CharacterCreate" }, + { value: "Character", name: "Character" }, + { value: "Item", name: "Item" }, + { value: "Currency", name: "Currency" }, + { value: "Mail", name: "Mail" }, + { value: "MailStoragePeriodExpired", name: "MailStoragePeriodExpired" }, + { value: "MailProfile", name: "MailProfile" }, + { value: "Stage", name: "Stage" }, + { value: "ClaimReward", name: "ClaimReward" }, + { value: "QuestMain", name: "QuestMain" }, + { value: "QuestUgq", name: "QuestUgq" }, + { value: "QuestMail", name: "QuestMail" }, + { value: "SocialAction", name: "SocialAction" }, + { value: "MyHome", name: "MyHome" }, + { value: "Taxi", name: "Taxi" }, + { value: "RewardProp", name: "RewardProp" }, + { value: "Party", name: "Party" }, + { value: "PartyMember", name: "PartyMember" }, + { value: "PartyVote", name: "PartyVote" }, + { value: "PartyInstance", name: "PartyInstance" }, + { value: "EscapePosition", name: "EscapePosition" }, + { value: "UserBlock", name: "UserBlock" }, + { value: "Friend", name: "Friend" }, + { value: "UserReport", name: "UserReport" }, + { value: "TaskReservation", name: "TaskReservation" }, + { value: "SeasonPass", name: "SeasonPass" }, + { value: "PackageLastOrderRecode", name: "PackageLastOrderRecode" }, + { value: "PackageRepeat", name: "PackageRepeat" }, + { value: "PackageState", name: "PackageState" }, + { value: "Craft", name: "Craft" }, + { value: "CraftHelp", name: "CraftHelp" }, + { value: "Cart", name: "Cart" }, + { value: "Buff", name: "Buff" }, + { value: "UgqApi", name: "UgqApi" }, + { value: "AIChat", name: "AIChat" }, + { value: "Chat", name: "Chat" }, + { value: "Shop", name: "Shop" }, + { value: "Calium", name: "Calium" }, + { value: "CaliumEchoSystem", name: "CaliumEchoSystem" }, + { value: "CaliumStorageFail", name: "CaliumStorageFail" }, + { value: "Position", name: "Position" }, + { value: "Address", name: "Address" }, + { value: "BeaconCreate", name: "BeaconCreate" }, + { value: "Beacon", name: "Beacon" }, + { value: "CustomDefineUi", name: "CustomDefineUi" }, + { value: "Farming", name: "Farming" }, + { value: "FarmingReward", name: "FarmingReward" }, + { value: "RenewalShopProducts", name: "RenewalShopProducts" }, + { value: "CheatRenewalShopProducts", name: "CheatRenewalShopProducts" }, + { value: "ChangeDanceEntityState", name: "ChangeDanceEntityState" }, + { value: "Land", name: "Land" }, + { value: "Building", name: "Building" }, + { value: "SwitchingProp", name: "SwitchingProp" }, + { value: "LandAuction", name: "LandAuction" }, + { value: "LandAuctionActivity", name: "LandAuctionActivity" }, + { value: "LandAuctionBid", name: "LandAuctionBid" }, + { value: "LandAuctionBidPriceRefund", name: "LandAuctionBidPriceRefund" }, + { value: "BrokerApi", name: "BrokerApi" }, + { value: "Rental", name: "Rental" }, + { value: "BuildingProfit", name: "BuildingProfit" }, + { value: "BattleObjectInteraction", name: "BattleObjectInteraction" }, + { value: "BattleObjectStateUpdate", name: "BattleObjectStateUpdate" }, + { value: "BattleReward", name: "BattleReward" }, + { value: "BattleRespawn", name: "BattleRespawn" }, + { value: "BattleRoomJoin", name: "BattleRoomJoin" }, + { value: "BattleDead", name: "BattleDead" }, + { value: "BattleRound", name: "BattleRound" }, + { value: "BattleSnapshot", name: "BattleSnapshot" } +]; diff --git a/src/assets/data/types.js b/src/assets/data/types.js index a2e750b..c208822 100644 --- a/src/assets/data/types.js +++ b/src/assets/data/types.js @@ -46,7 +46,8 @@ export const authType = { landDelete: 45, battleEventRead: 46, battleEventUpdate: 47, - battleEventDelete: 48 + battleEventDelete: 48, + businessLogRead: 49, }; export const TabList = [ diff --git a/src/components/ServiceManage/index.js b/src/components/ServiceManage/index.js index 857fbf2..08efd7b 100644 --- a/src/components/ServiceManage/index.js +++ b/src/components/ServiceManage/index.js @@ -15,6 +15,7 @@ import EventListSearchBar from './searchBar/EventListSearchBar'; import LandAuctionSearchBar from './searchBar/LandAuctionSearchBar' import MailListSearchBar from './searchBar/MailListSearchBar'; import LandInfoSearchBar from './searchBar/LandInfoSearchBar'; +import BusinessLogSearchBar from './searchBar/BusinessLogSearchBar'; //etc import ReportListSummary from './ReportListSummary'; import WhiteListSearchBar from './WhiteListRegistBar'; @@ -25,6 +26,7 @@ export { MailDetailModal, MailListSearchBar, LandInfoSearchBar, + BusinessLogSearchBar, ReportListAnswerModal, ReportListDetailModal, ReportListSearchBar, diff --git a/src/components/ServiceManage/modal/OwnerChangeModal.js b/src/components/ServiceManage/modal/OwnerChangeModal.js index 2f847f4..986ef58 100644 --- a/src/components/ServiceManage/modal/OwnerChangeModal.js +++ b/src/components/ServiceManage/modal/OwnerChangeModal.js @@ -193,6 +193,10 @@ const OwnerChangeModal = ({ modalType, detailView, handleDetailView, content, se handleModalView('registComplete'); }else if(data.result === "GUID_CHECK"){ setAlertMsg(t('WARNING_GUID_CHECK')); + }else if(data.result === "ERROR_LAND_OWNER_DUPLICATION"){ + setAlertMsg(t('LAND_OWNER_DUPLICATION_WARNING')); + }else if(data.result === "ERROR_LAND_OWNER_CHANGES_DUPLICATION"){ + setAlertMsg(t('LAND_OWNED_CHANGES_REGIST_DUPLICATION_WARNING')); }else{ setAlertMsg(t('REGIST_FAIL')); } diff --git a/src/components/ServiceManage/searchBar/BusinessLogSearchBar.js b/src/components/ServiceManage/searchBar/BusinessLogSearchBar.js new file mode 100644 index 0000000..7523e82 --- /dev/null +++ b/src/components/ServiceManage/searchBar/BusinessLogSearchBar.js @@ -0,0 +1,211 @@ +import { TextInput, BtnWrapper, InputLabel, SelectInput, InputGroup } from '../../../styles/Components'; +import Button from '../../common/button/Button'; +import { SearchBarLayout, SearchPeriod } from '../../common/SearchBar'; +import { useCallback, useEffect, useState } from 'react'; +import { LandAuctionView, LandInfoData } from '../../../apis'; +import { landAuctionStatus, landSearchType, landSize, opLandCategoryType } from '../../../assets/data'; +import { logAction, logDomain, opLandInfoStatusType, userSearchType2 } from '../../../assets/data/options'; +import { BusinessLogList } from '../../../apis/Log'; +import { useTranslation } from 'react-i18next'; + +export const useBusinessLogSearch = (token, initialPageSize, setAlertMsg) => { + const { t } = useTranslation(); + + const [searchParams, setSearchParams] = useState({ + search_type: 'GUID', + search_data: '', + log_action: 'None', + log_domain: 'BASE', + tran_id: '', + start_dt: (() => { + const date = new Date(); + date.setDate(date.getDate() - 1); + return date; + })(), + end_dt: (() => { + const date = new Date(); + date.setDate(date.getDate() - 1); + return date; + })(), + order_by: 'ASC', + page_size: initialPageSize, + page_no: 1 + }); + + const [loading, setLoading] = useState(false); + const [data, setData] = useState(null); + + useEffect(() => { + // fetchData(searchParams); // 컴포넌트 마운트 시 초기 데이터 로드 + const initialLoad = async () => { + await fetchData(searchParams); + }; + + initialLoad(); + }, [token]); + + const fetchData = useCallback(async (params) => { + if (!token) return; + + try { + setLoading(true); + const result = await BusinessLogList( + token, + params + ); + if(result.result === "ERROR_LOG_MEMORY_LIMIT"){ + setAlertMsg(t('LOG_MEMORY_LIMIT_WARNING')) + }else if(result.result === "ERROR_MONGODB_QUERY"){ + setAlertMsg(t('LOG_MONGGDB_QUERY_WARNING')) + } + setData(result.data); + return result.data; + } catch (error) { + console.error('Error fetching auction data:', error); + throw error; + } finally { + setLoading(false); + } + }, [token]); + + const updateSearchParams = useCallback((newParams) => { + setSearchParams(prev => ({ + ...prev, + ...newParams + })); + }, []); + + const handleSearch = useCallback(async (newParams = {}) => { + const updatedParams = { + ...searchParams, + ...newParams, + page_no: newParams.page_no || 1 // Reset to first page on new search + }; + updateSearchParams(updatedParams); + return await fetchData(updatedParams); + }, [searchParams, fetchData]); + + const handleReset = useCallback(async () => { + const now = new Date(); + now.setDate(now.getDate() - 1); + const resetParams = { + search_type: 'GUID', + search_data: '', + log_action: 'None', + log_domain: 'BASE', + tran_id: '', + start_dt: now, + end_dt: now, + order_by: 'ASC', + page_size: initialPageSize, + page_no: 1 + }; + setSearchParams(resetParams); + return await fetchData(resetParams); + }, [initialPageSize, fetchData]); + + const handlePageChange = useCallback(async (newPage) => { + return await handleSearch({ page_no: newPage }); + }, [handleSearch]); + + const handlePageSizeChange = useCallback(async (newSize) => { + return await handleSearch({ page_size: newSize, page_no: 1 }); + }, [handleSearch]); + + const handleOrderByChange = useCallback(async (newOrder) => { + return await handleSearch({ order_by: newOrder }); + }, [handleSearch]); + + return { + searchParams, + loading, + data, + handleSearch, + handleReset, + handlePageChange, + handlePageSizeChange, + handleOrderByChange, + updateSearchParams + }; +}; + +const BusinessLogSearchBar = ({ searchParams, onSearch, onReset }) => { + const handleSubmit = event => { + event.preventDefault(); + + onSearch(searchParams); + }; + + const searchList = [ + <> + + onSearch({search_type: e.target.value })}> + {userSearchType2.map((data, index) => ( + + ))} + + onSearch({ search_data: e.target.value })} + /> + + , + <> + 로그액션 + onSearch({ log_action: e.target.value }, false)} > + {logAction.map((data, index) => ( + + ))} + + , + <> + 로그도메인 + onSearch({ log_domain: e.target.value }, false)} > + {logDomain.map((data, index) => ( + + ))} + + , + ]; + + const optionList = [ + <> + 트랜잭션 ID + onSearch({ tran_id: e.target.value })} + /> + , + <> + 일자 + onSearch({ start_dt: date }, false)} + endDate={searchParams.end_dt} + handleEndDate={date => onSearch({ end_dt: date }, false)} + /> + , + <>,<>,<>, + <> + +