Files
shoptime/com.twin.app.shoptime/src/actions/checkoutActions.js
optrader 741c4338ca [251124] fix: Log정리-5
🕐 커밋 시간: 2025. 11. 24. 12:43:58

📊 변경 통계:
  • 총 파일: 40개
  • 추가: +774줄
  • 삭제: -581줄

📝 수정된 파일:
  ~ com.twin.app.shoptime/src/actions/appDataActions.js
  ~ com.twin.app.shoptime/src/actions/billingActions.js
  ~ com.twin.app.shoptime/src/actions/brandActions.js
  ~ com.twin.app.shoptime/src/actions/cancelActions.js
  ~ com.twin.app.shoptime/src/actions/cardActions.js
  ~ com.twin.app.shoptime/src/actions/cartActions.js
  ~ com.twin.app.shoptime/src/actions/checkoutActions.js
  ~ com.twin.app.shoptime/src/actions/commonActions.js
  ~ com.twin.app.shoptime/src/actions/convertActions.js
  ~ com.twin.app.shoptime/src/actions/couponActions.js
  ~ com.twin.app.shoptime/src/actions/deviceActions.js
  ~ com.twin.app.shoptime/src/actions/empActions.js
  ~ com.twin.app.shoptime/src/actions/eventActions.js
  ~ com.twin.app.shoptime/src/actions/forYouActions.js
  ~ com.twin.app.shoptime/src/actions/homeActions.js
  ~ com.twin.app.shoptime/src/actions/logActions.js
  ~ com.twin.app.shoptime/src/actions/mediaActions.js
  ~ com.twin.app.shoptime/src/actions/mockCartActions.js
  ~ com.twin.app.shoptime/src/actions/myPageActions.js
  ~ com.twin.app.shoptime/src/actions/onSaleActions.js
  ~ com.twin.app.shoptime/src/actions/orderActions.js
  ~ com.twin.app.shoptime/src/actions/panelActions.js
  ~ com.twin.app.shoptime/src/actions/panelNavigationActions.js
  ~ com.twin.app.shoptime/src/actions/pinCodeActions.js
  ~ com.twin.app.shoptime/src/actions/productActions.js
  ~ com.twin.app.shoptime/src/actions/queuedPanelActions.js
  ~ com.twin.app.shoptime/src/actions/searchActions.js
  ~ com.twin.app.shoptime/src/actions/shippingActions.js
  ~ com.twin.app.shoptime/src/actions/voiceActions.js
  ~ com.twin.app.shoptime/src/actions/webSpeechActions.js
  ~ com.twin.app.shoptime/src/reducers/localSettingsReducer.js
  ~ com.twin.app.shoptime/src/reducers/mediaOverlayReducer.js
  ~ com.twin.app.shoptime/src/reducers/mockCartReducer.js
  ~ com.twin.app.shoptime/src/reducers/playReducer.js
  ~ com.twin.app.shoptime/src/reducers/productReducer.js
  ~ com.twin.app.shoptime/src/reducers/videoOverlayReducer.js
  ~ com.twin.app.shoptime/src/views/UserReview/ShowUserReviews.jsx
  ~ com.twin.app.shoptime/src/views/UserReview/UserReviewPanel.jsx
  ~ com.twin.app.shoptime/src/views/UserReview/components/UserReviewsList.jsx
  ~ com.twin.app.shoptime/src/views/UserReview/components/VirtualScrollBar.jsx

🔧 함수 변경 내용:
  📊 Function-level changes summary across 40 files:
    • Functions added: 14
    • Functions modified: 34
    • Functions deleted: 18
  📋 By language:
    • javascript: 40 files, 66 function changes

🔧 주요 변경 내용:
  • 핵심 비즈니스 로직 개선
  • 로깅 시스템 개선
  • 설정 관리 시스템 개선
  • UI 컴포넌트 아키텍처 개선
2025-11-24 12:47:57 +09:00

205 lines
5.5 KiB
JavaScript

import { URLS } from '../api/apiConfig';
import { TAxios } from '../api/TAxios';
import { types } from './actionTypes';
import { changeAppStatus, showError } from './commonActions';
import { createDebugHelpers } from '../utils/debug';
// 디버그 헬퍼 설정
const DEBUG_MODE = false;
const { dlog, dwarn, derror } = createDebugHelpers(DEBUG_MODE);
// 회원 체크아웃 정보 조회 IF-LGSP-345
export const getMyInfoCheckoutInfo = (props, callback) => (dispatch, getState) => {
const { mbrNo, dirPurcSelYn, cartList } = props;
dispatch(
// changeAppStatus({ showLoadingPanel: { show: true, type: "wait" } })
changeAppStatus({ isLoading: true })
);
const onSuccess = (response) => {
dlog('getMyInfoCheckoutInfo onSuccess: ', response.data);
// 🔍 API 응답 구조 분석
const checkoutData = response.data.data || response.data;
const defaultAddrSno =
checkoutData?.shippingAddressList?.[0]?.dlvrAddrSno ||
checkoutData?.shippingAddressList?.[0]?.addrSno;
const defaultBilAddrSno =
checkoutData?.billingAddressList?.[0]?.bilAddrSno ||
checkoutData?.billingAddressList?.[0]?.addrSno;
dlog('[checkoutActions] 🔍 Checkout data structure:', {
hasResponseDataData: !!response.data.data,
directData: !!response.data,
defaultAddrSno,
defaultBilAddrSno,
shippingAddressCount: checkoutData?.shippingAddressList?.length,
billingAddressCount: checkoutData?.billingAddressList?.length,
});
// 🔴 billingAddressList 상세 분석
dlog('[checkoutActions] 🔴 billingAddressList analysis:', {
billingAddressList: checkoutData?.billingAddressList,
firstBillingAddress: checkoutData?.billingAddressList?.[0],
firstBillingAddressKeys: Object.keys(checkoutData?.billingAddressList?.[0] || {}),
});
// 기본 주소 선택 (첫 번째 주소 사용)
const infoForCheckoutData = {
dlvrAddrSno: defaultAddrSno,
bilAddrSno: defaultBilAddrSno,
};
dlog('[checkoutActions] 📦 Dispatching GET_CHECKOUT_INFO with:', {
infoForCheckoutData,
checkoutData,
});
dispatch({
type: types.GET_CHECKOUT_INFO,
payload: {
...checkoutData,
...infoForCheckoutData, // 기본 주소 정보 추가
},
});
if (callback) callback(response.data);
};
const onFail = (error) => {
derror('getMyInfoCheckoutInfo OnFail: ', error);
};
TAxios(
dispatch,
getState,
'post',
URLS.GET_CHECKOUT_INFO,
{},
{ mbrNo, dirPurcSelYn, cartList },
onSuccess,
onFail
);
};
// 회원 CheckOut 상품 주문 IF-LGSP-346
export const insertMyInfoCheckoutOrder = (props, callback) => (dispatch, getState) => {
const { mbrNo, bilAddrSno, dlvrAddrSno, pinCd, orderProductCoupontUse, orderProductQtyInfo } =
props;
const onSuccess = (response) => {
dlog('insertMyInfoCheckoutOrder onSuccess: ', response.data);
if (response.data.retCode === 0) {
dispatch({
type: types.INSERT_MY_INFO_CHECKOUT_ORDER,
payload: response.data.data,
});
if (callback) callback(response);
} else {
dispatch(
showError(response.data.retCode, response.data.retMsg, true, response.data.retDetailCode)
);
}
dispatch(
changeAppStatus({
showLoadingPanel: { show: false, showMessage: false },
})
);
};
const onFail = (error) => {
derror('insertMyInfoCheckoutOrder onFail: ', error);
dispatch(
changeAppStatus({
showLoadingPanel: { show: false, showMessage: false },
})
);
};
TAxios(
dispatch,
getState,
'post',
URLS.INSERT_MY_INFO_CHECKOUT_ORDER,
{},
{
mbrNo,
bilAddrSno,
dlvrAddrSno,
pinCd,
orderProductCoupontUse,
orderProductQtyInfo,
},
onSuccess,
onFail
);
};
export const getCheckoutTotalAmt = (params, callback) => (dispatch, getState) => {
const { mbrNo, dirPurcSelYn, bilAddrSno, dlvrAddrSno, isPageLoading, orderProductCoupontUse } =
params;
dispatch(changeAppStatus({ isLoading: false }));
dispatch(changeAppStatus({ showLoadingPanel: { show: true, type: 'wait' } }));
const onSuccess = (response) => {
dlog('getCheckoutTotalAmt onSuccess: ', response.data);
if (response.data.retCode === 0) {
dispatch({
type: types.GET_CHECKOUT_TOTAL_AMT,
payload: response.data.data,
});
if (callback) callback(response.data);
} else {
dispatch(
showError(response.data.retCode, response.data.retMsg, true, response.data.retDetailCode)
);
}
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
};
const onFail = (error) => {
derror('getCheckoutTotalAmt onFail: ', error);
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
};
TAxios(
dispatch,
getState,
'post',
URLS.GET_CHECKOUT_TOTAL_AMT,
{},
{ mbrNo, dirPurcSelYn, bilAddrSno, dlvrAddrSno, isPageLoading, orderProductCoupontUse },
onSuccess,
onFail
);
};
export const updateSelectedShippingAddr = (dlvrAddrSno) => ({
type: types.UPDATE_SELECTED_SHIPPING_ADDR,
payload: dlvrAddrSno,
});
export const updateSelectedBillingAddr = (bilAddrSno) => ({
type: types.UPDATE_SELECTED_BILLING_ADDR,
payload: bilAddrSno,
});
export const updateSelectedCoupon = (productId, coupon) => ({
type: types.UPDATE_SELECTED_COUPON,
payload: { productId, coupon },
});
export const resetCheckoutData = () => ({
type: types.CHECKOUT_DATA_RESET,
});