This commit is contained in:
hylee 2023-07-03 10:54:15 +09:00
commit 445fc82b58
39 changed files with 1937 additions and 111 deletions

View File

@ -758,6 +758,7 @@ public class MjonKakaoATController {
String profileId = resultChannelList.get(i).getProfileId(); String profileId = resultChannelList.get(i).getProfileId();
String deleteYn = resultChannelList.get(i).getDeleteYn(); String deleteYn = resultChannelList.get(i).getDeleteYn();
String userId = resultChannelList.get(i).getUserId(); String userId = resultChannelList.get(i).getUserId();
String lastUpdtPnttm = resultChannelList.get(i).getLastUpdtPnttm();
kakaoProfileVO.setSenderKey(senderKey); kakaoProfileVO.setSenderKey(senderKey);
kakaoProfileVO.setProfileId(profileId); kakaoProfileVO.setProfileId(profileId);
@ -774,6 +775,7 @@ public class MjonKakaoATController {
returnChannelVO.setModifiedAt(tmpProfileVO.getModifiedAt()); returnChannelVO.setModifiedAt(tmpProfileVO.getModifiedAt());
returnChannelVO.setDeleteYn(deleteYn); returnChannelVO.setDeleteYn(deleteYn);
returnChannelVO.setUserId(userId); returnChannelVO.setUserId(userId);
returnChannelVO.setLastUpdtPnttm(lastUpdtPnttm);
resultApiProfileList.add(returnChannelVO); resultApiProfileList.add(returnChannelVO);

View File

@ -77,10 +77,8 @@ public class MjonEventPayV2Controller {
} }
// 하드코딩 // 하드코딩
if(!userId.equals("nobledeco")) { if(!userId.equals("nobledeco") && !userId.equals("nobledeco2") && !userId.equals("nopay")) {
if(!userId.equals("nopay")) { return "redirect:/web/main/mainPage.do";
return "redirect:/web/main/mainPage.do";
}
} }
//기존 결제 내역이 있는 회원인지 확인 //기존 결제 내역이 있는 회원인지 확인

View File

@ -1841,6 +1841,7 @@ public class MjonPayController {
"/web/member/pay/PayListCardAjax.do", "/web/member/pay/PayListCardAjax.do",
"/web/member/pay/PayListVBankAjax.do", "/web/member/pay/PayListVBankAjax.do",
"/web/member/pay/PayListBankAjax.do", "/web/member/pay/PayListBankAjax.do",
"/web/member/pay/PayListSPayAjax.do",
"/web/member/pay/PayListOfflineAjax.do", "/web/member/pay/PayListOfflineAjax.do",
"/web/member/pay/PayListRefundAjax.do" "/web/member/pay/PayListRefundAjax.do"
}) })
@ -1894,6 +1895,7 @@ public class MjonPayController {
|| pattern.equals("/web/member/pay/PayListCardAjax.do") || pattern.equals("/web/member/pay/PayListCardAjax.do")
|| pattern.equals("/web/member/pay/PayListVBankAjax.do") || pattern.equals("/web/member/pay/PayListVBankAjax.do")
|| pattern.equals("/web/member/pay/PayListBankAjax.do") || pattern.equals("/web/member/pay/PayListBankAjax.do")
|| pattern.equals("/web/member/pay/PayListSPayAjax.do")
|| pattern.equals("/web/member/pay/PayListOfflineAjax.do") || pattern.equals("/web/member/pay/PayListOfflineAjax.do")
|| pattern.equals("/web/member/pay/PayListRefundAjax.do") || pattern.equals("/web/member/pay/PayListRefundAjax.do")
) { //전체 , 모바일, 신용카드 ) { //전체 , 모바일, 신용카드
@ -2024,6 +2026,11 @@ public class MjonPayController {
mjonPayVO.setPayMethod("BANK"); mjonPayVO.setPayMethod("BANK");
mjonPayVO.setPageType("bank"); mjonPayVO.setPageType("bank");
} }
if(pattern.equals("/web/member/pay/PayListSPayAjax.do")) { //즉시이체
mjonPayVO.setSearchCondition2("SPAY");
mjonPayVO.setPayMethod("SPAY");
mjonPayVO.setPageType("SPAY");
}
if(pattern.equals("/web/member/pay/PayListOfflineAjax.do")) { //무통장 if(pattern.equals("/web/member/pay/PayListOfflineAjax.do")) { //무통장
mjonPayVO.setSearchCondition2("OFFLINE"); mjonPayVO.setSearchCondition2("OFFLINE");
mjonPayVO.setPayMethod("OFFLINE"); mjonPayVO.setPayMethod("OFFLINE");

View File

@ -946,7 +946,7 @@ public class MjonPayV2Controller {
UserManageVO userManageVO = new UserManageVO(); UserManageVO userManageVO = new UserManageVO();
userManageVO.setSmishingYn("Y"); userManageVO.setSmishingYn("Y");
userManageVO.setMberId(Userid); userManageVO.setMberId(Userid);
userManageService.updateOneUserSmishingYn(userManageVO); userManageService.updateOneUserSmishingYnNotAlert(userManageVO);
} }
else { else {
// 대상 : 휴대폰결제, 즉시이체, 전용계좌 // 대상 : 휴대폰결제, 즉시이체, 전용계좌
@ -977,7 +977,7 @@ public class MjonPayV2Controller {
UserManageVO userManageVO = new UserManageVO(); UserManageVO userManageVO = new UserManageVO();
userManageVO.setSmishingYn("Y"); userManageVO.setSmishingYn("Y");
userManageVO.setMberId(Userid); userManageVO.setMberId(Userid);
userManageService.updateOneUserSmishingYn(userManageVO); userManageService.updateOneUserSmishingYnNotAlert(userManageVO);
} }
} }
} }
@ -1376,7 +1376,7 @@ public class MjonPayV2Controller {
UserManageVO userManageVO = new UserManageVO(); UserManageVO userManageVO = new UserManageVO();
userManageVO.setSmishingYn("Y"); userManageVO.setSmishingYn("Y");
userManageVO.setMberId(Userid); userManageVO.setMberId(Userid);
userManageService.updateOneUserSmishingYn(userManageVO); userManageService.updateOneUserSmishingYnNotAlert(userManageVO);
} }
} }
} }

View File

@ -929,13 +929,25 @@ public class RefundController {
* 결제취소 등록 * 결제취소 등록
* @param RefundVO * @param RefundVO
* @param model * @param model
* @return "/uss/ion/pay/RefundRegist" * @return "/uss/ion/pay/cancelRegist"
* @throws Exception * @throws Exception
*/ */
@RequestMapping(value="/uss/ion/pay/cancelRegist.do") @RequestMapping(value="/uss/ion/pay/cancelRegist.do")
public String cancelRegist(@ModelAttribute("refundVO") RefundVO refundVO) throws Exception{ public String cancelRegist(@ModelAttribute("refundVO") RefundVO refundVO) throws Exception{
return "/uss/ion/pay/cancelRegist"; return "/uss/ion/pay/cancelRegist";
} }
/**
* 환불 등록
* @param RefundVO
* @param model
* @return "/uss/ion/pay/RefundRegist"
* @throws Exception
*/
@RequestMapping(value="/uss/ion/pay/refundRegist.do")
public String refundRegist(@ModelAttribute("refundVO") RefundVO refundVO) throws Exception{
return "/uss/ion/pay/RefundRegist";
}
/** /**
* 결제취소 페이지 * 결제취소 페이지
@ -1000,6 +1012,86 @@ public class RefundController {
return ResponseEntity.ok().body(refundService.insertPayCanAjax(userInfoAdd(refundVO))); return ResponseEntity.ok().body(refundService.insertPayCanAjax(userInfoAdd(refundVO)));
} }
@RequestMapping(value = {"/uss/ion/msg/refMonInsAjax.do"})
public ModelAndView refMonInsAjax(final MultipartHttpServletRequest multiRequest
, RefundVO refundVO , HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
String atchFileId = "";
final Map<String, MultipartFile> files = multiRequest.getFileMap();
if (!files.isEmpty()) {
if(files.containsKey("bank")){
Map<String, MultipartFile> tmpMap = new LinkedHashMap<>();
tmpMap.put("bank", files.get("bank"));
List<FileVO> result = fileUtil.parseFileInf(tmpMap, "REFUND_", 0, "", "", "");
atchFileId = fileMngService.insertFileInfs(result);
refundVO.setBankAtchFileId(atchFileId);
}
if(files.containsKey("docu")){
Map<String, MultipartFile> tmpMap = new LinkedHashMap<>();
tmpMap.put("docu", files.get("docu"));
List<FileVO> result = fileUtil.parseFileInf(tmpMap, "REFUND_", 0, "", "", "");
atchFileId = fileMngService.insertFileInfs(result);
refundVO.setDocuAtchFileId(atchFileId);
}
}
refundVO.setFrstRegisterId(refundVO.getMberId());
refundVO.setRefundStatus("1");
refundService.insertRefund(refundVO);
modelAndView.addObject("status", "success");
}catch (Exception e) {
System.out.println("REFUND ERROR : " + e.getMessage());
modelAndView.addObject("status", "fail");
}
return modelAndView;
}
/**
* 환불신청금액(환불요청 상태) Ajax
* @param RefundVO
* @param model
* @return modelAndView
* @throws Exception
*/
@RequestMapping(value = {"/uss/ion/pay/refMonSumAjax.do"})
public ModelAndView refMonSumAjax(RefundVO refundVO, HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
int refundMoneySum = 0;
int userMoney = 0;
try {
refundVO = refundService.selectRefundMberInfo(refundVO);
userMoney = (int)Double.parseDouble(refundVO.getMberMoney()); // 보유Cash
refundMoneySum = refundService.selectRefundMoneySum(refundVO); // 환불신청금액(환불요청 상태)
} catch (Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
modelAndView.addObject("userMoney", userMoney);
modelAndView.addObject("refundMoneySum", refundMoneySum);
return modelAndView;
}
/** /**
* 캐쉬 환불 처리 * 캐쉬 환불 처리
* @param refundVO * @param refundVO

View File

@ -19,6 +19,7 @@ import itn.com.cmm.service.EgovFileMngService;
import itn.com.cmm.service.impl.FileManageDAO; import itn.com.cmm.service.impl.FileManageDAO;
import itn.let.fax.user.service.impl.FaxDAO; import itn.let.fax.user.service.impl.FaxDAO;
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService; import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService;
import itn.let.mjo.mjocommon.MjonCommon;
import itn.let.mjo.msgdata.service.MjonMsgDataService; import itn.let.mjo.msgdata.service.MjonMsgDataService;
import itn.let.mjo.pay.service.MjonPayService; import itn.let.mjo.pay.service.MjonPayService;
import itn.let.mjo.pay.service.StVcVO; import itn.let.mjo.pay.service.StVcVO;
@ -26,6 +27,9 @@ import itn.let.mjo.payva.service.VacsAhstService;
import itn.let.mjo.payva.service.VacsAhstVO; import itn.let.mjo.payva.service.VacsAhstVO;
import itn.let.schdlr.service.SchdlrManageService; import itn.let.schdlr.service.SchdlrManageService;
import itn.let.schdlr.service.SchdlrVO; import itn.let.schdlr.service.SchdlrVO;
import itn.let.sym.site.service.EgovSiteManagerService;
import itn.let.uss.umt.service.EgovUserManageService;
import itn.let.utl.user.service.MjonNoticeSendUtil;
@Service("SchdlrManageService") @Service("SchdlrManageService")
public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements SchdlrManageService { public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements SchdlrManageService {
@ -73,6 +77,21 @@ public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements
@Resource(name = "mjonPayService") @Resource(name = "mjonPayService")
private MjonPayService mjonPayService; private MjonPayService mjonPayService;
/** userManageService */
@Resource(name = "userManageService")
private EgovUserManageService userManageService;
/** 사이트 설정 */
@Resource(name = "egovSiteManagerService")
EgovSiteManagerService egovSiteManagerService;
/** 알림전송 Util */
@Resource(name = "mjonNoticeSendUtil")
private MjonNoticeSendUtil mjonNoticeSendUtil;
@Resource(name="MjonCommon")
private MjonCommon mjonCommon;
@Resource(name = "faxDAO") @Resource(name = "faxDAO")
public FaxDAO faxDao; public FaxDAO faxDao;
@ -343,6 +362,53 @@ public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements
//세틀뱅크 입금 내역 원장에 처리 완료 내용 입력해 주기 //세틀뱅크 입금 내역 원장에 처리 완료 내용 입력해 주기
vacsAhstService.updateVacsAhstCashComplete(temp); vacsAhstService.updateVacsAhstCashComplete(temp);
/*
try {
String Userid = temp.getMberId();
String mberNm = "";
// 대상 : 휴대폰결제, 즉시이체, 전용계좌
// Step 1. 스미싱의심 지정 여부
JoinSettingVO joinSettingVO = new JoinSettingVO();
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
if (joinSettingVO != null && joinSettingVO.getSmishingNoti().equals("Y")) {
// Step 1. 개인회원 여부 체크
int isPersnalMemberCnt = egovSiteManagerService.selectPersnalMemberCnt(Userid);
if (isPersnalMemberCnt == 1) {
// Step 2. 첫결제 여부 체크
int isFirstPayCnt = egovSiteManagerService.selectFirstPayCnt(Userid);
if (isFirstPayCnt == 1) {
// SMS 체크
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
// 스미싱의심 SMS 알림전송
mjonNoticeSendUtil.smishingSmsNoticeSend("스미싱의심/전용계좌 첫결제", Userid, mberNm);
}
// SLACK 체크
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
// Slack 메시지 발송(단순본문)
String msg = "[문자온] 스미싱의심/전용계좌 첫결제 - " + mberNm +"("+ Userid + ")";
mjonCommon.sendSimpleSlackMsg(msg);
}
// 스미싱 의심회원으로 변경
UserManageVO userManageVO = new UserManageVO();
userManageVO.setSmishingYn("Y");
userManageVO.setMberId(Userid);
userManageService.updateOneUserSmishingYnNotAlert(userManageVO);
}
}
}
}
catch (Exception e) {
System.out.println("#############################################################");
System.out.println("전용계좌 슬랙알림 & 스미싱의심 처리 Error");
System.out.println("전용계좌 TrNo : " + temp.getTrNo());
System.out.println("전용계좌 e.getMessage() : " + e.getMessage());
}
*/
} }
} }

View File

@ -0,0 +1,9 @@
package itn.let.sym.grd.service;
import java.util.List;
public interface MberGrdService {
List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception ;
}

View File

@ -0,0 +1,151 @@
package itn.let.sym.grd.service;
import java.util.List;
public class MberGrdVO {
private int grdSetNo; // 등급설정번호
private String grdSetNm; // 등급설정명
private long totAmt; // 누적결제액
private String totAmtComma; // 누적결제액(콤마)
private float shortPrice; // 단문 단가
private float longPrice; //장문 단가
private float picturePrice; // 그림 단가
private float picture2Price; // 그림 2장단가
private float picture3Price; // 그림 3장단가
private String regId; // 최초등록자 아이디
private String regDate; // 최초등록 일자
private String editId; // 수정등록자 아이디
private String editDate; // 수정등록 일자
private List<String> grdSetNos;
private List<String> totAmts;
private List<String> shortPrices;
private List<String> longPrices;
private List<String> picturePrices;
private List<String> picture2Prices;
private List<String> picture3Prices;
public int getGrdSetNo() {
return grdSetNo;
}
public void setGrdSetNo(int grdSetNo) {
this.grdSetNo = grdSetNo;
}
public String getGrdSetNm() {
return grdSetNm;
}
public void setGrdSetNm(String grdSetNm) {
this.grdSetNm = grdSetNm;
}
public long getTotAmt() {
return totAmt;
}
public void setTotAmt(long totAmt) {
this.totAmt = totAmt;
}
public String getTotAmtComma() {
return totAmtComma;
}
public void setTotAmtComma(String totAmtComma) {
this.totAmtComma = totAmtComma;
}
public float getShortPrice() {
return shortPrice;
}
public void setShortPrice(float shortPrice) {
this.shortPrice = shortPrice;
}
public float getLongPrice() {
return longPrice;
}
public void setLongPrice(float longPrice) {
this.longPrice = longPrice;
}
public float getPicturePrice() {
return picturePrice;
}
public void setPicturePrice(float picturePrice) {
this.picturePrice = picturePrice;
}
public float getPicture2Price() {
return picture2Price;
}
public void setPicture2Price(float picture2Price) {
this.picture2Price = picture2Price;
}
public float getPicture3Price() {
return picture3Price;
}
public void setPicture3Price(float picture3Price) {
this.picture3Price = picture3Price;
}
public String getRegId() {
return regId;
}
public void setRegId(String regId) {
this.regId = regId;
}
public String getRegDate() {
return regDate;
}
public void setRegDate(String regDate) {
this.regDate = regDate;
}
public String getEditId() {
return editId;
}
public void setEditId(String editId) {
this.editId = editId;
}
public String getEditDate() {
return editDate;
}
public void setEditDate(String editDate) {
this.editDate = editDate;
}
public List<String> getGrdSetNos() {
return grdSetNos;
}
public void setGrdSetNos(List<String> grdSetNos) {
this.grdSetNos = grdSetNos;
}
public List<String> getTotAmts() {
return totAmts;
}
public void setTotAmts(List<String> totAmts) {
this.totAmts = totAmts;
}
public List<String> getShortPrices() {
return shortPrices;
}
public void setShortPrices(List<String> shortPrices) {
this.shortPrices = shortPrices;
}
public List<String> getLongPrices() {
return longPrices;
}
public void setLongPrices(List<String> longPrices) {
this.longPrices = longPrices;
}
public List<String> getPicturePrices() {
return picturePrices;
}
public void setPicturePrices(List<String> picturePrices) {
this.picturePrices = picturePrices;
}
public List<String> getPicture2Prices() {
return picture2Prices;
}
public void setPicture2Prices(List<String> picture2Prices) {
this.picture2Prices = picture2Prices;
}
public List<String> getPicture3Prices() {
return picture3Prices;
}
public void setPicture3Prices(List<String> picture3Prices) {
this.picture3Prices = picture3Prices;
}
}

View File

@ -0,0 +1,18 @@
package itn.let.sym.grd.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import itn.let.sym.grd.service.MberGrdVO;
@Repository("mberGrdDAO")
public class MberGrdDAO extends EgovAbstractDAO {
@SuppressWarnings("unchecked")
public List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception{
return (List<MberGrdVO>)list("mberGrdDAO.selectMberGrdSettingList", mberGrdVO);
}
}

View File

@ -0,0 +1,24 @@
package itn.let.sym.grd.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.grd.service.MberGrdVO;
@Service("mberGrdService")
public class MberGrdServiceImpl extends EgovAbstractServiceImpl implements MberGrdService {
@Resource(name="mberGrdDAO")
MberGrdDAO mberGrdDAO;
@Override
public List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception {
return mberGrdDAO.selectMberGrdSettingList(mberGrdVO);
}
}

View File

@ -0,0 +1,73 @@
package itn.let.sym.grd.web;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import itn.com.cmm.LoginVO;
import itn.let.sym.grd.service.MberGrdService;
import itn.let.sym.grd.service.MberGrdVO;
@Controller
public class MberGrdController {
@Resource(name = "mberGrdService")
MberGrdService mberGrdService;
/**
* 등급제 관리 화면
*
* @param mberGrdVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/sym/grd/selectMberGrdSetting.do")
public String selectJoinSetting(MberGrdVO mberGrdVO, ModelMap model) throws Exception {
List<MberGrdVO> mberGrdSettingList = mberGrdService.selectMberGrdSettingList(mberGrdVO);
model.addAttribute("mberGrdSettingList", mberGrdSettingList);
return "/sym/grd/mberGrdSetting";
}
// 등급제 일괄 저장
@RequestMapping(value = "/sym/grd/mberGrdSettingMassUpdateAjax.do")
public ModelAndView mberGrdSettingMassUpdateAjax(
@ModelAttribute("mberGrdVO") MberGrdVO mberGrdVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
// 로그인VO에서 사용자 정보 가져오기
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String frstRegisterId = loginVO == null ? "" : loginVO.getId();
mberGrdVO.setRegId(frstRegisterId); // 최초등록자ID
try{
// 등급제 업데이트
//mberGrdService.updateHashTagList(mberGrdVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
}

View File

@ -3,6 +3,8 @@ package itn.let.sym.log.clg.service;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import itn.com.cmm.LoginVO; import itn.com.cmm.LoginVO;
import java.net.InetAddress;
import javax.annotation.Resource; import javax.annotation.Resource;
/** /**

View File

@ -185,6 +185,9 @@ public interface EgovUserManageService {
// 스미싱의심 /오프 - 상세에서 단일로 // 스미싱의심 /오프 - 상세에서 단일로
public void updateOneUserSmishingYn(UserManageVO userManageVO) throws Exception; public void updateOneUserSmishingYn(UserManageVO userManageVO) throws Exception;
// 스미싱의심 /오프 - 상세에서 단일로 => 슬랙, 문자 알림 No
public void updateOneUserSmishingYnNotAlert(UserManageVO userManageVO) throws Exception;
// 알림톡 스미싱의심 /오프 // 알림톡 스미싱의심 /오프
public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception; public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception;

View File

@ -171,6 +171,16 @@ public class UserDefaultVO implements Serializable {
private String searchHotlineAgentCode; private String searchHotlineAgentCode;
private String searchDeleteType;
public String getSearchDeleteType() {
return searchDeleteType;
}
public void setSearchDeleteType(String searchDeleteType) {
this.searchDeleteType = searchDeleteType;
}
public String getSearchHotlineAgentCode() { public String getSearchHotlineAgentCode() {
return searchHotlineAgentCode; return searchHotlineAgentCode;
} }

View File

@ -539,32 +539,37 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
// 스미싱의심 /오프 단일 // 스미싱의심 /오프 단일
public void updateOneUserSmishingYn(UserManageVO userManageVO) throws Exception { public void updateOneUserSmishingYn(UserManageVO userManageVO) throws Exception {
// 업데이트 // 업데이트
userManageDAO.updateUserSmishingYn(userManageVO); userManageDAO.updateUserSmishingYn(userManageVO);
// 법인폰 알림문자 발송
UserManageVO rtnVO = new UserManageVO();
rtnVO = selectSmishingYnUserInfo(userManageVO);
if (rtnVO.getSmishingYn().equals("Y")) {
// 법인폰 알람여부 체크
JoinSettingVO joinSettingVO = new JoinSettingVO();
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
// SMS 체크
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
// 스미싱의심 SMS 알림전송
mjonNoticeSendUtil.smishingSmsNoticeSend("스미싱 의심!", rtnVO.getMberId(), rtnVO.getMberNm());
}
// SLACK 체크
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
// Slack 메시지 발송(단순본문)
String msg = "[문자온] 스미싱 의심! - " + rtnVO.getMberNm() +"("+ rtnVO.getMberId() + ")";
mjonCommon.sendSimpleSlackMsg(msg);
}
}
// 법인폰 알림문자 발송
UserManageVO rtnVO = new UserManageVO();
rtnVO = selectSmishingYnUserInfo(userManageVO);
if (rtnVO.getSmishingYn().equals("Y")) {
// 법인폰 알람여부 체크
JoinSettingVO joinSettingVO = new JoinSettingVO();
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
// SMS 체크
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
// 스미싱의심 SMS 알림전송
mjonNoticeSendUtil.smishingSmsNoticeSend("스미싱 의심!", rtnVO.getMberId(), rtnVO.getMberNm());
}
// SLACK 체크
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
// Slack 메시지 발송(단순본문)
String msg = "[문자온] 스미싱 의심! - " + rtnVO.getMberNm() +"("+ rtnVO.getMberId() + ")";
mjonCommon.sendSimpleSlackMsg(msg);
}
}
} }
// 스미싱의심 /오프 단일 => 슬랙, 문자 알림 No
public void updateOneUserSmishingYnNotAlert(UserManageVO userManageVO) throws Exception {
// 업데이트
userManageDAO.updateUserSmishingYn(userManageVO);
}
// 알림톡 스미싱의심 /오프 // 알림톡 스미싱의심 /오프
public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception { public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception {
if(!"".equals(checkedIdForUpt)) { if(!"".equals(checkedIdForUpt)) {

View File

@ -34,6 +34,7 @@ import itn.com.uss.olh.hpc.service.HackIpService;
import itn.com.uss.olh.hpc.service.HackIpVO; import itn.com.uss.olh.hpc.service.HackIpVO;
import itn.let.lett.service.LetterVO; import itn.let.lett.service.LetterVO;
import itn.let.mjo.pay.service.MjonPayVO; import itn.let.mjo.pay.service.MjonPayVO;
import itn.let.schdlr.service.SchdlrManageService;
import itn.let.uss.ion.cnt.service.CntManageVO; import itn.let.uss.ion.cnt.service.CntManageVO;
import itn.let.uss.ion.cnt.service.EgovCntManageService; import itn.let.uss.ion.cnt.service.EgovCntManageService;
@ -46,6 +47,9 @@ public class ContentController{
@Resource(name = "hackIpService") @Resource(name = "hackIpService")
private HackIpService hackIpService; private HackIpService hackIpService;
@Resource(name = "SchdlrManageService")
private SchdlrManageService schdlrManageService;
/*인사말*/ /*인사말*/
@RequestMapping(value="/web/intro/intro.do") @RequestMapping(value="/web/intro/intro.do")
public String intro(@RequestParam Map<String, Object> commandMap, Model model) throws Exception { public String intro(@RequestParam Map<String, Object> commandMap, Model model) throws Exception {
@ -661,4 +665,30 @@ public class ContentController{
return modelAndView; return modelAndView;
} }
// 전용계좌 스케줄러 실행
@RequestMapping(value= {"/web/main/vacsAutoChargeAjax.do"})
public ModelAndView vacsAutoCharge(HttpServletRequest request,
ModelMap model) throws Exception{
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
try {
schdlrManageService.vacsAutoCharge();
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
} }

View File

@ -99,7 +99,7 @@ Globals.pay.kgm.card.cnSvcid=191017078687
Globals.pay.kgm.card.payMode=10 Globals.pay.kgm.card.payMode=10
#BANK #BANK
Globals.pay.kgm.bank.raSvcid=230510133362 Globals.pay.kgm.bank.raSvcid=230510133362
Globals.pay.kgm.bank.payMode=00 Globals.pay.kgm.bank.payMode=10
#MOBILE #MOBILE
Globals.pay.kgm.mobile.mcSvcid=170622040674 Globals.pay.kgm.mobile.mcSvcid=220613125202
Globals.pay.kgm.mobile.payMode=00 Globals.pay.kgm.mobile.payMode=10

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml"/>
</sqlMapConfig>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMap namespace="SiteManager">
<typeAlias alias="mberGrdVO" type = "itn.let.sym.grd.service.MberGrdVO"/>
<select id="mberGrdDAO.selectMberGrdSettingList" parameterClass="mberGrdVO" resultClass="mberGrdVO">
SELECT
A.GRD_SET_NO AS grdSetNo
, A.GRD_SET_NM AS grdSetNm
, FLOOR(A.TOT_AMT) AS totAmt
, FORMAT(FLOOR(A.TOT_AMT),0) AS totAmtComma
, A.SHORT_PRICE AS shortPrice
, A.LONG_PRICE AS longPrice
, A.PICTURE_PRICE AS picturePrice
, A.PICTURE2_PRICE AS picture2Price
, A.PICTURE3_PRICE AS picture3Price
, A.REG_ID AS regId
, A.REG_DATE AS regDate
, A.EDIT_ID AS editId
, A.EDIT_DATE AS editDate
FROM mj_mber_grd_setting A
ORDER BY A.GRD_SET_NO ASC
</select>
</sqlMap>

View File

@ -184,6 +184,10 @@
adminSmsNoticeYn = #searchAdminSmsNoticeYn# adminSmsNoticeYn = #searchAdminSmsNoticeYn#
</isNotEmpty> </isNotEmpty>
<isNotEmpty prepend="AND" property="searchDeleteType">
deleteType = #searchDeleteType#
</isNotEmpty>
<isNotEmpty property="searchSmsSalePrice"> <isNotEmpty property="searchSmsSalePrice">
<isEqual prepend="AND" property="searchSmsSalePrice" compareValue="Y"> <isEqual prepend="AND" property="searchSmsSalePrice" compareValue="Y">
(shortPrice > 0 AND (18.00 > shortPrice OR 50.00 > longPrice OR 90.00 > picturePrice OR 110.00 > picture2Price OR 130.00 > picture3Price)) (shortPrice > 0 AND (18.00 > shortPrice OR 50.00 > longPrice OR 90.00 > picturePrice OR 110.00 > picture2Price OR 130.00 > picture3Price))

View File

@ -79,6 +79,9 @@ function fn_search2(){
} }
} }
// 초기화
$("#searchDeleteType").val('');
linkPage(1); linkPage(1);
} }
</script> </script>
@ -86,6 +89,7 @@ function fn_search2(){
<body> <body>
<form name="listForm" action="<c:url value='/uss/umt/user/EgovDelUserManage.do'/>" method="post"> <form name="listForm" action="<c:url value='/uss/umt/user/EgovDelUserManage.do'/>" method="post">
<input name="pageIndex" type="hidden" value="<c:out value='${userSearchVO.pageIndex}'/>"/> <input name="pageIndex" type="hidden" value="<c:out value='${userSearchVO.pageIndex}'/>"/>
<input name="searchDeleteType" id="searchDeleteType" type="hidden" value="<c:out value='${userSearchVO.searchDeleteType}'/>"/>
<double-submit:preventer tokenKey="someKey" /> <double-submit:preventer tokenKey="someKey" />
<!-- cont --> <!-- cont -->
@ -132,6 +136,39 @@ function fn_search2(){
<input type="button" class="btnType1" onclick="fn_search2(); return false;" value="검색"> <input type="button" class="btnType1" onclick="fn_search2(); return false;" value="검색">
<input type="button" class="btnType1" onclick="fn_searchReset2(); return false;" value="초기화"> <input type="button" class="btnType1" onclick="fn_searchReset2(); return false;" value="초기화">
</div> </div>
<div class="tableWrap">
<table class="tbType4">
<colgroup>
<col style="width:6%">
<c:forEach var="item" items="${resultMberDelTypeGrpList}" varStatus="status">
<col style="width:12.5%">
</c:forEach>
<col style="width:*%">
</colgroup>
<thead>
<tr>
<th>구분</th>
<c:forEach var="item" items="${resultMberDelTypeGrpList}" varStatus="status">
<th>${item.deleteTypeName}</th>
</c:forEach>
<th>계</th>
</tr>
</thead>
<tbody>
<tr>
<td>인원</td>
<c:set var="deleteTypeSum" value="0" />
<c:forEach var="item" items="${resultMberDelTypeGrpList}" varStatus="status">
<c:set var="deleteTypeSum" value="${deleteTypeSum + item.deleteTypeCnt}" />
<td><a href="/uss/umt/user/EgovDelUserManage.do?searchDeleteType=${item.deleteType}">${item.deleteTypeCnt}</a></td>
</c:forEach>
<td><a href="/uss/umt/user/EgovDelUserManage.do"><fmt:formatNumber value="${deleteTypeSum}" pattern="#,###" /></a></td>
</tr>
</tbody>
</table>
</div>
<div class="listTop"> <div class="listTop">
<p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p> <p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p>
<div class="rightWrap"> <div class="rightWrap">
@ -192,7 +229,7 @@ function fn_search2(){
<td> <td>
<c:choose> <c:choose>
<c:when test="${result.deleteType eq '01'}"> <c:when test="${result.deleteType eq '01'}">
기업회원으로 다시 가입 기업회원 전환
</c:when> </c:when>
<c:when test="${result.deleteType eq '02'}"> <c:when test="${result.deleteType eq '02'}">
사용할 일이 없어서 사용할 일이 없어서
@ -210,7 +247,7 @@ function fn_search2(){
다른 사이트이용 다른 사이트이용
</c:when> </c:when>
<c:otherwise> <c:otherwise>
해지사유 직접 입력 기타(직접 입력)
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td> </td>

View File

@ -112,7 +112,8 @@ function setMberCmpHstStatusSave(p_index) {
function biznoPop() { function biznoPop() {
var p_bizno = $('#bizNo').val(); var p_bizno = $('#bizNo').val();
window.open('https://www.bizno.net/article/'+p_bizno); //window.open('https://www.bizno.net/article/'+p_bizno);
window.open('https://moneypin.biz/bizno/detail/'+p_bizno);
} }
// 기업회원 상세정보 // 기업회원 상세정보
@ -279,7 +280,7 @@ $(function(){
<td class="left"> <td class="left">
<%-- <c:if test="${result.hstSttus eq '01'}">--%> <%-- <c:if test="${result.hstSttus eq '01'}">--%>
<button class="btnType btnType20" onclick="biznoPop();return false;">BizNo 페이지호출</button> <button class="btnType btnType20" onclick="biznoPop();return false;">머니핀 페이지호출</button>
<button class="btnType btnType20" onclick="setMberCmpHstStatusSave('${status.index}'); return false;">국세청 API호출</button> <button class="btnType btnType20" onclick="setMberCmpHstStatusSave('${status.index}'); return false;">국세청 API호출</button>
<%-- </c:if>--%> <%-- </c:if>--%>
<c:if test="${result.hstSttus eq '03'}"> <c:if test="${result.hstSttus eq '03'}">

View File

@ -9,7 +9,7 @@
2009.03.03 JJY 최초 생성 2009.03.03 JJY 최초 생성
2011.08.31 JJY 경량환경 버전 생성 2011.08.31 JJY 경량환경 버전 생성
author : 공통서비스 개발팀 JJY author : 공통서비스 개발팀 WYH
since : 2009.03.03 since : 2009.03.03
--%> --%>
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

View File

@ -0,0 +1,106 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>등급제 관리</title>
<script type="text/javascript">
function doUpdate() {
}
// 등급제 일괄변경
function setMassEdit() {
if(!confirm("등급별 단가를 변경 하시겠습니까?")) {
return;
}
// 콤마 제거
$('input[name=totAmt]').each(function(index,item){
$(this).val($(this).val().replace(/,/gi, ""));
});
$.ajax({
type: "POST",
url: "/sym/grd/mberGrdSettingMassUpdateAjax.do",
data: $("#listForm").serialize(),
dataType:'json',
async: false,
success: function (data) {
console.log(data);
if (data.isSuccess) {
alert("저장 완료했습니다.");
location.reload();
}
else {
alert("Msg : " + data.msg);
}
},
error: function (e) {
alert("ERROR : " + JSON.stringify(e));
}
});
}
</script>
</head>
<body>
<div class="contWrap">
<div class="pageTitle">
<div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div>
<h2 class="titType1 c_222222 fwBold">등급제 관리</h2>
<p class="tType6 c_999999">등급제 관리 페이지 입니다.</p>
</div>
<div class="pageCont">
<form id="listForm" name="listForm" method="post">
<div class="tableWrap">
<table class="tbType1">
<colgroup>
<col width="10%">
<col width="*">
<col width="13%">
<col width="13%">
<col width="13%">
<col width="13%">
<col width="13%">
</colgroup>
<thead>
<tr>
<th>등급</th>
<th>누적결제액</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">
<input type="hidden" name="grdSetNo" value="${result.grdSetNo}"/>
<tr>
<td><c:out value="${result.grdSetNm}"/></td>
<td><input type="text" name="totAmt" value="<c:out value="${result.totAmtComma}"/>" style="height: 20px; width: 150px; padding: 5px 5px 5px 5px;" /></td>
<td><input type="text" name="shortPrice" value="<c:out value="${result.shortPrice}"/>" style="height: 20px; width: 100px; padding: 5px 5px 5px 5px;" /></td>
<td><input type="text" name="longPrice" value="<c:out value="${result.longPrice}"/>" style="height: 20px; width: 100px; padding: 5px 5px 5px 5px;" /></td>
<td><input type="text" name="picturePrice" value="<c:out value="${result.picturePrice}"/>" style="height: 20px; width: 100px; padding: 5px 5px 5px 5px;" /></td>
<td><input type="text" name="picture2Price" value="<c:out value="${result.picture2Price}"/>" style="height: 20px; width: 100px; padding: 5px 5px 5px 5px;" /></td>
<td><input type="text" name="picture3Price" value="<c:out value="${result.picture3Price}"/>" style="height: 20px; width: 100px; padding: 5px 5px 5px 5px;" /></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</form>
<div class="btnWrap">
<input type="button" class="btnType1" value="수정" onclick="javascript:setMassEdit(); return false;">
</div>
</div>
</div>
</body>
</html>

View File

@ -190,31 +190,28 @@ function fnSelectMber(mberId) {
<colgroup> <colgroup>
<col style="width: 5%"> <col style="width: 5%">
<col style="width: 10%"> <col style="width: 10%">
<col style="width: 15%"> <col style="width: 19%">
<col style="width: 15%"> <col style="width: 24%">
<col style="width: 20%"> <col style="width: 10%">
<col style="width: 8%"> <col style="width: 11%">
<col style="width: 11%">
<col style="width: 10%"> <col style="width: 10%">
<col style="width: 5%">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<!-- <th><input type="checkbox" id="chkAll" onClick="fnChkAll();"></th> -->
<th>번호<input type="button" class="sort sortBtn" id="sort_profileId"></th> <th>번호<input type="button" class="sort sortBtn" id="sort_profileId"></th>
<th>회원ID<input type="button" class="sort sortBtn" id="sort_userId"></th> <th>회원ID<input type="button" class="sort sortBtn" id="sort_userId"></th>
<th>채널ID<input type="button" class="sort sortBtn" id="sort_yellowId"></th> <th>채널ID<input type="button" class="sort sortBtn" id="sort_yellowId"></th>
<th>채널명<input type="button" class="sort sortBtn" id="sort_yellowId"></th> <th>채널명<input type="button" class="sort sortBtn" id="sort_yellowId"></th>
<th>등록상태</th> <th>등록상태</th>
<th>등록일</th> <th>채널생성일</th>
<th>채널등록일</th>
<th>삭제여부<input type="button" class="sort sortBtn" id="sort_deleteYn"></th> <th>삭제여부<input type="button" class="sort sortBtn" id="sort_deleteYn"></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<c:forEach var="result" items="${resultChannelList}" varStatus="status"> <c:forEach var="result" items="${resultChannelList}" varStatus="status">
<tr> <tr>
<%-- <td>
<input type="checkbox" name="chkSttusY" id="chkSttusY_${status.index}" value="${result.profileId}">
</td> --%>
<td> <td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }"> <c:if test="${searchVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/> <c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
@ -257,6 +254,10 @@ function fnSelectMber(mberId) {
<fmt:parseDate value="${result.createdAt}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/> <fmt:parseDate value="${result.createdAt}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd"/> <fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd"/>
</td> </td>
<td>
<fmt:parseDate value="${result.lastUpdtPnttm}" var="lastUpdtPnttmValue" pattern="yyyy-MM-dd"/>
<fmt:formatDate value="${lastUpdtPnttmValue}" pattern="yyyy-MM-dd"/>
</td>
<td> <td>
<c:choose> <c:choose>
<c:when test="${result.deleteYn eq 'Y'}"> <c:when test="${result.deleteYn eq 'Y'}">
@ -310,12 +311,19 @@ function fnSelectMber(mberId) {
</dd> </dd>
</dl> </dl>
<dl> <dl>
<dt>등록일</dt> <dt>채널생성일</dt>
<dd> <dd>
<fmt:parseDate value="${result.createdAt}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/> <fmt:parseDate value="${result.createdAt}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd"/> <fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd"/>
</dd> </dd>
</dl> </dl>
<dl>
<dt>채널등록일</dt>
<dd>
<fmt:parseDate value="${result.lastUpdtPnttm}" var="lastUpdtPnttmValue" pattern="yyyy-MM-dd"/>
<fmt:formatDate value="${lastUpdtPnttmValue}" pattern="yyyy-MM-dd"/>
</dd>
</dl>
<dl> <dl>
<dt>삭제여부</dt> <dt>삭제여부</dt>
<dd> <dd>

View File

@ -141,6 +141,7 @@ function fnSelectMber(mberId) {
<form name="listForm" action="<c:url value='/uss/ion/kakaoat/SendKakaoATDetailList.do'/>" method="post"> <form name="listForm" action="<c:url value='/uss/ion/kakaoat/SendKakaoATDetailList.do'/>" method="post">
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/> <input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/>
<input type="hidden" name="userId" value="<c:out value='${searchVO.userId}'/>"/>
<input type="hidden" name="delFlag" value="Y" /> <input type="hidden" name="delFlag" value="Y" />
<input type="hidden" name="selectedId" /> <input type="hidden" name="selectedId" />
<input type="hidden" name="msgGroupId" value="<c:out value='${searchVO.msgGroupId}'/>"/> <input type="hidden" name="msgGroupId" value="<c:out value='${searchVO.msgGroupId}'/>"/>

View File

@ -326,8 +326,8 @@ function fnSmishingUpdate(flag, id) {
<col style="width: 7%"> <col style="width: 7%">
<col style="width: 5%"> <col style="width: 5%">
<col style="width: 11%"> <col style="width: 11%">
<col style="width: 8%">
<col style="width: 10%"> <col style="width: 10%">
<col style="width: 9%">
<col style="width: 7%"> <col style="width: 7%">
<col style="width: *%"> <col style="width: *%">
<col style="width: 7%"> <col style="width: 7%">
@ -350,7 +350,7 @@ function fnSmishingUpdate(flag, id) {
<th>수단<input type="button" class="sort sortBtn" id="sort_payMethodTxt"></th> <th>수단<input type="button" class="sort sortBtn" id="sort_payMethodTxt"></th>
<th>결제폰번호<input type="button" class="sort sortBtn" id="sort_phone"></th> <th>결제폰번호<input type="button" class="sort sortBtn" id="sort_phone"></th>
<th>결제상태<input type="button" class="sort sortBtn" id="sort_pgStatusTxt"></th> <th>결제상태<input type="button" class="sort sortBtn" id="sort_pgStatusTxt"></th>
<th>결제메세지<input type="button" class="sort sortBtn" id="sort_resultMsg"></th> <th>결제메세지</th>
<th>영수증<input type="button" class="sort sortBtn" id="sort_rcptTypeTxt"></th> <th>영수증<input type="button" class="sort sortBtn" id="sort_rcptTypeTxt"></th>
<th title="스미싱의심">스미싱</th> <th title="스미싱의심">스미싱</th>
<th>결제시간<input type="button" class="sort sortBtn" id="sort_regDate"></th> <th>결제시간<input type="button" class="sort sortBtn" id="sort_regDate"></th>
@ -432,8 +432,22 @@ function fnSmishingUpdate(flag, id) {
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<%-- <c:if test="${not empty result.cardName}">(<c:out value="${result.cardName}"/>)</c:if> --%>
</c:when> </c:when>
<c:when test="${result.payMethodTxt eq '간편결제'}">
간편
<c:choose>
<c:when test="${not empty result.cardName}">
(<c:out value="${result.cardName}"/>)
</c:when>
<c:when test="${result.resultCode == '9991' || result.resultCode == '9993' || result.resultCode == 'I002'}">
<%-- 9991, 9993, I002 결과코드는 사용자가 결제 중간에 취소하여 오류가 발생한 케이스임. --%>
(결제취소)
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise> <c:otherwise>
<c:out value="${result.payMethodTxt}"/> <c:out value="${result.payMethodTxt}"/>
</c:otherwise> </c:otherwise>

View File

@ -64,6 +64,14 @@ function fn_insert(){
frm.submit(); frm.submit();
} }
// 환불 등록
function fn_refundRegist(){
frm = document.listForm;
frm.action = "<c:url value='/uss/ion/pay/refundRegist.do' />";
frm.submit();
}
/* 수정 화면*/ /* 수정 화면*/
function fn_modify(moid){ function fn_modify(moid){
var frm = document.modiForm ; var frm = document.modiForm ;
@ -314,6 +322,9 @@ function fnSelectMber(mberId) {
</table> </table>
</div> </div>
<div class="btnWrap"> <div class="btnWrap">
<input type="button" class="btnType1" value="환불 등록" onclick="fn_refundRegist(); return false;" >
<input type="button" class="btnType1" value="결제취소 등록" onclick="fn_insert(); return false;" > <input type="button" class="btnType1" value="결제취소 등록" onclick="fn_insert(); return false;" >
<input type="button" class="btnType2" value="삭제" onclick="fn_delete(); return false;"> <input type="button" class="btnType2" value="삭제" onclick="fn_delete(); return false;">
</div> </div>

View File

@ -0,0 +1,555 @@
<%--
Class Name : RefundRegist.jsp
Description : Refund 상세 페이지
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2023.06.26 박진순 최초 생성
author : 박진순
since : 2023.06.26
--%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>환불 등록</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<c:url value='/js/web_common.js' />"></script>
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
<script src="/publish/js/content.js"></script>
<script type="text/javaScript" language="javascript">
var mberRefundMaxMoney = 0; // 환불가능금액
$(document).ready(function(){
$('#showMask').click(function(e){
// preventDefault는 href의 링크 기본 행동을 막는 기능입니다.
e.preventDefault();
// 화면의 높이와 너비를 변수로 만듭니다.
var maskHeight = $(document).height();
var maskWidth = $(window).width();
// 마스크의 높이와 너비를 화면의 높이와 너비 변수로 설정합니다.
$('.mask').css({'width':maskWidth,'height':maskHeight});
// fade 애니메이션 : 1초 동안 검게 됐다가 80%의 불투명으로 변합니다.
$('.mask').fadeIn(1000);
$('.mask').fadeTo("slow",0.8);
// 레이어 팝업을 가운데로 띄우기 위해 화면의 높이와 너비의 가운데 값과 스크롤 값을 더하여 변수로 만듭니다.
var left = ( $(window).scrollLeft() + ( $(window).width() - $('.window').width()) / 2 );
var top = ( $(window).scrollTop() + ( $(window).height() - $('.window').height()) / 2 );
// css 스타일을 변경합니다.
$('.window').css({'left':left,'top':top, 'position':'absolute'});
// 레이어 팝업을 띄웁니다.
$('.window').show();
});
// 닫기(close)를 눌렀을 때 작동합니다.
$('.window .close').click(function (e) {
e.preventDefault();
$('.mask, .window').hide();
$("input[name=emplyrId]").val("");
});
});
//회원 조회
function fn_refundIdChk(){
$.ajax({
type:"POST",
url:"<c:url value='/uss/ion/pay/cancelRegistIdChkAjax.do' />",
data:{
"checkId": $("#checkIdModal").val()
},
dataType:'json',
timeout:(1000*30),
success:function(data){
console.log('data ', data);
if(data.message != null)
{
alert(data.message);
return false;
}
else
{
var refundVO = data.refundVO;
$('#mberIdTxt').text(refundVO.mberId);
$('#mberId').val(refundVO.mberId);
$('#mberNmTxt').text(refundVO.mberNm);
$('#mberNm').val(refundVO.mberNm);
$('#dpsitPhoneNo').val(refundVO.mberPhoneNo);
$('#mberMoneyTxt').text(fn_unitChanges(refundVO.mberMoney));
// 환불가능금액
mberRefundMaxMoney = refundVO.mberMoney;
$('.mask, .window').hide();
}
},
error:function(request , status, error){
console.log(' error ?');
console.log('request : ', request);
console.log('status : ', status);
}
});
}
function fn_unitChanges(data){
return data.toString()
.replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");
}
function fn_goList(){
location.href = "<c:url value='/uss/ion/pay/RefundList.do' />";
}
//################################################################
var userMoney = 0; // 보유Cash
var refundMoneySum = 0; // 환불신청금액(환불요청 상태)
$(document).ready(function() {
$('#refundMoney').keyup(function(e){
var money = $(this).val().replace(/,/gi, "");
$('#refundMoney').val(comma(money));
var moneyCommaRemove = $(this).val().replace(/,/gi, "");
var refundExpectMoney = 0;
refundExpectMoney = comma(parseInt(moneyCommaRemove-(moneyCommaRemove/10)));
$("#refundExpectMoney").text(refundExpectMoney);
});
//통장사본 파일 업로드
$(function(){ //단일 파일업로드
$('#bank').change(function(e){
var objUpload = $(".upload_area");
var files = $('#bank')[0].files;
handleFileUpload(files,objUpload,'bank'); //파일업로드
});
});
//증빙서류 파일 업로드
$(function(){ //단일 파일업로드
$('#docu').change(function(e){
var objUpload = $(".upload_area");
var files = $('#docu')[0].files;
handleFileUpload(files,objUpload, 'docu'); //파일업로드
});
});
$("input:radio[name=reason]").click(function(){
if($("input[name=reason]:checked").val() == "999"){
$("input:text[name=reasonEtc]").attr("disabled",false);
// radio 버튼의 value 값이 1이라면 활성화
}else{
$("input:text[name=reasonEtc]").attr("disabled",true);
// radio 버튼의 value 값이 0이라면 비활성화
}
});
$('#refundMoney').focusout(function(){
if($(this).val() > mberRefundMaxMoney){
alert("환불 신청 금액은 환불 가능 금액보다 작아야 합니다.");
$(this).val('');
}
});
//엔터키 누르면 파일 첨부 영영기 열리는 오류 수정_220706
document.addEventListener('keydown', function(event) {
if (event.keyCode === 13) {
event.preventDefault();
};
}, true);
$('#allmoney').change(function(){
if($("#allmoney").is(":checked")){
$('#refundMoney').val(comma(mberRefundMaxMoney));
}else{
$('#refundMoney').val('');
}
});
});
// 환불신청금액(환불요청 상태)
function getRefundMoneySum() {
$.ajax({
type: "POST",
url: "/uss/ion/pay/refMonSumAjax.do",
data: {"mberId" : $("#mberId").val()},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
userMoney = data.userMoney;
refundMoneySum = data.refundMoneySum;
}
else {
//alert("Msg : " + data.msg);
}
},
error: function (e) {
console.log("ERROR : " + JSON.stringify(e));
}
});
}
function changeValue(obj){
$('#atFileBasicWrite').val(obj.value);
}
function changeValue2(obj){
$('#atFileBasicWrite2').val(obj.value);
}
var _fileIdx = 0;
var _fileForm2 = new Array();
function fn_refund_insert() {
if($("input[name=reason]:checked").val() == "999"){
document.listForm.refundReason.value = document.listForm.reason.value;
document.listForm.refundReasonEtc.value = document.listForm.reasonEtc.value;
}else{
document.listForm.refundReason.value = document.listForm.reason.value;
}
//환불금액 컴마제거
var refundMoney = document.listForm.refundMoney.value;
document.listForm.refundMoney.value = refundMoney.replaceAll(",","");
if(fn_checkForm()){
// 환불신청금액(환불요청 상태)
getRefundMoneySum();
//if (parseInt(10000, 10) > parseInt(document.listForm.refundMoney.value, 10)) {
// alert("10,000원 이하 환불 불가입니다.");
// return;
//}
if (parseInt(userMoney, 10) < parseInt(document.listForm.refundMoney.value, 10)) {
alert("현재 회원의 보유금액보다 큰 금액을 환불 할 수 없습니다.");
return;
}
else if ((parseInt(userMoney, 10) - parseInt(refundMoneySum, 10)) < parseInt(document.listForm.refundMoney.value, 10)) {
alert("현재 회원의 (보유금액-환불신청금액)보다 큰 금액을 환불 할 수 없습니다.");
return;
}
if(confirm("환불신청을 하시겠습니까?")){
var data = new FormData(document.listForm);
_fileForm2.forEach(function(obj, idx) {
if(obj)
{
data.append(obj.name, obj.fileObj);
}
});
//for(var key of data.keys()){
// console.log(key);
//}
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "/uss/ion/msg/refMonInsAjax.do",
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
//timeout: 600000,
success: function (returnData, status) {
if(returnData.msg != null){
alert(returnData.msg);
}
else if(returnData.status == 'success'){
alert("환불신청이 완료 되었습니다.");
fn_goList(1);
} else if(returnData.status == 'fail'){
alert("환불신청이 실패하였습니다. !!");
}
},
error: function (e) {
alert("환불신청이 실패하였습니다.");
console.log("ERROR : ", e);
}
});
}
}
}
function handleFileUpload(files,obj,pram) //업로드 function
{
var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB)
var limitcount = $("input[name=limitcount]").val()*1 ;
if($('#tbody_fiielist').find('tr').length + files.length > limitcount ){
alert("업로드 파일은 최대 "+limitcount+"개 입니다.");
return ;
}
for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 50MB이하만 업로드 가능합니다.");
return ;
}
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = pram;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
function sendFileToServer(formData, obj , fileObj, _fileIdx)
{
$('.no_img_box').hide(); //list 박스 형식 변경
$('.file_list_div').show();
var list_html = "";
var tt = "";
list_html += '<tr class="item_'+tt+' uploaded_obj">';
list_html += '<td class="file_name"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
list_html += '<td class="file_size"><span class="file_size_text" value='+fileObj.size+'>'+getStrFileSize(fileObj.size)+'</span></td>';
list_html += '<td class="file_date">'+getDate()+'</td>';
list_html += '<td class="file_del"><input type="button" class="delBtn" alt="" onclick="delete_item(this, '+_fileIdx+')" ></td>';
list_html += '<input type="hidden" name="fileSize" class="item_file_size" value="'+fileObj.size+'">';
list_html += '<input type="hidden" name="atchFileIds" class="imsi" value="'+tt+'">';
list_html += '</tr>';
$('#tbody_fiielist').append(list_html);
}
/* 등록시 값 확인 */
function fn_checkForm() {
var formchk = document.listForm;
if(formchk.refundMoney.value == '') {
alert("환불 신청 금액을 입력해 주세요");
return false;
}
if($("input[name=reason]:checked").val() == "5" && formchk.reasonEtc.value == '') {
alert("환불사유를 입력해 주세요");
return false;
}
return true;
}
function comma(num){
var len, point, str;
num = num + "";
point = num.length % 3;
len = num.length;
str = num.substring(0, point);
while (point < len) {
if (str != "") str += ",";
str += num.substring(point, point + 3);
point += 3;
}
return str;
}
</script>
<style>
.refund_reason {overflow:hidden;}
.refund_reason > div {float:left;margin:0 0 10px;}
.tbType2_title {font-size: 20px; font-weight: 600; position: relative; height: 40px;}
.tbType2_title button {position: absolute;top: 22%; right: 0; transform: translateY(-50%); background-color: #002c9a; height: 40px; padding: 0 15px; color: #fff;}
.tbType2_title>span {font-size: 16px; font-weight: 300; color: #666;}
.calBtn {
border: none;
background-color: transparent !important;
background-image: url(/pb/img/common/calendarIcon.png);
background-repeat: no-repeat;
width: 25px;
height: 25px !important;
vertical-align: middle;
margin-left: -38px !important;
margin-top: -2px !important;
cursor: pointer;
}
</style>
</head>
<body>
<form name="listForm" id="listForm" method="post">
<input type="hideen" name="mberId" id="mberId" value=""/> <!-- 회원 ID -->
<input type="hideen" name="mberNm" id="mberNm" value=""/> <!-- 회원 이름 -->
<input type="hidden" name="refundDivision" value="1"/>
<input type="hidden" name="limitcount" value="<c:out value='3'/>" />
<input type="hidden" name="atchFileNece" id="atchFileNece" value="N" /> <!-- 첨부파일 필수체크 -->
<input type="hidden" name="refundReason" id="refundReason" value=""/>
<input type="hidden" name="refundReasonEtc" id="refundReasonEtc" value=""/>
<div class="contWrap">
<div class="pageTitle">
<div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div>
<h2 class="titType1 c_222222 fwBold">환불 등록</h2>
<p class="tType6 c_999999">환불등록 페이지 입니다.</p>
</div>
<div class="pageCont">
<p class="tbType2_title">환불 금액 입력</p>
<table class="tbType2">
<colgroup>
<col style="width: 20%">
<col style="width: 80%">
</colgroup>
<tbody>
<tr>
<th>
<span>회원 아이디
<input type="button" id="showMask" class="btnType1 bg_456ded" value="조회" style="float: right;" />
</span>
</th>
<td id="mberIdTxt">
</td>
</tr>
<tr>
<th><span>회원 이름</span></th>
<td id="mberNmTxt">
</td>
</tr>
<tr>
<th><span>환불 가능 금액</span></th>
<td id="mberMoneyTxt">
</td>
</tr>
<tr>
<th scope="row">환불 신청 금액</th>
<td>
<input type="text" name="refundMoney" id="refundMoney" style="width:330px;margin-right:5px;" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');">
<input type="checkbox" id="allmoney" name="allmoney" class="re">
<span class="text_req">전액환불</span>
</td>
</tr>
</tbody>
</table>
<br /><br />
<p class="tbType2_title">환불 사유 및 연락처</p>
<table class="tbType2">
<colgroup>
<col style="width: 160px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row" style="line-height: 70px;">환불사유</th>
<td>
<div class="refund_reason">
<ec:radio codeId="ITN050" name="reason" id="radioArea" selectedValue="1"/>
<input type="text" name="reasonEtc" id="reasonEtc" size="36" disabled="disabled">
</div>
</td>
</tr>
<tr>
<th scope="row">연락처</th>
<td>
<input type="text" name="dpsitPhoneNo" id="dpsitPhoneNo" style="width:380px;"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
maxlength="12">
</td>
</tr>
</tbody>
</table>
<br /><br />
<table id="cancleFileTable" class="tbType2">
<colgroup>
<col style="width: 160px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">통장사본</th>
<td class="attachedFile_wrap">
<div>
<input type="text" readonly="readonly" disabled id="atFileBasicWrite" placeholder="* 첨부가능 파일 jpg, gif, png 각 2MB 이내" style="width:380px;">
<input type="file" name="bank" id="bank" style="display:none" onchange="changeValue(this); return false;"/>
<button onclick="document.all.bank.click(); return false;" class="btnType btnType9">파일선택</button>
</div>
</td>
</tr>
<tr>
<th scope="row">증빙서류</th>
<td class="attachedFile_wrap">
<div>
<input type="text" readonly="readonly" disabled id="atFileBasicWrite2" placeholder="* 첨부가능 파일 jpg, gif, png 각 2MB 이내" style="width:380px;">
<input type="file" name="docu" id="docu" style="display:none" onchange="changeValue2(this); return false;"/>
<button onclick="document.all.docu.click(); return false;" class="btnType btnType9">파일선택</button>
</div>
</tr>
</tbody>
</table>
<div class="btnWrap">
<input type="button" class="btnType1 bg_888888" value="목록" onclick="fn_goList(); return false;">
<input type="button" class="btnType1 bg_888888" value="저장" onclick="fn_refund_insert(); return false;"/>
</div>
</div>
</div>
</form>
<div class="setDiv">
<div class="mask"></div>
<div class="window">
<div class="id_check1">
<input type="button" href="#" class="close">
<span>회원 아이디 검색</span>
</div>
<div class="id_check2">
<span>검색할 아이디</span><input type="text" id="checkIdModal">
</div>
<div class="id_check3">
<span>아이디를 검색하세요</span><button onclick="fn_refundIdChk(); return false;">검색</button>
</div>
</div>
</div>
</body>
</html>

View File

@ -68,7 +68,37 @@ function goClose() {
</div> </div>
<!-- 네이버 전환페이지 설정 : 결제완료 --> <!-- 네이버 전환페이지 설정 : 결제완료 -->
<!-- 네이버 공통스크립트 -->
<script type="text/javascript" src="//wcs.naver.net/wcslog.js"></script>
<script type="text/javascript">
if(!wcs_add) var wcs_add = {};
wcs_add["wa"] = "s_1d413f411488";
if (!_nasa) var _nasa={};
if (window.wcs) {
wcs.inflow("munjaon.co.kr");
wcs_do(_nasa);
}
</script>
<!-- 구글 전환페이지 설정 : 결제완료 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-10967556094"></script>
<script>
gtag('event', 'conversion', {'send_to': 'AW-10967556094/NzM0CKzFuNgDEP6_3u0o'});
</script>
<!-- 다음 전환페이지 설정 : 결제완료 -->
<script type="text/javascript" charset="UTF-8" src="//t1.daumcdn.net/kas/static/kp.js"></script>
<script type="text/javascript">
kakaoPixel('2701774865775348507').pageView();
kakaoPixel('2701774865775348507').purchase('결제완료');
</script>
<!-- 에이스카운터 공통 스크립트 : AceCounter Log Gathering Script V.8.0.2019080601 -->
<script language='javascript'>
var _AceGID=(function(){var Inf=['gtc19.acecounter.com','8080','BS1A46164294118','AW','0','NaPm,Ncisy','ALL','0']; var _CI=(!_AceGID)?[]:_AceGID.val;var _N=0;var _T=new Image(0,0);if(_CI.join('.').indexOf(Inf[3])<0){ _T.src ="https://"+Inf[0]+'/?cookie'; _CI.push(Inf); _N=_CI.length; } return {o: _N,val:_CI}; })();
var _AceCounter=(function(){var G=_AceGID;var _sc=document.createElement('script');var _sm=document.getElementsByTagName('script')[0];if(G.o!=0){var _A=G.val[G.o-1];var _G=(_A[0]).substr(0,_A[0].indexOf('.'));var _C=(_A[7]!='0')?(_A[2]):_A[3];var _U=(_A[5]).replace(/\,/g,'_');_sc.src='https:'+'//cr.acecounter.com/Web/AceCounter_'+_C+'.js?gc='+_A[2]+'&py='+_A[4]+'&gd='+_G+'&gp='+_A[1]+'&up='+_U+'&rd='+(new Date().getTime());_sm.parentNode.insertBefore(_sc,_sm);return _sc.src;}})();
</script>
<!-- AceCounter Log Gathering Script End -->
</body> </body>
</html> </html>

View File

@ -68,6 +68,37 @@ function goClose() {
</div> </div>
<!-- 네이버 전환페이지 설정 : 결제완료 --> <!-- 네이버 전환페이지 설정 : 결제완료 -->
<!-- 네이버 공통스크립트 -->
<script type="text/javascript" src="//wcs.naver.net/wcslog.js"></script>
<script type="text/javascript">
if(!wcs_add) var wcs_add = {};
wcs_add["wa"] = "s_1d413f411488";
if (!_nasa) var _nasa={};
if (window.wcs) {
wcs.inflow("munjaon.co.kr");
wcs_do(_nasa);
}
</script>
<!-- 구글 전환페이지 설정 : 결제완료 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-10967556094"></script>
<script>
gtag('event', 'conversion', {'send_to': 'AW-10967556094/NzM0CKzFuNgDEP6_3u0o'});
</script>
<!-- 다음 전환페이지 설정 : 결제완료 -->
<script type="text/javascript" charset="UTF-8" src="//t1.daumcdn.net/kas/static/kp.js"></script>
<script type="text/javascript">
kakaoPixel('2701774865775348507').pageView();
kakaoPixel('2701774865775348507').purchase('결제완료');
</script>
<!-- 에이스카운터 공통 스크립트 : AceCounter Log Gathering Script V.8.0.2019080601 -->
<script language='javascript'>
var _AceGID=(function(){var Inf=['gtc19.acecounter.com','8080','BS1A46164294118','AW','0','NaPm,Ncisy','ALL','0']; var _CI=(!_AceGID)?[]:_AceGID.val;var _N=0;var _T=new Image(0,0);if(_CI.join('.').indexOf(Inf[3])<0){ _T.src ="https://"+Inf[0]+'/?cookie'; _CI.push(Inf); _N=_CI.length; } return {o: _N,val:_CI}; })();
var _AceCounter=(function(){var G=_AceGID;var _sc=document.createElement('script');var _sm=document.getElementsByTagName('script')[0];if(G.o!=0){var _A=G.val[G.o-1];var _G=(_A[0]).substr(0,_A[0].indexOf('.'));var _C=(_A[7]!='0')?(_A[2]):_A[3];var _U=(_A[5]).replace(/\,/g,'_');_sc.src='https:'+'//cr.acecounter.com/Web/AceCounter_'+_C+'.js?gc='+_A[2]+'&py='+_A[4]+'&gd='+_G+'&gp='+_A[1]+'&up='+_U+'&rd='+(new Date().getTime());_sm.parentNode.insertBefore(_sc,_sm);return _sc.src;}})();
</script>
<!-- AceCounter Log Gathering Script End -->
</body> </body>
</html> </html>

View File

@ -68,6 +68,37 @@ function goClose() {
</div> </div>
<!-- 네이버 전환페이지 설정 : 결제완료 --> <!-- 네이버 전환페이지 설정 : 결제완료 -->
<!-- 네이버 공통스크립트 -->
<script type="text/javascript" src="//wcs.naver.net/wcslog.js"></script>
<script type="text/javascript">
if(!wcs_add) var wcs_add = {};
wcs_add["wa"] = "s_1d413f411488";
if (!_nasa) var _nasa={};
if (window.wcs) {
wcs.inflow("munjaon.co.kr");
wcs_do(_nasa);
}
</script>
<!-- 구글 전환페이지 설정 : 결제완료 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-10967556094"></script>
<script>
gtag('event', 'conversion', {'send_to': 'AW-10967556094/NzM0CKzFuNgDEP6_3u0o'});
</script>
<!-- 다음 전환페이지 설정 : 결제완료 -->
<script type="text/javascript" charset="UTF-8" src="//t1.daumcdn.net/kas/static/kp.js"></script>
<script type="text/javascript">
kakaoPixel('2701774865775348507').pageView();
kakaoPixel('2701774865775348507').purchase('결제완료');
</script>
<!-- 에이스카운터 공통 스크립트 : AceCounter Log Gathering Script V.8.0.2019080601 -->
<script language='javascript'>
var _AceGID=(function(){var Inf=['gtc19.acecounter.com','8080','BS1A46164294118','AW','0','NaPm,Ncisy','ALL','0']; var _CI=(!_AceGID)?[]:_AceGID.val;var _N=0;var _T=new Image(0,0);if(_CI.join('.').indexOf(Inf[3])<0){ _T.src ="https://"+Inf[0]+'/?cookie'; _CI.push(Inf); _N=_CI.length; } return {o: _N,val:_CI}; })();
var _AceCounter=(function(){var G=_AceGID;var _sc=document.createElement('script');var _sm=document.getElementsByTagName('script')[0];if(G.o!=0){var _A=G.val[G.o-1];var _G=(_A[0]).substr(0,_A[0].indexOf('.'));var _C=(_A[7]!='0')?(_A[2]):_A[3];var _U=(_A[5]).replace(/\,/g,'_');_sc.src='https:'+'//cr.acecounter.com/Web/AceCounter_'+_C+'.js?gc='+_A[2]+'&py='+_A[4]+'&gd='+_G+'&gp='+_A[1]+'&up='+_U+'&rd='+(new Date().getTime());_sm.parentNode.insertBefore(_sc,_sm);return _sc.src;}})();
</script>
<!-- AceCounter Log Gathering Script End -->
</body> </body>
</html> </html>

View File

@ -192,13 +192,15 @@ function pgOpenerPopup(){
var payMethod = ""; var payMethod = "";
document.pgForm.action = "/web/member/pay/PayActionAjax.do"; document.pgForm.action = "/web/member/pay/PayActionAjax.do";
if($currentTab==0){ payMethod = "CARD";} if ($currentTab == 0) {
else if($currentTab==1){ payMethod = "VBANK"; } payMethod = "SPAY";
/*else if($currentTab==2){ payMethod = "TEMP_CARD"; }*/ } else if ($currentTab==1) {
/* else if($currentTab==2){ payMethod = "CELLPHONE"; payMethod = "CARD";
document.pgForm.action = "/web/kgm/pay/KGMPayActionAjax.do"; } else if($currentTab==2){
} */ //휴대폰 결제 방식 안보이도록 수정 20221117 payMethod = "VBANK";
else if($currentTab==2){ payMethod = "BANK"; } } else if($currentTab==3){
payMethod = "BANK";
}
$('input[name=payMethod]').val(payMethod); $('input[name=payMethod]').val(payMethod);
//결제수단 상태 체크 //결제수단 상태 체크
@ -224,28 +226,29 @@ function pgOpenerPopup(){
// 결제창 호출 // 결제창 호출
if ($currentTab==0) { if ($currentTab==0) {
// KG 모빌리언스 => CARD(신용카드) // KG 모빌리언스 => SPAY(간편결제)
kgmPayCardRequest(); kgmPayCardRequest();
} }
else if ($currentTab==2) { else if ($currentTab==1) {
// KG 모빌리언스 => BANK(즉시이체) // 나이스페이 => CARD(카드결제)
kgmPayBankRequest();
}
else {
// 기타
pg_opener = window.open('', 'pg_opener', "width=790, height=505, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no"); pg_opener = window.open('', 'pg_opener', "width=790, height=505, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
document.pgForm.method = "post"; document.pgForm.method = "post";
document.pgForm.target = "pg_opener" ; document.pgForm.target = "pg_opener" ;
document.pgForm.submit(); document.pgForm.submit();
} }
else if ($currentTab==2) {
// 전용계좌
}
else if ($currentTab==3) {
// KG 모빌리언스 => BANK(즉시이체)
kgmPayBankRequest();
}
} }
//KG 모빌리언스 => CARD //KG 모빌리언스 => CARD
function kgmPayCardRequest() { function kgmPayCardRequest() {
$("#price").val(110);
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/web/member/pay/kgmCardEncodeAjax.do", url: "/web/member/pay/kgmCardEncodeAjax.do",
@ -301,8 +304,6 @@ function kgmPayCardRequest() {
//KG 모빌리언스 => MOBILE //KG 모빌리언스 => MOBILE
function kgmPayMobileRequest() { function kgmPayMobileRequest() {
$("#price").val(110);
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/web/member/pay/kgmMobileEncodeAjax.do", url: "/web/member/pay/kgmMobileEncodeAjax.do",
@ -369,8 +370,6 @@ function kgmPayMobileRequest() {
//KG 모빌리언스 => BANK //KG 모빌리언스 => BANK
function kgmPayBankRequest() { function kgmPayBankRequest() {
$("#price").val(1100);
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/web/member/pay/kgmBankEncodeAjax.do", url: "/web/member/pay/kgmBankEncodeAjax.do",
@ -810,17 +809,75 @@ function TabTypePay(obj, tabId) {
<div> <div>
<p class="tab_tit">충전수단 선택</p> <p class="tab_tit">충전수단 선택</p>
<ul class="area_tab type03"> <ul class="area_tab type03">
<li class="btn_charge1 btn_tab active"><button type="button" onclick="TabTypePay(this,'1');"><i></i>신용카드</button></li> <li class="btn_charge0 btn_tab active"><button type="button" onclick="TabTypePay(this,'0');"><i></i>간편결제</button></li>
<li class="btn_charge1 btn_tab"><button type="button" onclick="TabTypePay(this,'1');"><i></i>신용카드</button></li>
<li class="btn_charge2 btn_tab"><button type="button" onclick="TabTypePay(this,'2');" id="btnDdedicatedAccount"><i></i>전용계좌</button></li> <li class="btn_charge2 btn_tab"><button type="button" onclick="TabTypePay(this,'2');" id="btnDdedicatedAccount"><i></i>전용계좌</button></li>
<!-- <li class="btn_charge2 btn_tab"><button type="button" onclick="TabTypePay(this,'3');"><i></i>무통장입금</button></li> -->
<!-- <li class="btn_charge4 btn_tab"><button type="button" onclick="TabTypePay(this,'4');"><i></i>휴대폰결제</button></li> -->
<li class="btn_charge5 btn_tab"><button type="button" onclick="TabTypePay(this,'5');"><i></i>즉시이체</button></li> <li class="btn_charge5 btn_tab"><button type="button" onclick="TabTypePay(this,'5');"><i></i>즉시이체</button></li>
</ul> </ul>
<div class="checkbox_wrap"><input type="checkbox" id="agree"><label for="agree">선택한 수단을 다음 충전 시에도 <div class="checkbox_wrap"><input type="checkbox" id="agree"><label for="agree">선택한 수단을 다음 충전 시에도
이용합니다.</label></div> 이용합니다.</label></div>
<!-- 간편결제 -->
<div class="area_tabcont on" id="tab2_0">
<p class="tType1_title"><img src="/publish/images/content/icon_charging1_small.png" alt=""> 간편결제</p>
<table class="tType1">
<caption></caption>
<colgroup>
<col style="width: 100px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="charge_content">
<th scope="row">충전금액</th>
<td class="flex">
<select name="tempPrice" id="tempPrice" class="list_seType1">
<option value="5000">5,000</option>
<option value="10000">10,000</option>
<option value="20000">20,000</option>
<option value="30000">30,000</option>
<option value="50000" selected>50,000</option>
<option value="100000">100,000</option>
<option value="200000">200,000</option>
<option value="300000">300,000</option>
<option value="500000">500,000</option>
</select>
<p class="input_in">원</p>
<!-- <span class="reqTxt6">※ 최소 3천원 이상부터 결제 가능합니다.</span> -->
</td>
</tr>
<tr>
<td colspan="2">
<div class="amount_wrap">
<dl>
<dt>최종 결제금액 :</dt>
<dd>
<ul>
<li><strong id="supplyPriceStr"></strong>원(공급가액)</li>
<li><span class="plus"></span><strong id="vatPriceStr"></strong>원(부가세)</li>
<li class="total"><span class="equal"></span><strong id="lastPriceStr"></strong>원(최종금액)</li>
</ul>
</dd>
</dl>
<button type="button" class="btnType" onclick="pgOpenerPopup(); return false;">충전하기</button>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<div class="area_text">
<%--<p><span class="c_222222">- 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(010-8432-9333)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.</span></p>--%>
<p>- 인터넷 익스플로러 이용 고객께서는 도구-팝업 차단 해제 후 충전이 가능합니다.</p>
<p>- 카드사별 정책상 충전금액 제한이 있을 수 있습니다. 단, ARS 신용카드 결제는 충전금액 제한 없이 이용하실 수 있습니다.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //간편결제 -->
<!-- 신용카드 --> <!-- 신용카드 -->
<div class="area_tabcont on" id="tab2_1"> <div class="area_tabcont" id="tab2_1">
<p class="tType1_title"><img src="/publish/images/content/icon_charging1_small.png" alt=""> 신용카드</p> <p class="tType1_title"><img src="/publish/images/content/icon_charging1_small.png" alt=""> 신용카드</p>
<table class="tType1"> <table class="tType1">
<caption></caption> <caption></caption>

View File

@ -478,7 +478,7 @@
<div class="send_info_fax"> <div class="send_info_fax">
<p class="fax_title"><i></i>팩스 광고 필수 표시 의무사항</p> <p class="fax_title"><i></i>팩스 광고 필수 표시 의무사항</p>
<div class="fax_content"> <div class="fax_content">
<img src="/publish/images/content/fax_ex.png" alt=""> <img src="/publish/images/content/fax_ex.png" alt="&lt;팩스광고 예시&gt; (광고)○○○샵 전화번호 02-123-4567 주소 경기도 남양주시 다산순환로 20 대량 팩스발송은 여기서 쉽고 빠르게 한번에! 신규회원 첫 결제 ★☆할인 및 적립 이벤트!!☆★ 기간) 20XX.01.01 ~ 20XX.12~31 (광고) 팩스 수신을 원하지않을 경우 080-1234-5678">
<ul> <ul>
<li> <li>
<p class="num_title">01</p> <p class="num_title">01</p>

View File

@ -186,9 +186,9 @@ function fnShowRefundPrintPopup(){
<!-- tab button --> <!-- tab button -->
<ul class="tabType1"> <ul class="tabType1">
<li class="tab active"><button type="button" onclick="TabType5(this,'1');listLoad('/web/member/pay/PayListAllAjax.do'); return false;" >전체</button></li> <li class="tab active"><button type="button" onclick="TabType5(this,'1');listLoad('/web/member/pay/PayListAllAjax.do'); return false;" >전체</button></li>
<!-- <li class="tab"><button type="button" onclick="TabType5(this,'2');listLoad('/web/member/pay/PayListSPayAjax.do'); return false;">간편결제 결제내역</button></li>-->
<li class="tab"><button type="button" onclick="TabType5(this,'2');listLoad('/web/member/pay/PayListVBankAjax.do'); return false;">전용계좌 결제내역</button></li> <li class="tab"><button type="button" onclick="TabType5(this,'2');listLoad('/web/member/pay/PayListVBankAjax.do'); return false;">전용계좌 결제내역</button></li>
<li class="tab"><button type="button" onclick="TabType5(this,'3');listLoad('/web/member/pay/PayListCardAjax.do'); return false;">신용카드 결제내역</button></li> <li class="tab"><button type="button" onclick="TabType5(this,'3');listLoad('/web/member/pay/PayListCardAjax.do'); return false;">신용카드 결제내역</button></li>
<!-- <li class="tab"><button type="button" onclick="TabType5(this,'4');listLoad('/web/member/pay/PayListOfflineAjax.do'); return false;">무통장입금</button></li> -->
<li class="tab"><button type="button" onclick="TabType5(this,'4');listLoad('/web/member/pay/PayListMobileAjax.do'); return false;">휴대폰 결제내역</button></li> <li class="tab"><button type="button" onclick="TabType5(this,'4');listLoad('/web/member/pay/PayListMobileAjax.do'); return false;">휴대폰 결제내역</button></li>
<li class="tab"><button type="button" onclick="TabType5(this,'5');listLoad('/web/member/pay/PayListBankAjax.do'); return false;">즉시이체 결제내역</button></li> <li class="tab"><button type="button" onclick="TabType5(this,'5');listLoad('/web/member/pay/PayListBankAjax.do'); return false;">즉시이체 결제내역</button></li>
<li class="tab"><button type="button" onclick="TabType5(this,'6');listLoad('/web/member/pay/PayListPointAjax.do'); return false;">포인트 교환내역</button></li> <li class="tab"><button type="button" onclick="TabType5(this,'6');listLoad('/web/member/pay/PayListPointAjax.do'); return false;">포인트 교환내역</button></li>

View File

@ -514,7 +514,7 @@ $(document).on("click", "#chkAll", function(e) {
<c:if test="${result.rcptType eq '0'}"> <c:if test="${result.rcptType eq '0'}">
<p class="fwRg c_002c9a">간이영수증 발행완료</p> <p class="fwRg c_002c9a">간이영수증 발행완료</p>
</c:if> </c:if>
<c:if test="${result.payMethod == 'CARD'}"> <c:if test="${result.payMethod == 'CARD' || result.payMethod == 'SPAY'}">
<button type="button" class="btnType btnType20" onclick="fnPrintReceipt('<c:out value="${result.tid}"/>', '<c:out value="${result.pgCode}"/>', '<c:out value="${result.svcId}"/>', '<c:out value="${result.mrctTrdNo}"/>', '<c:out value="${result.trdNo}"/>', '<c:out value="${result.regDate}"/>'); return false;">카드전표</button> <button type="button" class="btnType btnType20" onclick="fnPrintReceipt('<c:out value="${result.tid}"/>', '<c:out value="${result.pgCode}"/>', '<c:out value="${result.svcId}"/>', '<c:out value="${result.mrctTrdNo}"/>', '<c:out value="${result.trdNo}"/>', '<c:out value="${result.regDate}"/>'); return false;">카드전표</button>
</c:if> </c:if>
</c:if> </c:if>

View File

@ -117,14 +117,18 @@ function pgOpenerPopup(){
var payMethod = ""; var payMethod = "";
document.pgForm.action = "/web/member/pay/PayActionAjax.do"; document.pgForm.action = "/web/member/pay/PayActionAjax.do";
if($currentTab==0){ payMethod = "CARD";} if ($currentTab == 0) {
else if($currentTab==1){ payMethod = "VBANK"; } payMethod = "SPAY";
/*else if($currentTab==2){ payMethod = "TEMP_CARD"; }*/ } else if ($currentTab == 1) {
else if($currentTab==2){ payMethod = "CELLPHONE"; payMethod = "CARD";
document.pgForm.action = "/web/kgm/pay/KGMPayActionAjax.do"; } else if ($currentTab == 2) {
payMethod = "VBANK";
} else if ($currentTab==3) {
payMethod = "CELLPHONE";
} else if ($currentTab==4) {
payMethod = "BANK";
} }
else if($currentTab==3){ payMethod = "BANK"; }
$('input[name=payMethod]').val(payMethod); $('input[name=payMethod]').val(payMethod);
//결제수단 상태 체크 //결제수단 상태 체크
@ -149,33 +153,29 @@ function pgOpenerPopup(){
var popupY = scY + (docHeight - 195) / 2; var popupY = scY + (docHeight - 195) / 2;
// 결제창 호출 // 결제창 호출
if ($currentTab==0) { if ($currentTab == 0) {
// KG 모빌리언스 => CARD(신용카드) // KG 모빌리언스 => SPAY(간편결제)
kgmPayCardRequest(); kgmPayCardRequest();
} } else if ($currentTab == 1) {
else if ($currentTab==2) { // 나이스페이 => CARD(카드결제)
pg_opener = window.open('', 'pg_opener', "width=790, height=505, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
document.pgForm.method = "post";
document.pgForm.target = "pg_opener" ;
document.pgForm.submit();
} else if ($currentTab == 2) {
// 전용계좌
} else if ($currentTab == 3) {
// KG 모빌리언스 => MOBILE(휴대폰결제) // KG 모빌리언스 => MOBILE(휴대폰결제)
kgmPayMobileRequest(); kgmPayMobileRequest();
} } else if ($currentTab==4) {
else if ($currentTab==3) {
// KG 모빌리언스 => BANK(즉시이체) // KG 모빌리언스 => BANK(즉시이체)
kgmPayBankRequest(); kgmPayBankRequest();
} }
else {
// 기타
pg_opener = window.open('', 'pg_opener', "width=790, height=505, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
document.pgForm.method = "post";
document.pgForm.target = "pg_opener" ;
document.pgForm.submit();
}
} }
//KG 모빌리언스 => CARD //KG 모빌리언스 => CARD
function kgmPayCardRequest() { function kgmPayCardRequest() {
$("#price").val(110);
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/web/member/pay/kgmCardEncodeAjax.do", url: "/web/member/pay/kgmCardEncodeAjax.do",
@ -231,8 +231,6 @@ function kgmPayCardRequest() {
//KG 모빌리언스 => MOBILE //KG 모빌리언스 => MOBILE
function kgmPayMobileRequest() { function kgmPayMobileRequest() {
$("#price").val(110);
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/web/member/pay/kgmMobileEncodeAjax.do", url: "/web/member/pay/kgmMobileEncodeAjax.do",
@ -299,8 +297,6 @@ function kgmPayMobileRequest() {
//KG 모빌리언스 => BANK //KG 모빌리언스 => BANK
function kgmPayBankRequest() { function kgmPayBankRequest() {
$("#price").val(1100);
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/web/member/pay/kgmBankEncodeAjax.do", url: "/web/member/pay/kgmBankEncodeAjax.do",
@ -643,7 +639,8 @@ function TabTypePay(obj, tabId) {
<div> <div>
<p class="tab_tit">충전수단 선택</p> <p class="tab_tit">충전수단 선택</p>
<ul class="area_tab"> <ul class="area_tab">
<li class="btn_charge1 btn_tab active"><button type="button" onclick="TabTypePay(this,'1');"><i></i>신용카드</button></li> <li class="btn_charge0 btn_tab active"><button type="button" onclick="TabTypePay(this,'0');"><i></i>간편결제</button></li>
<li class="btn_charge1 btn_tab"><button type="button" onclick="TabTypePay(this,'1');"><i></i>신용카드</button></li>
<li class="btn_charge2 btn_tab"><button type="button" onclick="TabTypePay(this,'2');" id="btnDdedicatedAccount"><i></i>전용계좌</button></li> <li class="btn_charge2 btn_tab"><button type="button" onclick="TabTypePay(this,'2');" id="btnDdedicatedAccount"><i></i>전용계좌</button></li>
<!-- <li class="btn_charge2 btn_tab"><button type="button" onclick="TabTypePay(this,'3');"><i></i>무통장입금</button></li> --> <!-- <li class="btn_charge2 btn_tab"><button type="button" onclick="TabTypePay(this,'3');"><i></i>무통장입금</button></li> -->
<li class="btn_charge4 btn_tab"><button type="button" onclick="TabTypePay(this,'4');"><i></i>휴대폰결제</button></li> <li class="btn_charge4 btn_tab"><button type="button" onclick="TabTypePay(this,'4');"><i></i>휴대폰결제</button></li>
@ -652,8 +649,82 @@ function TabTypePay(obj, tabId) {
<div class="checkbox_wrap"><input type="checkbox" id="agree"><label for="agree">선택한 수단을 다음 충전 시에도 <div class="checkbox_wrap"><input type="checkbox" id="agree"><label for="agree">선택한 수단을 다음 충전 시에도
이용합니다.</label></div> 이용합니다.</label></div>
<!-- 간편결제 -->
<div class="area_tabcont on" id="tab2_0">
<p class="tType1_title"><img src="/publish/images/content/icon_charging1_small.png" alt=""> 간편결제</p>
<table class="tType1">
<caption></caption>
<colgroup>
<col style="width: 100px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="charge_content">
<th scope="row">충전금액</th>
<td class="flex">
<select name="tempPrice" id="tempPrice" class="list_seType1">
<option value="5000">5,000</option>
<option value="10000">10,000</option>
<option value="20000">20,000</option>
<option value="30000">30,000</option>
<option value="50000" selected>50,000</option>
<option value="100000">100,000</option>
<option value="200000">200,000</option>
<option value="300000">300,000</option>
<option value="500000">500,000</option>
<option value="700000">700,000</option>
<option value="900000">900,000</option>
<option value="1000000">1,000,000</option>
<option value="1200000">1,200,000</option>
<option value="1500000">1,500,000</option>
<option value="2000000">2,000,000</option>
<option value="2500000">2,500,000</option>
<option value="3000000">3,000,000</option>
</select>
<%--<input type="text" numberOnly placeholder="금액을 입력해주세요" name="tempPrice" class="tempPrice" onfocus="this.placeholder=''" onblur="this.placeholder='금액을 입력해주세요'">
<p class="input_in">원</p>
<button type="button" class="btnType1" onclick="setPrice(this , '3000'); return false;">+ 3천원</button>
<button type="button" onclick="setPrice(this , '5000'); return false;">+ 5천원</button>
<button type="button" onclick="setPrice(this , '10000'); return false;">+ 1만원</button>
<button type="button" onclick="setPrice(this , '100000'); return false;">+ 10만원</button>
<button type="button" onclick="setPrice(this , '1000000'); return false;">+ 100만원</button>--%>
<p class="input_in">원</p>
<!-- <span class="reqTxt6">※ 최소 3천원 이상부터 결제 가능합니다.</span> -->
</td>
</tr>
<tr>
<td colspan="2">
<div class="amount_wrap">
<dl>
<dt>최종 결제금액 :</dt>
<dd>
<ul>
<li><strong id="supplyPriceStr"></strong>원(공급가액)</li>
<li><span class="plus"></span><strong id="vatPriceStr"></strong>원(부가세)</li>
<li class="total"><span class="equal"></span><strong id="lastPriceStr"></strong>원(최종금액)</li>
</ul>
</dd>
</dl>
<button type="button" class="btnType" onclick="pgOpenerPopup(); return false;">충전하기</button>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<div class="area_text">
<%--<p><span class="c_222222">- 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(010-8432-9333)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.</span></p>--%>
<p>- 인터넷 익스플로러 이용 고객께서는 도구-팝업 차단 해제 후 충전이 가능합니다.</p>
<p>- 카드사별 정책상 충전금액 제한이 있을 수 있습니다. 단, ARS 신용카드 결제는 충전금액 제한 없이 이용하실 수 있습니다.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //간편결제 -->
<!-- 신용카드 --> <!-- 신용카드 -->
<div class="area_tabcont on" id="tab2_1"> <div class="area_tabcont" id="tab2_1">
<p class="tType1_title"><img src="/publish/images/content/icon_charging1_small.png" alt=""> 신용카드</p> <p class="tType1_title"><img src="/publish/images/content/icon_charging1_small.png" alt=""> 신용카드</p>
<table class="tType1"> <table class="tType1">
<caption></caption> <caption></caption>

View File

@ -278,6 +278,16 @@ input[type="button"].printBtn{border: 1px solid #686b72;background-image: url(/p
.pageCont .tbType3 tbody tr th{background-color: #f3f6fa;color: #222;vertical-align: middle;letter-spacing: -1px;} .pageCont .tbType3 tbody tr th{background-color: #f3f6fa;color: #222;vertical-align: middle;letter-spacing: -1px;}
.pageCont .tbType3 tbody tr td{color: #222;height: 45px;vertical-align: middle;} .pageCont .tbType3 tbody tr td{color: #222;height: 45px;vertical-align: middle;}
.pageCont .tbType4{text-align: center; width: 100%; table-layout: fixed; margin:0 0 50px 0;}
.pageCont .tbType4 thead tr th{border-top:2px solid #456ded; border-bottom:3px double #e6e6e6; padding: 13px 0; font-size: 1em; font-weight: 500;color: #555; white-space: nowrap; border-left:1px solid #d5d5d5; text-align:center;}
.pageCont .tbType4 thead tr th:first-child {border-left:none;}
.pageCont .tbType4{border-top: 2px solid #456ded;width: 100%;table-layout: fixed;text-align: left;}
.pageCont .tbType4 tbody tr{border-bottom: 2px solid #e5e5e5;}
.pageCont .tbType4 tbody tr td{vertical-align: middle;font-size: 1em;font-weight: 400;color: #555;padding: 12px 0; border-left:1px solid #d5d5d5; text-align:center;}
.pageCont .tbType4 tbody tr td:first-child {border-left:none;}
.ipStatus .contBox{margin-right: 30px;margin-bottom: 50px;flex-grow: 2 1;width: auto;float: left;} .ipStatus .contBox{margin-right: 30px;margin-bottom: 50px;flex-grow: 2 1;width: auto;float: left;}
.ipStatus .contBox:nth-child(1){width: 65%;} .ipStatus .contBox:nth-child(1){width: 65%;}
.ipStatus .contBox:nth-child(2){width: 30%;} .ipStatus .contBox:nth-child(2){width: 30%;}

View File

@ -0,0 +1,334 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>회원관리 >회원 정보(리스트)</title>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/pb/css/reset.css">
<link rel="stylesheet" href="/pb/css/common.css">
<link rel="stylesheet" href="/pb/css/content.css">
<link rel="stylesheet" href="/pb/css/popup.css">
<script src="/pb/js/jquery-3.5.0.js"></script>
<script src="/pb/js/common.js"></script>
</head>
<body>
<header>
<h1><a href="/pb/dashBoard.html"><img src="/pb/img/common/topLogo.png" alt="아이티앤 로고이미지"></a></h1>
<div class="topRight"><input type="button" class="allMenu">
<ul class="inline">
<li><input type="button" class="alramBtn"></li>
<li><input type="button" class="mailBtn"></li>
<li><input type="button" class="quickSiteBtn"></li>
<li><input type="button" class="favoriteBtn"></li>
</ul>
<div class="infoWrap">
<ul class="inline">
<li><img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘">
<p>로그인 세션 타임아웃 시간 : <span>30</span></p>
</li>
<li><img src="/pb/img/common/topTime.png" alt="타임 아이콘">
<p>최종접속일시 : <span>2020-06-01 11:00</span></p>
</li>
</ul>
<div class="pfWrap">
<div class="pfImg"><img src="/pb/img/pfImg.jpg" alt="개인이미지"></div>
<ul>
<li class="pfName">Soobin Jung</li>
<li class="pfPosi">최고관리자</li>
</ul><input type="button" class="downBtn">
</div>
</div>
</div>
</header>
<nav class="leftMenu">
<ul>
<li><img src="/pb/img/common/leftMenu1.png" alt="권한관리메뉴 아이콘">
<p>권한관리</p><input type="button" class="goBtn">
<ul class="subMenu">
<li><a href="#">권한관리</a></li>
<li><a href="#">관리자별권한관리</a></li>
<li><a href="#">롤관리</a></li>
<li><a href="#">관리자접근허용IP</a></li>
</ul>
</li>
<li><img src="/pb/img/common/leftMenu2.png" alt="코드관리메뉴 아이콘">
<p>코드관리</p><input type="button" class="goBtn">
<ul class="subMenu">
<li><a href="#">공통코드관리</a></li>
<li><a href="#">상세코드관리</a></li>
</ul>
</li>
<li><img src="/pb/img/common/leftMenu3.png" alt="회원관리메뉴 아이콘">
<p>회원관리</p><input type="button" class="goBtn">
<ul class="subMenu">
<li><a href="#">회원가입설정</a></li>
<li><a href="#">회원탈퇴설정</a></li>
<li><a href="#">개인정보보호관리</a></li>
<li><a href="#">접속차단ID관리</a></li>
<li><a href="#">관리자관리</a></li>
<li><a href="#">사용자관리</a></li>
</ul>
</li>
<li><img src="/pb/img/common/leftMenu4.png" alt="홈페이지관리메뉴 아이콘">
<p>홈페이지관리</p><input type="button" class="goBtn">
<ul class="subMenu">
<li><a href="#">매뉴관리</a></li>
<li><a href="#">게시판관리</a></li>
<li><a href="#">첨부파일관리</a></li>
<li><a href="#">조직도</a></li>
<li><a href="#">결재관리</a></li>
<li><a href="#">만족도관리</a></li>
<li><a href="#">약관관리</a></li>
<li><a href="#">설문조사 관리</a></li>
<li><a href="#">관리자로그리스트</a></li>
<li><a href="#">관리자로그보관관리</a></li>
<li><a href="#">관리자로그설정관리</a></li>
</ul>
</li>
<li><img src="/pb/img/common/leftMenu5.png" alt="비주얼관리메뉴 아이콘">
<p>비주얼관리</p><input type="button" class="goBtn">
<ul class="subMenu">
<li><a href="#">메인비주얼관리</a></li>
<li><a href="#">메뉴비주얼관리</a></li>
<li><a href="#">팝업존관리</a></li>
<li><a href="#">배너관리</a></li>
<li><a href="#">팝업관리</a></li>
<li><a href="#">콘텐츠관리</a></li>
</ul>
</li>
<li><img src="/pb/img/common/leftMenu6.png" alt="아이피관리메뉴 아이콘">
<p>아이피관리</p><input type="button" class="goBtn">
<ul class="subMenu">
<li><a href="#">아이피현황</a></li>
<li><a href="#">아이피리스트</a></li>
</ul>
</li>
<li><img src="/pb/img/common/leftMenu7.png" alt="환경설정메뉴 아이콘">
<p>환경설정</p><input type="button" class="goBtn">
<ul class="subMenu">
<li><a href="#">메타태그관리</a></li>
<li><a href="#">금지어관리</a></li>
<li><a href="#">방문자스크립트관리</a></li>
<li><a href="#">점검중페이지관리</a></li>
<li><a href="#">웹아이콘관리</a></li>
<li><a href="#">웹타이틀관리</a></li>
</ul>
</li>
<li><img src="/pb/img/common/leftMenu8.png" alt="사이트관리메뉴 아이콘">
<p>사이트관리</p><input type="button" class="goBtn">
<ul class="subMenu">
<li><a href="#">아이디관리</a></li>
</ul>
</li>
</ul>
<div class="btnWrap">
<ul>
<li><button>
<p>관리자 <span>매뉴얼</span></p><img src="/pb/img/common/leftBtnIcon1.png" alt="관리자 매뉴얼 아이콘">
</button></li>
<li><button>
<p>홈페이지<span>바로가기</span></p><img src="/pb/img/common/leftBtnIcon2.png" alt="홈페이지바로가기 아이콘">
</button></li>
</ul>
</div><span class="leftBtm">N-CMS Version 3.8</span>
</nav>
<div class="contWrap">
<div class="pageTitle">
<div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div>
<h2 class="titType1 c_222222 fwBold">사용자관리</h2>
</div>
<div class="pageCont">
<div class="listSerch">
<div class="calendar_wrap"><select name="setCalMonth" onchange="fnSetCalMonth(this.value)">
<option value="0">전체</option>
<option value="1">1개월</option>
<option value="3">3개월</option>
<option value="6">6개월</option>
</select><input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do">
<div class="calendar_box" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.searchStartDate);"><input style="width:auto;min-width: 83px;" type="text" class="date_format" name="searchStartDate" id="searchStartDate" size="4" maxlength="4" readonly="" value=""><input type="button" class="calBtn"></div><span class="line">~</span>
<div class="calendar_box" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.searchEndDate);"><input style="width:auto;min-width: 83px;" type="text" class="date_format" name="searchEndDate" id="searchEndDate" size="4" maxlength="4" readonly="" value=""><input type="button" class="calBtn"></div>
</div><select id="searchCondition" name="searchCondition" title="조회조건">
<option value="" selected="selected">전체</option>
<option value="0">아이디</option>
<option value="1">사용자명</option>
<option value="2">전화번호</option>
<option value="3">이메일</option>
<option value="4">발신번호</option>
</select><select id="searchDeptPrePayment" name="searchDeptPrePayment" title="구분">
<option value="" selected="selected">구분</option>
<option value="p">개인</option>
<option value="pPayment">개인(후)</option>
<option value="c">기업</option>
<option value="cPayment">기업(후)</option>
</select><br><br><select id="mberSttus" name="mberSttus" title="상태">
<option value="">상태</option>
<option value="Y">일반(VIP포함)</option>
<option value="B">이용 정지</option>
<option value="V" selected="selected">VIP</option>
<option value="VX">일반(VIP제외)</option>
</select><select name="searchAdminSmsNoticeYn" id="searchAdminSmsNoticeYn" title="법인폰알림">
<option value="" selected="selected">법인폰알림</option>
<option value="Y">온(On)</option>
<option value="N">오프(Off)</option>
</select><select name="searchExceptSpamYn" id="searchExceptSpamYn" title="금지어예외">
<option value="" selected="selected">금지어예외</option>
<option value="Y">온(On)</option>
<option value="N">오프(Off)</option>
</select><select name="searchSmsSalePrice" id="searchSmsSalePrice" title="문자할인/첫결제">
<option value="" selected="selected">문자할인/첫결제</option>
<option value="Y">할인</option>
<option value="N">일반</option>
<option value="F">첫결제</option>
<option value="P">결제</option>
<option value="X">미결제</option>
</select><select name="searchSmishingYn" id="searchSmishingYn" title="스미싱의심">
<option value="" selected="selected">스미싱의심</option>
<option value="Y">온(On)</option>
<option value="N">오프(Off)</option>
</select><select name="searchHotlineAgentCode" id="searchHotlineAgentCode" style="width:180px;">
<option value="">전용전송사(전체)</option>
<option value="00">사용안함</option>
<option value="USE">사용함</option>
<option value="02">현대퓨처넷(HCN) (O) </option>
<option value="04">다우기술 (O) </option>
<option value="05">JJ (O) </option>
<option value="07">인비토 (O) </option>
<option value="01">아이하트 (X) </option>
<option value="03">(IMO)아이엠오 (X) </option>
</select><input type="text" id="searchKeyword" name="searchKeyword" class="recentSearch" value="" size="10" title="검색"><input type="button" class="btnType1" onclick="fn_search(); return false;" value="검색"><input type="button" class="btnType1" onclick="fn_searchReset(); return false;" value="초기화">
</div>
<!-- 0626 탈퇴자분리 -->
<div class="tableWrap">
<table class="tbType4">
<colgroup>
<col style="width:8%">
<col style="width:11%">
<col style="width:11%">
<col style="width:11%">
<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>문자 단가 높음</th>
<th>사용할 일이 없어서</th>
<th>다른 사이트 이용</th>
<th>개인정보 유출 우려</th>
<th>사이트 이용 불만</th>
<th>기업회원 전환</th>
<th>기타(직접입력)</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>인원</td>
<td><a href="#">60</a></td>
<td><a href="#">50</a></td>
<td><a href="#">40</a></td>
<td><a href="#">30</a></td>
<td><a href="#">20</a></td>
<td><a href="#">10</a></td>
<td><a href="#">5</a></td>
<td><a href="#">300</a></td>
</tr>
</tbody>
</table>
</div>
<!--// 0626 탈퇴자분리 -->
<div class="listTop">
<p class="tType5"><span class="tType4 c_456ded fwBold">182</span></p>
<div class="rightWrap"><select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);">
<option value="10" selected="">10줄</option>
<option value="20">20줄</option>
<option value="30">30줄</option>
</select></div>
</div>
<div class="tableWrap">
<table class="tbType1">
<colgroup>
<col style="width: 3%">
<col style="width: 5%">
<col style="width: 9%">
<col style="width: 9%">
<col style="width: 8%">
<col style="width: 9%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 8%">
</colgroup>
<thead>
<tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="fnCheckAll();"><label for="checkAll"></label><label for="checkAll"></label></th>
<th>번호<input type="button" class="sort sortBtn" id="sort_uniqId"></th>
<th>아이디<input type="button" class="sort sortBtn" id="sort_userId"></th>
<th>사용자명<input type="button" class="sort sortBtn" id="sort_userNm"></th>
<th>회원구분<input type="button" class="sort sortBtn" id="sort_dept"></th>
<th>전화번호<input type="button" class="sort sortBtn" id="sort_moblphonNo"></th>
<th>법인폰<input type="button" class="sort sortBtn" id="sort_adminSmsNoticeYn"></th>
<th>문자할인</th>
<th>이벤트</th>
<th>상태<input type="button" class="sort sortBtn" id="sort_mberSttus"></th>
<th>후보자상세<input type="button" class="sort sortBtn" id="sort_condidateYn"></th>
<th>가입일자<input type="button" class="sort sortBtnDesc" id="sort_sbscrbDe" sortord="desc"></th>
<th>최근로그인</th>
</tr>
</thead>
<tbody>
<tr>
<td><input name="checkField" id="USRCNFRM_00000013061" title="Check 1" type="checkbox"><label for="USRCNFRM_00000013061"></label><label for="USRCNFRM_00000013061"></label><input name="checkId" type="hidden" class="euiseung82" value="USR01:USRCNFRM_00000013061"></td>
<td>182 </td>
<td>
<div class="id_box vip bMark"><a href="#" onclick="javascript:fnSelectMber('euiseung82'); return false;"><span class="privateInfo">euiseung82</span></a></div>
</td>
<td><span class="privateInfo">이의승</span></td>
<td><span class="privateInfo">개인 </span></td>
<td><span class="privateInfo">01048268258</span></td>
<td>오프 </td>
<td>일반 </td>
<td></td>
<td>일반 </td>
<td></td>
<td title="2023-06-08 14:41">06-08 14:41 </td>
<td title="2023-06-11 10:48:00.0">06-11 10:48 </td>
</tr>
</tbody>
</table>
</div>
<div class="btnWrap" style="margin-bottom: 20px;"><input type="button" class="btnType2" style="padding:5px 10px" onclick="fnSmsNotiUpdate('on'); return false;" value="법인폰 ON"><input type="button" class="btnType2" style="padding:5px 10px" onclick="fnSmsNotiUpdate('off'); return false;" value="법인폰 OFF"><input type="button" class="btnType2" style="padding:5px 10px" onclick="fnSmishingUpdate('on'); return false;" value="스미싱 ON"><input type="button" class="btnType2" style="padding:5px 10px" onclick="fnSmishingUpdate('off'); return false;" value="스미싱 OFF"></div>
<div class="page">
<ul class="inline">
<li><input type="button" class="pageFirst" onclick="linkPage(1);return false;"></li>
<li><input type="button" class="pageBefore" onclick="linkPage(1);return false;"></li>
<li><strong style="font-weight:bold;">1</strong></li>
<li onclick="linkPage(2);return false;" style="cursor:pointer">2</li>
<li onclick="linkPage(3);return false;" style="cursor:pointer">3</li>
<li onclick="linkPage(4);return false;" style="cursor:pointer">4</li>
<li onclick="linkPage(5);return false;" style="cursor:pointer">5</li>
<li onclick="linkPage(6);return false;" style="cursor:pointer">6</li>
<li onclick="linkPage(7);return false;" style="cursor:pointer">7</li>
<li onclick="linkPage(8);return false;" style="cursor:pointer">8</li>
<li onclick="linkPage(9);return false;" style="cursor:pointer">9</li>
<li onclick="linkPage(10);return false;" style="cursor:pointer">10</li>
<li><input type="button" class="pageNext" onclick="linkPage(11);return false;"></li>
<li><input type="button" class="pageLast" onclick="linkPage(19);return false;"></li>
</ul>
</div>
</div>
</div>
</body>
</html>