From 9d06246aba328d3001786157629292936e34eba1 Mon Sep 17 00:00:00 2001 From: bcjang Date: Fri, 23 May 2025 15:58:04 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B9=BC=EB=A6=AC=EC=9B=80=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=20=EC=8B=A4=ED=8C=A8=20=ED=91=9C=EC=8B=9C=20=EB=B0=8F?= =?UTF-8?q?=20=ED=81=B4=EB=A6=AD=EC=8B=9C=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/data/adminConstants.js | 3 ++ src/assets/data/options.js | 22 +++++++++- .../ServiceManage/modal/MailDetailModal.js | 3 +- src/components/common/Table/ViewTableInfo.js | 12 ++++-- src/pages/DataManage/BusinessLogView.js | 24 ++++++++++- src/pages/ServiceManage/MailRegist.js | 5 ++- src/pages/UserManage/CaliumRequest.js | 40 +++++++++++++++++-- src/styles/ModuleComponents.js | 11 +++++ 8 files changed, 109 insertions(+), 11 deletions(-) diff --git a/src/assets/data/adminConstants.js b/src/assets/data/adminConstants.js index c2a465d..bc7b52c 100644 --- a/src/assets/data/adminConstants.js +++ b/src/assets/data/adminConstants.js @@ -8,5 +8,8 @@ export const ONE_MINUTE_MS = 60000; export const ONE_MINUTE_SECOND = 60; export const AUCTION_MIN_MINUTE_TIME = 15; // 15분 export const IMAGE_MAX_SIZE = 5242880; +export const STORAGE_MAIL_COPY = 'copyMailData'; +export const STORAGE_BUSINESS_LOG_SEARCH = 'businessLogSearchParam'; +export const LOG_ACTION_FAIL_CALIUM_ECHO = 'FailCaliumEchoSystem'; export { INITIAL_PAGE_SIZE, INITIAL_CURRENT_PAGE, INITIAL_PAGE_LIMIT }; diff --git a/src/assets/data/options.js b/src/assets/data/options.js index 8d99946..89f7f8b 100644 --- a/src/assets/data/options.js +++ b/src/assets/data/options.js @@ -732,6 +732,14 @@ export const logAction = [ { value: "BeaconCreate", name: "BeaconCreate" }, { value: "BeaconEdit", name: "BeaconEdit" }, { value: "BeaconSell", name: "BeaconSell" }, + { value: "BeaconShopRegisterItem", name: "BeaconShopRegisterItem" }, + { value: "BeaconShopReturnItem", name: "BeaconShopReturnItem" }, + { value: "BeaconShopPurchaseItem", name: "BeaconShopPurchaseItem" }, + { value: "BeaconShopReceivePaymentForSales", name: "BeaconShopReceivePaymentForSales" }, + { value: "BeaconShopSearchItem", name: "BeaconShopSearchItem" }, + { value: "BeaconShopUpdateDailyCount", name: "BeaconShopUpdateDailyCount" }, + { value: "BeaconShopDeleteRecord", name: "BeaconShopDeleteRecord" }, + { value: "BeaconShopDeactiveItems", name: "BeaconShopDeactiveItems" }, { value: "BrokerApiAdmin", name: "BrokerApiAdmin" }, { value: "BrokerApiPlanetAuth", name: "BrokerApiPlanetAuth" }, { value: "BrokerApiUserExchangeOrderCompleted", name: "BrokerApiUserExchangeOrderCompleted" }, @@ -782,6 +790,8 @@ export const logAction = [ { value: "CheatCommandSendMail", name: "CheatCommandSendMail" }, { value: "CheatCommandShopProductInit", name: "CheatCommandShopProductInit" }, { value: "CheatCommandShopProductRenewal", name: "CheatCommandShopProductRenewal" }, + { value: "CheatCommandBeaconShopItemTimeChange", name: "CheatCommandBeaconShopItemTimeChange" }, + { value: "CheatCommandDailyLimitInit", name: "CheatCommandDailyLimitInit" }, { value: "ClaimReward", name: "ClaimReward" }, { value: "ConvertCalium", name: "ConvertCalium" }, { value: "ConvertExchangeCalium", name: "ConvertExchangeCalium" }, @@ -818,6 +828,8 @@ export const logAction = [ { value: "ItemTattooChangeAttribute", name: "ItemTattooChangeAttribute" }, { value: "ItemTattooLevelUp", name: "ItemTattooLevelUp" }, { value: "ItemUse", name: "ItemUse" }, + { value: "ItemDestroyByUser", name: "ItemDestroyByUser" }, + { value: "ItemDestoryByExpiration", name: "ItemDestoryByExpiration" }, { value: "JoinInstance", name: "JoinInstance" }, { value: "JoinParty", name: "JoinParty" }, { value: "JoinPartyInstance", name: "JoinPartyInstance" }, @@ -844,7 +856,7 @@ export const logAction = [ { value: "ProductGive", name: "ProductGive" }, { value: "ProductOpenFailed", name: "ProductOpenFailed" }, { value: "ProductOpenSuccess", name: "ProductOpenSuccess" }, - { value: "QuestMailSend", name: "QuestMailSend" }, + { value: "QuestMainAssign", name: "QuestMainAssign" }, { value: "QuestMainAbort", name: "QuestMainAbort" }, { value: "QuestMainAssignByDialogue", name: "QuestMainAssignByDialogue" }, { value: "QuestMainAssignForce", name: "QuestMainAssignForce" }, @@ -852,6 +864,7 @@ export const logAction = [ { value: "QuestMainRepeatTimeInit", name: "QuestMainRepeatTimeInit" }, { value: "QuestMainRepeatTimeRefresh", name: "QuestMainRepeatTimeRefresh" }, { value: "QuestMainReward", name: "QuestMainReward" }, + { value: "QuestMailSend", name: "QuestMailSend" }, { value: "QuestMainTask", name: "QuestMainTask" }, { value: "QuestTaskUpdate", name: "QuestTaskUpdate" }, { value: "RefuseFriendRequest", name: "RefuseFriendRequest" }, @@ -939,6 +952,9 @@ export const logDomain = [ { value: "BattleSnapshot", name: "BattleSnapshot" }, { value: "BeaconCreate", name: "BeaconCreate" }, { value: "Beacon", name: "Beacon" }, + { value: "BeaconShop", name: "BeaconShop" }, + { value: "BeaconShopSoldRecord", name: "BeaconShopSoldRecord" }, + { value: "BeaconShopSoldPrice", name: "BeaconShopSoldPrice" }, { value: "BrokerApi", name: "BrokerApi" }, { value: "Buff", name: "Buff" }, { value: "Building", name: "Building" }, @@ -962,6 +978,7 @@ export const logDomain = [ { value: "FarmingReward", name: "FarmingReward" }, { value: "GameLogInOut", name: "GameLogInOut" }, { value: "Item", name: "Item" }, + { value: "IgmApi", name: "IgmApi" }, { value: "MyHome", name: "MyHome" }, { value: "Land", name: "Land" }, { value: "LandAuction", name: "LandAuction" }, @@ -979,6 +996,9 @@ export const logDomain = [ { value: "PackageLastOrderRecode", name: "PackageLastOrderRecode" }, { value: "PackageRepeat", name: "PackageRepeat" }, { value: "PackageState", name: "PackageState" }, + { value: "PlanetProviderAuth", name: "PlanetProviderAuth" }, + { value: "PlanetUserAuth", name: "PlanetUserAuth" }, + { value: "PlanetItemExchange", name: "PlanetItemExchange" }, { value: "QuestMain", name: "QuestMain" }, { value: "QuestUgq", name: "QuestUgq" }, { value: "QuestMail", name: "QuestMail" }, diff --git a/src/components/ServiceManage/modal/MailDetailModal.js b/src/components/ServiceManage/modal/MailDetailModal.js index c972e93..d6fa350 100644 --- a/src/components/ServiceManage/modal/MailDetailModal.js +++ b/src/components/ServiceManage/modal/MailDetailModal.js @@ -31,6 +31,7 @@ import { useAlert } from '../../../context/AlertProvider'; import { useLoading } from '../../../context/LoadingProvider'; import { alertTypes, currencyCodeTypes } from '../../../assets/data/types'; import { userType2 } from '../../../assets/data/options'; +import { STORAGE_MAIL_COPY } from '../../../assets/data/adminConstants'; const MailDetailModal = ({ detailView, handleDetailView, content }) => { const userInfo = useRecoilValue(authList); @@ -285,7 +286,7 @@ const MailDetailModal = ({ detailView, handleDetailView, content }) => { }; // 복사한 데이터를 세션 스토리지에 저장 - sessionStorage.setItem('copyMailData', JSON.stringify(mailData)); + sessionStorage.setItem(STORAGE_MAIL_COPY, JSON.stringify(mailData)); navigate('/servicemanage/mail/mailregist'); }; diff --git a/src/components/common/Table/ViewTableInfo.js b/src/components/common/Table/ViewTableInfo.js index a6384b3..895a9d2 100644 --- a/src/components/common/Table/ViewTableInfo.js +++ b/src/components/common/Table/ViewTableInfo.js @@ -6,7 +6,7 @@ import { TableInfo, } from '../../../styles/Components'; import { ORDER_OPTIONS, PAGE_SIZE_OPTIONS, ViewTitleCountType } from '../../../assets/data'; -import { TitleItem, TitleItemLabel, TitleItemValue } from '../../../styles/ModuleComponents'; +import { TitleItem, TitleItemLabel, TitleItemLink, TitleItemValue } from '../../../styles/ModuleComponents'; import { DynamoPagination } from '../index'; import React from 'react'; @@ -14,6 +14,8 @@ const ViewTableInfo = ({ children, total, total_all, + fail_count, + onFailCountClick, orderType = 'desc', handleOrderBy, pageType = 'default', @@ -28,7 +30,7 @@ const ViewTableInfo = ({ {total !== undefined && total_all !== undefined && {COUNT_TYPE_RENDERERS[countType] ? - COUNT_TYPE_RENDERERS[countType](total, total_all) : + COUNT_TYPE_RENDERERS[countType](total, total_all, fail_count, onFailCountClick) : COUNT_TYPE_RENDERERS[ViewTitleCountType.total](total, total_all)} } @@ -52,7 +54,7 @@ const ViewTableInfo = ({ const COUNT_TYPE_RENDERERS = { [ViewTitleCountType.total]: (total, total_all) => `총 : ${total ?? 0} 건 / ${total_all ?? 0} 건`, - [ViewTitleCountType.calium]: (total, total_all) => ( + [ViewTitleCountType.calium]: (total, total_all, fail_count, onFailCountClick) => ( <> 누적 충전 @@ -62,6 +64,10 @@ const COUNT_TYPE_RENDERERS = { 잔여 수량 {total ?? 0} + + 에코시스템 실패 + {fail_count ?? 0} + ), }; diff --git a/src/pages/DataManage/BusinessLogView.js b/src/pages/DataManage/BusinessLogView.js index fb9e945..5c80486 100644 --- a/src/pages/DataManage/BusinessLogView.js +++ b/src/pages/DataManage/BusinessLogView.js @@ -32,7 +32,11 @@ import FrontPagination from '../../components/common/Pagination/FrontPagination' import CircularProgress from '../../components/common/CircularProgress'; // import MessageInput from '../../components/common/input/MessageInput'; // import { AnalyzeAI } from '../../apis'; -import { INITIAL_CURRENT_PAGE, INITIAL_PAGE_LIMIT } from '../../assets/data/adminConstants'; +import { + INITIAL_CURRENT_PAGE, + INITIAL_PAGE_LIMIT, + STORAGE_BUSINESS_LOG_SEARCH, +} from '../../assets/data/adminConstants'; const BusinessLogView = () => { const token = sessionStorage.getItem('token'); @@ -60,6 +64,24 @@ const BusinessLogView = () => { updateSearchParams } = useBusinessLogSearch(token, 500); + useEffect(() => { + // 세션 스토리지에서 복사된 메일 데이터 가져오기 + const paramsData = sessionStorage.getItem(STORAGE_BUSINESS_LOG_SEARCH); + + if (paramsData) { + const searchData = JSON.parse(paramsData); + + handleSearch({ + log_action: searchData.action, + start_dt: searchData.start_dt, + end_dt: searchData.end_dt + }); + + // 사용 후 세션 스토리지 데이터 삭제 + sessionStorage.removeItem(STORAGE_BUSINESS_LOG_SEARCH); + } + }, []); + const handlePageSizeChange = (newSize) => { setItemsPerPage(newSize); setCurrentPage(1); diff --git a/src/pages/ServiceManage/MailRegist.js b/src/pages/ServiceManage/MailRegist.js index 9b0ab3f..d418a69 100644 --- a/src/pages/ServiceManage/MailRegist.js +++ b/src/pages/ServiceManage/MailRegist.js @@ -36,6 +36,7 @@ import { alertTypes, currencyCodeTypes } from '../../assets/data/types'; import { useLoading } from '../../context/LoadingProvider'; import { useAlert } from '../../context/AlertProvider'; import { userType2 } from '../../assets/data/options'; +import { STORAGE_MAIL_COPY } from '../../assets/data/adminConstants'; const MailRegist = () => { const navigate = useNavigate(); @@ -95,7 +96,7 @@ const MailRegist = () => { useEffect(() => { // 세션 스토리지에서 복사된 메일 데이터 가져오기 - const copiedMailData = sessionStorage.getItem('copyMailData'); + const copiedMailData = sessionStorage.getItem(STORAGE_MAIL_COPY); if (copiedMailData) { const mailData = JSON.parse(copiedMailData); @@ -118,7 +119,7 @@ const MailRegist = () => { } // 사용 후 세션 스토리지 데이터 삭제 - sessionStorage.removeItem('copyMailData'); + sessionStorage.removeItem(STORAGE_MAIL_COPY); } }, []); diff --git a/src/pages/UserManage/CaliumRequest.js b/src/pages/UserManage/CaliumRequest.js index c9ab67f..6093250 100644 --- a/src/pages/UserManage/CaliumRequest.js +++ b/src/pages/UserManage/CaliumRequest.js @@ -14,7 +14,7 @@ import { Title, FormWrapper, TableStyle, TableWrapper, PopupMessage } from '../. import { StatusWapper, ChargeBtn, - StatusLabel, + StatusLabel, TitleItemLabel, TitleItemValue, TitleItem, } from '../../styles/ModuleComponents'; import {Button, ExcelDownButton, Pagination, ViewTableInfo} from '../../components/common'; import { convertKTC, truncateText } from '../../utils'; @@ -22,13 +22,19 @@ import { CaliumRequestRegistModal } from '../../components/UserManage'; import { CaliumCharge, LogHistory } from '../../apis'; import { useModal, withAuth } from '../../hooks/hook'; import { CommonSearchBar, useCommonSearch } from '../../components/ServiceManage'; -import { INITIAL_PAGE_LIMIT } from '../../assets/data/adminConstants'; +import { + INITIAL_PAGE_LIMIT, + LOG_ACTION_FAIL_CALIUM_ECHO, + STORAGE_BUSINESS_LOG_SEARCH, +} from '../../assets/data/adminConstants'; import { useAlert } from '../../context/AlertProvider'; import { useLoading } from '../../context/LoadingProvider'; import { alertTypes } from '../../assets/data/types'; import useCommonSearchOld from '../../hooks/useCommonSearchOld'; import LogDetailModal from '../../components/common/modal/LogDetailModal'; import { historyTables } from '../../assets/data/data'; +import { useNavigate } from 'react-router-dom'; +import { logAction } from '../../assets/data/options'; const CaliumRequest = () => { const token = sessionStorage.getItem('token'); @@ -36,6 +42,7 @@ const CaliumRequest = () => { const { t } = useTranslation(); const { showModal, showToast } = useAlert(); const {withLoading} = useLoading(); + const navigate = useNavigate(); const tableRef = useRef(null); const [selectCharge, setSelectCharge] = useState({}); @@ -106,6 +113,25 @@ const CaliumRequest = () => { handleSearch(updateSearchParams); }); break; + case "logMove": + const searchParams = { + action: LOG_ACTION_FAIL_CALIUM_ECHO, + 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; + })(), + }; + + // 복사한 데이터를 세션 스토리지에 저장 + sessionStorage.setItem(STORAGE_BUSINESS_LOG_SEARCH, JSON.stringify(searchParams)); + navigate('/datamanage/businesslogview'); + break; } } @@ -126,7 +152,15 @@ const CaliumRequest = () => { onReset={handleReset} /> - + handleSubmit('logMove')} + > {userInfo.auth_list && userInfo.auth_list.some(auth => auth.id === authType.eventUpdate) && (