fix : 상점관리 > 쇼핑몰관리 - 1엔 환율, 구독서비스 안내문구 추가

This commit is contained in:
이대환
2026-01-22 14:00:26 +09:00
parent 3346af5d1f
commit 542ec44a3c
4 changed files with 125 additions and 3 deletions

View File

@@ -138,6 +138,12 @@ public class BOMaSopmalVO extends AbstractVO {
/** 주문 자동 구매확정 기간 */ /** 주문 자동 구매확정 기간 */
private String ordrAtmcPurchsDcsnPd; private String ordrAtmcPurchsDcsnPd;
/** 1엔 환율(살때) */
private String buyRate;
/** 1엔 환율(팔때) */
private String sellRate;
/** 마일리지 보유 사용 금액 */ /** 마일리지 보유 사용 금액 */
private String mlgHoldUseAmt; private String mlgHoldUseAmt;
@@ -495,6 +501,9 @@ public class BOMaSopmalVO extends AbstractVO {
/** 회원가입 주요문구 */ /** 회원가입 주요문구 */
private String joinComptWords; private String joinComptWords;
/** 구독서비스 안내문구 */
private String subsvcGuidanceWords;
/** 회원등급 정보 */ /** 회원등급 정보 */
private String mbrGradGroupNm; private String mbrGradGroupNm;
private String pageDv; private String pageDv;

View File

@@ -164,6 +164,8 @@
ORDR_CANCL_ATMC_PROCS_PD, ORDR_CANCL_ATMC_PROCS_PD,
ORDR_PURCHSR_DCSN_AT, ORDR_PURCHSR_DCSN_AT,
ORDR_ATMC_PURCHS_DCSN_PD, ORDR_ATMC_PURCHS_DCSN_PD,
BUY_RATE,
SELL_RATE,
FORMAT(MLG_HOLD_USE_AMT, 0) AS MLG_HOLD_USE_AMT, FORMAT(MLG_HOLD_USE_AMT, 0) AS MLG_HOLD_USE_AMT,
FORMAT(MLG_SETLE_AMT_USE_AMT, 0) AS MLG_SETLE_AMT_USE_AMT, FORMAT(MLG_SETLE_AMT_USE_AMT, 0) AS MLG_SETLE_AMT_USE_AMT,
FORMAT(MLG_MUMM_USE_AMT, 0) AS MLG_MUMM_USE_AMT, FORMAT(MLG_MUMM_USE_AMT, 0) AS MLG_MUMM_USE_AMT,
@@ -192,6 +194,7 @@
JOIN_GUIDANCE_WORDS, JOIN_GUIDANCE_WORDS,
JOIN_BNEF, JOIN_BNEF,
JOIN_COMPT_WORDS, JOIN_COMPT_WORDS,
SUBSVC_GUIDANCE_WORDS,
TOP_SYS_FIL_NM, TOP_SYS_FIL_NM,
META_DC, META_DC,
META_KWRD, META_KWRD,
@@ -511,6 +514,8 @@
ORDR_CANCL_ATMC_PROCS_PD, ORDR_CANCL_ATMC_PROCS_PD,
ORDR_PURCHSR_DCSN_AT, ORDR_PURCHSR_DCSN_AT,
ORDR_ATMC_PURCHS_DCSN_PD, ORDR_ATMC_PURCHS_DCSN_PD,
BUY_RATE,
SELL_RATE,
MLG_HOLD_USE_AMT, MLG_HOLD_USE_AMT,
MLG_SETLE_AMT_USE_AMT, MLG_SETLE_AMT_USE_AMT,
MLG_MUMM_USE_AMT, MLG_MUMM_USE_AMT,
@@ -543,6 +548,7 @@
JOIN_GUIDANCE_WORDS, JOIN_GUIDANCE_WORDS,
JOIN_BNEF, JOIN_BNEF,
JOIN_COMPT_WORDS, JOIN_COMPT_WORDS,
SUBSVC_GUIDANCE_WORDS,
REGUSR, REGUSR,
REGIST_DT, REGIST_DT,
UPDUSR, UPDUSR,
@@ -577,6 +583,8 @@
#{ordrCanclAtmcProcsPd }, #{ordrCanclAtmcProcsPd },
#{ordrPurchsrDcsnAt }, #{ordrPurchsrDcsnAt },
#{ordrAtmcPurchsDcsnPd }, #{ordrAtmcPurchsDcsnPd },
#{buyRate },
#{sellRate },
#{mlgHoldUseAmt }, #{mlgHoldUseAmt },
#{mlgSetleAmtUseAmt }, #{mlgSetleAmtUseAmt },
#{mlgMummUseAmt }, #{mlgMummUseAmt },
@@ -609,6 +617,7 @@
#{joinGuidanceWords}, #{joinGuidanceWords},
#{joinBnef}, #{joinBnef},
#{joinComptWords}, #{joinComptWords},
#{subsvcGuidanceWords},
#{regusr}, #{regusr},
SYSDATE(), SYSDATE(),
#{regusr}, #{regusr},
@@ -889,6 +898,8 @@
ORDR_ATMC_PURCHS_DCSN_PD = 0, ORDR_ATMC_PURCHS_DCSN_PD = 0,
</otherwise> </otherwise>
</choose> </choose>
BUY_RATE = #{buyRate},
SELL_RATE = #{sellRate},
MLG_HOLD_USE_AMT = #{mlgHoldUseAmt}, MLG_HOLD_USE_AMT = #{mlgHoldUseAmt},
MLG_SETLE_AMT_USE_AMT = #{mlgSetleAmtUseAmt}, MLG_SETLE_AMT_USE_AMT = #{mlgSetleAmtUseAmt},
MLG_MUMM_USE_AMT = #{mlgMummUseAmt}, MLG_MUMM_USE_AMT = #{mlgMummUseAmt},
@@ -918,6 +929,7 @@
JOIN_GUIDANCE_WORDS = #{joinGuidanceWords}, JOIN_GUIDANCE_WORDS = #{joinGuidanceWords},
JOIN_BNEF = #{joinBnef}, JOIN_BNEF = #{joinBnef},
JOIN_COMPT_WORDS = #{joinComptWords}, JOIN_COMPT_WORDS = #{joinComptWords},
SUBSVC_GUIDANCE_WORDS = #{subsvcGuidanceWords},
UPDUSR = #{updusr}, UPDUSR = #{updusr},
UPDT_DT = SYSDATE(), UPDT_DT = SYSDATE(),
META_DC = #{metaDc}, META_DC = #{metaDc},

View File

@@ -37,6 +37,7 @@
fn_create_ckeditor('#joinGuidanceWords', sopmalCd); fn_create_ckeditor('#joinGuidanceWords', sopmalCd);
fn_create_ckeditor('#joinBnef', sopmalCd); fn_create_ckeditor('#joinBnef', sopmalCd);
fn_create_ckeditor('#joinComptWords', sopmalCd); fn_create_ckeditor('#joinComptWords', sopmalCd);
fn_create_ckeditor('#subsvcGuidanceWords', sopmalCd);
$("#kakaoIntrlckAt-Y").on("change", function () { $("#kakaoIntrlckAt-Y").on("change", function () {
if ($(this).is(":checked")) { if ($(this).is(":checked")) {
@@ -159,6 +160,24 @@
} }
} }
}); });
// 환율 입력 (숫자와 소숫점. 2자리수까지 허용)
$("#buyRate, #sellRate").on("input", function () {
let value = $(this).val();
value = value.replace(/[^0-9.]/g, "");
const dotCount = (value.match(/\./g) || []).length;
if (dotCount > 1) {
value = value.substring(0, value.lastIndexOf("."));
}
const parts = value.split(".");
if (parts[1] && parts[1].length > 2) {
value = parts[0] + "." + parts[1].slice(0, 2);
}
$(this).val(value);
});
}); });
isChkd_Dup = false; isChkd_Dup = false;
@@ -481,6 +500,7 @@
regForm.find("#joinGuidanceWords").val(fn_get_editor_data('#joinGuidanceWords')); regForm.find("#joinGuidanceWords").val(fn_get_editor_data('#joinGuidanceWords'));
regForm.find("#joinBnef").val(fn_get_editor_data('#joinBnef')); regForm.find("#joinBnef").val(fn_get_editor_data('#joinBnef'));
regForm.find("#joinComptWords").val(fn_get_editor_data('#joinComptWords')); regForm.find("#joinComptWords").val(fn_get_editor_data('#joinComptWords'));
regForm.find("#subsvcGuidanceWords").val(fn_get_editor_data('#subsvcGuidanceWords'));
let params = regForm.serialize(); let params = regForm.serialize();
if (isChkd_Dup) { if (isChkd_Dup) {
@@ -1511,6 +1531,26 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<th>환율(살때) 일본 1円(엔)기준</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right number" name="buyRate" id="buyRate" title="1엔 환율(살때)">
<span class="input-unit-text">원</span>
</div>
</div>
</td>
<th>환율(팔때) 일본 1円(엔)기준</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right number" name="sellRate" id="sellRate" title="1엔 환율(팔때)">
<span class="input-unit-text">원</span>
</div>
</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -1956,7 +1996,17 @@
<td colspan="3"> <td colspan="3">
<div class="td-inner"> <div class="td-inner">
<textarea class="textarea" id="joinComptWords" name="joinComptWords" <textarea class="textarea" id="joinComptWords" name="joinComptWords"
title="회원가입 주요혜택" rows="2"> title="회원가입 완료문구" rows="2">
</textarea>
</div>
</td>
</tr>
<tr>
<th>구독서비스 안내문구</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="subsvcGuidanceWords" name="subsvcGuidanceWords"
title="구독서비스 안내문구" rows="2">
</textarea> </textarea>
</div> </div>
</td> </td>

View File

@@ -51,6 +51,7 @@
fn_create_ckeditor('#joinGuidanceWords', sopmalCd); fn_create_ckeditor('#joinGuidanceWords', sopmalCd);
fn_create_ckeditor('#joinBnef', sopmalCd); fn_create_ckeditor('#joinBnef', sopmalCd);
fn_create_ckeditor('#joinComptWords', sopmalCd); fn_create_ckeditor('#joinComptWords', sopmalCd);
fn_create_ckeditor('#subsvcGuidanceWords', sopmalCd);
// fn_get_join_info(); // fn_get_join_info();
@@ -195,6 +196,24 @@
} }
} }
}); });
// 환율 입력 (숫자와 소숫점. 2자리수까지 허용)
$("#buyRate, #sellRate").on("input", function () {
let value = $(this).val();
value = value.replace(/[^0-9.]/g, "");
const dotCount = (value.match(/\./g) || []).length;
if (dotCount > 1) {
value = value.substring(0, value.lastIndexOf("."));
}
const parts = value.split(".");
if (parts[1] && parts[1].length > 2) {
value = parts[0] + "." + parts[1].slice(0, 2);
}
$(this).val(value);
});
}); });
const fn_get_join_info = function() { const fn_get_join_info = function() {
@@ -210,6 +229,7 @@
fn_set_editor_data("#joinGuidanceWords", resultJson.joinInfo.joinGuidanceWords); fn_set_editor_data("#joinGuidanceWords", resultJson.joinInfo.joinGuidanceWords);
fn_set_editor_data("#joinBnef", resultJson.joinInfo.joinBnef); fn_set_editor_data("#joinBnef", resultJson.joinInfo.joinBnef);
fn_set_editor_data("#joinComptWords", resultJson.joinInfo.joinComptWords); fn_set_editor_data("#joinComptWords", resultJson.joinInfo.joinComptWords);
fn_set_editor_data("#subsvcGuidanceWords", resultJson.joinInfo.subsvcGuidanceWords);
} }
}) })
} }
@@ -679,6 +699,7 @@
updForm.find("#joinGuidanceWords").val(fn_get_editor_data('#joinGuidanceWords')); updForm.find("#joinGuidanceWords").val(fn_get_editor_data('#joinGuidanceWords'));
updForm.find("#joinBnef").val(fn_get_editor_data('#joinBnef')); updForm.find("#joinBnef").val(fn_get_editor_data('#joinBnef'));
updForm.find("#joinComptWords").val(fn_get_editor_data('#joinComptWords')); updForm.find("#joinComptWords").val(fn_get_editor_data('#joinComptWords'));
updForm.find("#subsvcGuidanceWords").val(fn_get_editor_data('#subsvcGuidanceWords'));
let params = updForm.serialize(); let params = updForm.serialize();
if (fn_check_selectStplatBox() > 0) { if (fn_check_selectStplatBox() > 0) {
@@ -1649,7 +1670,26 @@
<input type="text" class="input-text sm right number" name="ordrAtmcPurchsDcsnPd" id="ordrAt" title="자동 구매 확정기간" maxlength="3" value="${resultMap.sopmalDetailList[0].ordrAtmcPurchsDcsnPd }" ${ordrAtmcPurchsDcsnPdDisabled }> <input type="text" class="input-text sm right number" name="ordrAtmcPurchsDcsnPd" id="ordrAt" title="자동 구매 확정기간" maxlength="3" value="${resultMap.sopmalDetailList[0].ordrAtmcPurchsDcsnPd }" ${ordrAtmcPurchsDcsnPdDisabled }>
<span class="input-unit-text">일</span> <span class="input-unit-text">일</span>
</div> </div>
<span class="gray-7">(출고 완료, 배송중, 배송 완료 후 해당기간 경과 시 자동 구매 확정)</span> </div>
</td>
</tr>
<tr>
<th>환율(살때) 일본 1円(엔)기준</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right" name="buyRate" id="buyRate" title="1엔 환율(살때)" value="${resultMap.sopmalDetailList[0].buyRate }">
<span class="input-unit-text">원</span>
</div>
</div>
</td>
<th>환율(팔때) 일본 1円(엔)기준</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right" name="sellRate" id="sellRate" title="1엔 환율(팔때)" value="${resultMap.sopmalDetailList[0].sellRate }">
<span class="input-unit-text">원</span>
</div>
</div> </div>
</td> </td>
</tr> </tr>
@@ -2171,12 +2211,23 @@
<td colspan="3"> <td colspan="3">
<div class="td-inner"> <div class="td-inner">
<textarea class="textarea" id="joinComptWords" name="joinComptWords" <textarea class="textarea" id="joinComptWords" name="joinComptWords"
title="회원가입 주요혜택" rows="2"> title="회원가입 완료문구" rows="2">
${resultMap.sopmalDetailList[0].joinComptWords } ${resultMap.sopmalDetailList[0].joinComptWords }
</textarea> </textarea>
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<th>구독서비스 안내문구</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="subsvcGuidanceWords" name="subsvcGuidanceWords"
title="구독서비스 안내문구" rows="2">
${resultMap.sopmalDetailList[0].subsvcGuidanceWords }
</textarea>
</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>