name 2023-08-09
Merge branch 'master' of http://dudgusw@vcs.iten.co.kr:9999/hylee/mjon_git
@9b71ab859f6b5ff6542489a5cd66644cb4f34f85
src/main/java/itn/let/sym/grd/service/MberGrdService.java
--- src/main/java/itn/let/sym/grd/service/MberGrdService.java
+++ src/main/java/itn/let/sym/grd/service/MberGrdService.java
@@ -44,7 +44,7 @@
 	public void insertMberGrd(MberGrdVO mberGrdVO)  throws Exception;
 	
 	// 회원별 등급 수정
-	public void updateMberGrd(MberGrdVO mberGrdVO)  throws Exception;		
+	public void updateMberGrdOk(MberGrdVO mberGrdVO)  throws Exception;		
 	
 	// 회원별 등급 등록 All => 기존대상자 제외
 	public void insertMberGrdAllByExist(MberGrdVO mberGrdVO)  throws Exception;
@@ -82,6 +82,9 @@
 	// 회원별 등급 적용
 	public void mberGrdSaveByUser(MberGrdVO mberGrdVO) throws Exception;
 	
+	// 회원별 등급 적용(로그인시 사용 => 히스토리 저장 제외)
+	public void mberGrdSaveByUserNoHist(MberGrdVO mberGrdVO) throws Exception;
+	
 	// 회원별 등급제 대상여부
 	int selectMberGrdCnt(String mberId) throws Exception;
 	
src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdDAO.java
@@ -69,8 +69,8 @@
 	}
 	
 	// 회원별 등급 수정
-	public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception{
-		update("mberGrdDAO.updateMberGrd", mberGrdVO);
+	public void updateMberGrdOk(MberGrdVO mberGrdVO) throws Exception{
+		update("mberGrdDAO.updateMberGrdOk", mberGrdVO);
 	}	
 
 	// 회원별 등급 등록 All => 기존대상자 제외
src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
--- src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
+++ src/main/java/itn/let/sym/grd/service/impl/MberGrdServiceImpl.java
@@ -153,8 +153,8 @@
 	
 	// 회원별 등급 수정
 	@Override
-	public void updateMberGrd(MberGrdVO mberGrdVO) throws Exception {
-		mberGrdDAO.updateMberGrd(mberGrdVO);
+	public void updateMberGrdOk(MberGrdVO mberGrdVO) throws Exception {
+		mberGrdDAO.updateMberGrdOk(mberGrdVO);
 	}	
 	
 	// 회원별 등급 등록 All => 기존대상자 제외
@@ -303,7 +303,7 @@
     						MberGrdVO mberGrdVO5 = new MberGrdVO();
     						mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
     						if (null != mberGrdVO5) {
-    							updateMberGrd(mberGrdVO);
+    							updateMberGrdOk(mberGrdVO);
     								
     							// 회원별 등급 히스토리 인서트
     							insertMberGrdHist(mberGrdVO);							
@@ -331,6 +331,77 @@
 		*/
 	}			
 	
+	// 회원별 등급 적용(로그인시 사용 => 히스토리 저장 제외)
+	@Override
+	public void mberGrdSaveByUserNoHist(MberGrdVO mberGrdVO) throws Exception {
+		/*
+    	try {
+    		// 현재 날짜 구하기
+            LocalDate now = LocalDate.now();
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");	// 포맷 정의
+            String nowDate = now.format(formatter);		// 포맷 적용
+            
+    		mberGrdVO.setRegId(mberGrdVO.getMberId());
+    		mberGrdVO.setEditId(mberGrdVO.getMberId());
+    		
+    		// Step 1. 등급제 시행 ON 일경우(시행일자 진행여부 Y일경우)
+    		MberGrdVO mberGrdVO1 = new MberGrdVO();
+    		mberGrdVO1 = selectMberSettingDetail(mberGrdVO);
+    		if (mberGrdVO1.getGrdNoti().equals("Y")) {
+    			mberGrdVO.setGrdNewDate(mberGrdVO1.getGrdNewDate());
+    			
+    			// Step 2. 문자할인, B선라인, 스팸회원 대상자 제외
+    			int isMberGrd = selectMberGrdCnt(mberGrdVO.getMberId());	// 등급제 대상여부(1: 대상, 0: 미대상)
+    			if(isMberGrd == 1) {
+    				// Step 3. 누적결제금액(이벤트금액 제외) 추출 및 등급 조회
+    				MberGrdVO mberGrdVO3 = new MberGrdVO();				
+    				mberGrdVO3 = selectMberGrdAmtDetail(mberGrdVO);
+    				if (null != mberGrdVO3) {
+    					mberGrdVO.setTotAmt(mberGrdVO3.getTotAmt());
+    					mberGrdVO.setGrdSetNo(mberGrdVO3.getGrdSetNo());
+    					
+    					// Step 4. 등급제 설정값 조회
+    					MberGrdVO mberGrdVO4 = new MberGrdVO();
+    					mberGrdVO4 = selectMberGrdSettingDetail(mberGrdVO);
+    					if (null != mberGrdVO4) {
+    						mberGrdVO.setAmt(mberGrdVO.getAmt());
+    				    	mberGrdVO.setTotAmt(mberGrdVO.getTotAmt());
+    				    	mberGrdVO.setShortPrice(mberGrdVO4.getShortPrice());
+    				    	mberGrdVO.setLongPrice(mberGrdVO4.getLongPrice());
+    				    	mberGrdVO.setPicturePrice(mberGrdVO4.getPicturePrice());
+    				    	mberGrdVO.setPicture2Price(mberGrdVO4.getPicture2Price());
+    				    	mberGrdVO.setPicture3Price(mberGrdVO4.getPicture3Price());
+    				    	mberGrdVO.setGrdDate(mberGrdVO.getGrdDate());
+    				    	mberGrdVO.setGrdStartDate(nowDate + " 00:00:00");
+    				    	mberGrdVO.setGrdEndDate("9999:12:31 23:59:59");
+    				    	mberGrdVO.setGrdStatus("Y");
+    				    	
+    						// Step 5. 인서트 Or 업데이트
+    						MberGrdVO mberGrdVO5 = new MberGrdVO();
+    						mberGrdVO5 = selectMberGrdDetail(mberGrdVO);
+    						if (null != mberGrdVO5) {
+    							updateMberGrdOk(mberGrdVO);
+    						}
+    						else {
+    							// 인서트
+    							insertMberGrd(mberGrdVO);
+    						}
+    					}
+    				}					
+    			}			
+    		}
+    	}
+    	catch (Exception e) {
+	    	// Slack 메시지 발송(단순본문)
+	    	String msg = "[문자온] " + mberGrdVO.getMberId() + "님 로그인중 회원등급 저장 오류 알림 => 개발팀에게 문의해주세요.";
+	    	mjonCommon.sendSimpleSlackMsg(msg);    		
+
+			System.out.println("#############################################################");
+			System.out.println(mberGrdVO.getMberId() + "님 로그인중 회원등급 저장 오류");			    		
+    	}
+    	*/												
+	}			
+	
 	// 회원별 등급제 대상여부
 	@Override
 	public int selectMberGrdCnt(String mberId) throws Exception{
src/main/java/itn/let/uat/uia/web/EgovLoginController.java
--- src/main/java/itn/let/uat/uia/web/EgovLoginController.java
+++ src/main/java/itn/let/uat/uia/web/EgovLoginController.java
@@ -95,6 +95,8 @@
 import itn.let.mjo.msgsent.service.MjonMsgSentVO;
 import itn.let.mjo.pay.service.KmcVO;
 import itn.let.mjo.pay.service.MjonPayService;
+import itn.let.sym.grd.service.MberGrdService;
+import itn.let.sym.grd.service.MberGrdVO;
 import itn.let.sym.log.clg.service.EgovLoginLogService;
 import itn.let.sym.log.clg.service.LoginLog;
 import itn.let.sym.mnu.mpm.service.MenuManageJTreeVO;
@@ -230,6 +232,9 @@
 	
 	@Resource(name = "mjonPayService")
 	private MjonPayService mjonPayService;    
+	
+	@Resource(name = "mberGrdService")
+	MberGrdService mberGrdService;
 	
 	private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
 
@@ -1719,6 +1724,15 @@
 				loginService.insertActionLoginLog(loginVO);
 			}
 
+			// 등급제 Start
+	   		// 회원별 등급 적용
+			MberGrdVO mberGrdVO = new MberGrdVO();
+			mberGrdVO.setMberId(loginVO.getId());
+	    	mberGrdVO.setAmt("0");
+	    	mberGrdVO.setMoid("");
+	   		mberGrdService.mberGrdSaveByUserNoHist(mberGrdVO);    		
+			// End
+	   		
 			// 이벤트 결제 바로가기 로직 체크 Start
 			String goEventPay = (String) commandMap.get("goEventPay");
 			System.out.println("goEventPay : " + goEventPay);
src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java
--- src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java
+++ src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java
@@ -6,6 +6,7 @@
 
 import javax.annotation.Resource;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.ui.ModelMap;
@@ -199,8 +200,11 @@
 		resultList = apiKeyMngService.selectApiKeyApplyStatus(apiKeyVO);
 		System.out.println("=============");
 		if (resultList.size()>0) {
-			resultList.get(0).setFrstRegistPnttm(DateUtil.getChangFormatS(resultList.get(0).getFrstRegistPnttm()));
-			resultList.get(0).setLastUpdtPnttm(DateUtil.getChangFormatS(resultList.get(0).getLastUpdtPnttm()));
+			if(StringUtils.isNotEmpty(resultList.get(0).getFrstRegistPnttm()))
+			{
+				resultList.get(0).setFrstRegistPnttm(DateUtil.getChangFormatS(resultList.get(0).getFrstRegistPnttm()));
+				resultList.get(0).setLastUpdtPnttm(DateUtil.getChangFormatS(resultList.get(0).getLastUpdtPnttm()));
+			}
 			
 			model.addAttribute("apiVO", resultList.get(0));
 			
src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
--- src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
+++ src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
@@ -1092,6 +1092,14 @@
 		//1.시스템 기본 단가 정보 조회하기
 		JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
 		
+		model.addAttribute("sysShortPrice", sysJoinSetVO.getShortPrice());
+		model.addAttribute("sysLongPrice", sysJoinSetVO.getLongPrice());
+		model.addAttribute("sysPicturePrice", sysJoinSetVO.getPicturePrice());
+		model.addAttribute("sysPicture2Price", sysJoinSetVO.getPicture2Price());
+		model.addAttribute("sysPicture3Price", sysJoinSetVO.getPicture3Price());
+		model.addAttribute("sysPicture3Price", sysJoinSetVO.getPicture3Price());
+		model.addAttribute("sysKakaoAtPrice", sysJoinSetVO.getKakaoAtPrice());
+		
 		// 등급제 단가 추출 => 시스템 단가에 적용
 		sysJoinSetVO = mberGrdService.selectMberGrdDefaultInfo(sysJoinSetVO, userId);
 		
@@ -2791,7 +2799,30 @@
     	}
     	
     	try {
-    		
+    		//1.시스템 기본 단가 정보 조회하기
+    		JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
+    		// 문자 => 수정하려는 단가가 시스템기본단가와 동일할경우 0으로 세팅
+            if (Float.compare(sysJoinSetVO.getShortPrice(), mberManageVO.getShortPrice()) == 0) {
+                if (Float.compare(sysJoinSetVO.getLongPrice(), mberManageVO.getLongPrice()) == 0) {
+                    if (Float.compare(sysJoinSetVO.getPicturePrice(), mberManageVO.getPicturePrice()) == 0) {
+                        if (Float.compare(sysJoinSetVO.getPicture2Price(), mberManageVO.getPicture2Price()) == 0) {
+                            if (Float.compare(sysJoinSetVO.getPicture3Price(), mberManageVO.getPicture3Price()) == 0) {
+                            	mberManageVO.setShortPrice(0);
+                            	mberManageVO.setLongPrice(0);
+                            	mberManageVO.setPicturePrice(0);
+                            	mberManageVO.setPicture2Price(0);
+                            	mberManageVO.setPicture3Price(0);
+                            }
+                        }
+                    }
+                }
+            }
+            
+            // 알림톡 => 수정하려는 단가가 시스템기본단가와 동일할경우 0으로 세팅
+            if (Float.compare(sysJoinSetVO.getKakaoAtPrice(), mberManageVO.getKakaoAtPrice()) == 0) {
+            	mberManageVO.setKakaoAtPrice(0);
+            }
+            
     		int resultCnt = mberManageService.updateUserPrice(mberManageVO);
     		
     		if(resultCnt > 0) {
src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/sym/grd/MberGrd_SQL_Mysql.xml
@@ -418,7 +418,7 @@
 	</insert>
 
 	<!-- 회원별 등급 수정 -->
-	<update id="mberGrdDAO.updateMberGrd" parameterClass="mberGrdVO">
+	<update id="mberGrdDAO.updateMberGrdOk" parameterClass="mberGrdVO">
 		UPDATE MJ_MBER_GRD_INFO SET
 			MBER_ID					= #mberId#
 			, GRD_SET_NO			= #grdSetNo#
@@ -432,6 +432,8 @@
 			, GRD_DATE				= #grdNewDate#
 			, EDIT_ID				= #editId#
 			, EDIT_DATE				= NOW()
+			, GRD_END_DATE 			= '9999:12:31 23:59:59'
+			, GRD_STATUS 			= 'Y'				
 		WHERE 
 			MBER_ID = #mberId#
 	</update>	
@@ -680,6 +682,8 @@
 			, A.GRD_DATE = CONCAT(DATE_FORMAT(#grdNewDate#, '%Y-%m-%d'), ' ', '00:00:00')
 			, A.EDIT_DATE = NOW()
 			, A.TEMP_YN = 'Y'
+			, A.GRD_END_DATE = '9999:12:31 23:59:59'
+			, A.GRD_STATUS = 'Y'			
 		WHERE A.TEMP_YN = 'N'
 			AND C.GRD_SET_NO = (SELECT MAX(GRD_SET_NO) FROM MJ_MBER_GRD_SETTING)
 	]]>
src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
--- src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
+++ src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
@@ -61,6 +61,12 @@
 <!-- <script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script> -->
 <script type="text/javaScript" language="javascript" defer="defer">
 var grdSettingList = [];	// 등급별 단가 정보
+var sysShortPrice = "${sysShortPrice}";
+var sysLongPrice = "${sysLongPrice}";
+var sysPicturePrice = "${sysPicturePrice}";
+var sysPicture2Price = "${sysPicture2Price}";
+var sysPicture3Price = "${sysPicture3Price}";
+var sysKakaoAtPrice = "${sysKakaoAtPrice}";
 
 $(document).ready(function(){
 	console.log('${serverName}');
@@ -699,6 +705,18 @@
     form.target = "popupSelectMber";
     form.submit();
 }
+
+// 문자 금액 초기화
+function fnPriceReset() {
+	form = document.msgPriceForm;
+	form.shortPrice.value = sysShortPrice;
+	form.longPrice.value = sysLongPrice;
+	form.picturePrice.value = sysPicturePrice;
+	form.picture2Price.value = sysPicture2Price;
+	form.picture3Price.value = sysPicture3Price;
+	form.kakaoAtPrice.value = sysKakaoAtPrice;
+}
+
 
 //문자발송 금액 변경 처리
 function fnPriceUpdate(mberId){
@@ -5572,6 +5590,7 @@
 				</table>
 				<div class="button_box">
 					<button type="button" onclick="fnPriceUpdate('<c:out value="${mberManageVO.mberId}"/>'); return false;">금액 변경</button>
+					<button type="button" onclick="fnPriceReset(); return false;">초기화</button>
 				</div>
 			</div>
 		</div>
src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab2.jsp
--- src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab2.jsp
+++ src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab2.jsp
@@ -24,7 +24,7 @@
                                         </tr>
                                         <tr>
                                             <th>프로토콜</th>
-                                            <td>HHTP/1.1</td>
+                                            <td>HTTP/1.1</td>
                                         </tr>
                                         <tr>
                                             <th>HOST</th>
src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab3.jsp
--- src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab3.jsp
+++ src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab3.jsp
@@ -24,7 +24,7 @@
                                         </tr>
                                         <tr>
                                             <th>프로토콜</th>
-                                            <td>HHTP/1.1</td>
+                                            <td>HTTP/1.1</td>
                                         </tr>
                                         <tr>
                                             <th>HOST</th>
src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab4.jsp
--- src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab4.jsp
+++ src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab4.jsp
@@ -23,7 +23,7 @@
                                         </tr>
                                         <tr>
                                             <th>프로토콜</th>
-                                            <td>HHTP/1.1</td>
+                                            <td>HTTP/1.1</td>
                                         </tr>
                                         <tr>
                                             <th>HOST</th>
src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab5.jsp
--- src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab5.jsp
+++ src/main/webapp/WEB-INF/jsp/web/api/apiSpec_tab5.jsp
@@ -23,7 +23,7 @@
                                         </tr>
                                         <tr>
                                             <th>프로토콜</th>
-                                            <td>HHTP/1.1</td>
+                                            <td>HTTP/1.1</td>
                                         </tr>
                                         <tr>
                                             <th>HOST</th>
src/main/webapp/sample_mjon/jsp_example_send_msg_r1.jsp
--- src/main/webapp/sample_mjon/jsp_example_send_msg_r1.jsp
+++ src/main/webapp/sample_mjon/jsp_example_send_msg_r1.jsp
@@ -25,7 +25,7 @@
 		//회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용
 		//실제서비스용
 		final String mberId		=	"dudgusw";	//문자온 로그인 아이디 
-		final String apiKey		=	"0096519c62100b9eea77c040a6045c";		//발급받은 api ke
+		final String apiKey		=	"59d8d714ad68ae2e24e3ae2055334e3e";		//발급받은 api ke
 		
 		
 		//테스트용
Add a comment
List