itn 2023-06-21
회원상세 알림톡 스미싱의심 기능추가
@2a717788b82ec03566192455c29366c6919768a3
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
@@ -177,12 +177,20 @@
 	
 	public UserManageVO selectSmishingYnUserInfo(UserManageVO userManageVO) throws Exception;
 	
+	public UserManageVO selectAtSmishingYnUserInfo(UserManageVO userManageVO) throws Exception;
+	
 	// 스미싱의심 온/오프
 	public void updateUserSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception;
 	
 	// 스미싱의심 온/오프 - 상세에서 단일로
 	public void updateOneUserSmishingYn(UserManageVO userManageVO) throws Exception;
     
+	// 알림톡 스미싱의심 온/오프
+	public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception;
+	
+	// 알림톡 스미싱의심 온/오프 - 상세에서 단일로
+	public void updateOneUserAtSmishingYn(UserManageVO userManageVO) throws Exception;	
+	
 	// 후불제 여부 저장
 	public void updateUserPrePaymentYn(UserManageVO userManageVO) throws Exception;
 	
src/main/java/itn/let/uss/umt/service/MberManageVO.java
--- src/main/java/itn/let/uss/umt/service/MberManageVO.java
+++ src/main/java/itn/let/uss/umt/service/MberManageVO.java
@@ -532,7 +532,14 @@
 	
 	private String smishingYn;		// 스미싱 의심여부
 	private String vipYn;		// VIP 여부
+	private String atSmishingYn;		// 알림톡 스미싱 의심여부
 	
+	public String getAtSmishingYn() {
+		return atSmishingYn;
+	}
+	public void setAtSmishingYn(String atSmishingYn) {
+		this.atSmishingYn = atSmishingYn;
+	}
 	public String getPrePaymentYn() {
 		return prePaymentYn;
 	}
src/main/java/itn/let/uss/umt/service/UserManageVO.java
--- src/main/java/itn/let/uss/umt/service/UserManageVO.java
+++ src/main/java/itn/let/uss/umt/service/UserManageVO.java
@@ -204,7 +204,14 @@
 	private float cash;
 	private String blineCode;		// B라인코드
 	private String recommendId;		// 추천아이디
-
+	private String atSmishingYn;		// 알림톡 스미싱 의심여부
+	
+	public String getAtSmishingYn() {
+		return atSmishingYn;
+	}
+	public void setAtSmishingYn(String atSmishingYn) {
+		this.atSmishingYn = atSmishingYn;
+	}
 	public String getBlineCode() {
 		return blineCode;
 	}
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
@@ -497,6 +497,11 @@
 		return userManageDAO.selectSmishingYnUserInfo(userManageVO);
 	}
 	
+	@Override
+	public UserManageVO selectAtSmishingYnUserInfo(UserManageVO userManageVO) {
+		return userManageDAO.selectAtSmishingYnUserInfo(userManageVO);
+	}
+	
 	// 스미싱의심 온/오프
 	public void updateUserSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception {
 		if(!"".equals(checkedIdForUpt)) {
@@ -560,6 +565,69 @@
 		
 	}
 	
+	// 알림톡 스미싱의심 온/오프
+	public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception {
+		if(!"".equals(checkedIdForUpt)) {
+			String [] uptIdAll = checkedIdForUpt.split(",");
+			String[] uptId = Arrays.stream(uptIdAll).distinct().toArray(String[]::new);
+			for (int i=0; i<uptId.length ; i++){
+				// 업데이트
+				userManageVO.setMberId(uptId[i]);
+				userManageDAO.updateUserAtSmishingYn(userManageVO);
+				
+				// 법인폰 알림문자 발송
+				UserManageVO rtnVO = new UserManageVO();
+				rtnVO = selectAtSmishingYnUserInfo(userManageVO);
+				if (rtnVO.getAtSmishingYn().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);					
+					}
+				}
+			}
+		}
+		
+	}
+	
+	// 알림톡 스미싱의심 온/오프 단일
+	public void updateOneUserAtSmishingYn(UserManageVO userManageVO) throws Exception {
+				// 업데이트
+				userManageDAO.updateUserAtSmishingYn(userManageVO);
+				
+				// 법인폰 알림문자 발송
+				UserManageVO rtnVO = new UserManageVO();
+				rtnVO = selectAtSmishingYnUserInfo(userManageVO);
+				if (rtnVO.getAtSmishingYn().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);										
+					}
+				}
+		
+	}	
+	
 	// 후불제 여부 저장
 	public void updateUserPrePaymentYn(UserManageVO userManageVO) throws Exception {
 		userManageDAO.updateUserPrePaymentYn(userManageVO);
src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java
--- src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java
+++ src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java
@@ -271,11 +271,20 @@
 		return (UserManageVO) select("userManageDAO.selectSmishingYnUserInfo",userManageVO);
 	}
 	
+	public UserManageVO selectAtSmishingYnUserInfo(UserManageVO userManageVO) {
+		return (UserManageVO) select("userManageDAO.selectAtSmishingYnUserInfo",userManageVO);
+	}
+	
 	// 스미싱의심 온/오프
     public void updateUserSmishingYn(UserManageVO userManageVO){
     	update("userManageDAO.updateUserSmishingYn",userManageVO);
     }
     
+	// 알림톡 스미싱의심 온/오프
+    public void updateUserAtSmishingYn(UserManageVO userManageVO){
+    	update("userManageDAO.updateUserAtSmishingYn",userManageVO);
+    }
+    
     // 후불제 여부 저장
     public void updateUserPrePaymentYn(UserManageVO userManageVO){
     	update("userManageDAO.updateUserPrePaymentYn",userManageVO);
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
@@ -2418,6 +2418,38 @@
 		
 		return modelAndView;
 	}	
+	
+	// 알림톡 스미싱의심 여부 변경
+	@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do")
+	public ModelAndView EgovGnrlUpdateUserAtSmishingAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
+		
+		ModelAndView modelAndView = new ModelAndView();
+		modelAndView.setViewName("jsonView");
+		
+		Boolean isSuccess = true;
+		String msg = "";
+		
+		try {
+			// 미인증 사용자에 대한 보안처리
+			Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
+			if(!isAuthenticated) {
+				isSuccess = false;
+				msg = "로그인이 필요합니다.";    		
+			}
+			else {
+				userManageService.updateOneUserAtSmishingYn(userManageVO);
+			}
+		} catch (Exception e) {
+			isSuccess = false;
+			msg = e.getMessage();
+		}
+		
+		modelAndView.addObject("isSuccess", isSuccess);
+		modelAndView.addObject("msg", msg);
+		
+		return modelAndView;
+	}	
+	
 	// VIP 여부 변경
 	@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserVIPAjax.do")
 	public ModelAndView EgovGnrlUpdateUserVIPAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
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
@@ -729,7 +729,8 @@
 		       A.SMISHING_YN smishingYn,
 		       A.VIP_YN vipYn,
 		       A.EXCEPT_SPAM_YN AS exceptSpamYn,
-		       A.HOTLINE_AGENT_CODE AS hotlineAgentCode
+		       A.HOTLINE_AGENT_CODE AS hotlineAgentCode,
+		       A.AT_SMISHING_YN atSmishingYn
 		FROM   LETTNGNRLMBER A
 		       LEFT JOIN MJ_CANDIDATE_INFO MCI
 		       ON     A.MBER_ID = MCI.MBER_ID
src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml
@@ -1328,6 +1328,15 @@
 		WHERE  MBER_ID = #mberId#
     </select> 
     	
+    <select id="userManageDAO.selectAtSmishingYnUserInfo" parameterClass="userVO" resultClass="userVO">
+    	SELECT 
+	    	MBER_ID AS mberId, 
+			MBER_NM AS mberNm,
+    		AT_SMISHING_YN AS atSmishingYn
+		FROM   LETTNGNRLMBER
+		WHERE  MBER_ID = #mberId#
+    </select> 
+        	
 	<update id="userManageDAO.updateUserSmishingYn" parameterClass="userVO">
 		UPDATE
 			LETTNGNRLMBER
@@ -1337,6 +1346,15 @@
 			AND MBER_ID			= #mberId#
 	</update>
 		
+	<update id="userManageDAO.updateUserAtSmishingYn" parameterClass="userVO">
+		UPDATE
+			LETTNGNRLMBER
+		SET  
+			AT_SMISHING_YN	= #atSmishingYn#
+		WHERE 1=1
+			AND MBER_ID			= #mberId#
+	</update>
+			
 	<update id="userManageDAO.updateUserPrePaymentYn" parameterClass="userVO">
 		UPDATE
 			LETTNGNRLMBER
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
@@ -1182,6 +1182,45 @@
 	}
 	
 }
+
+//알림톡 스미싱의심 여부
+function fnMberAtSmishingYn(){
+	var form = document.mberManageVO;
+	var atSmishingYn = form.atSmishingYn.value;
+	
+	if(confirm("알림톡 스미싱의심 여부를 변경하시겠습니까?")){
+		
+		$.ajax({
+	        type: "POST",
+	        url: "/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do",
+	        data: {"atSmishingYn" : atSmishingYn, "mberId" : "${mberManageVO.mberId}"},
+	        dataType:'json',
+	        async: false,
+	        success: function (data, status) {
+				if (data.isSuccess) {
+					alert("변경 완료했습니다.");
+				}
+				else {
+					alert(data.msg);
+				}
+			},
+	        beforeSend: function () {
+	        	//로딩창 show
+	        	$('.loading_layer').addClass('active');
+	        }, 
+	        complete: function () {
+	        	//로딩창 hide
+	        	$('.loading_layer').removeClass('active');
+	        },
+	        error: function (e) { 
+	        	alert("에러가 발생했습니다."); console.log("ERROR : ", e); 
+	        }
+	    });
+		
+	}
+	
+}
+
 // VIP 여부
 function fnMberVIPYn(){
 	var form = document.mberManageVO;
@@ -2536,6 +2575,18 @@
 											</td>											
 										</tr>
 										<tr>
+											<th>스미싱 의심(카톡)</th>
+											<td>
+												<select name="atSmishingYn" id="atSmishingYn" style="width:150px;" onFocus='this.initialSelect = this.selectedIndex;' onChange="javascript:fnMberAtSmishingYn();">
+													<option value="Y" <c:if test="${mberManageVO.atSmishingYn == 'Y'}">selected="selected"</c:if>>온(On)</option>
+													<option value="N" <c:if test="${mberManageVO.atSmishingYn == 'N'}">selected="selected"</c:if>>오프(Off)</option>
+												</select>
+											</td>
+											<th></th>
+											<td>
+											</td>											
+										</tr>																				
+										<tr>
 											<th>전용 전송사</th>
 											<td>
 												<select name="hotlineAgentCode" id="hotlineAgentCode" style="width:150px;" onFocus='this.initialSelect = this.selectedIndex;' onChange="javascript:fnMberHotlineAgentYn();">
@@ -2970,6 +3021,18 @@
 											</td>											
 										</tr>
 										<tr>
+											<th>스미싱 의심(카톡)</th>
+											<td>
+												<select name="atSmishingYn" id="atSmishingYn" style="width:150px;" onFocus='this.initialSelect = this.selectedIndex;' onChange="javascript:fnMberAtSmishingYn();">
+													<option value="Y" <c:if test="${mberManageVO.atSmishingYn == 'Y'}">selected="selected"</c:if>>온(On)</option>
+													<option value="N" <c:if test="${mberManageVO.atSmishingYn == 'N'}">selected="selected"</c:if>>오프(Off)</option>
+												</select>
+											</td>
+											<th></th>
+											<td>
+											</td>											
+										</tr>										
+										<tr>
 											<th>전용 전송사</th>
 											<td>
 												<select name="hotlineAgentCode" id="hotlineAgentCode" style="width:150px;" onFocus='this.initialSelect = this.selectedIndex;' onChange="javascript:fnMberHotlineAgentYn();">
Add a comment
List