이호영 이호영 2023-07-03
Merge branch 'master' of http://hylee@vcs.iten.co.kr:9999/hylee/mjon_git
@445fc82b583532be4ca4223ebf9bcf52cf7cce12
src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java
--- src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java
+++ src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java
@@ -758,6 +758,7 @@
 				String profileId = resultChannelList.get(i).getProfileId();
 				String deleteYn = resultChannelList.get(i).getDeleteYn();
 				String userId = resultChannelList.get(i).getUserId();
+				String lastUpdtPnttm = resultChannelList.get(i).getLastUpdtPnttm();
 				kakaoProfileVO.setSenderKey(senderKey); 
 				kakaoProfileVO.setProfileId(profileId);
 				
@@ -774,6 +775,7 @@
 				returnChannelVO.setModifiedAt(tmpProfileVO.getModifiedAt());
 				returnChannelVO.setDeleteYn(deleteYn);
 				returnChannelVO.setUserId(userId);
+				returnChannelVO.setLastUpdtPnttm(lastUpdtPnttm);
 				
 				resultApiProfileList.add(returnChannelVO);
 				
src/main/java/itn/let/mjo/event/web/MjonEventPayV2Controller.java
--- src/main/java/itn/let/mjo/event/web/MjonEventPayV2Controller.java
+++ src/main/java/itn/let/mjo/event/web/MjonEventPayV2Controller.java
@@ -77,10 +77,8 @@
 		}
 		
 		// 하드코딩
-		if(!userId.equals("nobledeco")) {
-			if(!userId.equals("nopay")) {
-				return "redirect:/web/main/mainPage.do";
-			}
+		if(!userId.equals("nobledeco") && !userId.equals("nobledeco2") && !userId.equals("nopay")) {
+			return "redirect:/web/main/mainPage.do";
 		}
 		
 		//기존 결제 내역이 있는 회원인지 확인
src/main/java/itn/let/mjo/pay/web/MjonPayController.java
--- src/main/java/itn/let/mjo/pay/web/MjonPayController.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayController.java
@@ -1841,6 +1841,7 @@
     			"/web/member/pay/PayListCardAjax.do",
     			"/web/member/pay/PayListVBankAjax.do",
     			"/web/member/pay/PayListBankAjax.do",
+    			"/web/member/pay/PayListSPayAjax.do",
     			"/web/member/pay/PayListOfflineAjax.do",
     			"/web/member/pay/PayListRefundAjax.do"
     			})
@@ -1894,6 +1895,7 @@
     			|| pattern.equals("/web/member/pay/PayListCardAjax.do")
     			|| pattern.equals("/web/member/pay/PayListVBankAjax.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/PayListRefundAjax.do")
     		) { //전체 , 모바일, 신용카드
@@ -2024,6 +2026,11 @@
     			mjonPayVO.setPayMethod("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")) { //무통장
     			mjonPayVO.setSearchCondition2("OFFLINE");
     			mjonPayVO.setPayMethod("OFFLINE");
src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
--- src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
@@ -946,7 +946,7 @@
 			    		UserManageVO userManageVO = new UserManageVO();
 			    		userManageVO.setSmishingYn("Y");
 			    		userManageVO.setMberId(Userid);
-			    		userManageService.updateOneUserSmishingYn(userManageVO);
+			    		userManageService.updateOneUserSmishingYnNotAlert(userManageVO);
 			    	}
 			    	else {
 			    		// 대상 : 휴대폰결제, 즉시이체, 전용계좌
@@ -977,7 +977,7 @@
 						    		UserManageVO userManageVO = new UserManageVO();
 						    		userManageVO.setSmishingYn("Y");
 						    		userManageVO.setMberId(Userid);
-						    		userManageService.updateOneUserSmishingYn(userManageVO);				    				
+						    		userManageService.updateOneUserSmishingYnNotAlert(userManageVO);				    				
 				    			}
 				    		}
 			    		}			    		
@@ -1376,7 +1376,7 @@
 					    		UserManageVO userManageVO = new UserManageVO();
 					    		userManageVO.setSmishingYn("Y");
 					    		userManageVO.setMberId(Userid);
-					    		userManageService.updateOneUserSmishingYn(userManageVO);				    				
+					    		userManageService.updateOneUserSmishingYnNotAlert(userManageVO);				    				
 			    			}
 			    		}
 		    		}			    		
src/main/java/itn/let/mjo/pay/web/RefundController.java
--- src/main/java/itn/let/mjo/pay/web/RefundController.java
+++ src/main/java/itn/let/mjo/pay/web/RefundController.java
@@ -929,13 +929,25 @@
 	 * 결제취소 등록
 	 * @param RefundVO
 	 * @param model
-	 * @return "/uss/ion/pay/RefundRegist"
+	 * @return "/uss/ion/pay/cancelRegist"
 	 * @throws Exception
 	 */
 	@RequestMapping(value="/uss/ion/pay/cancelRegist.do")
 	public String cancelRegist(@ModelAttribute("refundVO") RefundVO refundVO) throws Exception{
 		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 @@
 		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
src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java
--- src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java
+++ src/main/java/itn/let/schdlr/service/impl/SchdlrManageServiceImpl.java
@@ -19,6 +19,7 @@
 import itn.com.cmm.service.impl.FileManageDAO;
 import itn.let.fax.user.service.impl.FaxDAO;
 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.pay.service.MjonPayService;
 import itn.let.mjo.pay.service.StVcVO;
@@ -26,6 +27,9 @@
 import itn.let.mjo.payva.service.VacsAhstVO;
 import itn.let.schdlr.service.SchdlrManageService;
 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")
 public class SchdlrManageServiceImpl extends EgovAbstractServiceImpl implements SchdlrManageService {
@@ -73,6 +77,21 @@
 	@Resource(name = "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")
 	public FaxDAO faxDao;
 	
@@ -343,6 +362,53 @@
 				//세틀뱅크 입금 내역 원장에 처리 완료 내용 입력해 주기
 				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());		    		
+		    	}
+		    	*/				
+				
 			}
 			
 		}
 
src/main/java/itn/let/sym/grd/service/MberGrdService.java (added)
+++ src/main/java/itn/let/sym/grd/service/MberGrdService.java
@@ -0,0 +1,9 @@
+package itn.let.sym.grd.service;
+
+import java.util.List;
+
+public interface MberGrdService {
+	
+	List<MberGrdVO> selectMberGrdSettingList(MberGrdVO mberGrdVO) throws Exception ;
+	
+}
 
src/main/java/itn/let/sym/grd/service/MberGrdVO.java (added)
+++ src/main/java/itn/let/sym/grd/service/MberGrdVO.java
@@ -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;
+	}
+	
+}
 
src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java (added)
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
@@ -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);
+	}
+	
+}
 
src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java (added)
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
@@ -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);
+	}
+	
+}
 
src/main/java/itn/let/sym/grd/web/MberGrdController.java (added)
+++ src/main/java/itn/let/sym/grd/web/MberGrdController.java
@@ -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;
+	}	    
+    
+}
src/main/java/itn/let/sym/log/clg/service/EgovLoginLogAspect.java
--- src/main/java/itn/let/sym/log/clg/service/EgovLoginLogAspect.java
+++ src/main/java/itn/let/sym/log/clg/service/EgovLoginLogAspect.java
@@ -3,6 +3,8 @@
 import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
 import itn.com.cmm.LoginVO;
 
+import java.net.InetAddress;
+
 import javax.annotation.Resource;
 
 /**
src/main/java/itn/let/uss/umt/service/EgovUserManageService.java
--- src/main/java/itn/let/uss/umt/service/EgovUserManageService.java
+++ src/main/java/itn/let/uss/umt/service/EgovUserManageService.java
@@ -185,6 +185,9 @@
 	// 스미싱의심 온/오프 - 상세에서 단일로
 	public void updateOneUserSmishingYn(UserManageVO userManageVO) throws Exception;
     
+	// 스미싱의심 온/오프 - 상세에서 단일로 => 슬랙, 문자 알림 No
+	public void updateOneUserSmishingYnNotAlert(UserManageVO userManageVO) throws Exception;
+	
 	// 알림톡 스미싱의심 온/오프
 	public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception;
 	
src/main/java/itn/let/uss/umt/service/UserDefaultVO.java
--- src/main/java/itn/let/uss/umt/service/UserDefaultVO.java
+++ src/main/java/itn/let/uss/umt/service/UserDefaultVO.java
@@ -171,6 +171,16 @@
 	
 	private String searchHotlineAgentCode;
 	
+	private String searchDeleteType;
+	
+	public String getSearchDeleteType() {
+		return searchDeleteType;
+	}
+
+	public void setSearchDeleteType(String searchDeleteType) {
+		this.searchDeleteType = searchDeleteType;
+	}
+
 	public String getSearchHotlineAgentCode() {
 		return searchHotlineAgentCode;
 	}
src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java
--- src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java
+++ src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java
@@ -539,32 +539,37 @@
 	
 	// 스미싱의심 온/오프 단일
 	public void updateOneUserSmishingYn(UserManageVO userManageVO) throws Exception {
-				// 업데이트
-				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);										
-					}
-				}
+		// 업데이트
+		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);										
+			}
+		}
 	}
 	
+	// 스미싱의심 온/오프 단일 => 슬랙, 문자 알림 No
+	public void updateOneUserSmishingYnNotAlert(UserManageVO userManageVO) throws Exception {
+		// 업데이트
+		userManageDAO.updateUserSmishingYn(userManageVO);
+	}	
+	
 	// 알림톡 스미싱의심 온/오프
 	public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception {
 		if(!"".equals(checkedIdForUpt)) {
src/main/java/itn/web/ContentController.java
--- src/main/java/itn/web/ContentController.java
+++ src/main/java/itn/web/ContentController.java
@@ -34,6 +34,7 @@
 import itn.com.uss.olh.hpc.service.HackIpVO;
 import itn.let.lett.service.LetterVO;
 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.EgovCntManageService;
 
@@ -45,6 +46,9 @@
 	
 	@Resource(name = "hackIpService")
 	private HackIpService hackIpService;
+	
+	@Resource(name = "SchdlrManageService")
+    private SchdlrManageService schdlrManageService;
 	
 	/*인사말*/
 	@RequestMapping(value="/web/intro/intro.do")
@@ -661,4 +665,30 @@
 		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;
+	} 			
 }
src/main/resources/egovframework/egovProps/globals_prod.properties
--- src/main/resources/egovframework/egovProps/globals_prod.properties
+++ src/main/resources/egovframework/egovProps/globals_prod.properties
@@ -99,7 +99,7 @@
 Globals.pay.kgm.card.payMode=10
 #BANK
 Globals.pay.kgm.bank.raSvcid=230510133362
-Globals.pay.kgm.bank.payMode=00
+Globals.pay.kgm.bank.payMode=10
 #MOBILE
-Globals.pay.kgm.mobile.mcSvcid=170622040674
-Globals.pay.kgm.mobile.payMode=00
+Globals.pay.kgm.mobile.mcSvcid=220613125202
+Globals.pay.kgm.mobile.payMode=10
 
src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-grd.xml (added)
+++ src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-grd.xml
@@ -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>
 
src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml (added)
+++ src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
@@ -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>
src/main/resources/egovframework/sqlmap/let/uss/umt/EgovMberManage_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/uss/umt/EgovMberManage_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/uss/umt/EgovMberManage_SQL_Mysql.xml
@@ -184,6 +184,10 @@
   				 adminSmsNoticeYn = #searchAdminSmsNoticeYn#
   			</isNotEmpty>	
   			
+	        <isNotEmpty prepend="AND" property="searchDeleteType">
+  				 deleteType = #searchDeleteType#
+  			</isNotEmpty>	
+  			  			
 	        <isNotEmpty property="searchSmsSalePrice">
  		        <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))
src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovDelUserManage.jsp
--- src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovDelUserManage.jsp
+++ src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovDelUserManage.jsp
@@ -79,6 +79,9 @@
 		}
 	}
 	
+	// 초기화
+	$("#searchDeleteType").val('');
+	
 	linkPage(1);
 }
 </script>
@@ -86,6 +89,7 @@
 <body>
 	<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="searchDeleteType" id="searchDeleteType" type="hidden" value="<c:out value='${userSearchVO.searchDeleteType}'/>"/>
 		
 		<double-submit:preventer tokenKey="someKey" />
 	<!-- cont -->
@@ -132,6 +136,39 @@
 				<input type="button" class="btnType1" onclick="fn_search2(); return false;" value="검색">
 				<input type="button" class="btnType1" onclick="fn_searchReset2(); return false;" value="초기화">
 			</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">
 				<p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p>
 				<div class="rightWrap">
@@ -192,7 +229,7 @@
 							<td>
 								<c:choose>
 									<c:when test="${result.deleteType eq '01'}">
-										기업회원으로 다시 가입
+										기업회원 전환
 									</c:when>
 									<c:when test="${result.deleteType eq '02'}">
 										사용할 일이 없어서
@@ -210,7 +247,7 @@
 										다른 사이트이용
 									</c:when>
 									<c:otherwise>
-										해지사유 직접 입력
+										기타(직접 입력)
 									</c:otherwise>
 								</c:choose>							
 		                    </td>
src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovMberCmpHstTaxList.jsp
--- src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovMberCmpHstTaxList.jsp
+++ src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovMberCmpHstTaxList.jsp
@@ -112,7 +112,8 @@
 
 function biznoPop() {
 	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 @@
 							
 							<td class="left">
 								<%-- <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>
 								<%-- </c:if>--%>
 								<c:if test="${result.hstSttus eq '03'}">
src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovNewUserManage.jsp
--- src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovNewUserManage.jsp
+++ src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovNewUserManage.jsp
@@ -9,7 +9,7 @@
      2009.03.03   JJY              최초 생성
      2011.08.31   JJY       경량환경 버전 생성
  
-    author   : 공통서비스 개발팀 JJY
+    author   : 공통서비스 개발팀  WYH
     since    : 2009.03.03
 --%>
 <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
 
src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/sym/grd/mberGrdSetting.jsp
@@ -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>(No newline at end of file)
src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/KakaoATChannelIDList.jsp
--- src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/KakaoATChannelIDList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/KakaoATChannelIDList.jsp
@@ -190,31 +190,28 @@
 					<colgroup>
 						<col style="width: 5%">
 						<col style="width: 10%">
-						<col style="width: 15%">
-						<col style="width: 15%">
-						<col style="width: 20%">
-						<col style="width: 8%">
+						<col style="width: 19%">
+						<col style="width: 24%">
 						<col style="width: 10%">
-						<col style="width: 5%">
+						<col style="width: 11%">
+						<col style="width: 11%">
+						<col style="width: 10%">
 					</colgroup>
 					<thead>
 						<tr>
-							<!-- <th><input type="checkbox" id="chkAll" onClick="fnChkAll();"></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_yellowId"></th>
 							<th>채널명<input type="button" class="sort sortBtn" id="sort_yellowId"></th>
 							<th>등록상태</th>
-							<th>등록일</th>
+							<th>채널생성일</th>
+							<th>채널등록일</th>
 							<th>삭제여부<input type="button" class="sort sortBtn" id="sort_deleteYn"></th>
 						</tr>
 					</thead>
 					<tbody>
 						<c:forEach var="result" items="${resultChannelList}" varStatus="status">
 						<tr>
-							<%-- <td>
-								<input type="checkbox" name="chkSttusY" id="chkSttusY_${status.index}" value="${result.profileId}">
-							</td> --%>
 							<td>
 								<c:if test="${searchVO.searchSortOrd eq 'desc' }">
 		                			<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
@@ -257,6 +254,10 @@
 								<fmt:parseDate value="${result.createdAt}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
 								<fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd"/>
 							</td>
+							<td>
+								<fmt:parseDate value="${result.lastUpdtPnttm}" var="lastUpdtPnttmValue" pattern="yyyy-MM-dd"/>
+								<fmt:formatDate value="${lastUpdtPnttmValue}" pattern="yyyy-MM-dd"/>
+							</td>							
 							<td>
 								<c:choose>
 									<c:when test="${result.deleteYn eq 'Y'}">
@@ -310,13 +311,20 @@
 										</dd>
 									</dl>
 									<dl>
-										<dt>등록일</dt>
+										<dt>채널생성일</dt>
 										<dd>
 											<fmt:parseDate value="${result.createdAt}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
 											<fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd"/>
 										</dd>
 									</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>
 										<dt>삭제여부</dt>
 										<dd>
 											<c:choose>
src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATDetailList.jsp
--- src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATDetailList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/SendKakaoATDetailList.jsp
@@ -141,6 +141,7 @@
 
 <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 type="hidden" name="userId" value="<c:out value='${searchVO.userId}'/>"/>
 	<input type="hidden" name="delFlag" value="Y" />
 	<input type="hidden" name="selectedId" />
 	<input type="hidden" name="msgGroupId" value="<c:out value='${searchVO.msgGroupId}'/>"/>
src/main/webapp/WEB-INF/jsp/uss/ion/pay/PayList.jsp
--- src/main/webapp/WEB-INF/jsp/uss/ion/pay/PayList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/pay/PayList.jsp
@@ -326,8 +326,8 @@
 						<col style="width: 7%">
 						<col style="width: 5%">
 						<col style="width: 11%">
-						<col style="width: 8%">
 						<col style="width: 10%">
+						<col style="width: 9%">
 						<col style="width: 7%">
 						<col style="width: *%">
 						<col style="width: 7%">
@@ -350,7 +350,7 @@
 							<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_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 title="스미싱의심">스미싱</th>
 							<th>결제시간<input type="button" class="sort sortBtn" id="sort_regDate"></th>
@@ -432,8 +432,22 @@
 													
 												</c:otherwise>
 											</c:choose>
-										<%-- <c:if test="${not empty result.cardName}">(<c:out value="${result.cardName}"/>)</c:if> --%>
 									</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:out value="${result.payMethodTxt}"/>
 									</c:otherwise>
src/main/webapp/WEB-INF/jsp/uss/ion/pay/RefundList.jsp
--- src/main/webapp/WEB-INF/jsp/uss/ion/pay/RefundList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/pay/RefundList.jsp
@@ -64,6 +64,14 @@
 	frm.submit();
 }
 
+// 환불 등록
+function fn_refundRegist(){
+	frm = document.listForm;
+	frm.action = "<c:url value='/uss/ion/pay/refundRegist.do' />";
+	frm.submit();
+}
+
+
 /* 수정 화면*/
 function fn_modify(moid){
 	var frm = document.modiForm ;
@@ -314,6 +322,9 @@
 				</table>
 			</div>
 			<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="btnType2" value="삭제" onclick="fn_delete(); return false;">
 			</div>
 
src/main/webapp/WEB-INF/jsp/uss/ion/pay/RefundRegist.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/uss/ion/pay/RefundRegist.jsp
@@ -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>
src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/bankOkUrl.jsp
--- src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/bankOkUrl.jsp
+++ src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/bankOkUrl.jsp
@@ -68,7 +68,37 @@
 </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>
 </html>
(No newline at end of file)
src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/cardOkUrl.jsp
--- src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/cardOkUrl.jsp
+++ src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/cardOkUrl.jsp
@@ -68,6 +68,37 @@
 </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>
 </html>
(No newline at end of file)
src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/mobileOkUrl.jsp
--- src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/mobileOkUrl.jsp
+++ src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/mobileOkUrl.jsp
@@ -68,6 +68,37 @@
 </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>
 </html>
(No newline at end of file)
src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayViewV2.jsp
--- src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayViewV2.jsp
+++ src/main/webapp/WEB-INF/jsp/web/event/pay/EventPayViewV2.jsp
@@ -192,13 +192,15 @@
 	var payMethod = "";
 	document.pgForm.action = "/web/member/pay/PayActionAjax.do";
 	
-	if($currentTab==0){	payMethod = "CARD";}
-	else if($currentTab==1){	payMethod = "VBANK";		}
-	/*else if($currentTab==2){	payMethod = "TEMP_CARD";		}*/
-	/* else if($currentTab==2){	payMethod = "CELLPHONE";		
-		document.pgForm.action = "/web/kgm/pay/KGMPayActionAjax.do";
-	} */ //휴대폰 결제 방식 안보이도록 수정 20221117
-	else if($currentTab==2){	payMethod = "BANK";		}
+	if ($currentTab == 0) {	
+		payMethod = "SPAY";
+	} else if ($currentTab==1) {	
+		payMethod = "CARD";
+	} else if($currentTab==2){	
+		payMethod = "VBANK";		
+	} else if($currentTab==3){	
+		payMethod = "BANK";		
+	}
 	$('input[name=payMethod]').val(payMethod);
 	
 	//결제수단 상태 체크
@@ -224,28 +226,29 @@
 	
 	// 결제창 호출
 	if ($currentTab==0) {
-		// KG 모빌리언스 => CARD(신용카드)
+		// KG 모빌리언스 => SPAY(간편결제)
 		kgmPayCardRequest();		
 	}	
-	else if ($currentTab==2) {
-		// KG 모빌리언스 => BANK(즉시이체)
-		kgmPayBankRequest();		
-	}		
-	else {
-		// 기타
+	else if ($currentTab==1) {
+		// 나이스페이 => 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 모빌리언스 => BANK(즉시이체)
+		kgmPayBankRequest();		
+	}		
 
 }
 
 //KG 모빌리언스 => CARD
 function kgmPayCardRequest() {
-	$("#price").val(110);
-	
 	$.ajax({
         type: "POST",
         url: "/web/member/pay/kgmCardEncodeAjax.do",
@@ -301,8 +304,6 @@
 
 //KG 모빌리언스 => MOBILE
 function kgmPayMobileRequest() {
-	$("#price").val(110);
-	
 	$.ajax({
         type: "POST",
         url: "/web/member/pay/kgmMobileEncodeAjax.do",
@@ -369,8 +370,6 @@
 
 //KG 모빌리언스 => BANK
 function kgmPayBankRequest() {
-	$("#price").val(1100);
-	
 	$.ajax({
         type: "POST",
         url: "/web/member/pay/kgmBankEncodeAjax.do",
@@ -810,17 +809,75 @@
 					<div>
 						<p class="tab_tit">충전수단 선택</p>
 						<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,'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>
 						</ul>
 						<div class="checkbox_wrap"><input type="checkbox" id="agree"><label for="agree">선택한 수단을 다음 충전 시에도
 							이용합니다.</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>
 							<table class="tType1">
 								<caption></caption>
src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
--- src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
@@ -478,7 +478,7 @@
 						<div class="send_info_fax">
 							<p class="fax_title"><i></i>팩스 광고 필수 표시 의무사항</p>
 							<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>
 									<li>
 										<p class="num_title">01</p>
src/main/webapp/WEB-INF/jsp/web/pay/PayList.jsp
--- src/main/webapp/WEB-INF/jsp/web/pay/PayList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayList.jsp
@@ -186,9 +186,9 @@
 				<!-- tab button -->
 				<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"><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,'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,'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>					
src/main/webapp/WEB-INF/jsp/web/pay/PayListAllAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/pay/PayListAllAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayListAllAjax.jsp
@@ -514,7 +514,7 @@
 									<c:if test="${result.rcptType eq '0'}">
 										<p class="fwRg c_002c9a">간이영수증 발행완료</p>
 									</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>
 									</c:if>
 								</c:if>
src/main/webapp/WEB-INF/jsp/web/pay/PayViewV2.jsp
--- src/main/webapp/WEB-INF/jsp/web/pay/PayViewV2.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayViewV2.jsp
@@ -117,14 +117,18 @@
 
 	var payMethod = "";
 	document.pgForm.action = "/web/member/pay/PayActionAjax.do";
-	
-	if($currentTab==0){	payMethod = "CARD";}
-	else if($currentTab==1){	payMethod = "VBANK";		}
-	/*else if($currentTab==2){	payMethod = "TEMP_CARD";		}*/
-	else if($currentTab==2){	payMethod = "CELLPHONE";		
-		document.pgForm.action = "/web/kgm/pay/KGMPayActionAjax.do";
+
+	if ($currentTab == 0) {	
+		payMethod = "SPAY";
+	} else if ($currentTab == 1) {	
+		payMethod = "CARD";
+	} 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);
 	
 	//결제수단 상태 체크
@@ -149,33 +153,29 @@
 	var popupY = scY + (docHeight - 195) / 2;
 
 	// 결제창 호출
-	if ($currentTab==0) {
-		// KG 모빌리언스 => CARD(신용카드)
+	if ($currentTab == 0) {
+		// KG 모빌리언스 => SPAY(간편결제)
 		kgmPayCardRequest();		
-	}	
-	else if ($currentTab==2) {
+	} else if ($currentTab == 1) {	
+		// 나이스페이 => 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(휴대폰결제)
 		kgmPayMobileRequest();		
-	}
-	else if ($currentTab==3) {
+	} else if ($currentTab==4) {
 		// KG 모빌리언스 => BANK(즉시이체)
 		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
 function kgmPayCardRequest() {
-	$("#price").val(110);
-	
 	$.ajax({
         type: "POST",
         url: "/web/member/pay/kgmCardEncodeAjax.do",
@@ -231,8 +231,6 @@
 
 //KG 모빌리언스 => MOBILE
 function kgmPayMobileRequest() {
-	$("#price").val(110);
-	
 	$.ajax({
         type: "POST",
         url: "/web/member/pay/kgmMobileEncodeAjax.do",
@@ -299,8 +297,6 @@
 
 //KG 모빌리언스 => BANK
 function kgmPayBankRequest() {
-	$("#price").val(1100);
-	
 	$.ajax({
         type: "POST",
         url: "/web/member/pay/kgmBankEncodeAjax.do",
@@ -643,7 +639,8 @@
 					<div>
 						<p class="tab_tit">충전수단 선택</p>
 						<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,'3');"><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 @@
 						<div class="checkbox_wrap"><input type="checkbox" id="agree"><label for="agree">선택한 수단을 다음 충전 시에도
 							이용합니다.</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>
 							<table class="tType1">
 								<caption></caption>
src/main/webapp/pb/css/content.css
--- src/main/webapp/pb/css/content.css
+++ src/main/webapp/pb/css/content.css
@@ -278,6 +278,16 @@
 .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 .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:nth-child(1){width: 65%;}
 .ipStatus .contBox:nth-child(2){width: 30%;}
 
src/main/webapp/pb/user_manage_list2_1.html (added)
+++ src/main/webapp/pb/user_manage_list2_1.html
@@ -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>(No newline at end of file)
Add a comment
List