- 부가서비스 누락된 권한 체크 추가, 누락된 시스템 에러 처리 추가

This commit is contained in:
HyeonJongKim
2025-11-06 14:41:29 +09:00
parent 5e8c703856
commit 715937f4e2
8 changed files with 48 additions and 9 deletions

View File

@@ -11,6 +11,7 @@ import { useExtensionArsResendMutation } from '@/entities/additional-service/api
import { snackBar } from '@/shared/lib'; import { snackBar } from '@/shared/lib';
import { ArsResendSmsBottomSheet } from '../resend-sms-bottom-sheet'; import { ArsResendSmsBottomSheet } from '../resend-sms-bottom-sheet';
import { showAlert } from '@/widgets/show-alert'; import { showAlert } from '@/widgets/show-alert';
import { checkGrant } from '@/shared/lib/check-grant';
export interface ArsDetailProps { export interface ArsDetailProps {
detailOn: boolean; detailOn: boolean;
@@ -71,6 +72,10 @@ export const ArsDetail = ({
} }
const onClickToOpenResendBottomSheet = () => { const onClickToOpenResendBottomSheet = () => {
if (!checkGrant(52, 'X')) {
showAlert(t('common.nopermission'));
return;
}
setBottomSheetOn(true); setBottomSheetOn(true);
}; };
const onClickToClose = () => { const onClickToClose = () => {

View File

@@ -12,6 +12,7 @@ import { useExtensionFundAccountTransferRequestMutation } from '@/entities/addit
import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant'; import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant';
import { FullMenuClose } from '@/entities/common/ui/full-menu-close'; import { FullMenuClose } from '@/entities/common/ui/full-menu-close';
import { showAlert } from '@/widgets/show-alert'; import { showAlert } from '@/widgets/show-alert';
import { checkGrant } from '@/shared/lib/check-grant';
export interface FundAccountTransferDetailProps { export interface FundAccountTransferDetailProps {
detailOn: boolean; detailOn: boolean;
@@ -49,6 +50,10 @@ export const FundAccountTransferDetail = ({
}; };
const onClickToRequest = () => { const onClickToRequest = () => {
if (!checkGrant(55, 'W')) {
showAlert(t('common.nopermission'));
return;
}
let params: ExtensionFundAccountTransferRequestParams = { let params: ExtensionFundAccountTransferRequestParams = {
seq: seq seq: seq
}; };

View File

@@ -25,6 +25,7 @@ import { useTranslation } from 'react-i18next';
import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant'; import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant';
import { FullMenuClose } from '@/entities/common/ui/full-menu-close'; import { FullMenuClose } from '@/entities/common/ui/full-menu-close';
import { showAlert } from '@/widgets/show-alert'; import { showAlert } from '@/widgets/show-alert';
import { checkGrant } from '@/shared/lib/check-grant';
export interface LinkPaymentHistoryDetailProps { export interface LinkPaymentHistoryDetailProps {
detailOn: boolean; detailOn: boolean;
@@ -107,6 +108,10 @@ export const LinkPaymentHistoryDetail = ({
} }
const onClickToResend = () => { const onClickToResend = () => {
if (!checkGrant(54, 'X')) {
showAlert(t('common.nopermission'));
return;
}
let msg = t('additionalService.linkPayment.resendConfirm'); let msg = t('additionalService.linkPayment.resendConfirm');
overlay.open(({ overlay.open(({
@@ -128,6 +133,10 @@ export const LinkPaymentHistoryDetail = ({
}; };
const onClickToSeparateApproval = () => { const onClickToSeparateApproval = () => {
if (!checkGrant(54, 'X')) {
showAlert(t('common.nopermission'));
return;
}
navigate(PATHS.additionalService.linkPayment.separateApproval, { navigate(PATHS.additionalService.linkPayment.separateApproval, {
state: { mid, requestId } state: { mid, requestId }
}); });

View File

@@ -10,6 +10,7 @@ import { FullMenuClose } from '@/entities/common/ui/full-menu-close';
import { DownloadTypeBottomSheet } from '@/entities/common/ui/download-type-bottom-sheet'; import { DownloadTypeBottomSheet } from '@/entities/common/ui/download-type-bottom-sheet';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet'; import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
import { showAlert } from '@/widgets/show-alert'; import { showAlert } from '@/widgets/show-alert';
import { checkGrant } from '@/shared/lib/check-grant';
export interface PayoutDetailProps { export interface PayoutDetailProps {
@@ -51,6 +52,10 @@ export const PayoutDetail = ({
} }
const onClickToDownload = () => { const onClickToDownload = () => {
if (!checkGrant(53, 'D')) {
showAlert(t('common.nopermission'));
return;
}
setDownloadTypeBottomSheetOn(true); setDownloadTypeBottomSheetOn(true);
}; };
@@ -133,7 +138,7 @@ export const PayoutDetail = ({
</span> </span>
</div> </div>
<div className="num-store">{detail?.companyName}</div> <div className="num-store">{detail?.companyName}</div>
<div className="num-day">{detail?.settlementDate}</div> <div className="num-day">{moment(detail?.settlementDate).format('YYYY.MM.DD')}</div>
<div className="receipt-row"> <div className="receipt-row">
<button <button
className="receipt-btn" className="receipt-btn"
@@ -163,7 +168,7 @@ export const PayoutDetail = ({
</li> </li>
<li className="kv-row"> <li className="kv-row">
<span className="k">{t('additionalService.payout.disbursementDateTime')}</span> <span className="k">{t('additionalService.payout.disbursementDateTime')}</span>
<span className="v">{moment(detail?.settlementDateTime, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss')}</span> <span className="v">{detail?.settlementDateTime ? moment(detail?.settlementDateTime, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss') : ""}</span>
</li> </li>
<li className="kv-row"> <li className="kv-row">
<span className="k">{t('additionalService.payout.businessNumber')}</span> <span className="k">{t('additionalService.payout.businessNumber')}</span>

View File

@@ -5,6 +5,7 @@ import { SmsPaymentDetailResendProps } from '../../../additional-service/model/s
import { useExtensionSmsResendMutation } from '../../api/sms-payment/use-extension-sms-resend-mutation'; import { useExtensionSmsResendMutation } from '../../api/sms-payment/use-extension-sms-resend-mutation';
import { snackBar } from '@/shared/lib'; import { snackBar } from '@/shared/lib';
import { showAlert } from '@/widgets/show-alert'; import { showAlert } from '@/widgets/show-alert';
import { checkGrant } from '@/shared/lib/check-grant';
export const SmsPaymentDetailResend = ({ export const SmsPaymentDetailResend = ({
bottomSmsPaymentDetailResendOn, bottomSmsPaymentDetailResendOn,
@@ -27,6 +28,11 @@ export const SmsPaymentDetailResend = ({
return; return;
} }
if (!checkGrant(57)) {
showAlert(t('common.nopermission'));
return;
}
resendMessage({ resendMessage({
seq: seq, seq: seq,
sendMessage: smsDetailData.sendMessage sendMessage: smsDetailData.sendMessage
@@ -38,11 +44,11 @@ export const SmsPaymentDetailResend = ({
snackBar(t('additionalService.sms.sendFailed', { message: rs.error?.message })) snackBar(t('additionalService.sms.sendFailed', { message: rs.error?.message }))
} }
}).catch((e: any) => { }).catch((e: any) => {
console.log(e) console.log("SMS ALERT : " + e)
if (e.response?.data?.error?.message) { if (e.response?.data?.error?.root !== "SystemErrorCode") {
showAlert(e.response?.data?.error?.message); snackBar(`[${t('common.failed')}] ${e?.response?.data?.error?.message}`)
setBottomSmsPaymentDetailResendOn(false) } else {
return; showAlert(`[${t('common.failed')}] ${e?.response?.data?.error?.message}`)
} }
}); });
} }

View File

@@ -151,6 +151,10 @@ export const AccountHolderAuthPage = () => {
const onClickToOpenEmailBottomSheet = () => { const onClickToOpenEmailBottomSheet = () => {
if (!checkGrant(59, 'D')) {
showAlert(t('common.nopermission'));
return;
}
setEmailBottomSheetOn(true); setEmailBottomSheetOn(true);
}; };

View File

@@ -141,6 +141,10 @@ export const AccountHolderSearchPage = () => {
}; };
const onClickToOpenEmailBottomSheet = () => { const onClickToOpenEmailBottomSheet = () => {
if (!checkGrant(60, 'D')) {
showAlert(t('common.nopermission'));
return;
}
setEmailBottomSheetOn(true); setEmailBottomSheetOn(true);
}; };
@@ -223,7 +227,7 @@ export const AccountHolderSearchPage = () => {
> >
<img <img
src={IMAGE_ROOT + '/ico_setting.svg'} src={IMAGE_ROOT + '/ico_setting.svg'}
alt={t('filter.searchOptions')} alt={t('common.searchOptions')}
onClick={() => onClickToOpenFilter()} onClick={() => onClickToOpenFilter()}
/> />
</button> </button>
@@ -234,7 +238,7 @@ export const AccountHolderSearchPage = () => {
> >
<img <img
src={IMAGE_ROOT + '/ico_download.svg'} src={IMAGE_ROOT + '/ico_download.svg'}
alt={t('filter.download')} alt={t('common.download')}
/> />
</button> </button>
</div> </div>

View File

@@ -119,6 +119,7 @@ export const PayoutRequestPage = () => {
type="text" type="text"
placeholder={t('additionalService.payout.dateSelectPlaceholder')} placeholder={t('additionalService.payout.dateSelectPlaceholder')}
value={settlementDate ? moment(settlementDate).format('YYYY.MM.DD') : ''} value={settlementDate ? moment(settlementDate).format('YYYY.MM.DD') : ''}
onChange={() => {}}
/> />
<button <button
className="date-btn" className="date-btn"