Merge branch '5175_마이페이지_및_결제'
This commit is contained in:
commit
fd550ea580
@ -278,6 +278,8 @@ public class MjonPayV2Controller {
|
||||
try {
|
||||
// 다음 결제시 결제수단 SELECT
|
||||
nextPayMethod = userManageService.selectNextPayMethod(userId);
|
||||
// 실제 마지막 결제 방식 -
|
||||
|
||||
}
|
||||
catch(Exception e) {
|
||||
isSuccess = false;
|
||||
@ -1640,6 +1642,45 @@ public class MjonPayV2Controller {
|
||||
return "web/cop/kgmV2/bankOkUrl";
|
||||
}
|
||||
|
||||
/**
|
||||
* 마지막 결제수단 SELECT
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/web/member/pay/selectLastPayMethodAjax.do")
|
||||
public ModelAndView selectLastPayMethodAjax(MjonPayVO mjonPayVO,
|
||||
HttpServletRequest request ) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
boolean isSuccess = true;
|
||||
String msg = "";
|
||||
String nextPayMethod = "";
|
||||
|
||||
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
|
||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||
|
||||
if(userId == null) {
|
||||
isSuccess = false;
|
||||
msg = "로그인이 필요합니다.";
|
||||
}
|
||||
|
||||
try {
|
||||
// 다음 결제시 결제수단 SELECT
|
||||
nextPayMethod = userManageService.selectLastPayMethod(userId);
|
||||
}
|
||||
catch(Exception e) {
|
||||
isSuccess = false;
|
||||
msg = e.getMessage();
|
||||
}
|
||||
|
||||
modelAndView.addObject("isSuccess", isSuccess);
|
||||
modelAndView.addObject("msg", msg);
|
||||
modelAndView.addObject("nextPayMethod", nextPayMethod);
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
// Get Server Path
|
||||
public static String getKgServerPath(HttpServletRequest request) {
|
||||
String kgmPath = request.getScheme() + "://" + request.getServerName() +":" + request.getServerPort();
|
||||
|
||||
@ -1,5 +1,10 @@
|
||||
package itn.let.uat.uia.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -11,14 +16,16 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import itn.com.cmm.util.StringUtil;
|
||||
import itn.com.uss.olh.hpc.service.HackIpService;
|
||||
import itn.com.uss.olh.hpc.service.HackIpVO;
|
||||
import itn.com.utl.fcc.service.EgovStringUtil;
|
||||
import itn.let.mjo.cert.service.CertVO;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentVO;
|
||||
import itn.let.mjo.pay.service.KmcVO;
|
||||
import itn.let.sec.rgm.service.AuthorGroup;
|
||||
import itn.let.sec.rgm.service.EgovAuthorGroupService;
|
||||
import itn.let.sym.site.service.JoinSettingVO;
|
||||
import itn.let.uat.uia.service.AuthCertVO;
|
||||
import itn.let.uss.umt.service.AdmProcHstryVO;
|
||||
import itn.let.uss.umt.service.EgovMberManageService;
|
||||
@ -82,6 +89,10 @@ public class EgovMberManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
@Resource(name = "hackIpService")
|
||||
private HackIpService hackIpService;
|
||||
|
||||
/* MjonMsgDataService */
|
||||
@Resource(name = "MjonMsgDataService")
|
||||
private MjonMsgDataService mjonMsgDataService;
|
||||
|
||||
|
||||
@Override
|
||||
public int insertMber(MberManageVO mberManageVO) throws Exception {
|
||||
@ -621,4 +632,71 @@ public class EgovMberManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
return mberManageDAO.findTopByregDateFromCertLog(authCertVO);
|
||||
}
|
||||
|
||||
public MberManageVO selectMberHeaderInfo(String mberId) throws Exception {
|
||||
//회원 단가, 이벤트 단가, 이벤트 종료일 등 조회
|
||||
MberManageVO headerInfo = mberManageDAO.selectMberHeaderInfo(mberId);
|
||||
//기본 단가 조회
|
||||
JoinSettingVO sysPrice = mjonMsgDataService.selectJoinSettingInfo();
|
||||
|
||||
//이벤트 종료까지 남은 일 수 계산
|
||||
long eventLeftDay = calculateEventLeftDay(headerInfo.getEventEndDate());
|
||||
headerInfo.setEventLeftDay(String.valueOf(eventLeftDay));
|
||||
|
||||
//이벤트 유무에 따라 이벤트 잔액 or 잔액 사용
|
||||
boolean isEventActive = eventLeftDay > 0;
|
||||
double money = isEventActive ? headerInfo.getEventRemainCash() : headerInfo.getUserMoney();
|
||||
|
||||
//이벤트, 회원 단가가 0일 시 기본 단가 사용
|
||||
setPrices(headerInfo, sysPrice, isEventActive);
|
||||
|
||||
//발송가능 건수 조회
|
||||
calculateAvailableCounts(headerInfo, money);
|
||||
|
||||
return headerInfo;
|
||||
}
|
||||
|
||||
private long calculateEventLeftDay(String eventEndDateStr) {
|
||||
if (StringUtil.isEmpty(eventEndDateStr)) return 0;
|
||||
LocalDate today = LocalDate.now();
|
||||
LocalDate eventEndDate = LocalDate.parse(eventEndDateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
return ChronoUnit.DAYS.between(today, eventEndDate);
|
||||
}
|
||||
|
||||
private void setPrices(MberManageVO headerInfo, JoinSettingVO sysPrice, boolean isEventActive) {
|
||||
if (isEventActive) {
|
||||
headerInfo.setHeaderShortPrice(priceChk(headerInfo.getEventShortPrice(), sysPrice.getShortPrice()));
|
||||
headerInfo.setHeaderLongPrice(priceChk(headerInfo.getEventLongPrice(), sysPrice.getLongPrice()));
|
||||
headerInfo.setHeaderPicturePrice(priceChk(headerInfo.getEventPicturePrice(), sysPrice.getPicturePrice()));
|
||||
headerInfo.setHeaderPicture2Price(priceChk(headerInfo.getEventPicture2Price(), sysPrice.getPicture2Price()));
|
||||
headerInfo.setHeaderPicture3Price(priceChk(headerInfo.getEventPicture3Price(), sysPrice.getPicture3Price()));
|
||||
} else {
|
||||
headerInfo.setHeaderShortPrice(priceChk(headerInfo.getShortPrice(), sysPrice.getShortPrice()));
|
||||
headerInfo.setHeaderLongPrice(priceChk(headerInfo.getLongPrice(), sysPrice.getLongPrice()));
|
||||
headerInfo.setHeaderPicturePrice(priceChk(headerInfo.getPicturePrice(), sysPrice.getPicturePrice()));
|
||||
headerInfo.setHeaderPicture2Price(priceChk(headerInfo.getPicture2Price(), sysPrice.getPicture2Price()));
|
||||
headerInfo.setHeaderPicture3Price(priceChk(headerInfo.getPicture3Price(), sysPrice.getPicture3Price()));
|
||||
}
|
||||
// 카카오, 팩스 단가는 기본 단가 고정
|
||||
headerInfo.setHeaderKakaoAtPrice(sysPrice.getKakaoAtPrice());
|
||||
headerInfo.setHeaderFaxPrice(sysPrice.getFaxPrice());
|
||||
}
|
||||
|
||||
private float priceChk(float price, float sysPrice) {
|
||||
return price > 0 ? price : sysPrice;
|
||||
}
|
||||
|
||||
private void calculateAvailableCounts(MberManageVO headerInfo, double money) {
|
||||
headerInfo.setHeaderShortCnt(calcCount(money, headerInfo.getHeaderShortPrice()));
|
||||
headerInfo.setHeaderLongCnt(calcCount(money, headerInfo.getHeaderLongPrice()));
|
||||
headerInfo.setHeaderPictureCnt(calcCount(money, headerInfo.getHeaderPicturePrice()));
|
||||
headerInfo.setHeaderPicture2Cnt(calcCount(money, headerInfo.getHeaderPicture2Price()));
|
||||
headerInfo.setHeaderPicture3Cnt(calcCount(money, headerInfo.getHeaderPicture3Price()));
|
||||
headerInfo.setHeaderKakaoAtCnt(calcCount(money, headerInfo.getHeaderKakaoAtPrice()));
|
||||
headerInfo.setHeaderFaxCnt(calcCount(money, headerInfo.getHeaderFaxPrice()));
|
||||
}
|
||||
|
||||
private int calcCount(double money, double price) {
|
||||
if (price <= 0) return 0;
|
||||
return (int) Math.floor(money / price);
|
||||
}
|
||||
}
|
||||
@ -346,4 +346,7 @@ public class MberManageDAO extends EgovComAbstractDAO{
|
||||
return (String)select("mberManageDAO.findTopByregDateFromCertLog", authCertVO);
|
||||
}
|
||||
|
||||
public MberManageVO selectMberHeaderInfo(String mberId) {
|
||||
return (MberManageVO) select("mberManageDAO.selectMberHeaderInfo", mberId);
|
||||
}
|
||||
}
|
||||
@ -251,4 +251,6 @@ public interface EgovMberManageService {
|
||||
|
||||
public String findTopByregDateFromCertLog(AuthCertVO authCertVO);
|
||||
|
||||
//사용자 헤더 정보(단가, 이벤트 활성화 기간)
|
||||
public MberManageVO selectMberHeaderInfo(String mberId) throws Exception;
|
||||
}
|
||||
@ -220,4 +220,6 @@ public interface EgovUserManageService {
|
||||
|
||||
public Map<String, Object> selectFaxSendList(FaxGroupDataVO faxGroupDataVO);
|
||||
|
||||
// 마지막 결제수단 조회
|
||||
public String selectLastPayMethod(String mberId) throws Exception;
|
||||
}
|
||||
@ -512,6 +512,39 @@ public class MberManageVO extends UserDefaultVO{
|
||||
*/
|
||||
private String secuLoginFlag;
|
||||
|
||||
|
||||
/**
|
||||
* 회원 이벤트 정보
|
||||
*/
|
||||
private String eventEndDate; //회원 이벤트 종료일자
|
||||
private double eventRemainCash; //이벤트 차감 후 남은 Cash
|
||||
private float eventShortPrice; //이벤트 단문 가격
|
||||
private float eventLongPrice; //이벤트 장문 가격
|
||||
private float eventPicturePrice; //이벤트 그림 1장 가격
|
||||
private float eventPicture2Price; //이벤트 그림 2장 가격
|
||||
private float eventPicture3Price; //이벤트 그림 3장 가격
|
||||
private String eventLeftDay; //이벤트 남은 기간
|
||||
|
||||
/**
|
||||
* 헤더 영역 정보(단가, 발송가능 건수)
|
||||
*/
|
||||
private float headerShortPrice;
|
||||
private float headerLongPrice;
|
||||
private float headerPicturePrice;
|
||||
private float headerPicture2Price;
|
||||
private float headerPicture3Price;
|
||||
private float headerKakaoAtPrice;
|
||||
private float headerKakaoFtPrice;
|
||||
private float headerFaxPrice;
|
||||
private int headerShortCnt;
|
||||
private int headerLongCnt;
|
||||
private int headerPictureCnt;
|
||||
private int headerPicture2Cnt;
|
||||
private int headerPicture3Cnt;
|
||||
private int headerKakaoAtCnt;
|
||||
private int headerKakaoFtCnt;
|
||||
private int headerFaxCnt;
|
||||
|
||||
public String getSmsCode() {
|
||||
return smsCode;
|
||||
}
|
||||
@ -1804,6 +1837,150 @@ public class MberManageVO extends UserDefaultVO{
|
||||
public void setSecuLoginFlag(String secuLoginFlag) {
|
||||
this.secuLoginFlag = secuLoginFlag;
|
||||
}
|
||||
public String getEventEndDate() {
|
||||
return eventEndDate;
|
||||
}
|
||||
public void setEventEndDate(String eventEndDate) {
|
||||
this.eventEndDate = eventEndDate;
|
||||
}
|
||||
public double getEventRemainCash() {
|
||||
return eventRemainCash;
|
||||
}
|
||||
public void setEventRemainCash(double eventRemainCash) {
|
||||
this.eventRemainCash = eventRemainCash;
|
||||
}
|
||||
public float getEventShortPrice() {
|
||||
return eventShortPrice;
|
||||
}
|
||||
public void setEventShortPrice(float eventShortPrice) {
|
||||
this.eventShortPrice = eventShortPrice;
|
||||
}
|
||||
public float getEventLongPrice() {
|
||||
return eventLongPrice;
|
||||
}
|
||||
public void setEventLongPrice(float eventLongPrice) {
|
||||
this.eventLongPrice = eventLongPrice;
|
||||
}
|
||||
public float getEventPicturePrice() {
|
||||
return eventPicturePrice;
|
||||
}
|
||||
public void setEventPicturePrice(float eventPicturePrice) {
|
||||
this.eventPicturePrice = eventPicturePrice;
|
||||
}
|
||||
public float getEventPicture2Price() {
|
||||
return eventPicture2Price;
|
||||
}
|
||||
public void setEventPicture2Price(float eventPicture2Price) {
|
||||
this.eventPicture2Price = eventPicture2Price;
|
||||
}
|
||||
public float getEventPicture3Price() {
|
||||
return eventPicture3Price;
|
||||
}
|
||||
public void setEventPicture3Price(float eventPicture3Price) {
|
||||
this.eventPicture3Price = eventPicture3Price;
|
||||
}
|
||||
public String getEventLeftDay() {
|
||||
return eventLeftDay;
|
||||
}
|
||||
public void setEventLeftDay(String eventLeftDay) {
|
||||
this.eventLeftDay = eventLeftDay;
|
||||
}
|
||||
public float getHeaderShortPrice() {
|
||||
return headerShortPrice;
|
||||
}
|
||||
public void setHeaderShortPrice(float headerShortPrice) {
|
||||
this.headerShortPrice = headerShortPrice;
|
||||
}
|
||||
public float getHeaderLongPrice() {
|
||||
return headerLongPrice;
|
||||
}
|
||||
public void setHeaderLongPrice(float headerLongPrice) {
|
||||
this.headerLongPrice = headerLongPrice;
|
||||
}
|
||||
public float getHeaderPicturePrice() {
|
||||
return headerPicturePrice;
|
||||
}
|
||||
public void setHeaderPicturePrice(float headerPicturePrice) {
|
||||
this.headerPicturePrice = headerPicturePrice;
|
||||
}
|
||||
public float getHeaderPicture2Price() {
|
||||
return headerPicture2Price;
|
||||
}
|
||||
public void setHeaderPicture2Price(float headerPicture2Price) {
|
||||
this.headerPicture2Price = headerPicture2Price;
|
||||
}
|
||||
public float getHeaderPicture3Price() {
|
||||
return headerPicture3Price;
|
||||
}
|
||||
public void setHeaderPicture3Price(float headerPicture3Price) {
|
||||
this.headerPicture3Price = headerPicture3Price;
|
||||
}
|
||||
public int getHeaderShortCnt() {
|
||||
return headerShortCnt;
|
||||
}
|
||||
public void setHeaderShortCnt(int headerShortCnt) {
|
||||
this.headerShortCnt = headerShortCnt;
|
||||
}
|
||||
public int getHeaderLongCnt() {
|
||||
return headerLongCnt;
|
||||
}
|
||||
public void setHeaderLongCnt(int headerLongCnt) {
|
||||
this.headerLongCnt = headerLongCnt;
|
||||
}
|
||||
public int getHeaderPictureCnt() {
|
||||
return headerPictureCnt;
|
||||
}
|
||||
public void setHeaderPictureCnt(int headerPictureCnt) {
|
||||
this.headerPictureCnt = headerPictureCnt;
|
||||
}
|
||||
public int getHeaderPicture2Cnt() {
|
||||
return headerPicture2Cnt;
|
||||
}
|
||||
public void setHeaderPicture2Cnt(int headerPicture2Cnt) {
|
||||
this.headerPicture2Cnt = headerPicture2Cnt;
|
||||
}
|
||||
public int getHeaderPicture3Cnt() {
|
||||
return headerPicture3Cnt;
|
||||
}
|
||||
public void setHeaderPicture3Cnt(int headerPicture3Cnt) {
|
||||
this.headerPicture3Cnt = headerPicture3Cnt;
|
||||
}
|
||||
public float getHeaderKakaoAtPrice() {
|
||||
return headerKakaoAtPrice;
|
||||
}
|
||||
public void setHeaderKakaoAtPrice(float headerKakaoAtPrice) {
|
||||
this.headerKakaoAtPrice = headerKakaoAtPrice;
|
||||
}
|
||||
public float getHeaderKakaoFtPrice() {
|
||||
return headerKakaoFtPrice;
|
||||
}
|
||||
public void setHeaderKakaoFtPrice(float headerKakaoFtPrice) {
|
||||
this.headerKakaoFtPrice = headerKakaoFtPrice;
|
||||
}
|
||||
public float getHeaderFaxPrice() {
|
||||
return headerFaxPrice;
|
||||
}
|
||||
public void setHeaderFaxPrice(float headerFaxPrice) {
|
||||
this.headerFaxPrice = headerFaxPrice;
|
||||
}
|
||||
public int getHeaderKakaoAtCnt() {
|
||||
return headerKakaoAtCnt;
|
||||
}
|
||||
public void setHeaderKakaoAtCnt(int headerKakaoAtCnt) {
|
||||
this.headerKakaoAtCnt = headerKakaoAtCnt;
|
||||
}
|
||||
public int getHeaderKakaoFtCnt() {
|
||||
return headerKakaoFtCnt;
|
||||
}
|
||||
public void setHeaderKakaoFtCnt(int headerKakaoFtCnt) {
|
||||
this.headerKakaoFtCnt = headerKakaoFtCnt;
|
||||
}
|
||||
public int getHeaderFaxCnt() {
|
||||
return headerFaxCnt;
|
||||
}
|
||||
public void setHeaderFaxCnt(int headerFaxCnt) {
|
||||
this.headerFaxCnt = headerFaxCnt;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -883,4 +883,10 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
// 마지막 결제수단 SELECT
|
||||
@Override
|
||||
public String selectLastPayMethod(String mberId) throws Exception {
|
||||
return userManageDAO.selectLastPayMethod(mberId);
|
||||
}
|
||||
|
||||
}
|
||||
@ -321,4 +321,8 @@ public class UserManageDAO extends EgovAbstractDAO{
|
||||
return (int) select("userManageDAO.selectUserPrePaymentPGdataCount", userId);
|
||||
}
|
||||
|
||||
// 마지막 결제수단 SELECT
|
||||
public String selectLastPayMethod(String mberId) throws Exception{
|
||||
return (String) select("userManageDAO.selectLastPayMethod", mberId);
|
||||
}
|
||||
}
|
||||
@ -12,6 +12,9 @@ import java.security.PrivateKey;
|
||||
import java.security.PublicKey;
|
||||
import java.security.spec.RSAPublicKeySpec;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@ -106,6 +109,7 @@ import itn.let.lett.service.LetterVO;
|
||||
import itn.let.mjo.addr.service.AddrTransHistService;
|
||||
import itn.let.mjo.addr.service.AddrTransHistVO;
|
||||
import itn.let.mjo.event.service.MjonEventService;
|
||||
import itn.let.mjo.event.service.MjonEventVO;
|
||||
import itn.let.mjo.kisa.service.KisaService;
|
||||
import itn.let.mjo.kisa.service.KisaVO;
|
||||
import itn.let.mjo.mjocommon.MjonForienIpChk;
|
||||
@ -130,6 +134,7 @@ import itn.let.sym.mnu.mpm.service.MenuManageVO;
|
||||
import itn.let.sym.prm.service.EgovProgrmManageService;
|
||||
import itn.let.sym.prm.service.ProgrmManageVO;
|
||||
import itn.let.sym.site.service.EgovSiteManagerService;
|
||||
import itn.let.sym.site.service.JoinSettingVO;
|
||||
import itn.let.sym.site.service.MetaTagVO;
|
||||
import itn.let.sym.site.service.SiteManagerVO;
|
||||
import itn.let.uss.umt.service.EgovMberManageService;
|
||||
@ -1256,6 +1261,16 @@ public class MainController {
|
||||
model.addAttribute("mberManageVO", userManageService.selectUserInfo(mberManageVO));
|
||||
}
|
||||
|
||||
/*
|
||||
* 회원별 단가, 기본 단가, 이벤트 정보 조회
|
||||
* 2025.07.25 이지우 추가
|
||||
* */
|
||||
MberManageVO mberHeaderInfoVO = new MberManageVO();
|
||||
if(loginVO != null) {
|
||||
mberHeaderInfoVO = mberManageService.selectMberHeaderInfo(loginVO.getId());
|
||||
}
|
||||
model.addAttribute("mberHeaderInfoVO", mberHeaderInfoVO);
|
||||
|
||||
return "web/com/webCommonHeader";
|
||||
}
|
||||
|
||||
|
||||
@ -2142,4 +2142,38 @@
|
||||
|
||||
</update>
|
||||
|
||||
<select id="mberManageDAO.selectMberHeaderInfo" resultClass="itn.let.uss.umt.service.MberManageVO" parameterClass="String">
|
||||
SELECT
|
||||
L.SHORT_PRICE AS shortPrice
|
||||
, L.LONG_PRICE AS longPrice
|
||||
, L.PICTURE_PRICE AS picturePrice
|
||||
, L.PICTURE2_PRICE AS picture2Price
|
||||
, L.PICTURE3_PRICE AS picture3Price
|
||||
, L.PRE_PAYMENT_YN AS prePaymentYn
|
||||
, L.USER_MONEY AS userMoney
|
||||
, IFNULL(MEMI.EVENT_SHORT_PRICE, 0) AS eventShortPrice
|
||||
, IFNULL(MEMI.EVENT_LONG_PRICE, 0) AS eventLongPrice
|
||||
, IFNULL(MEMI.EVENT_PICTURE_PRICE, 0) AS eventPicturePrice
|
||||
, IFNULL(MEMI.EVENT_PICTURE2_PRICE, 0) AS eventPicture2Price
|
||||
, IFNULL(MEMI.EVENT_PICTURE3_PRICE, 0) AS eventPicture3Price
|
||||
, IFNULL(MEMI.EVENT_REMAIN_CASH, 0) AS eventRemainCash
|
||||
, DATE_FORMAT(MEMI.EVENT_END_DATE, '%Y-%m-%d') AS eventEndDate
|
||||
FROM
|
||||
LETTNGNRLMBER L
|
||||
LEFT JOIN
|
||||
MJ_EVENT_MBER_INFO MEMI
|
||||
ON L.MBER_ID = MEMI.MBER_ID
|
||||
AND MEMI.EVENT_INFO_ID = (
|
||||
SELECT
|
||||
MAX(EVENT_INFO_ID)
|
||||
FROM
|
||||
MJ_EVENT_MBER_INFO
|
||||
WHERE
|
||||
MBER_ID = #mberID#
|
||||
AND EVENT_STATUS = 'Y'
|
||||
|
||||
)
|
||||
WHERE L.MBER_ID = #mberId#
|
||||
|
||||
</select>
|
||||
</sqlMap>
|
||||
|
||||
@ -1459,4 +1459,14 @@
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 마지막 결제수단 SELECT -->
|
||||
<select id="userManageDAO.selectLastPayMethod" parameterClass="String" resultClass="String">
|
||||
SELECT
|
||||
IFNULL(PAY_METHOD, '') AS nextPayMethod
|
||||
FROM MJ_PG
|
||||
WHERE
|
||||
USER_ID = #userId#
|
||||
ORDER BY REG_DATE DESC LIMIT 1
|
||||
</select>
|
||||
|
||||
</sqlMap>
|
||||
|
||||
@ -1398,14 +1398,14 @@ function actionLogin_end(){
|
||||
<div class="inner">
|
||||
<ul class="menu_left">
|
||||
<li><a href="#" id="favorite" ><i class="hdTop_fav"></i>즐겨찾기추가</a></li>
|
||||
<li><a href="<c:out value='/web/user/mberInfoIndex.do'/>" ><i class="hdTop_mypage"></i>마이페이지</a></li>
|
||||
<li><a href="<c:out value='/web/cop/bbs/NoticeList.do'/>" ><i class="hdTop_center"></i>고객센터</a></li>
|
||||
<li><a href="<c:out value='/web/user/mberInfoChange.do'/>" ><i class="hdTop_mypage"></i>마이페이지</a></li>
|
||||
<li><a href="<c:out value='/web/cop/bbs/QnaList.do'/>" ><i class="hdTop_center"></i>1:1 문의</a></li>
|
||||
</ul>
|
||||
<ul class="menu_right">
|
||||
<li><a href="#" onclick="location.href='/web/member/pay/PayView.do'" >충전하기</a></li>
|
||||
<li class="SortLine"><a href="/web/pay/PayGuide.do" >요금안내</a></li>
|
||||
<li class="SortLine"><a href="/web/cop/bbs/FaqList.do" >이용안내</a></li>
|
||||
<li class="SortLine"><a href="/web/cop/bbs/QnaList.do" >1:1 문의</a></li>
|
||||
<li class="SortLine"><a href="/web/cop/bbs/NoticeList.do" >고객센터</a></li>
|
||||
<li class="SortLine"><a href="/web/cop/bbs/SuggestList.do" >불편신고</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -1627,7 +1627,9 @@ function actionLogin_end(){
|
||||
</li>
|
||||
<li>
|
||||
<dl>
|
||||
<dt><a href="<c:out value='/web/user/mberInfoIndex.do'/>" >마이페이지</a></dt>
|
||||
<%-- 250724 마이페이지 대시보드 삭제 --%>
|
||||
<%-- <dt><a href="<c:out value='/web/user/mberInfoIndex.do'/>" >마이페이지</a></dt> --%>
|
||||
<dt><a href="<c:out value='/web/user/mberInfoChange.do'/>" >마이페이지</a></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="<c:out value='/web/user/mberInfoChange.do'/>" >회원정보 변경</a></li>
|
||||
@ -1637,7 +1639,7 @@ function actionLogin_end(){
|
||||
</c:if>
|
||||
<li><a href="<c:out value='/web/user/passwordChange.do'/>" >비밀번호 변경</a></li>
|
||||
<li><a href="<c:out value='/web/user/sendNumberManage.do'/>" >발신번호 관리</a></li>
|
||||
<li><a href="<c:out value='/web/user/notifyManage.do'/>" >알림설정</a></li>
|
||||
<%-- <li><a href="<c:out value='/web/user/notifyManage.do'/>" >알림설정</a></li> --%>
|
||||
<%-- <li><a href="<c:out value='/web/user/mberSecession.do'/>" >회원탈퇴</a></li> --%>
|
||||
<%-- <li><a href="<c:out value='/web/user/kisaReport.do'/>" >KISA 신고</a></li> --%>
|
||||
</ul>
|
||||
@ -1744,8 +1746,9 @@ function actionLogin_end(){
|
||||
<div class="login_left">
|
||||
<div class="login_info">
|
||||
<input type="hidden" id="loginId" name="loginId" value="${LoginVO.id}">
|
||||
<i><img src="/publish/images/mypageIcon2.png" id="commonHeaderGradeIcon" /></i>
|
||||
<!-- <i><img src="/publish/images/mypageIcon2.png" id="commonHeaderGradeIcon" /></i> -->
|
||||
<div class="login2_name" onclick="location.href='/web/user/mberInfoChange.do'" style="cursor:pointer;">
|
||||
<i class="icon_user"></i>
|
||||
<p><c:out value="${LoginVO.name}"/></p>
|
||||
<c:choose>
|
||||
<c:when test="${LoginVO.dept == 'p'}">
|
||||
@ -1765,8 +1768,8 @@ function actionLogin_end(){
|
||||
<img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘">
|
||||
</a> -->
|
||||
</div>
|
||||
<button type="button" class="btnType btnType3" onclick="location.href='/web/user/mberInfoIndex.do'">마이페이지</button>
|
||||
<button type="button" class="btnType btnType2" onclick="location.href='/web/uat/uia/actionLogout.do'">로그아웃</button>
|
||||
<!-- <button type="button" class="btnType btnType3" onclick="location.href='/web/user/mberInfoIndex.do'">마이페이지</button> -->
|
||||
<button type="button" class="btnType btn_36 fill_gray" onclick="location.href='/web/uat/uia/actionLogout.do'">로그아웃</button>
|
||||
|
||||
|
||||
<div class="security_box">
|
||||
@ -1780,23 +1783,79 @@ function actionLogin_end(){
|
||||
<div class="check_money">
|
||||
<div class="holdingsum_box">
|
||||
<i></i>
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${userMoney}" var="commaPrice" />
|
||||
<p>보유잔액<!-- <em>(캐시)</em> --> <span class="fwMd" id="hdUserMoney"><c:out value="${commaPrice}"/></span>원</p>
|
||||
<div class="user_money_wrap">
|
||||
보유잔액
|
||||
<div class="hover_content_wrap">
|
||||
<i class="qmMark">?</i>
|
||||
<div class="hover_content">
|
||||
<p class="hover_content_title">
|
||||
<img src="/publish/images/content/icon_mypage_message.png" alt=""> 나의단가 <span>(발송가능 건수)</span>
|
||||
</p>
|
||||
<ul class="send_available_number">
|
||||
<li>
|
||||
<p class="title">· 단문</p>
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerShortPrice}" var="shortPrice" />
|
||||
<p class="number"><span class="c_002c9a fwBold"><c:out value="${shortPrice}"/></span>원
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerShortCnt}" var="shortCnt" />
|
||||
(<c:out value="${shortCnt}"/>건)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="title">· 장문</p>
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerLongPrice}" var="LongPrice" />
|
||||
<p class="number"><span class="c_002c9a fwBold"><c:out value="${LongPrice}"/></span>원
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerLongCnt}" var="LongCnt" />
|
||||
(<c:out value="${LongCnt}"/>건)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="title">· 그림(1장)</p>
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPicturePrice}" var="picturePrice" />
|
||||
<p class="number"><span class="c_002c9a fwBold"><c:out value="${picturePrice}"/></span>원
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPictureCnt}" var="pictureCnt" />
|
||||
(<c:out value="${pictureCnt}"/>건)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="title">· 그림(2장)</p>
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPicture2Price}" var="picture2Price" />
|
||||
<p class="number"><span class="c_002c9a fwBold"><c:out value="${picture2Price}"/></span>원
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPicture2Cnt}" var="picture2Cnt" />
|
||||
(<c:out value="${picture2Cnt}"/>건)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="title">· 그림(3장)</p>
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPicture3Price}" var="picture3Price" />
|
||||
<p class="number"><span class="c_002c9a fwBold"><c:out value="${picture3Price}"/></span>원
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPicture3Cnt}" var="picture3Cnt" />
|
||||
(<c:out value="${picture3Cnt}"/>건)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="title">· 알림톡</p>
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerKakaoAtPrice}" var="kakaoAtPrice" />
|
||||
<p class="number"><span class="c_002c9a fwBold"><c:out value="${kakaoAtPrice}"/></span>원
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerKakaoAtCnt}" var="kakaoAtCnt" />
|
||||
(<c:out value="${kakaoAtCnt}"/>건)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="title">· 팩스</p>
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerFaxPrice}" var="faxPrice" />
|
||||
<p class="number"><span class="c_002c9a fwBold"><c:out value="${faxPrice}"/></span>원
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerFaxCnt}" var="faxCnt" />
|
||||
(<c:out value="${faxCnt}"/>건)</p>
|
||||
</li>
|
||||
</ul>
|
||||
<c:if test="${prePaymentYn eq 'Y' and mberHeaderInfoVO.eventLeftDay > 0}">
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.eventRemainCash}" var="eventRemainCash" />
|
||||
<div class="event_term"><p>이벤트<span class="fwBold">(D-${mberHeaderInfoVO.eventLeftDay})</span></p><p><span class="fwBold price">${eventRemainCash}</span>원</p></div>
|
||||
</c:if>
|
||||
<c:if test="${prePaymentYn eq 'N'}">
|
||||
<dl>
|
||||
<dd>후불제 고객의 보유잔액(캐시)은 당월 발송 가능<br>금액을 말하며 <span>매월 1일 자동으로 충전</span>됩니다.</dd>
|
||||
</dl>
|
||||
<div class="event_term" style="display:block">후불제(매월 1일 자동충전)</div>
|
||||
</c:if>
|
||||
</div>
|
||||
</div>
|
||||
<fmt:formatNumber type="number" maxFractionDigits="3" value="${userMoney}" var="commaPrice" />
|
||||
<span class="fwMd" id="hdUserMoney"><c:out value="${commaPrice}"/></span>원
|
||||
</ >
|
||||
</div>
|
||||
<button type="button" class="btnType btnType3" onclick="location.href='/web/member/pay/PayView.do'">충전</button>
|
||||
<div class="account_box">
|
||||
<button type="button" class="btnType btnType3" onclick="location.href='/web/member/pay/PayView.do?tabType=2'">전용계좌</button>
|
||||
<c:if test="${not empty myBankList}">
|
||||
<dl>
|
||||
<dt>전용계좌</dt>
|
||||
<dd><c:out value="${myBankList[0].codeNm}"/> <c:out value="${myBankList[0].acctNo}"/></dd>
|
||||
</dl>
|
||||
</c:if>
|
||||
</div>
|
||||
</div>
|
||||
<div class="point">
|
||||
@ -1805,7 +1864,6 @@ function actionLogin_end(){
|
||||
<p><!-- <em>적립</em> -->포인트 <span class="fwMd"><c:out value="${commaPoint}"/></span>원</p>
|
||||
<button type="button" data-tooltip="popup04" class="btnType btnType3">교환</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="event">
|
||||
<span><i></i>이달의 이벤트</span>
|
||||
<button type="button" class="btnType btnType2" onclick="location.href='/web/cop/bbs/EventList.do'">GO</button>
|
||||
|
||||
@ -41,7 +41,7 @@ function getNextPayMethod() {
|
||||
var nextPayMethod = "";
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/web/member/pay/selectNextPayMethodAjax.do",
|
||||
url: "/web/member/pay/selectLastPayMethodAjax.do",
|
||||
data: {},
|
||||
dataType:'json',
|
||||
async: false,
|
||||
|
||||
@ -242,25 +242,17 @@ function updateUserInfo(){
|
||||
$("#receivemail").val("N");
|
||||
}
|
||||
|
||||
if($("#emailId").val() == ""){
|
||||
alert("이메일을 입력해주세요.");
|
||||
if($("#emailId").val().trim() == "" || $("#emailAdd").val().trim() == ""){
|
||||
alert("이메일은 필수 입력 항목입니다.")
|
||||
return false;
|
||||
}
|
||||
|
||||
if($("#emailId").val() != ""|| $("#emailAdd").val() != ""){
|
||||
if($("#emailAdd").val() != ""){
|
||||
}else {
|
||||
var email = $("#emailId").val() + "@" + $("#emailAdd").val();
|
||||
var taxExptext = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
|
||||
if(taxExptext.test(email)==false){
|
||||
alert("이메일주소 형식이 올바르지 않습니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
$("#mberEmailAdres").val(email);
|
||||
}else{
|
||||
alert("이메일 주소를 확인해 주세요");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if("${cmpPhoneChangeManageVO.hstSttus}" == '03'){
|
||||
@ -678,7 +670,7 @@ function changeValueWork(obj){
|
||||
</c:if>
|
||||
<div class="input_list_item emailWrap">
|
||||
<div>
|
||||
<div class="input_left"><span class="essential">*</span>이메일</div>
|
||||
<div class="input_left">이메일</div>
|
||||
<div class="input_right">
|
||||
<div class="email">
|
||||
<label for="" class="label">이메일 주소 앞자리</label>
|
||||
|
||||
@ -149,21 +149,17 @@ function updateUserInfo(){
|
||||
$("#receivemail").val("N");
|
||||
}
|
||||
|
||||
|
||||
if($("#emailId").val() != ""|| $("#emailAdd").val() != ""){
|
||||
if($("#emailAdd").val() != ""){
|
||||
if($("#emailId").val().trim() == "" || $("#emailAdd").val().trim() == ""){
|
||||
alert("이메일은 필수 입력 항목입니다.")
|
||||
return false;
|
||||
}else {
|
||||
var email = $("#emailId").val() + "@" + $("#emailAdd").val();
|
||||
var taxExptext = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
|
||||
if(taxExptext.test(email)==false){
|
||||
alert("이메일주소 형식이 올바르지 않습니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
$("#mberEmailAdres").val(email);
|
||||
}else{
|
||||
alert("이메일 주소를 확인해 주세요");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if("${userInfo.moblphonNo}" != $("#moblphonNo").val()){
|
||||
|
||||
@ -30,9 +30,6 @@ $(document).ready(function(){
|
||||
<li class="tab" id="sendNumberManage">
|
||||
<button type="button" onclick="TabType5(this,'4'); location.href='/web/user/sendNumberManage.do'">발신번호 관리</button>
|
||||
</li>
|
||||
<li class="tab" id="notifyManage">
|
||||
<button type="button" onclick="TabType5(this,'5'); location.href='/web/user/notifyManage.do'">알림설정</button>
|
||||
</li>
|
||||
<li class="tab" id="mberSecession">
|
||||
<button type="button" onclick="TabType5(this,'6'); location.href='/web/user/mberSecession.do'">회원탈퇴</button>
|
||||
</li>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user