등급제 요금안내 기능추가

This commit is contained in:
itn 2023-07-13 12:15:04 +09:00
parent 2ce5864be1
commit 63e3547633
5 changed files with 181 additions and 30 deletions

View File

@ -83,6 +83,8 @@ import itn.let.mjo.reservmsg.service.MjonReservMsgService;
import itn.let.mjo.tax.service.TaxService;
import itn.let.mjo.tax.service.TaxVO;
import itn.let.schdlr.service.SchdlrManageService;
import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.grd.service.MberGrdVO;
import itn.let.sym.site.service.EgovSiteManagerService;
import itn.let.sym.site.service.JoinSettingVO;
import itn.let.uat.uia.service.AuthCertVO;
@ -158,6 +160,9 @@ public class MjonPayController {
@Resource(name = "egovSiteManagerService")
EgovSiteManagerService egovSiteManagerService;
@Resource(name = "mberGrdService")
MberGrdService mberGrdService;
//배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
private String[][] sendPayExcelValue ={
{"0" ,"번호" , "1" , "" },
@ -1627,6 +1632,10 @@ public class MjonPayController {
}
model.addAttribute("tabType", tabType);
MberGrdVO mberGrdVO = new MberGrdVO();
List<MberGrdVO> mberGrdSettingList = mberGrdService.selectMberGrdSettingList(mberGrdVO);
model.addAttribute("mberGrdSettingList", mberGrdSettingList);
return "/web/pay/PayGuide";
}

View File

@ -5,6 +5,7 @@ import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
@ -77,8 +78,36 @@ public class MberGrdController {
return "/web/grd/MberGrdHistListAjax";
}
// 등급제 시행 ON/OFF 체크
@RequestMapping(value = "/web/grd/mberSettDetailAjax.do")
public ModelAndView mberSettingDetailAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = false;
String msg = "";
try{
MberGrdVO mberGrdVO1 = new MberGrdVO();
mberGrdVO1 = mberGrdService.selectMberSettingDetail(mberGrdVO);
if (mberGrdVO1.getGrdNoti().equals("Y") && null != mberGrdVO1.getGrdDate() && mberGrdVO1.getGrdDatePrgYn().equals("Y")) {
isSuccess = true;
}
}
catch(Exception e) {
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 등급제 적용여부 체크
@RequestMapping(value = "/web/member/grd/mberGrdChkAjax.do")
@RequestMapping(value = "/web/grd/mberGrdChkAjax.do")
public ModelAndView mberGrdChkAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
@ -88,13 +117,16 @@ public class MberGrdController {
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
mberGrdVO.setMberId(userId);
boolean isSuccess = false;
String msg = "";
MberGrdVO rtnMberGrdVO = new MberGrdVO();
try{
if (StringUtils.isNotEmpty(userId)) {
mberGrdVO.setMberId(userId);
// 회원별 이벤트 진행여부
int mberEventPrgCnt = mberGrdService.selectMberEventPrgCnt(mberGrdVO.getMberId());
if (mberEventPrgCnt == 0) {
@ -106,7 +138,7 @@ public class MberGrdController {
msg = "종료";
}
}
}
}
catch(Exception e) {
msg = e.getMessage();

View File

@ -181,6 +181,7 @@
<!-- 회원 등급제 대상여부 정보(사용자화면용) -->
<select id="mberGrdDAO.selectMberGrdInfo" parameterClass="String" resultClass="mberGrdVO">
<![CDATA[
SELECT
M.mberId
, blineCode
@ -239,6 +240,8 @@
ON G.GRD_SET_NO = S.GRD_SET_NO
JOIN MJ_MBER_SETTING B
WHERE 1=1
AND B.GRD_NOTI = 'Y'
AND DATE_FORMAT(B.GRD_DATE, '%Y-%m-%d') <= DATE_FORMAT(NOW(), '%Y-%m-%d')
AND G.GRD_STATUS = 'Y'
AND NOW() BETWEEN G.GRD_START_DATE AND G.GRD_END_DATE
AND G.MBER_ID = #mberId#
@ -246,6 +249,7 @@
WHERE M.isSalePrice = 'N'
OR M.blineCode != 'N'
LIMIT 1
]]>
</select>
<!-- 회원별 등급 누적결제액 상세 -->

View File

@ -65,6 +65,12 @@ $(document).ready(function () {
$("#btnEstimate").trigger("click");
}
//등급제 시행 ON/OFF 체크
//getMberSettingDetail();
// 등급제 대상 여부
//getMberGrdChk();
});
//품목정보 추가
@ -333,6 +339,55 @@ function fn_gunClear(){
document.infoPopForm.target = "infoPop";
document.infoPopForm.submit();
}
//등급제 시행 ON/OFF 체크
function getMberSettingDetail() {
$.ajax({
type: "POST",
url: "/web/grd/mberSettDetailAjax.do",
data: {},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
// 문자(등급별 요금 안내)
$("#mberGrdSettingArea").show();
}
else {
//alert("Msg : " + data.msg);
}
},
error: function (e) {
//alert("ERROR : " + JSON.stringify(e));
}
});
}
// 등급제 대상 여부
function getMberGrdChk() {
$.ajax({
type: "POST",
url: "/web/grd/mberGrdChkAjax.do",
data: {},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
// 등급제 누적결제액 세부내역
$("#grdShowArea").html("(등급 : " + data.rtnMberGrdVO.grdSetNm + ")");
$("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");
}
else {
//alert("Msg : " + data.msg);
}
},
error: function (e) {
//alert("ERROR : " + JSON.stringify(e));
}
});
}
</script>
<form name="popForm" method="post">
@ -376,7 +431,7 @@ function fn_gunClear(){
<div class="fee_cont current" id="tab1_1">
<div>
<p class="tType1_title">
<img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자
<img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자<span class="level_first" id="grdShowArea"></span>
</p>
<table class="tType2">
<caption></caption>
@ -412,6 +467,57 @@ function fn_gunClear(){
</table>
<span class="reqTxt4">* 텍스트 용량(Byte)에 대한 안내 : 한글2Byte, 영문·숫자 1Byte를 차지.</span>
<!--문자_등급별 요금 안내 추가 시작-->
<div id="mberGrdSettingArea" style="display: none;">
<p class="tType1_title level"><img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자<span>(등급별 요금 안내)</span></p>
<table class="tType2 tType2_level">
<caption></caption>
<colgroup>
<col style="width: 13%;">
<col style="width: auto;">
<col style="width: 11%;">
<col style="width: 11%;">
<col style="width: 11%;">
<col style="width: 11%;">
<col style="width: 11%;">
</colgroup>
<thead>
<tr>
<th>등급</th>
<th class="th_second">누적결제액<span id="levelSubTitle"></span></th>
<th>단문</th>
<th>장문</th>
<th>그림(1장)</th>
<th>그림(2장)</th>
<th>그림(3장)</th>
</tr>
</thead>
<tbody>
<c:forEach var="result" items="${mberGrdSettingList}" varStatus="status">
<tr class="level_table">
<th><c:out value="${result.grdSetNm}"/></th>
<td class="level_price"><c:out value="${result.stdAmtComma}"/></td>
<td><c:out value="${result.shortPrice}"/></td>
<td><c:out value="${result.longPrice}"/></td>
<td><c:out value="${result.picturePrice}"/></td>
<td><c:out value="${result.picture2Price}"/></td>
<td><c:out value="${result.picture3Price}"/></td>
</tr>
</c:forEach>
</tbody>
</table>
<span class="reqTxt4">
* 등급별 요금제는 당사의 정책 및 운영의 필요상 수정, 중단 또는 변경될 수 있습니다. <br>
* 누적결제액은 등급별 요금제 적용일로부터 적립된 결제금액을 말하며, 누적결제액에 따라 등급은 자동으로 적용됩니다. <br>
* "첫결제 이벤트" 등 이벤트 결제금액은 등급별 요금제 누적결제액에서 제외됩니다. <br>
</span>
<p class="reqTxt4 reqTxt4_last">
* 문자피싱, 스미싱, 주식, 도박, 로또, 스팸, 사기, 협박, 범죄, 유사투자, 유사수신 등을 목적으로 하거나 교사 또는 방조하는 내용의 정보, 발신번호 조작 등으로 인지되는 문자에 대해서는 사전 또는 즉시 발송을 차단하고
이용을 정지시킬 수 있으며, 이에 대한 어떠한 환불이나 보상을 실시하지 않습니다. 또한, 상기 문자를 발송한 회원에 대해서는 그 즉시 등급별 요금제 혜택을 취소합니다.
</p>
</div>
<!--문자_등급별 요금 안내 추가 끝-->
<p class="tType1_title"><img src="/publish/images/content/icon_fee2.png" alt="알림톡 아이콘 이미지"> 알림톡</p>
<table class="tType2">
<colgroup>

View File

@ -111,7 +111,7 @@ function mberGrdHistListAjax(pageNo){
function getMberGrdChk() {
$.ajax({
type: "POST",
url: "/web/member/grd/mberGrdChkAjax.do",
url: "/web/grd/mberGrdChkAjax.do",
data: {},
dataType:'json',
async: false,