rosewiper 2024-09-12
사용자 친구톡 스미싱 의심에 대한 30분 지연에 대한 오류 수정 - 지연처리가 안되고 있어서 오류 수정 완료(at_delay_yn 값이 변경이 안되던 부분 수정) - 야간스미싱의심 미처리 기능 추가 완료
친구톡 스미싱 의심에 대한 30분 지연에 대한 오류 수정
  - 지연처리가 안되고 있어서 오류 수정 완료(at_delay_yn 값이 변경이 안되던 부분 수정)
  - 야간스미싱의심 미처리 기능 추가 완료

관리자
  - 사용자 상세 팝업에 친구톡 단가 및 마진률 표시, 협의단가 입력 팝업에 친구톡 항목 추가 및 수정 기능 변경
@e7e0c044300fe066d14cb42788ffa16781f56543
src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
--- src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
+++ src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
@@ -432,6 +432,51 @@
 			
 			//카카오 알림톡 전송 리스트
 			List<KakaoVO> kakaoFtSendList = new ArrayList<KakaoVO>();
+			
+			//야간스미싱 알림여부 정보 불러오기
+			JoinSettingVO joinSettingVO = siteManagerDAO.selectAdminNotiDetail();
+			String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
+			
+			//스팸,스미싱이어도 딜레이없이 문자 전송을 처리할지 선택 상태값 변수
+			boolean spamSmishingPassStatus = false;	//야간스미싱 알림여부가 활성화인 경우 false, 비활성화인경우 true 값을 가지도록 한다.
+			
+			//야간스미싱알리 여부가 비활성화 인경우 무조건 문자를 즉시 보내도록 한다.
+			//현재는 평일, 주말, 휴일 상관없이 N 이면 30분 딜레이 없이 발송 처리하도록 함.
+			if(holiSmishingNoti.equals("Y")) {
+				
+				MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO();
+				
+				msgAlarmSetVO.setUseYn("Y");
+				msgAlarmSetVO.setFirstIndex(0);
+				
+				List<MsgAlarmSetVO> resultAlarmList = msgHolidayDAO.selectAlarmSettingList(msgAlarmSetVO);
+				
+				Calendar calendar = Calendar.getInstance(); 
+				int year = calendar.get(Calendar.YEAR);
+				
+				MsgHolidayVO msgHolidayVO = new MsgHolidayVO();
+				msgHolidayVO.setFirstIndex(0);
+				msgHolidayVO.setRecordCountPerPage(100);
+				msgHolidayVO.setSearchHoliYear(Integer.toString(year));
+				
+				List<MsgHolidayVO> resultHolidayList = msgHolidayDAO.selectMsgHolidayList(msgHolidayVO);
+				
+				MjonHolidayApi mjonHolidayApi = new MjonHolidayApi();
+				
+				boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
+				 
+				spamSmishingPassStatus = smishingAlarmPassSts;
+			}else {
+				
+				spamSmishingPassStatus = true;
+				
+			}
+			
+			String atSmishingYn = kakaoVO.getAtSmishingYn();
+			
+			if(spamSmishingPassStatus) {
+				atSmishingYn = "N";
+			}
 					
 /** 카카오 알림톡 전송  리스트 생성 (시작)-------------------------------------------*/
 			for(int i = 0; i < callToCnt; i++) {
@@ -496,7 +541,7 @@
 					
 				}
 				
-				if(kakaoVO.getAtSmishingYn().equals("Y")) {
+				if(atSmishingYn.equals("Y")) {
 					String sandDate = "";
 					
 					if(kakaoVO.getDivideChk().equals("Y")) {
@@ -632,6 +677,12 @@
 				mjonMsgVO.setKakaoSubMagOrgnlTxt(kakaoVO.getKakaoSubMagOrgnlTxt());
 				mjonMsgVO.setAtDelayYn(kakaoVO.getAtSmishingYn());
 				
+				//야간 스미싱 알림 비활성화인 경우 딜레이처리 안하도록 함 20240912 우영두 수정
+				if(spamSmishingPassStatus) {
+					mjonMsgVO.setAtDelayYn("N");
+				}else {
+					mjonMsgVO.setAtDelayYn(kakaoVO.getAtSmishingYn());
+				}
 				
 				if(kakaoVO.getBizJsonYn().equals("Y")) {
 					mjonMsgVO.setFileCnt("1");	
@@ -655,6 +706,20 @@
 					 * 
 					 * */
 					kakaoAlimTalkDAO.insertKakaoSendPrice(kakaoVO);
+					
+					
+					try {
+						
+						//야간 스미싱 알림이 활성화 이고 알림 예외 일정에 포함되고, 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240821 우영두 추가
+						if(holiSmishingNoti.equals("Y") && spamSmishingPassStatus && kakaoVO.getAtSmishingYn().equals("Y")) {
+							mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO);
+						}
+						
+					} catch (Exception e) {
+						System.out.println("++++++++++++++++++++++++++++++ spamSmishingPassStatus 친구톡 야간 스미싱 알림 데이터 입력 오류 발생 !!!!");
+					}
+					
+					
 				}else {
 					mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO);
 				}
src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
--- src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
+++ src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
@@ -409,9 +409,9 @@
 
 				//스미싱 의심이 아니면 delayYn 값 셋팅
 				if(kakaoVO.getAtSmishingYn().equals("N")) {
-					kakaoVO.setDelayYn("N");
+					kakaoVO.setAtDelayYn("N");
 				}else {
-					kakaoVO.setDelayYn("Y");
+					kakaoVO.setAtDelayYn("Y");
 				}
 				
 				//분할발송 여부 - 친구톡은 분할 발송이 없기애 N으로 픽스
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
@@ -1099,6 +1099,7 @@
 		model.addAttribute("sysPicture3Price", sysJoinSetVO.getPicture3Price());
 		model.addAttribute("sysPicture3Price", sysJoinSetVO.getPicture3Price());
 		model.addAttribute("sysKakaoAtPrice", sysJoinSetVO.getKakaoAtPrice());
+		model.addAttribute("sysKakaoFtPrice", sysJoinSetVO.getKakaoFtPrice());
 		
 		// 등급제 단가 추출 => 시스템 단가에 적용
 		sysJoinSetVO = mberGrdService.selectMberGrdDefaultInfo(sysJoinSetVO, userId);
@@ -1110,6 +1111,7 @@
 		Float picture2Price = mberManageVO.getPicture2Price();
 		Float picture3Price = mberManageVO.getPicture3Price();
 		Float kakaoAtPrice = mberManageVO.getKakaoAtPrice();
+		Float kakaoFtPrice = mberManageVO.getKakaoFtPrice();
 		Float faxPrice = mberManageVO.getFaxPrice();
 		System.out.println("mberManageVO.getFaxPrice() : " + mberManageVO.getFaxPrice());
 		
@@ -1125,6 +1127,11 @@
 		if(kakaoAtPrice < 1) {
 			kakaoAtPrice = sysJoinSetVO.getKakaoAtPrice();
 		}
+		
+		if(kakaoFtPrice < 1) {
+			kakaoFtPrice = sysJoinSetVO.getKakaoFtPrice();
+		}
+		
 		if(faxPrice < 1) {
 			faxPrice = sysJoinSetVO.getFaxPrice();
 		}
@@ -1135,6 +1142,7 @@
 		model.addAttribute("picture2Price", picture2Price);
 		model.addAttribute("picture3Price", picture3Price);
 		model.addAttribute("kakaoAtPrice", kakaoAtPrice);
+		model.addAttribute("kakaoFtPrice", kakaoFtPrice);
 		model.addAttribute("faxPrice", faxPrice);
 		model.addAttribute("sysJoinSetVO", sysJoinSetVO);
 		
@@ -1313,6 +1321,9 @@
 			double kakaoAtCost = 0.00;
 			double kakaoAtMargin = 0.00;
 			
+			double kakaoFtCost = 0.00;
+			double kakaoFtMargin = 0.00;
+			
 			double faxCost = 0.00;
 			double faxMargin = 0.00;
 			
@@ -1345,10 +1356,23 @@
 					avgPriceP = Double.parseDouble(item.getAgentPrice());
 				}
 			}
+
+			/*
+			 * 알림톡,친구톡 원가 정보 조회
+			 * Agent 코드 번호를 넘겨준다.
+			 * 다우기술 04번으로 넘겨줌
+			 * */
 			
-			// kakao 원가
-			kakaoAtCost = kakaoApiService.selectKakaoCost();
+			MjonMsgAgentStsVO resultAgentCost = mjonMsgAgentStsService.selectHotLineAgentCost("04");
+			kakaoAtCost = resultAgentCost.getKakaoAtCost();	//알림톡 원가
+			kakaoFtCost = resultAgentCost.getKakaoFtCost();	//친구톡 원가
+			
+			// kakao 알림톡 마진률 계산
+			//kakaoAtCost = kakaoApiService.selectKakaoCost();
 			kakaoAtMargin = (1-(kakaoAtCost / kakaoAtPrice))*100;
+			
+			//kakao 친구톡 마진률 계산
+			kakaoFtMargin = (1-(kakaoFtCost / kakaoFtPrice))*100;
 			
 			// fax 원가 SELECT
 			faxCost = faxService.getFaxCost();
@@ -1366,7 +1390,9 @@
 			model.addAttribute("avgPriceL", avgPriceL);
 			model.addAttribute("avgPriceP", avgPriceP);
 			model.addAttribute("kakaoAtCost", kakaoAtCost);
+			model.addAttribute("kakaoFtCost", kakaoFtCost);
 			model.addAttribute("kakaoAtMargin", kakaoAtMargin);
+			model.addAttribute("kakaoFtMargin", kakaoFtMargin);
 			model.addAttribute("faxCost", faxCost);
 			model.addAttribute("faxMargin", faxMargin);
 		}		
@@ -2892,6 +2918,11 @@
             // 알림톡 => 수정하려는 단가가 시스템기본단가와 동일할경우 0으로 세팅
             if (Float.compare(sysJoinSetVO.getKakaoAtPrice(), mberManageVO.getKakaoAtPrice()) == 0) {
             	mberManageVO.setKakaoAtPrice(0);
+            }
+            
+            // 친구톡 => 수정하려는 단가가 시스템기본단가와 동일할경우 0으로 세팅
+            if (Float.compare(sysJoinSetVO.getKakaoFtPrice(), mberManageVO.getKakaoFtPrice()) == 0) {
+            	mberManageVO.setKakaoFtPrice(0);
             }
             
     		int resultCnt = mberManageService.updateUserPrice(mberManageVO);
@@ -4789,7 +4820,7 @@
      * 회원 이용정지 사유  조회하기
      * @param searchVO
      * @param model
-     * @return	"/uss/umt/user/uss/umt/user/EgovGnrlselectedUserView.do.do"
+     * @return	"/uss/umt/user/uss/umt/user/selectMberSpamBlockMemoDetailAjax.do"
      * @throws Exception
      */
     @RequestMapping(value = {"/uss/umt/user/selectMberSpamBlockMemoDetailAjax.do"})
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
@@ -1217,6 +1217,7 @@
 			, PICTURE2_PRICE = #picture2Price#
 			, PICTURE3_PRICE = #picture3Price#
 			, KAKAO_AT_PRICE = #kakaoAtPrice#
+			, KAKAO_FT_PRICE = #kakaoFtPrice#
 			, KAKAO_FT_IMG_PRICE = #kakaoFtImgPrice#
 			, KAKAO_FT_WIDE_IMG_PRICE = #kakaoFtWideImgPrice#
 		WHERE MBER_ID = #mberId#
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
@@ -5246,7 +5246,7 @@
 							<tr>
 								<th>구분</th>
 								<th>알림톡(<fmt:formatNumber value="${sysJoinSetVO.kakaoAtPrice}" pattern="###.#" />원)</th>
-								<th>친구톡(준비중)</th>
+								<th>친구톡(<fmt:formatNumber value="${sysJoinSetVO.kakaoFtPrice}" pattern="###.#" />원)</th>
 								<th>팩스(<fmt:formatNumber value="${sysJoinSetVO.faxPrice}" pattern="###.#" />원)</th>
 							</tr>
 						</thead>
@@ -5254,7 +5254,7 @@
 							<tr>
 								<td>문자온 원가</td>
 								<td><c:out value="${kakaoAtCost}"/></td>
-								<td>준비중</td>
+								<td><c:out value="${kakaoFtCost}"/></td>
 								<td><c:out value="${faxCost}"/></td>
 							</tr>
 							<tr>
@@ -5263,7 +5263,7 @@
 									<fmt:formatNumber value='${kakaoAtPrice}' pattern='###.#' />
 								</td>
 								<td>
-									준비중
+									<fmt:formatNumber value='${kakaoFtPrice}' pattern='###.#' />
 								</td>
 								<td>
 									<fmt:formatNumber value='${faxPrice}' pattern='###.#' />
@@ -5272,7 +5272,7 @@
 							<tr>
 								<td>마진률</td>
 								<td><fmt:formatNumber value="${kakaoAtMargin}" pattern=".0" />%</td>
-								<td>준비중</td>
+								<td><fmt:formatNumber value="${kakaoFtMargin}" pattern=".0" />%</td>
 								<td><fmt:formatNumber value="${faxMargin}" pattern=".0" />%</td>
 							</tr>
 						</tbody>
@@ -5729,6 +5729,10 @@
 							<th>알림톡 금액</th>
 							<td><input type="text" name="kakaoAtPrice" id="kakaoAtPrice" value="<c:out value='${kakaoAtPrice}'/>"/></td>
 						</tr>
+						<tr>
+							<th>친구톡 금액</th>
+							<td><input type="text" name="kakaoFtPrice" id="kakaoFtPrice" value="<c:out value='${kakaoFtPrice}'/>"/></td>
+						</tr>
 					</tbody>
 				</table>
 				<div class="button_box">
Add a comment
List