야간 스미싱 알림기능 개발 완료
This commit is contained in:
parent
a48c4b22dc
commit
45d7b704f7
@ -14,12 +14,18 @@ import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
|||||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||||
import itn.let.kakao.kakaoComm.KakaoVO;
|
import itn.let.kakao.kakaoComm.KakaoVO;
|
||||||
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService;
|
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService;
|
||||||
|
import itn.let.mjo.mjocommon.MjonHolidayApi;
|
||||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||||
import itn.let.mjo.msg.service.impl.MjonMsgDAO;
|
import itn.let.mjo.msg.service.impl.MjonMsgDAO;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||||
import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO;
|
import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.impl.MsgHolidayDAO;
|
||||||
import itn.let.mjo.pay.service.MjonPayService;
|
import itn.let.mjo.pay.service.MjonPayService;
|
||||||
import itn.let.mjo.pay.service.MjonPayVO;
|
import itn.let.mjo.pay.service.MjonPayVO;
|
||||||
|
import itn.let.sym.site.service.JoinSettingVO;
|
||||||
|
import itn.let.sym.site.service.impl.SiteManagerDAO;
|
||||||
|
|
||||||
@Service("kakaoAlimTalkService")
|
@Service("kakaoAlimTalkService")
|
||||||
public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements KakaoAlimTalkService{
|
public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements KakaoAlimTalkService{
|
||||||
@ -33,6 +39,12 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
@Resource(name="kakaoAlimTalkDAO")
|
@Resource(name="kakaoAlimTalkDAO")
|
||||||
private KakaoAlimTalkDAO kakaoAlimTalkDAO;
|
private KakaoAlimTalkDAO kakaoAlimTalkDAO;
|
||||||
|
|
||||||
|
@Resource(name="siteManagerDAO")
|
||||||
|
SiteManagerDAO siteManagerDAO;
|
||||||
|
|
||||||
|
@Resource(name="MsgHolidayDAO")
|
||||||
|
private MsgHolidayDAO msgHolidayDAO;
|
||||||
|
|
||||||
@Resource(name = "egovMjonMsgIdGnrService")
|
@Resource(name = "egovMjonMsgIdGnrService")
|
||||||
private EgovIdGnrService idgenMsgId;
|
private EgovIdGnrService idgenMsgId;
|
||||||
|
|
||||||
@ -95,6 +107,52 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
|
|
||||||
//카카오 알림톡 전송 리스트
|
//카카오 알림톡 전송 리스트
|
||||||
List<KakaoVO> kakaoAtSandList = new ArrayList<KakaoVO>();
|
List<KakaoVO> kakaoAtSandList = new ArrayList<KakaoVO>();
|
||||||
|
|
||||||
|
//야간스미싱 알림여부 정보 불러오기
|
||||||
|
JoinSettingVO joinSettingVO = siteManagerDAO.selectAdminNotiDetail();
|
||||||
|
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||||
|
|
||||||
|
System.out.println("++++++++++++++++++ holiSmishingNoti ::: "+holiSmishingNoti);
|
||||||
|
//스팸,스미싱이어도 딜레이없이 문자 전송을 처리할지 선택 상태값 변수
|
||||||
|
boolean spamSmishingPassStatus = false; //야간스미싱 알림여부가 활성화인 경우 false, 비활성화인경우 true 값을 가지도록 한다.
|
||||||
|
|
||||||
|
//야간스미싱알리 여부가 비활성화 인경우 무조건 문자를 즉시 보내도록 한다.
|
||||||
|
//현재는 평일, 주말, 휴일 상관없이 N 이면 30분 딜레이 없이 발송 처리하도록 함.
|
||||||
|
if(holiSmishingNoti.equals("N")) {
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
System.out.println("+++++++++ 스미싱을 패스 시킬건지 ::: "+smishingAlarmPassSts);
|
||||||
|
|
||||||
|
spamSmishingPassStatus = smishingAlarmPassSts;
|
||||||
|
}
|
||||||
|
|
||||||
|
String atSmishingYn = kakaoVO.getAtSmishingYn();
|
||||||
|
|
||||||
|
if(spamSmishingPassStatus) {
|
||||||
|
atSmishingYn = "N";
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("++++++++++++++++ spamSmishingPassStatus ::: "+spamSmishingPassStatus);
|
||||||
|
|
||||||
/** 카카오 알림톡 전송 리스트 생성 (시작)-------------------------------------------*/
|
/** 카카오 알림톡 전송 리스트 생성 (시작)-------------------------------------------*/
|
||||||
for(int i = 0; i < callToCnt; i++) {
|
for(int i = 0; i < callToCnt; i++) {
|
||||||
@ -159,7 +217,7 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(kakaoVO.getAtSmishingYn().equals("Y")) {
|
if(atSmishingYn.equals("Y")) {
|
||||||
String sandDate = "";
|
String sandDate = "";
|
||||||
|
|
||||||
if(kakaoVO.getDivideChk().equals("Y")) {
|
if(kakaoVO.getDivideChk().equals("Y")) {
|
||||||
@ -293,7 +351,14 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
mjonMsgVO.setBefCash(kakaoVO.getBefCash());
|
mjonMsgVO.setBefCash(kakaoVO.getBefCash());
|
||||||
mjonMsgVO.setBefPoint(kakaoVO.getBefPoint());
|
mjonMsgVO.setBefPoint(kakaoVO.getBefPoint());
|
||||||
mjonMsgVO.setKakaoSubMagOrgnlTxt(kakaoVO.getKakaoSubMagOrgnlTxt());
|
mjonMsgVO.setKakaoSubMagOrgnlTxt(kakaoVO.getKakaoSubMagOrgnlTxt());
|
||||||
mjonMsgVO.setAtDelayYn(kakaoVO.getAtSmishingYn());
|
|
||||||
|
//야간 스미싱 알림 비활성화인 경우 딜레이처리 안하도록 함 20240722 우영두 수정
|
||||||
|
if(spamSmishingPassStatus) {
|
||||||
|
mjonMsgVO.setAtDelayYn("N");
|
||||||
|
}else {
|
||||||
|
mjonMsgVO.setAtDelayYn(kakaoVO.getAtSmishingYn());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(kakaoVO.getBizJsonYn().equals("Y")) {
|
if(kakaoVO.getBizJsonYn().equals("Y")) {
|
||||||
@ -311,6 +376,20 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
if(msgGroupDataCnt < 1) {
|
if(msgGroupDataCnt < 1) {
|
||||||
mjonMsgDAO.insertGroupMsgData(mjonMsgVO);
|
mjonMsgDAO.insertGroupMsgData(mjonMsgVO);
|
||||||
kakaoAlimTalkDAO.insertKakaoSendPrice(kakaoVO);
|
kakaoAlimTalkDAO.insertKakaoSendPrice(kakaoVO);
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
//야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가
|
||||||
|
if(spamSmishingPassStatus && kakaoVO.getAtSmishingYn().equals("Y")) {
|
||||||
|
mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++++++++++++++++++++ spamSmishingPassStatus 알림톡 야간 스미싱 알림 데이터 입력 오류 발생 !!!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO);
|
mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -769,11 +769,18 @@ public class KakaoAlimTalkSendController {
|
|||||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||||
|
|
||||||
// SLACK 체크
|
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
|
||||||
//Slack으로 메세지 전송 처리
|
//야간 스미싱의심 알림이 활성화 되어있는 경우만 슬랙 알림 전송처리
|
||||||
MjonCommon comm = new MjonCommon();
|
if(holiSmishingNoti.equals("Y")) {
|
||||||
comm.getAdminKakaoAtSandSlack(kakaoVO);
|
|
||||||
|
// SLACK 체크
|
||||||
|
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||||
|
//Slack으로 메세지 전송 처리
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
comm.getAdminKakaoAtSandSlack(kakaoVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
234
src/main/java/itn/let/mjo/mjocommon/MjonHolidayApi.java
Normal file
234
src/main/java/itn/let/mjo/mjocommon/MjonHolidayApi.java
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
package itn.let.mjo.mjocommon;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.http.HttpResponse;
|
||||||
|
import org.apache.http.client.HttpClient;
|
||||||
|
import org.apache.http.client.methods.HttpGet;
|
||||||
|
import org.apache.http.impl.client.HttpClientBuilder;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
|
import org.json.simple.JSONArray;
|
||||||
|
import org.json.simple.JSONObject;
|
||||||
|
import org.json.simple.parser.JSONParser;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import com.ibm.icu.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class MjonHolidayApi {
|
||||||
|
|
||||||
|
public List<MsgHolidayVO> getYearHolidayApiData(MsgHolidayVO msgHolidayVO) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
String sendUrl = "http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getHoliDeInfo?";
|
||||||
|
String numOfRows = "100";
|
||||||
|
String serviceKey = "J8QXC%2BtOGvxwmH8blG7nmqIq%2B0MrkNrxTo1PCmFMRdtSldlGN8vWDW2NpZ2om8k9LctZT6oubfFt5dMmbEDeoA%3D%3D";
|
||||||
|
String solYear = msgHolidayVO.getSearchHoliYear();
|
||||||
|
String frstRegisterId = msgHolidayVO.getFrstRegisterId();
|
||||||
|
|
||||||
|
|
||||||
|
String strUrl = sendUrl + "&solYear=" + solYear + "&numOfRows=" + numOfRows + "&serviceKey=" + serviceKey;
|
||||||
|
|
||||||
|
HttpClient httpClient = HttpClientBuilder.create().build();
|
||||||
|
HttpGet httpGet = new HttpGet(strUrl);
|
||||||
|
httpGet.addHeader("Content-type", "application/json");
|
||||||
|
httpGet.addHeader("Accept", "application/json");
|
||||||
|
|
||||||
|
HttpResponse response = httpClient.execute(httpGet);
|
||||||
|
|
||||||
|
String result = "";
|
||||||
|
String statusCode = Integer.toString(response.getStatusLine().getStatusCode());
|
||||||
|
|
||||||
|
if(statusCode.equals("200")) {
|
||||||
|
|
||||||
|
result = EntityUtils.toString(response.getEntity());
|
||||||
|
|
||||||
|
result = new String(result.getBytes("iso-8859-1"));//한글 깨짐 현상이 있어서 변환 해줌.
|
||||||
|
//System.out.println(result);
|
||||||
|
JSONParser parser = new JSONParser();
|
||||||
|
Object obj = parser.parse(result);
|
||||||
|
JSONObject object = (JSONObject) obj;
|
||||||
|
|
||||||
|
Object objResp = parser.parse(object.get("response").toString());
|
||||||
|
JSONObject objectResp = (JSONObject) objResp;
|
||||||
|
|
||||||
|
Object objBody = parser.parse(objectResp.get("body").toString());
|
||||||
|
JSONObject objectBody = (JSONObject) objBody;
|
||||||
|
|
||||||
|
Object objItems = parser.parse(objectBody.get("items").toString());
|
||||||
|
JSONObject objectItems = (JSONObject) objItems;
|
||||||
|
|
||||||
|
JSONArray objItemArr = (JSONArray) objectItems.get("item");
|
||||||
|
|
||||||
|
List<MsgHolidayVO> msgHolidayVoList = new ArrayList<MsgHolidayVO>();
|
||||||
|
|
||||||
|
for(Object tmpObj : objItemArr) {
|
||||||
|
|
||||||
|
JSONObject tmpObject = (JSONObject) tmpObj;
|
||||||
|
MsgHolidayVO tmpMsgHolidayVO = new MsgHolidayVO();
|
||||||
|
|
||||||
|
String isHoli = tmpObject.get("isHoliday").toString();
|
||||||
|
String holiNm = tmpObject.get("dateName").toString();
|
||||||
|
String holiDate = tmpObject.get("locdate").toString();
|
||||||
|
|
||||||
|
|
||||||
|
if(isHoli.equals("Y")) {
|
||||||
|
|
||||||
|
tmpMsgHolidayVO.setHolidayNm(holiNm);
|
||||||
|
tmpMsgHolidayVO.setHolidayDate(holiDate);
|
||||||
|
tmpMsgHolidayVO.setHolidayType("1");
|
||||||
|
tmpMsgHolidayVO.setApiType("Y");
|
||||||
|
tmpMsgHolidayVO.setFrstRegisterId(frstRegisterId);
|
||||||
|
tmpMsgHolidayVO.setLastUpdusrId(frstRegisterId);
|
||||||
|
|
||||||
|
msgHolidayVoList.add(tmpMsgHolidayVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return msgHolidayVoList;
|
||||||
|
|
||||||
|
}else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("+++++++++++++++++++++++++++++++++ getYearHolidayApiData Method Error!!!!" + e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean getHolidaySmishingPassStatus(List<MsgAlarmSetVO> resultAlarmList, List<MsgHolidayVO> resultHolidayList) throws Exception{
|
||||||
|
|
||||||
|
boolean holiCompareSts = false; //공휴일 일치 날자가 있는지 여부
|
||||||
|
boolean smishingAlarmPassSts = false; //스미싱 알람 Pass 시킬건지 여부
|
||||||
|
|
||||||
|
//현재 날짜의 요일 구하기
|
||||||
|
Date currentDate = new Date();
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||||
|
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
int year = calendar.get(Calendar.YEAR);
|
||||||
|
int month = calendar.get(Calendar.MONTH);
|
||||||
|
int day = calendar.get(Calendar.DATE);
|
||||||
|
|
||||||
|
calendar.setTime(currentDate);
|
||||||
|
|
||||||
|
// 3. 텍스트 요일 구하기 (숫자)
|
||||||
|
int dayOfWeekNumber = calendar.get(Calendar.DAY_OF_WEEK);
|
||||||
|
// 4. 요일 출력 - 1은 일요일, 7은 토요일
|
||||||
|
//System.out.println(dayOfWeekNumber); // 7
|
||||||
|
|
||||||
|
|
||||||
|
//월에 대한 자릿수 처리 : 10미만은 앞에 0을 추가해주어 자릿수 맞춰준다.
|
||||||
|
String strMonth = "";
|
||||||
|
if((month +1) < 10) {
|
||||||
|
strMonth = "0" + Integer.toString(month +1);
|
||||||
|
}else {
|
||||||
|
strMonth = Integer.toString(month + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
String strNowDate = year + "-" + strMonth + "-" + day;
|
||||||
|
|
||||||
|
for(MsgHolidayVO holiVO : resultHolidayList) {
|
||||||
|
|
||||||
|
String holiDate = holiVO.getHolidayDate();
|
||||||
|
|
||||||
|
if(strNowDate.equals(holiDate)) {
|
||||||
|
|
||||||
|
//System.out.println("공휴일이 동일한 날이 있습니다.");
|
||||||
|
holiCompareSts = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for(MsgAlarmSetVO alarmVO : resultAlarmList) {
|
||||||
|
|
||||||
|
String alarmType = alarmVO.getAlarmType();
|
||||||
|
String startTime = alarmVO.getAlarmStart();
|
||||||
|
String sDate = strNowDate + " " + startTime;
|
||||||
|
|
||||||
|
String endTime = alarmVO.getAlarmEnd();
|
||||||
|
String eDate = strNowDate + " " + endTime;
|
||||||
|
|
||||||
|
Date nowDate = currentDate;
|
||||||
|
Date startDate = sdf.parse(sDate);
|
||||||
|
Date endDate = sdf.parse(eDate);
|
||||||
|
|
||||||
|
//평일인 경우 비교
|
||||||
|
if(dayOfWeekNumber > 1 && dayOfWeekNumber < 7 ) {
|
||||||
|
|
||||||
|
if(alarmType.equals("W")) {
|
||||||
|
|
||||||
|
int copStart = nowDate.compareTo(startDate);
|
||||||
|
int copEnd = nowDate.compareTo(endDate);
|
||||||
|
|
||||||
|
if(copStart > 0 && copEnd < 0) {
|
||||||
|
|
||||||
|
//System.out.println("평일 알림 일정 해당시간에 포함됩니다.");
|
||||||
|
smishingAlarmPassSts = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}else {
|
||||||
|
|
||||||
|
//주말인 경우 비교
|
||||||
|
if(alarmType.equals("E")) {
|
||||||
|
|
||||||
|
int copStart = nowDate.compareTo(startDate);
|
||||||
|
int copEnd = nowDate.compareTo(endDate);
|
||||||
|
|
||||||
|
if(copStart > 0 && copEnd < 0) {
|
||||||
|
|
||||||
|
//System.out.println("주말 알림 일정 해당시간에 포함됩니다.");
|
||||||
|
smishingAlarmPassSts = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//공휴일인 경우 비교
|
||||||
|
if(alarmType.equals("H")) {
|
||||||
|
|
||||||
|
if(holiCompareSts) {//오늘 날짜가 공휴일이면 실행
|
||||||
|
|
||||||
|
int copStart = nowDate.compareTo(startDate);
|
||||||
|
int copEnd = nowDate.compareTo(endDate);
|
||||||
|
|
||||||
|
if(copStart > 0 && copEnd < 0) {
|
||||||
|
|
||||||
|
//System.out.println("공휴일 알림 일정 해당시간에 포함됩니다.");
|
||||||
|
smishingAlarmPassSts = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return smishingAlarmPassSts;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -231,4 +231,9 @@ public interface MjonMsgService {
|
|||||||
|
|
||||||
MjonMsgVO selectApiSttstList(MjonMsgVO mjonMsgVO) throws Exception;
|
MjonMsgVO selectApiSttstList(MjonMsgVO mjonMsgVO) throws Exception;
|
||||||
|
|
||||||
|
int selectCallFromNumberChk(MjonMsgVO mjonMsgVO) throws Exception;
|
||||||
|
|
||||||
|
List<MjonMsgVO> selectMjonHoliMsgList(MjonMsgVO mjonMsgVO) throws Exception;
|
||||||
|
|
||||||
|
void updateHoliMsgResultYn(MjonMsgVO mjonMsgVO) throws Exception;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -208,6 +208,8 @@ public class MjonMsgVO extends ComDefaultVO{
|
|||||||
|
|
||||||
private String bookmarkYn = "N";
|
private String bookmarkYn = "N";
|
||||||
|
|
||||||
|
private String cancelResultYn = ""; //야간스미싱 알림에 따른 관리자 결과(회원이용정지 또는 문자발송 취소) 처리 여부 N:미처리, Y:처리완료
|
||||||
|
|
||||||
public String getSearchDelayMsgYn() {
|
public String getSearchDelayMsgYn() {
|
||||||
return searchDelayMsgYn;
|
return searchDelayMsgYn;
|
||||||
}
|
}
|
||||||
@ -1646,4 +1648,10 @@ public class MjonMsgVO extends ComDefaultVO{
|
|||||||
public void setBookmarkYn(String bookmarkYn) {
|
public void setBookmarkYn(String bookmarkYn) {
|
||||||
this.bookmarkYn = bookmarkYn;
|
this.bookmarkYn = bookmarkYn;
|
||||||
}
|
}
|
||||||
|
public String getCancelResultYn() {
|
||||||
|
return cancelResultYn;
|
||||||
|
}
|
||||||
|
public void setCancelResultYn(String cancelResultYn) {
|
||||||
|
this.cancelResultYn = cancelResultYn;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -94,6 +94,10 @@ public class MjonMsgDAO extends EgovAbstractDAO {
|
|||||||
insert("mjonMsgDAO.insertGroupMsgData", mjonMsgVO);
|
insert("mjonMsgDAO.insertGroupMsgData", mjonMsgVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void insertSpamPassMsgData(MjonMsgVO mjonMsgVO) throws Exception{
|
||||||
|
insert("mjonMsgDAO.insertSpamPassMsgData", mjonMsgVO);
|
||||||
|
}
|
||||||
|
|
||||||
public void updateMsgGroupDataForTotCntSum(MjonMsgVO mjonMsgVO) {
|
public void updateMsgGroupDataForTotCntSum(MjonMsgVO mjonMsgVO) {
|
||||||
|
|
||||||
update("mjonMsgDAO.updateMsgGroupDataForTotCntSum",mjonMsgVO);
|
update("mjonMsgDAO.updateMsgGroupDataForTotCntSum",mjonMsgVO);
|
||||||
@ -504,4 +508,18 @@ public class MjonMsgDAO extends EgovAbstractDAO {
|
|||||||
return (MjonMsgVO)select("mjonMsgDAO.selectApiSttstList", mjonMsgVO);
|
return (MjonMsgVO)select("mjonMsgDAO.selectApiSttstList", mjonMsgVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int selectCallFromNumberChk(MjonMsgVO mjonMsgVO) throws Exception{
|
||||||
|
|
||||||
|
return (int) select("mjonMsgDAO.selectCallFromNumberChk", mjonMsgVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public List<MjonMsgVO> selectMjonHoliMsgList(MjonMsgVO mjonMsgVO) throws Exception{
|
||||||
|
return (List<MjonMsgVO>)list("mjonMsgDAO.selectMjonHoliMsgList", mjonMsgVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateHoliMsgResultYn(MjonMsgVO mjonMsgVO) throws Exception{
|
||||||
|
update("mjonMsgDAO.updateHoliMsgResultYn", mjonMsgVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import itn.let.mjo.pay.service.impl.MjonPayDAO;
|
|||||||
import itn.let.mjo.reservmsg.service.MjonResvMsgVO;
|
import itn.let.mjo.reservmsg.service.MjonResvMsgVO;
|
||||||
import itn.let.mjo.reservmsg.service.impl.MjonReservMsgDAO;
|
import itn.let.mjo.reservmsg.service.impl.MjonReservMsgDAO;
|
||||||
import itn.let.sym.site.service.JoinSettingVO;
|
import itn.let.sym.site.service.JoinSettingVO;
|
||||||
|
import itn.let.uat.uia.service.impl.MberManageDAO;
|
||||||
import itn.let.uss.umt.service.AdmProcHstryVO;
|
import itn.let.uss.umt.service.AdmProcHstryVO;
|
||||||
import itn.let.uss.umt.service.impl.AdmProcHstryDAO;
|
import itn.let.uss.umt.service.impl.AdmProcHstryDAO;
|
||||||
|
|
||||||
@ -64,6 +65,10 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
|
|||||||
@Resource(name="MjonReservMsgDAO")
|
@Resource(name="MjonReservMsgDAO")
|
||||||
private MjonReservMsgDAO mjonReservMsgDAO;
|
private MjonReservMsgDAO mjonReservMsgDAO;
|
||||||
|
|
||||||
|
/** mberManageDAO */
|
||||||
|
@Resource(name="mberManageDAO")
|
||||||
|
private MberManageDAO mberManageDAO;
|
||||||
|
|
||||||
@Resource(name="mjonPayDAO")
|
@Resource(name="mjonPayDAO")
|
||||||
private MjonPayDAO mjonPayDAO;
|
private MjonPayDAO mjonPayDAO;
|
||||||
|
|
||||||
@ -1158,4 +1163,21 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
|
|||||||
public MjonMsgVO selectApiSttstList(MjonMsgVO mjonMsgVO) throws Exception {
|
public MjonMsgVO selectApiSttstList(MjonMsgVO mjonMsgVO) throws Exception {
|
||||||
return mjonMsgDAO.selectApiSttstList(mjonMsgVO);
|
return mjonMsgDAO.selectApiSttstList(mjonMsgVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int selectCallFromNumberChk(MjonMsgVO mjonMsgVO) throws Exception{
|
||||||
|
|
||||||
|
return mjonMsgDAO.selectCallFromNumberChk(mjonMsgVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MjonMsgVO> selectMjonHoliMsgList(MjonMsgVO mjonMsgVO) throws Exception{
|
||||||
|
return mjonMsgDAO.selectMjonHoliMsgList(mjonMsgVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateHoliMsgResultYn(MjonMsgVO mjonMsgVO) throws Exception{
|
||||||
|
mjonMsgDAO.updateHoliMsgResultYn(mjonMsgVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,6 +72,8 @@ import itn.let.mjo.msgsent.service.MjonMsgRecvTestVO;
|
|||||||
import itn.let.mjo.msgsent.service.MjonMsgSentTestService;
|
import itn.let.mjo.msgsent.service.MjonMsgSentTestService;
|
||||||
import itn.let.mjo.msgsent.service.MjonMsgSentTestVO;
|
import itn.let.mjo.msgsent.service.MjonMsgSentTestVO;
|
||||||
import itn.let.mjo.pay.service.MjonPayService;
|
import itn.let.mjo.pay.service.MjonPayService;
|
||||||
|
import itn.let.mjo.payva.service.VacsVactService;
|
||||||
|
import itn.let.mjo.payva.service.VacsVactVO;
|
||||||
import itn.let.mjo.reservmsg.service.MjonReservMsgService;
|
import itn.let.mjo.reservmsg.service.MjonReservMsgService;
|
||||||
import itn.let.mjo.reservmsg.service.MjonResvMsgVO;
|
import itn.let.mjo.reservmsg.service.MjonResvMsgVO;
|
||||||
import itn.let.sts.com.StatsVO;
|
import itn.let.sts.com.StatsVO;
|
||||||
@ -161,6 +163,10 @@ public class MjonMsgController {
|
|||||||
@Resource(name = "EgovFileMngService")
|
@Resource(name = "EgovFileMngService")
|
||||||
private EgovFileMngService fileService;
|
private EgovFileMngService fileService;
|
||||||
|
|
||||||
|
//전용계좌 서비스
|
||||||
|
@Resource(name = "vacsVactService")
|
||||||
|
private VacsVactService vacsVactService;
|
||||||
|
|
||||||
//배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
|
//배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
|
||||||
private String[][] sendMsgExcelValue ={
|
private String[][] sendMsgExcelValue ={
|
||||||
{"0" ,"번호" , "1" , "" },
|
{"0" ,"번호" , "1" , "" },
|
||||||
@ -1174,10 +1180,10 @@ public class MjonMsgController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 문자전송 리스트
|
* 문자예약전송 리스트
|
||||||
* @param searchVO
|
* @param searchVO
|
||||||
* @param model
|
* @param model
|
||||||
* @return uss/ion/msg/ReserveNumberList.do(에약 문자리스트)
|
* @return /uss/ion/msg/ReserveNumberList.do(예약 문자리스트)
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value= {"/uss/ion/msg/ReserveNumberList.do"})
|
@RequestMapping(value= {"/uss/ion/msg/ReserveNumberList.do"})
|
||||||
@ -1245,6 +1251,267 @@ public class MjonMsgController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 야간 스미싱 문자전송 리스트
|
||||||
|
* @param searchVO
|
||||||
|
* @param model
|
||||||
|
* @return uss/ion/msg/selectHoliMsgList.do
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value= {"/uss/ion/msg/selectHoliMsgList.do"})
|
||||||
|
public String selectHoliMsgList(@ModelAttribute("searchVO") MjonMsgVO searchVO,
|
||||||
|
HttpServletRequest request ,
|
||||||
|
ModelMap model) throws Exception{
|
||||||
|
//value 값 가져오기
|
||||||
|
// String pattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
|
||||||
|
|
||||||
|
/** pageing */
|
||||||
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
|
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
|
||||||
|
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
|
||||||
|
paginationInfo.setPageSize(searchVO.getPageSize());
|
||||||
|
|
||||||
|
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||||
|
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||||
|
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
|
||||||
|
if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||||
|
searchVO.setSearchSortCnd("FRST_REGIST_PNTTM");
|
||||||
|
searchVO.setSearchSortOrd("desc");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 2024.01.26 우영두 변경
|
||||||
|
* 기존 한달전 시작일자 지정에서 하루전으로 변경
|
||||||
|
* 데이터 양이 너무 많이 검색되어 하루전으로 변경해 달라는 기획팀 요청
|
||||||
|
* */
|
||||||
|
String toDay = MJUtil.getTodayDate(); //오늘
|
||||||
|
String beforeMonthDay = MJUtil.getBefore1DayDate(); //하루 전
|
||||||
|
if (null == searchVO.getNtceBgnde() || searchVO.getNtceBgnde().equals("")) {
|
||||||
|
searchVO.setNtceBgnde(beforeMonthDay);
|
||||||
|
searchVO.setNtceEndde(toDay);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MjonMsgVO> resultList = new ArrayList<MjonMsgVO>();
|
||||||
|
resultList = mjonMsgService.selectMjonHoliMsgList(searchVO);
|
||||||
|
model.addAttribute("resultList", resultList);
|
||||||
|
|
||||||
|
//문자발송 실패 결과 코드정보 리스트 불러오기
|
||||||
|
MjonMsgResultCodeVO mjonMsgResultCodeVO = new MjonMsgResultCodeVO();
|
||||||
|
List<MjonMsgResultCodeVO> resultMsgCodeList = mjonMsgService.selectMsgResultCodeAllList(mjonMsgResultCodeVO);
|
||||||
|
|
||||||
|
model.addAttribute("resultMsgCodeList", resultMsgCodeList);
|
||||||
|
|
||||||
|
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MjonMsgVO)resultList.get(0)).getTotCnt() : 0);
|
||||||
|
model.addAttribute("paginationInfo", paginationInfo);
|
||||||
|
|
||||||
|
return "/uss/ion/msg/SendHoliMsgList";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 야간 스미싱 문자전송 사용자 이용정지 및 예약문자 취소 처리
|
||||||
|
* @param searchVO
|
||||||
|
* @param model
|
||||||
|
* @return uss/ion/msg/updateUserMsgData.do
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value= {"/uss/ion/msg/updateUserMsgData.do"})
|
||||||
|
public String updateUserMsgData(@RequestParam("checkedIdForDel") String checkedIdForUpt,
|
||||||
|
HttpServletRequest request ,
|
||||||
|
ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
|
||||||
|
String adminId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
//파라미터 데이터 파싱해주기
|
||||||
|
String[] splitCheckId = checkedIdForUpt.split(",");
|
||||||
|
|
||||||
|
if(splitCheckId != null && splitCheckId.length > 0) {
|
||||||
|
|
||||||
|
for(String checkId : splitCheckId) {
|
||||||
|
|
||||||
|
if(checkId != null && checkId.length() > 0) { //개별 데이터에 대해서 예약 문자 취소 및 회원 이용정지
|
||||||
|
|
||||||
|
String[] splitUserMsg = checkId.split("§");
|
||||||
|
|
||||||
|
if(splitUserMsg != null && splitUserMsg.length > 0) {
|
||||||
|
|
||||||
|
MjonResvMsgVO mjonResvMsgVO = new MjonResvMsgVO();
|
||||||
|
|
||||||
|
|
||||||
|
String mberId = splitUserMsg[0];
|
||||||
|
String msgGroupId = splitUserMsg[1];
|
||||||
|
String reserveYn = splitUserMsg[2];
|
||||||
|
|
||||||
|
mjonResvMsgVO.setUserId(mberId);//회원 아이디
|
||||||
|
mjonResvMsgVO.setMsgGroupId(msgGroupId);//취소 문자 그룹 아이디
|
||||||
|
|
||||||
|
if(reserveYn.equals("Y")) {
|
||||||
|
|
||||||
|
int count = mjonMsgService.deleteMsgDelaySendCancelData(mjonResvMsgVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
MberManageVO mberManageVO = new MberManageVO();
|
||||||
|
|
||||||
|
//이용자 상태를 변경하는 관리자 아이디 입력
|
||||||
|
mberManageVO.setMberSttusUpdusrId(adminId);
|
||||||
|
mberManageVO.setMberId(mberId);
|
||||||
|
|
||||||
|
//회원 정보 조회
|
||||||
|
MberManageVO resultMberVO = mberManageService.selectMber(mberId);
|
||||||
|
|
||||||
|
if(resultMberVO != null) { //회원 정보가 있으면
|
||||||
|
|
||||||
|
//회원상태가 이용정지 상태가 아니면
|
||||||
|
if(!resultMberVO.getMberSttus().equals("B")) {
|
||||||
|
|
||||||
|
//회원 상태 변경하기
|
||||||
|
int resultCnt = 0;
|
||||||
|
mberManageVO.setMberSttus("B"); //이용정지 상태로 변경
|
||||||
|
mberManageVO.setSmiMemo("야간 스미싱의심 문자 발송으로 이용정지 처리");
|
||||||
|
resultCnt = mberManageService.updateUserMsttus(mberManageVO);
|
||||||
|
|
||||||
|
if(resultCnt > 0) {
|
||||||
|
|
||||||
|
if(mberManageVO.getMberSttus().equals("B")) { //회원 이용정지를 시키는 경우 가상계좌도 함께 해지 시킨다.
|
||||||
|
|
||||||
|
//가상계좌 보유 여부 체크
|
||||||
|
//대상 리스트 가져오기
|
||||||
|
VacsVactVO vacsVactVO = new VacsVactVO();
|
||||||
|
vacsVactVO.setMberId(mberId);
|
||||||
|
List<VacsVactVO> myBankList = vacsVactService.selectBankAccountByUserId(vacsVactVO); //내가 할당받은 전용계좌 리스트 받아오기
|
||||||
|
|
||||||
|
int vacsCnt = myBankList.size();
|
||||||
|
|
||||||
|
//가상계좌 해지 처리
|
||||||
|
if(vacsCnt > 0) {
|
||||||
|
|
||||||
|
for(int i=0; i < vacsCnt; i++) {
|
||||||
|
|
||||||
|
String acctNo = myBankList.get(i).getAcctNo();
|
||||||
|
|
||||||
|
VacsVactVO vacsVO = new VacsVactVO();
|
||||||
|
vacsVO.setMberId(mberId); //회원 아이디
|
||||||
|
//계좌 해지일자 생성
|
||||||
|
Date now = new Date();
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||||
|
String closeDate = sdf.format(now);
|
||||||
|
vacsVO.setCloseIl(closeDate); //해지일자
|
||||||
|
vacsVO.setAcctNo(acctNo); //해지계좌번호
|
||||||
|
|
||||||
|
//계좌 상태 셋팅 0: 미할당, 1:할당, 9: 해지
|
||||||
|
vacsVO.setAcctSt("9");
|
||||||
|
int blockCnt = vacsVactService.updateVacsAccountUsrBlock(vacsVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 관리자 메모
|
||||||
|
String memo = "";
|
||||||
|
memo = "회원상태 변경 : 이용정지, 사유 : 야간 스미싱의심 문자 발송으로 이용정지 처리";
|
||||||
|
mberManageVO.setMberId(mberId);
|
||||||
|
mberManageVO.setMemoCn(memo);
|
||||||
|
mberManageVO.setFrstRegisterId(adminId);
|
||||||
|
mberManageService.insertMberMemo(mberManageVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}//회원 이용정지 처리 종료
|
||||||
|
|
||||||
|
//야간스미싱 알림 상태 처리 완료로 변경
|
||||||
|
MjonMsgVO mjonMsgVO = new MjonMsgVO();
|
||||||
|
mjonMsgVO.setUserId(mberId); //사용자 아이디
|
||||||
|
mjonMsgVO.setMsgGroupId(msgGroupId); //문자 발송 그룹 아이디
|
||||||
|
mjonMsgVO.setLastUpdusrId(adminId); //변경 관리자 아이디
|
||||||
|
mjonMsgService.updateHoliMsgResultYn(mjonMsgVO);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++ updateUserMsgData Controller Error !!! ");
|
||||||
|
}
|
||||||
|
|
||||||
|
return "redirect:/uss/ion/msg/selectHoliMsgList.do";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 야간 스미싱 문자전송 사용자 이용정지 및 예약문자 취소 처리
|
||||||
|
* @param searchVO
|
||||||
|
* @param model
|
||||||
|
* @return /uss/ion/msg/updateMsgStatusData.do
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value= {"/uss/ion/msg/updateMsgStatusData.do"})
|
||||||
|
public String updateMsgStatusData(@RequestParam("checkedIdForDel") String checkedIdForUpt,
|
||||||
|
HttpServletRequest request ,
|
||||||
|
ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
|
||||||
|
String adminId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
//파라미터 데이터 파싱해주기
|
||||||
|
String[] splitCheckId = checkedIdForUpt.split(",");
|
||||||
|
|
||||||
|
if(splitCheckId != null && splitCheckId.length > 0) {
|
||||||
|
|
||||||
|
for(String checkId : splitCheckId) {
|
||||||
|
|
||||||
|
if(checkId != null && checkId.length() > 0) { //개별 데이터에 대해서 알림 미처리 문자에 대한 상태값만 완료로 변경, 회원이용정지 및 예약문자취소는 처리 안함
|
||||||
|
|
||||||
|
String[] splitUserMsg = checkId.split("§");
|
||||||
|
|
||||||
|
if(splitUserMsg != null && splitUserMsg.length > 0) {
|
||||||
|
|
||||||
|
String mberId = splitUserMsg[0];
|
||||||
|
String msgGroupId = splitUserMsg[1];
|
||||||
|
|
||||||
|
//야간스미싱 알림 상태 처리 완료로 변경
|
||||||
|
MjonMsgVO mjonMsgVO = new MjonMsgVO();
|
||||||
|
mjonMsgVO.setUserId(mberId); //사용자 아이디
|
||||||
|
mjonMsgVO.setMsgGroupId(msgGroupId); //문자 발송 그룹 아이디
|
||||||
|
mjonMsgVO.setLastUpdusrId(adminId); //변경 관리자 아이디
|
||||||
|
mjonMsgService.updateHoliMsgResultYn(mjonMsgVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++ updateMsgStatusData Controller Error !!! ");
|
||||||
|
}
|
||||||
|
|
||||||
|
return "redirect:/uss/ion/msg/selectHoliMsgList.do";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 문자전송 리스트
|
* 문자전송 리스트
|
||||||
* @param searchVO
|
* @param searchVO
|
||||||
|
|||||||
@ -69,6 +69,7 @@ import itn.let.mjo.addr.service.AddrVO;
|
|||||||
import itn.let.mjo.event.service.MjonEventService;
|
import itn.let.mjo.event.service.MjonEventService;
|
||||||
import itn.let.mjo.event.service.MjonEventVO;
|
import itn.let.mjo.event.service.MjonEventVO;
|
||||||
import itn.let.mjo.mjocommon.MjonCommon;
|
import itn.let.mjo.mjocommon.MjonCommon;
|
||||||
|
import itn.let.mjo.mjocommon.MjonHolidayApi;
|
||||||
import itn.let.mjo.msg.service.MjonMsgService;
|
import itn.let.mjo.msg.service.MjonMsgService;
|
||||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||||
import itn.let.mjo.msgcampain.service.MjonCandidateService;
|
import itn.let.mjo.msgcampain.service.MjonCandidateService;
|
||||||
@ -77,6 +78,9 @@ import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
|||||||
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||||
import itn.let.mjo.msgdata.service.PhoneVO;
|
import itn.let.mjo.msgdata.service.PhoneVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayService;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
import itn.let.mjo.pay.service.MjonPayService;
|
import itn.let.mjo.pay.service.MjonPayService;
|
||||||
import itn.let.mjo.pay.service.MjonPayVO;
|
import itn.let.mjo.pay.service.MjonPayVO;
|
||||||
import itn.let.mjo.spammsg.service.MjonSpamMsgService;
|
import itn.let.mjo.spammsg.service.MjonSpamMsgService;
|
||||||
@ -172,6 +176,9 @@ public class MjonMsgCampainDataController {
|
|||||||
@Resource(name = "mberGrdService")
|
@Resource(name = "mberGrdService")
|
||||||
MberGrdService mberGrdService;
|
MberGrdService mberGrdService;
|
||||||
|
|
||||||
|
@Resource(name = "MsgHolidayService")
|
||||||
|
private MsgHolidayService msgHolidayService;
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainDataController.class);
|
private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainDataController.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2006,6 +2013,18 @@ public class MjonMsgCampainDataController {
|
|||||||
|
|
||||||
mjonMsgVO.setUserId(userId);
|
mjonMsgVO.setUserId(userId);
|
||||||
|
|
||||||
|
//발신번호가 등록된 유효한 번호인지 확인
|
||||||
|
int sendCallFromCnt = mjonMsgService.selectCallFromNumberChk(mjonMsgVO);
|
||||||
|
|
||||||
|
if(sendCallFromCnt < 1) {
|
||||||
|
|
||||||
|
modelAndView.addObject("message", "등록된 발신번호를 찾을 수 없습니다.");
|
||||||
|
modelAndView.addObject("result", "loginFail");
|
||||||
|
modelAndView.addObject("resultSts", resultSts);
|
||||||
|
return modelAndView;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 회원 정지된 상태이면 문자 발송이 안되도록 처리함
|
* 회원 정지된 상태이면 문자 발송이 안되도록 처리함
|
||||||
* 현재 로그인 세션도 만료 처리함
|
* 현재 로그인 세션도 만료 처리함
|
||||||
@ -3174,16 +3193,52 @@ public class MjonMsgCampainDataController {
|
|||||||
// 법인폰 알람여부 체크
|
// 법인폰 알람여부 체크
|
||||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||||
|
|
||||||
|
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||||
|
|
||||||
// SMS 체크
|
// SMS 체크
|
||||||
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
||||||
getAdminPhoneSendMsgData(mjonMsgVO);
|
getAdminPhoneSendMsgData(mjonMsgVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
// SLACK 체크
|
//야간 스미싱의심 알림이 활성화 되어있는 경우
|
||||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
if(holiSmishingNoti.equals("Y")) {
|
||||||
//Slack으로 메세지 전송 처리
|
// SLACK 체크
|
||||||
MjonCommon comm = new MjonCommon();
|
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||||
comm.getAdminSandSlack(mjonMsgVO);
|
//Slack으로 메세지 전송 처리
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
comm.getAdminSandSlack(mjonMsgVO);
|
||||||
|
}
|
||||||
|
}else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X)
|
||||||
|
|
||||||
|
MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO();
|
||||||
|
|
||||||
|
msgAlarmSetVO.setUseYn("Y");
|
||||||
|
msgAlarmSetVO.setFirstIndex(0);
|
||||||
|
|
||||||
|
List<MsgAlarmSetVO> resultAlarmList = msgHolidayService.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 = msgHolidayService.selectMsgHolidayList(msgHolidayVO);
|
||||||
|
|
||||||
|
MjonHolidayApi mjonHolidayApi = new MjonHolidayApi();
|
||||||
|
|
||||||
|
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
|
||||||
|
|
||||||
|
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
||||||
|
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
comm.getAdminSandSlack(mjonMsgVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -41,6 +41,7 @@ import itn.let.mjo.addr.service.AddrVO;
|
|||||||
import itn.let.mjo.event.service.MjonEventService;
|
import itn.let.mjo.event.service.MjonEventService;
|
||||||
import itn.let.mjo.event.service.MjonEventVO;
|
import itn.let.mjo.event.service.MjonEventVO;
|
||||||
import itn.let.mjo.mjocommon.MjonCommon;
|
import itn.let.mjo.mjocommon.MjonCommon;
|
||||||
|
import itn.let.mjo.mjocommon.MjonHolidayApi;
|
||||||
import itn.let.mjo.msg.service.MjonMsgService;
|
import itn.let.mjo.msg.service.MjonMsgService;
|
||||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||||
import itn.let.mjo.msgcampain.service.MjonCandidateService;
|
import itn.let.mjo.msgcampain.service.MjonCandidateService;
|
||||||
@ -48,6 +49,9 @@ import itn.let.mjo.msgcampain.service.MjonCandidateVO;
|
|||||||
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayService;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
import itn.let.mjo.pay.service.MjonPayService;
|
import itn.let.mjo.pay.service.MjonPayService;
|
||||||
import itn.let.mjo.spammsg.service.MjonSpamMsgService;
|
import itn.let.mjo.spammsg.service.MjonSpamMsgService;
|
||||||
import itn.let.mjo.symbol.service.MjonSymbolService;
|
import itn.let.mjo.symbol.service.MjonSymbolService;
|
||||||
@ -143,6 +147,8 @@ public class MjonMsgCampainHGDataController {
|
|||||||
@Resource(name = "mberGrdService")
|
@Resource(name = "mberGrdService")
|
||||||
MberGrdService mberGrdService;
|
MberGrdService mberGrdService;
|
||||||
|
|
||||||
|
@Resource(name = "MsgHolidayService")
|
||||||
|
private MsgHolidayService msgHolidayService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 선거 문자 대량 발송 화면
|
* 선거 문자 대량 발송 화면
|
||||||
@ -578,6 +584,18 @@ public class MjonMsgCampainHGDataController {
|
|||||||
|
|
||||||
mjonMsgVO.setUserId(userId);
|
mjonMsgVO.setUserId(userId);
|
||||||
|
|
||||||
|
//발신번호가 등록된 유효한 번호인지 확인
|
||||||
|
int sendCallFromCnt = mjonMsgService.selectCallFromNumberChk(mjonMsgVO);
|
||||||
|
|
||||||
|
if(sendCallFromCnt < 1) {
|
||||||
|
|
||||||
|
modelAndView.addObject("message", "등록된 발신번호를 찾을 수 없습니다.");
|
||||||
|
modelAndView.addObject("result", "loginFail");
|
||||||
|
modelAndView.addObject("resultSts", resultSts);
|
||||||
|
return modelAndView;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 회원 정지된 상태이면 문자 발송이 안되도록 처리함
|
* 회원 정지된 상태이면 문자 발송이 안되도록 처리함
|
||||||
* 현재 로그인 세션도 만료 처리함
|
* 현재 로그인 세션도 만료 처리함
|
||||||
@ -873,6 +891,8 @@ public class MjonMsgCampainHGDataController {
|
|||||||
|
|
||||||
System.out.println("++++++++++++++ 중복제거 후 리스트 갯수 ::: "+addrDupListLen);
|
System.out.println("++++++++++++++ 중복제거 후 리스트 갯수 ::: "+addrDupListLen);
|
||||||
|
|
||||||
|
mjonMsgVO.setTotalCallCnt(addrDupListLen);
|
||||||
|
|
||||||
//수신자 총 수 * 단가 를 통해 총 결제 금액 계산
|
//수신자 총 수 * 단가 를 통해 총 결제 금액 계산
|
||||||
int tmpTotCallCnt = addrDupListLen; //mjonMsgVO.getCallToList().length;
|
int tmpTotCallCnt = addrDupListLen; //mjonMsgVO.getCallToList().length;
|
||||||
float tmpTotPrice = tmpTotCallCnt * tmpEachPrice;
|
float tmpTotPrice = tmpTotCallCnt * tmpEachPrice;
|
||||||
@ -1082,17 +1102,53 @@ public class MjonMsgCampainHGDataController {
|
|||||||
// 법인폰 알람여부 체크
|
// 법인폰 알람여부 체크
|
||||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||||
|
|
||||||
|
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||||
|
|
||||||
// SMS 체크
|
// SMS 체크
|
||||||
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
||||||
MjonMsgCampainDataController mcdController = new MjonMsgCampainDataController();
|
MjonMsgCampainDataController mcdController = new MjonMsgCampainDataController();
|
||||||
mcdController.getAdminPhoneSendMsgData(mjonMsgVO);
|
mcdController.getAdminPhoneSendMsgData(mjonMsgVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
// SLACK 체크
|
//야간 스미싱의심 알림이 활성화 되어있는 경우만 슬랙 알림 전송처리
|
||||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
if(holiSmishingNoti.equals("Y")) {
|
||||||
//Slack으로 메세지 전송 처리
|
// SLACK 체크
|
||||||
MjonCommon comm = new MjonCommon();
|
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||||
comm.getAdminSandSlack(mjonMsgVO);
|
//Slack으로 메세지 전송 처리
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
comm.getAdminSandSlack(mjonMsgVO);
|
||||||
|
}
|
||||||
|
}else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X)
|
||||||
|
|
||||||
|
MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO();
|
||||||
|
|
||||||
|
msgAlarmSetVO.setUseYn("Y");
|
||||||
|
msgAlarmSetVO.setFirstIndex(0);
|
||||||
|
|
||||||
|
List<MsgAlarmSetVO> resultAlarmList = msgHolidayService.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 = msgHolidayService.selectMsgHolidayList(msgHolidayVO);
|
||||||
|
|
||||||
|
MjonHolidayApi mjonHolidayApi = new MjonHolidayApi();
|
||||||
|
|
||||||
|
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
|
||||||
|
|
||||||
|
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
||||||
|
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
comm.getAdminSandSlack(mjonMsgVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -64,6 +64,7 @@ import itn.let.mjo.addr.service.AddrVO;
|
|||||||
import itn.let.mjo.event.service.MjonEventService;
|
import itn.let.mjo.event.service.MjonEventService;
|
||||||
import itn.let.mjo.event.service.MjonEventVO;
|
import itn.let.mjo.event.service.MjonEventVO;
|
||||||
import itn.let.mjo.mjocommon.MjonCommon;
|
import itn.let.mjo.mjocommon.MjonCommon;
|
||||||
|
import itn.let.mjo.mjocommon.MjonHolidayApi;
|
||||||
import itn.let.mjo.msg.service.MjonMsgService;
|
import itn.let.mjo.msg.service.MjonMsgService;
|
||||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||||
import itn.let.mjo.msgcampain.service.MjonCandidateService;
|
import itn.let.mjo.msgcampain.service.MjonCandidateService;
|
||||||
@ -73,6 +74,9 @@ import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
|||||||
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||||
import itn.let.mjo.msgdata.service.PhoneVO;
|
import itn.let.mjo.msgdata.service.PhoneVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayService;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
import itn.let.mjo.pay.service.MjonPayService;
|
import itn.let.mjo.pay.service.MjonPayService;
|
||||||
import itn.let.mjo.spammsg.service.MjonSpamMsgService;
|
import itn.let.mjo.spammsg.service.MjonSpamMsgService;
|
||||||
import itn.let.mjo.symbol.service.MjonSymbolService;
|
import itn.let.mjo.symbol.service.MjonSymbolService;
|
||||||
@ -167,6 +171,9 @@ public class MjonMsgCampainTWDataController {
|
|||||||
@Resource(name = "mberGrdService")
|
@Resource(name = "mberGrdService")
|
||||||
MberGrdService mberGrdService;
|
MberGrdService mberGrdService;
|
||||||
|
|
||||||
|
@Resource(name = "MsgHolidayService")
|
||||||
|
private MsgHolidayService msgHolidayService;
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainTWDataController.class);
|
private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainTWDataController.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -930,6 +937,18 @@ public class MjonMsgCampainTWDataController {
|
|||||||
|
|
||||||
mjonMsgVO.setUserId(userId);
|
mjonMsgVO.setUserId(userId);
|
||||||
|
|
||||||
|
//발신번호가 등록된 유효한 번호인지 확인
|
||||||
|
int sendCallFromCnt = mjonMsgService.selectCallFromNumberChk(mjonMsgVO);
|
||||||
|
|
||||||
|
if(sendCallFromCnt < 1) {
|
||||||
|
|
||||||
|
modelAndView.addObject("message", "등록된 발신번호를 찾을 수 없습니다.");
|
||||||
|
modelAndView.addObject("result", "loginFail");
|
||||||
|
modelAndView.addObject("resultSts", resultSts);
|
||||||
|
return modelAndView;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 회원 정지된 상태이면 문자 발송이 안되도록 처리함
|
* 회원 정지된 상태이면 문자 발송이 안되도록 처리함
|
||||||
* 현재 로그인 세션도 만료 처리함
|
* 현재 로그인 세션도 만료 처리함
|
||||||
@ -2057,17 +2076,53 @@ public class MjonMsgCampainTWDataController {
|
|||||||
// 법인폰 알람여부 체크
|
// 법인폰 알람여부 체크
|
||||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||||
|
|
||||||
|
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||||
|
|
||||||
// SMS 체크
|
// SMS 체크
|
||||||
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
||||||
MjonMsgCampainDataController mjonCampDataController = new MjonMsgCampainDataController();
|
MjonMsgCampainDataController mjonCampDataController = new MjonMsgCampainDataController();
|
||||||
mjonCampDataController.getAdminPhoneSendMsgData(mjonMsgVO);
|
mjonCampDataController.getAdminPhoneSendMsgData(mjonMsgVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
// SLACK 체크
|
//야간 스미싱의심 알림이 활성화 되어있는 경우만 슬랙 알림 전송처리
|
||||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
if(holiSmishingNoti.equals("Y")) {
|
||||||
//Slack으로 메세지 전송 처리
|
// SLACK 체크
|
||||||
MjonCommon comm = new MjonCommon();
|
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||||
comm.getAdminSandSlack(mjonMsgVO);
|
//Slack으로 메세지 전송 처리
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
comm.getAdminSandSlack(mjonMsgVO);
|
||||||
|
}
|
||||||
|
}else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X)
|
||||||
|
|
||||||
|
MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO();
|
||||||
|
|
||||||
|
msgAlarmSetVO.setUseYn("Y");
|
||||||
|
msgAlarmSetVO.setFirstIndex(0);
|
||||||
|
|
||||||
|
List<MsgAlarmSetVO> resultAlarmList = msgHolidayService.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 = msgHolidayService.selectMsgHolidayList(msgHolidayVO);
|
||||||
|
|
||||||
|
MjonHolidayApi mjonHolidayApi = new MjonHolidayApi();
|
||||||
|
|
||||||
|
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
|
||||||
|
|
||||||
|
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
||||||
|
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
comm.getAdminSandSlack(mjonMsgVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import itn.let.mjo.addr.service.AddrVO;
|
|||||||
import itn.let.mjo.event.service.MjonEventService;
|
import itn.let.mjo.event.service.MjonEventService;
|
||||||
import itn.let.mjo.event.service.MjonEventVO;
|
import itn.let.mjo.event.service.MjonEventVO;
|
||||||
import itn.let.mjo.mjocommon.MjonCommon;
|
import itn.let.mjo.mjocommon.MjonCommon;
|
||||||
|
import itn.let.mjo.mjocommon.MjonHolidayApi;
|
||||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||||
import itn.let.mjo.msg.service.impl.MjonMsgDAO;
|
import itn.let.mjo.msg.service.impl.MjonMsgDAO;
|
||||||
import itn.let.mjo.msgagent.service.MjonMsgAgentStsService;
|
import itn.let.mjo.msgagent.service.MjonMsgAgentStsService;
|
||||||
@ -28,10 +29,14 @@ import itn.let.mjo.msgagent.service.impl.MjonMsgAgentStsDAO;
|
|||||||
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.impl.MsgHolidayDAO;
|
||||||
import itn.let.mjo.pay.service.MjonPayService;
|
import itn.let.mjo.pay.service.MjonPayService;
|
||||||
import itn.let.mjo.pay.service.MjonPayVO;
|
import itn.let.mjo.pay.service.MjonPayVO;
|
||||||
import itn.let.mjo.pay.service.impl.MjonPayDAO;
|
import itn.let.mjo.pay.service.impl.MjonPayDAO;
|
||||||
import itn.let.sym.site.service.JoinSettingVO;
|
import itn.let.sym.site.service.JoinSettingVO;
|
||||||
|
import itn.let.sym.site.service.impl.SiteManagerDAO;
|
||||||
import itn.let.uat.uia.web.SendLogVO;
|
import itn.let.uat.uia.web.SendLogVO;
|
||||||
import itn.let.uss.umt.service.MberManageVO;
|
import itn.let.uss.umt.service.MberManageVO;
|
||||||
|
|
||||||
@ -50,6 +55,12 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
@Resource(name="mjonMsgAgentStsDAO")
|
@Resource(name="mjonMsgAgentStsDAO")
|
||||||
private MjonMsgAgentStsDAO mjonMsgAgentStsDAO;
|
private MjonMsgAgentStsDAO mjonMsgAgentStsDAO;
|
||||||
|
|
||||||
|
@Resource(name="siteManagerDAO")
|
||||||
|
SiteManagerDAO siteManagerDAO;
|
||||||
|
|
||||||
|
@Resource(name="MsgHolidayDAO")
|
||||||
|
private MsgHolidayDAO msgHolidayDAO;
|
||||||
|
|
||||||
@Resource(name = "egovMjonMsgIdGnrService")
|
@Resource(name = "egovMjonMsgIdGnrService")
|
||||||
private EgovIdGnrService idgenMsgId;
|
private EgovIdGnrService idgenMsgId;
|
||||||
|
|
||||||
@ -152,6 +163,42 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
MberManageVO userInfo = mjonMsgDataDAO.selectMberManageInfo(mjonMsgVO.getUserId());
|
MberManageVO userInfo = mjonMsgDataDAO.selectMberManageInfo(mjonMsgVO.getUserId());
|
||||||
String hotlineAgentCode = userInfo.getHotlineAgentCode();
|
String hotlineAgentCode = userInfo.getHotlineAgentCode();
|
||||||
|
|
||||||
|
//야간스미싱 알림여부 정보(관리자 알림관리 상태 정보를 모두 불러옴) 불러오기 20240722 우영두 추가
|
||||||
|
JoinSettingVO joinSettingVO = siteManagerDAO.selectAdminNotiDetail();
|
||||||
|
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||||
|
|
||||||
|
//스팸,스미싱이어도 딜레이없이 문자 전송을 처리할지 선택 상태값 변수
|
||||||
|
boolean spamSmishingPassStatus = false; //야간스미싱 알림여부가 활성화인 경우 false, 비활성화인경우 true 값을 가지도록 한다.
|
||||||
|
|
||||||
|
//스팸, 스미싱 상태인 경우에만 true 처리
|
||||||
|
//야간스미싱알리 여부가 비활성화 인경우 무조건 문자를 즉시 보내도록 한다.
|
||||||
|
//스미싱 알림 일정에 등록된 날짜와 시간에 포함되면 30분 딜레이 없이 발송 처리하도록 함.
|
||||||
|
if(holiSmishingNoti.equals("N")) {
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
//전용 전송사가 지정되어 있으면 실행
|
//전용 전송사가 지정되어 있으면 실행
|
||||||
if(!hotlineAgentCode.equals("00")) {
|
if(!hotlineAgentCode.equals("00")) {
|
||||||
|
|
||||||
@ -310,6 +357,15 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//야간 스미싱 알림여부가 비활성인 경우 스팸, 스미싱, 딜레이 값을 모두 N 으로 처리
|
||||||
|
if(spamSmishingPassStatus && (spamStatus.equals("Y") || smishingYn.equals("Y"))) {
|
||||||
|
|
||||||
|
spamStatus = "N";
|
||||||
|
smishingYn = "N";
|
||||||
|
delayYn = "N";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(!mjonMsgVO.getReserveYn().equals("N")) {//예약문자인 경우 시간 셋팅
|
if(!mjonMsgVO.getReserveYn().equals("N")) {//예약문자인 경우 시간 셋팅
|
||||||
|
|
||||||
@ -786,6 +842,17 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
}
|
}
|
||||||
mjonMsgDAO.insertGroupMsgData(mjonMsgVO);
|
mjonMsgDAO.insertGroupMsgData(mjonMsgVO);
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
//야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가
|
||||||
|
if(spamSmishingPassStatus && (mjonMsgVO.getSpamStatus().equals("Y") || mjonMsgVO.getSmishingYn().equals("Y"))) {
|
||||||
|
mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++++++++++++++++++++ spamSmishingPassStatus 문자전송 야간 스미싱 알림 데이터 입력 오류 발생 !!!!");
|
||||||
|
}
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO);
|
mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO);
|
||||||
}
|
}
|
||||||
@ -2372,6 +2439,43 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
MberManageVO userInfo = mjonMsgDataDAO.selectMberManageInfo(mjonMsgVO.getUserId());
|
MberManageVO userInfo = mjonMsgDataDAO.selectMberManageInfo(mjonMsgVO.getUserId());
|
||||||
String hotlineAgentCode = userInfo.getHotlineAgentCode();
|
String hotlineAgentCode = userInfo.getHotlineAgentCode();
|
||||||
|
|
||||||
|
//야간스미싱 알림여부 정보 불러오기
|
||||||
|
JoinSettingVO joinSettingVO = siteManagerDAO.selectAdminNotiDetail();
|
||||||
|
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||||
|
|
||||||
|
System.out.println("++++++++++++++++++ holiSmishingNoti ::: "+holiSmishingNoti);
|
||||||
|
//스팸,스미싱이어도 딜레이없이 문자 전송을 처리할지 선택 상태값 변수
|
||||||
|
boolean spamSmishingPassStatus = false; //야간스미싱 알림여부가 활성화인 경우 false, 비활성화인경우 true 값을 가지도록 한다.
|
||||||
|
|
||||||
|
//스팸, 스미싱 상태인 경우에만 true 처리
|
||||||
|
//야간스미싱알리 여부가 비활성화 인경우 무조건 문자를 즉시 보내도록 한다.
|
||||||
|
//스미싱 알림 일정에 등록된 날짜와 시간에 포함되면 30분 딜레이 없이 발송 처리하도록 함.
|
||||||
|
if(holiSmishingNoti.equals("N")) {
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
//전용 전송사가 지정되어 있으면 실행
|
//전용 전송사가 지정되어 있으면 실행
|
||||||
if(!hotlineAgentCode.equals("00")) {
|
if(!hotlineAgentCode.equals("00")) {
|
||||||
|
|
||||||
@ -2530,6 +2634,15 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//야간 스미싱 알림여부가 비활성인 경우 스팸, 스미싱, 딜레이 값을 모두 N 으로 처리
|
||||||
|
if(spamSmishingPassStatus && (spamStatus.equals("Y") || smishingYn.equals("Y"))) {
|
||||||
|
|
||||||
|
spamStatus = "N";
|
||||||
|
smishingYn = "N";
|
||||||
|
delayYn = "N";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(!mjonMsgVO.getReserveYn().equals("N")) {//예약문자인 경우 시간 셋팅
|
if(!mjonMsgVO.getReserveYn().equals("N")) {//예약문자인 경우 시간 셋팅
|
||||||
|
|
||||||
@ -3013,6 +3126,29 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
|||||||
}
|
}
|
||||||
mjonMsgDAO.insertGroupMsgData(mjonMsgVO);
|
mjonMsgDAO.insertGroupMsgData(mjonMsgVO);
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
//야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가
|
||||||
|
if(spamSmishingPassStatus && (mjonMsgVO.getSpamStatus().equals("Y") || mjonMsgVO.getSmishingYn().equals("Y"))) {
|
||||||
|
|
||||||
|
System.out.println(mjonMsgVO.getMsgGroupId());
|
||||||
|
System.out.println(mjonMsgVO.getMsgGroupCnt());
|
||||||
|
System.out.println(mjonMsgVO.getUserId());
|
||||||
|
System.out.println(mjonMsgVO.getSmsTxt());
|
||||||
|
System.out.println(mjonMsgVO.getReqDate());
|
||||||
|
System.out.println(mjonMsgVO.getCallFrom());
|
||||||
|
System.out.println(mjonMsgVO.getMsgType());
|
||||||
|
System.out.println(mjonMsgVO.getReserveYn());
|
||||||
|
System.out.println(mjonMsgVO.getTotalCallCnt());
|
||||||
|
|
||||||
|
mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++++++++++++++++++++ spamSmishingPassStatus HG 대량 선거 문자전송 야간 스미싱 알림 데이터 입력 오류 발생 !!!!");
|
||||||
|
}
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO);
|
mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,12 +79,16 @@ import itn.let.mjo.addr.service.AddrVO;
|
|||||||
import itn.let.mjo.event.service.MjonEventService;
|
import itn.let.mjo.event.service.MjonEventService;
|
||||||
import itn.let.mjo.event.service.MjonEventVO;
|
import itn.let.mjo.event.service.MjonEventVO;
|
||||||
import itn.let.mjo.mjocommon.MjonCommon;
|
import itn.let.mjo.mjocommon.MjonCommon;
|
||||||
|
import itn.let.mjo.mjocommon.MjonHolidayApi;
|
||||||
import itn.let.mjo.msg.service.MjonMsgService;
|
import itn.let.mjo.msg.service.MjonMsgService;
|
||||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||||
import itn.let.mjo.msgdata.service.PhoneVO;
|
import itn.let.mjo.msgdata.service.PhoneVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayService;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
import itn.let.mjo.msgsent.service.MjonMsgSentService;
|
import itn.let.mjo.msgsent.service.MjonMsgSentService;
|
||||||
import itn.let.mjo.msgsent.service.MjonMsgSentVO;
|
import itn.let.mjo.msgsent.service.MjonMsgSentVO;
|
||||||
import itn.let.mjo.pay.service.MjonPayService;
|
import itn.let.mjo.pay.service.MjonPayService;
|
||||||
@ -181,6 +185,9 @@ public class MjonMsgDataController {
|
|||||||
@Resource(name = "MjonMsgSentService")
|
@Resource(name = "MjonMsgSentService")
|
||||||
private MjonMsgSentService mjonMsgSentService;
|
private MjonMsgSentService mjonMsgSentService;
|
||||||
|
|
||||||
|
@Resource(name = "MsgHolidayService")
|
||||||
|
private MsgHolidayService msgHolidayService;
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
|
private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2112,6 +2119,20 @@ public class MjonMsgDataController {
|
|||||||
|
|
||||||
mjonMsgVO.setUserId(userId);
|
mjonMsgVO.setUserId(userId);
|
||||||
|
|
||||||
|
//발신번호가 등록된 유효한 번호인지 확인
|
||||||
|
int sendCallFromCnt = mjonMsgService.selectCallFromNumberChk(mjonMsgVO);
|
||||||
|
System.out.println(sendCallFromCnt);
|
||||||
|
|
||||||
|
if(sendCallFromCnt < 1) {
|
||||||
|
|
||||||
|
modelAndView.addObject("message", "등록된 발신번호를 찾을 수 없습니다.");
|
||||||
|
modelAndView.addObject("result", "loginFail");
|
||||||
|
modelAndView.addObject("resultSts", resultSts);
|
||||||
|
return modelAndView;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 회원 정지된 상태이면 문자 발송이 안되도록 처리함
|
* 회원 정지된 상태이면 문자 발송이 안되도록 처리함
|
||||||
* 현재 로그인 세션도 만료 처리함
|
* 현재 로그인 세션도 만료 처리함
|
||||||
@ -3022,20 +3043,55 @@ public class MjonMsgDataController {
|
|||||||
// 법인폰 알람여부 체크
|
// 법인폰 알람여부 체크
|
||||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||||
|
|
||||||
|
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||||
|
|
||||||
// SMS 체크
|
// SMS 체크
|
||||||
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
||||||
getAdminPhoneSendMsgData(mjonMsgVO);
|
getAdminPhoneSendMsgData(mjonMsgVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
// SLACK 체크
|
//야간 스미싱의심 알림이 활성화 되어있는 경우
|
||||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
if(holiSmishingNoti.equals("Y")) {
|
||||||
//Slack으로 메세지 전송 처리
|
// SLACK 체크
|
||||||
MjonCommon comm = new MjonCommon();
|
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||||
comm.getAdminSandSlack(mjonMsgVO);
|
//Slack으로 메세지 전송 처리
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
comm.getAdminSandSlack(mjonMsgVO);
|
||||||
|
}
|
||||||
|
}else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X)
|
||||||
|
|
||||||
|
MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO();
|
||||||
|
|
||||||
|
msgAlarmSetVO.setUseYn("Y");
|
||||||
|
msgAlarmSetVO.setFirstIndex(0);
|
||||||
|
|
||||||
|
List<MsgAlarmSetVO> resultAlarmList = msgHolidayService.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 = msgHolidayService.selectMsgHolidayList(msgHolidayVO);
|
||||||
|
|
||||||
|
MjonHolidayApi mjonHolidayApi = new MjonHolidayApi();
|
||||||
|
|
||||||
|
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
|
||||||
|
|
||||||
|
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
||||||
|
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
comm.getAdminSandSlack(mjonMsgVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new Exception("++++++++++++++++++++++ getAdminPhoneSendMsgData Error !!! " + e);
|
throw new Exception("++++++++++++++++++++++ getAdminPhoneSendMsgData Error !!! " + e);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,66 @@
|
|||||||
|
package itn.let.mjo.msgholiday.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import itn.let.uss.umt.service.UserDefaultVO;
|
||||||
|
|
||||||
|
public class MsgAlarmSetVO extends UserDefaultVO{
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private int alarmId; //알림 아이디
|
||||||
|
private String alarmType; //알림 종류(W: 평일, E:주말, H:공휴일)
|
||||||
|
private String alarmStart; //알림 시작 시간
|
||||||
|
private String alarmEnd; //알림 종료 시간
|
||||||
|
private String useYn; //알림 사용여부(Y: 사용, N: 미사용)
|
||||||
|
|
||||||
|
private String alarmIds;
|
||||||
|
private List alarmIdList; //알림 아이디 리스트
|
||||||
|
|
||||||
|
public int getAlarmId() {
|
||||||
|
return alarmId;
|
||||||
|
}
|
||||||
|
public void setAlarmId(int alarmId) {
|
||||||
|
this.alarmId = alarmId;
|
||||||
|
}
|
||||||
|
public String getAlarmType() {
|
||||||
|
return alarmType;
|
||||||
|
}
|
||||||
|
public void setAlarmType(String alarmType) {
|
||||||
|
this.alarmType = alarmType;
|
||||||
|
}
|
||||||
|
public String getAlarmStart() {
|
||||||
|
return alarmStart;
|
||||||
|
}
|
||||||
|
public void setAlarmStart(String alarmStart) {
|
||||||
|
this.alarmStart = alarmStart;
|
||||||
|
}
|
||||||
|
public String getAlarmEnd() {
|
||||||
|
return alarmEnd;
|
||||||
|
}
|
||||||
|
public void setAlarmEnd(String alarmEnd) {
|
||||||
|
this.alarmEnd = alarmEnd;
|
||||||
|
}
|
||||||
|
public String getUseYn() {
|
||||||
|
return useYn;
|
||||||
|
}
|
||||||
|
public void setUseYn(String useYn) {
|
||||||
|
this.useYn = useYn;
|
||||||
|
}
|
||||||
|
public String getAlarmIds() {
|
||||||
|
return alarmIds;
|
||||||
|
}
|
||||||
|
public void setAlarmIds(String alarmIds) {
|
||||||
|
this.alarmIds = alarmIds;
|
||||||
|
}
|
||||||
|
public List getAlarmIdList() {
|
||||||
|
return alarmIdList;
|
||||||
|
}
|
||||||
|
public void setAlarmIdList(List alarmIdList) {
|
||||||
|
this.alarmIdList = alarmIdList;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
package itn.let.mjo.msgholiday.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface MsgHolidayService {
|
||||||
|
|
||||||
|
//공휴일 정보 입력하기
|
||||||
|
public int insertHolidayData(List<MsgHolidayVO> msgHolidayVO) throws Exception;
|
||||||
|
|
||||||
|
//공휴일 리스트 정보 조회하기
|
||||||
|
public List<MsgHolidayVO> selectMsgHolidayList(MsgHolidayVO msgHolidayVO) throws Exception;
|
||||||
|
|
||||||
|
//공휴일 상세정보 조회하기
|
||||||
|
public MsgHolidayVO selectHolidayDetail(MsgHolidayVO msgHolidayVO) throws Exception;
|
||||||
|
|
||||||
|
//공휴일 정보 수정하기
|
||||||
|
public int updateHolidayData(MsgHolidayVO msgHolidayVO) throws Exception;
|
||||||
|
|
||||||
|
//공휴일 정보 삭제하기
|
||||||
|
public int deleteHolidayData(MsgHolidayVO msgHolidayVO) throws Exception;
|
||||||
|
|
||||||
|
//알림 일정 추가하기
|
||||||
|
public int insertAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception;
|
||||||
|
|
||||||
|
//알림 일정 리스트 정보 조회하기
|
||||||
|
public List<MsgAlarmSetVO> selectAlarmSettingList(MsgAlarmSetVO msgAlarmSetVO) throws Exception;
|
||||||
|
|
||||||
|
//알림 일정 상태정보 수정하기
|
||||||
|
public int updateAlarmSettingDataUseYn(MsgAlarmSetVO msgAlarmSetVO) throws Exception;
|
||||||
|
|
||||||
|
//알림 일정 삭제처리
|
||||||
|
public int deleteAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,82 @@
|
|||||||
|
package itn.let.mjo.msgholiday.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import itn.let.uss.umt.service.UserDefaultVO;
|
||||||
|
|
||||||
|
public class MsgHolidayVO extends UserDefaultVO{
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private int holidayId;
|
||||||
|
private String holidayNm;
|
||||||
|
private String holidayDate;
|
||||||
|
private String holidayType;
|
||||||
|
private String apiType;
|
||||||
|
|
||||||
|
private String searchHoliYear;
|
||||||
|
|
||||||
|
private String ntceBgnde;
|
||||||
|
private String ntceEndde;
|
||||||
|
|
||||||
|
private List holidayIdList;
|
||||||
|
|
||||||
|
public int getHolidayId() {
|
||||||
|
return holidayId;
|
||||||
|
}
|
||||||
|
public void setHolidayId(int holidayId) {
|
||||||
|
this.holidayId = holidayId;
|
||||||
|
}
|
||||||
|
public String getHolidayNm() {
|
||||||
|
return holidayNm;
|
||||||
|
}
|
||||||
|
public void setHolidayNm(String holidayNm) {
|
||||||
|
this.holidayNm = holidayNm;
|
||||||
|
}
|
||||||
|
public String getHolidayDate() {
|
||||||
|
return holidayDate;
|
||||||
|
}
|
||||||
|
public void setHolidayDate(String holidayDate) {
|
||||||
|
this.holidayDate = holidayDate;
|
||||||
|
}
|
||||||
|
public String getHolidayType() {
|
||||||
|
return holidayType;
|
||||||
|
}
|
||||||
|
public void setHolidayType(String holidayType) {
|
||||||
|
this.holidayType = holidayType;
|
||||||
|
}
|
||||||
|
public String getApiType() {
|
||||||
|
return apiType;
|
||||||
|
}
|
||||||
|
public void setApiType(String apiType) {
|
||||||
|
this.apiType = apiType;
|
||||||
|
}
|
||||||
|
public String getSearchHoliYear() {
|
||||||
|
return searchHoliYear;
|
||||||
|
}
|
||||||
|
public void setSearchHoliYear(String searchHoliYear) {
|
||||||
|
this.searchHoliYear = searchHoliYear;
|
||||||
|
}
|
||||||
|
public String getNtceBgnde() {
|
||||||
|
return ntceBgnde;
|
||||||
|
}
|
||||||
|
public void setNtceBgnde(String ntceBgnde) {
|
||||||
|
this.ntceBgnde = ntceBgnde;
|
||||||
|
}
|
||||||
|
public String getNtceEndde() {
|
||||||
|
return ntceEndde;
|
||||||
|
}
|
||||||
|
public void setNtceEndde(String ntceEndde) {
|
||||||
|
this.ntceEndde = ntceEndde;
|
||||||
|
}
|
||||||
|
public List getHolidayIdList() {
|
||||||
|
return holidayIdList;
|
||||||
|
}
|
||||||
|
public void setHolidayIdList(List holidayIdList) {
|
||||||
|
this.holidayIdList = holidayIdList;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,62 @@
|
|||||||
|
package itn.let.mjo.msgholiday.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
|
|
||||||
|
@Repository("MsgHolidayDAO")
|
||||||
|
public class MsgHolidayDAO extends EgovAbstractDAO{
|
||||||
|
|
||||||
|
|
||||||
|
//기존 동일 년도의 공휴일 정보 조회 및 삭제 처리
|
||||||
|
public int deleteDuplicateHolidayApiData(MsgHolidayVO msgHolidayVO) throws Exception{
|
||||||
|
|
||||||
|
return update("MsgHolidayDAO.deleteDuplicateHolidayApiData", msgHolidayVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//신규 api 공휴일 데이터 추가
|
||||||
|
public int insertHolidayData(List<MsgHolidayVO> msgHolidayVO) throws Exception{
|
||||||
|
|
||||||
|
return update("MsgHolidayDAO.insertHolidayData", msgHolidayVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public List<MsgHolidayVO> selectMsgHolidayList(MsgHolidayVO msgHolidayVO) throws Exception{
|
||||||
|
return (List<MsgHolidayVO>) list("MsgHolidayDAO.selectMsgHolidayList",msgHolidayVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MsgHolidayVO selectHolidayDetail(MsgHolidayVO msgHolidayVO) throws Exception{
|
||||||
|
return (MsgHolidayVO) select("MsgHolidayDAO.selectHolidayDetail", msgHolidayVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int updateHolidayData(MsgHolidayVO msgHolidayVO) throws Exception{
|
||||||
|
return update("MsgHolidayDAO.updateHolidayData",msgHolidayVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int deleteHolidayData(MsgHolidayVO msgHolidayVO) throws Exception{
|
||||||
|
return update("MsgHolidayDAO.deleteHolidayData", msgHolidayVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int insertAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception{
|
||||||
|
return update("MsgHolidayDAO.insertAlarmSettingData", msgAlarmSetVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public List<MsgAlarmSetVO> selectAlarmSettingList(MsgAlarmSetVO msgAlarmSetVO) throws Exception{
|
||||||
|
return (List<MsgAlarmSetVO>) list("MsgHolidayDAO.selectAlarmSettingList", msgAlarmSetVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int updateAlarmSettingDataUseYn(MsgAlarmSetVO msgAlarmSetVO) throws Exception{
|
||||||
|
return update("MsgHolidayDAO.updateAlarmSettingDataUseYn", msgAlarmSetVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int deleteAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception{
|
||||||
|
return update("MsgHolidayDAO.deleteAlarmSettingData", msgAlarmSetVO);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,79 @@
|
|||||||
|
package itn.let.mjo.msgholiday.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayService;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
|
|
||||||
|
@Service("MsgHolidayService")
|
||||||
|
public class MsgHolidayServiceImpl extends EgovAbstractServiceImpl implements MsgHolidayService{
|
||||||
|
|
||||||
|
@Resource(name="MsgHolidayDAO")
|
||||||
|
private MsgHolidayDAO msgHolidayDAO;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int insertHolidayData(List<MsgHolidayVO> msgHolidayVO) throws Exception{
|
||||||
|
|
||||||
|
//기존 데이터에 같은 해의 API로 입력된 공휴일 정보가 있으면 삭제처리를 먼저 해준다.
|
||||||
|
MsgHolidayVO tmpMsgHolidayVO = new MsgHolidayVO();
|
||||||
|
String searchHoliYear = msgHolidayVO.get(0).getHolidayDate().substring(0,4);
|
||||||
|
String apiType = msgHolidayVO.get(0).getApiType();
|
||||||
|
|
||||||
|
//공공데이터 포털에서 공휴일을 받아오는 경우 기존에 등록된 공휴일 정보를 삭제 후 등록해준다.
|
||||||
|
if(apiType.equals("Y")) {
|
||||||
|
|
||||||
|
tmpMsgHolidayVO.setSearchHoliYear(searchHoliYear);
|
||||||
|
msgHolidayDAO.deleteDuplicateHolidayApiData(tmpMsgHolidayVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return msgHolidayDAO.insertHolidayData(msgHolidayVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MsgHolidayVO> selectMsgHolidayList(MsgHolidayVO msgHolidayVO) throws Exception{
|
||||||
|
return msgHolidayDAO.selectMsgHolidayList(msgHolidayVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MsgHolidayVO selectHolidayDetail(MsgHolidayVO msgHolidayVO) throws Exception{
|
||||||
|
return msgHolidayDAO.selectHolidayDetail(msgHolidayVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int updateHolidayData(MsgHolidayVO msgHolidayVO) throws Exception{
|
||||||
|
return msgHolidayDAO.updateHolidayData(msgHolidayVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int deleteHolidayData(MsgHolidayVO msgHolidayVO) throws Exception{
|
||||||
|
return msgHolidayDAO.deleteHolidayData(msgHolidayVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int insertAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception{
|
||||||
|
return msgHolidayDAO.insertAlarmSettingData(msgAlarmSetVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MsgAlarmSetVO> selectAlarmSettingList(MsgAlarmSetVO msgAlarmSetVO) throws Exception{
|
||||||
|
return msgHolidayDAO.selectAlarmSettingList(msgAlarmSetVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int updateAlarmSettingDataUseYn(MsgAlarmSetVO msgAlarmSetVO) throws Exception{
|
||||||
|
return msgHolidayDAO.updateAlarmSettingDataUseYn(msgAlarmSetVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int deleteAlarmSettingData(MsgAlarmSetVO msgAlarmSetVO) throws Exception{
|
||||||
|
return msgHolidayDAO.deleteAlarmSettingData(msgAlarmSetVO);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,642 @@
|
|||||||
|
package itn.let.mjo.msgholiday.web;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.ModelMap;
|
||||||
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
||||||
|
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||||
|
import itn.com.cmm.LoginVO;
|
||||||
|
import itn.com.cmm.util.MJUtil;
|
||||||
|
import itn.com.cmm.util.RedirectUrlMaker;
|
||||||
|
import itn.com.utl.fcc.service.EgovStringUtil;
|
||||||
|
import itn.let.mail.service.StatusResponse;
|
||||||
|
import itn.let.mjo.mjocommon.MjonHolidayApi;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayService;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
public class MsgHolidayController {
|
||||||
|
|
||||||
|
@Resource(name = "MsgHolidayService")
|
||||||
|
private MsgHolidayService msgHolidayService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
MjonHolidayApi mjonHolidayApi;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공휴일 관리 리스트 화면
|
||||||
|
* @param searchVO
|
||||||
|
* @param model
|
||||||
|
* @return "/let/mjo/holiday/selectHolidayList.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/let/mjo/holiday/selectHolidayList.do")
|
||||||
|
public String selectHolidayList(@ModelAttribute("searchVO") MsgHolidayVO searchVO,
|
||||||
|
ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
/** pageing */
|
||||||
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
|
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
|
||||||
|
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
|
||||||
|
paginationInfo.setPageSize(searchVO.getPageSize());
|
||||||
|
|
||||||
|
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||||
|
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||||
|
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
|
||||||
|
if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||||
|
searchVO.setSearchSortCnd("holidayDate");
|
||||||
|
searchVO.setSearchSortOrd("desc");
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 2024.01.26 우영두 변경
|
||||||
|
* 기존 한달전 시작일자 지정에서 하루전으로 변경
|
||||||
|
* 데이터 양이 너무 많이 검색되어 하루전으로 변경해 달라는 기획팀 요청
|
||||||
|
* */
|
||||||
|
String toDay = MJUtil.getTodayDate(); //오늘
|
||||||
|
String endDay = "";
|
||||||
|
|
||||||
|
|
||||||
|
if (null == searchVO.getNtceBgnde() || searchVO.getNtceBgnde().equals("")) {
|
||||||
|
searchVO.setNtceBgnde(toDay);
|
||||||
|
|
||||||
|
//현재년도의 12월 31일로 종료일을 셋팅
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
String year = Integer.toString(cal.get(Calendar.YEAR));
|
||||||
|
|
||||||
|
endDay = year +"-"+"12-31";
|
||||||
|
searchVO.setNtceEndde(endDay);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MsgHolidayVO> resultList = msgHolidayService.selectMsgHolidayList(searchVO);
|
||||||
|
|
||||||
|
model.addAttribute("resultList", resultList);
|
||||||
|
|
||||||
|
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MsgHolidayVO)resultList.get(0)).getTotCnt() : 0);
|
||||||
|
model.addAttribute("paginationInfo", paginationInfo);
|
||||||
|
|
||||||
|
return "/holiday/MsgHolidayList";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공휴일 관리 리스트 삭제 처리
|
||||||
|
* @param String
|
||||||
|
* @param model
|
||||||
|
* @return "/let/mjo/holiday/deleteHolidayList.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/let/mjo/holiday/deleteHolidayList.do")
|
||||||
|
public String deleteHolidayList(@RequestParam("checkedIdForDel") String checkedIdForUpt,
|
||||||
|
ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
String[] idArr = checkedIdForUpt.split(",");
|
||||||
|
|
||||||
|
MsgHolidayVO msgHolidayVO = new MsgHolidayVO();
|
||||||
|
List<String> idList = Arrays.asList(idArr);
|
||||||
|
|
||||||
|
msgHolidayVO.setHolidayIdList(idList);
|
||||||
|
|
||||||
|
int resultCnt = msgHolidayService.deleteHolidayData(msgHolidayVO);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("+++++++++++++++++++++++++++++ deleteHolidayList Error !!! ");
|
||||||
|
}
|
||||||
|
|
||||||
|
return "redirect:/let/mjo/holiday/selectHolidayList.do";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공휴일 관리 공공데이터 포털에서 공휴일 정보 받아오기 API
|
||||||
|
* @param MsgHolidayVO
|
||||||
|
* @param model
|
||||||
|
* @return "/let/mjo/holiday/getHolidayApiDataAjax.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/let/mjo/holiday/getHolidayApiDataAjax.do")
|
||||||
|
public String getHolidayApiDataAjax(MsgHolidayVO msgHolidayVO, RedirectAttributes redirectAttributes) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
if(userId.equals("")) {
|
||||||
|
|
||||||
|
redirectAttributes.addFlashAttribute("message", "로그인 후 사용하실 수 있습니다.");
|
||||||
|
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uat/uia/EgovLoginUsr.do");
|
||||||
|
return redirectUrlMaker.getRedirectUrl();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
String searchHoliYear = msgHolidayVO.getSearchHoliYear();
|
||||||
|
|
||||||
|
if(searchHoliYear == null) {//년도 파라미터가 없으면 현재 년도를 넘겨준다.
|
||||||
|
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
String year = Integer.toString(cal.get(Calendar.YEAR));
|
||||||
|
|
||||||
|
msgHolidayVO.setSearchHoliYear(year);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//공휴일 등록요청한 아이디를 셋팅
|
||||||
|
msgHolidayVO.setFrstRegisterId(userId);
|
||||||
|
|
||||||
|
//공공데이터 포털에서 공휴일 API를 통하여 정보를 받아온다.
|
||||||
|
List<MsgHolidayVO> msgHolidayList = mjonHolidayApi.getYearHolidayApiData(msgHolidayVO);
|
||||||
|
|
||||||
|
int resultCnt = msgHolidayService.insertHolidayData(msgHolidayList);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("+++++++++++++++++++++++++++++++++ getHolidayApiDataAjax Controller Error!!!! " + e);
|
||||||
|
redirectAttributes.addFlashAttribute("message", "오류가 발생하였습니다.");
|
||||||
|
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/let/mjo/holiday/selectHolidayList.do");
|
||||||
|
return redirectUrlMaker.getRedirectUrl();
|
||||||
|
}
|
||||||
|
|
||||||
|
redirectAttributes.addFlashAttribute("message", "공휴일 등록이 완료 되었습니다.");
|
||||||
|
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/let/mjo/holiday/selectHolidayList.do");
|
||||||
|
return redirectUrlMaker.getRedirectUrl();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공휴일 관리 공휴일 정보 등록 팝업 화면
|
||||||
|
* @param MsgHolidayVO
|
||||||
|
* @param model
|
||||||
|
* @return "/uss/umt/holiday/selectHolidayModifyPopupAjax.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/uss/umt/holiday/selectHolidayModifyPopupAjax.do")
|
||||||
|
public String selectHolidayModifyPopupAjax(MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
String toDay = MJUtil.getTodayDate(); //오늘
|
||||||
|
msgHolidayVO.setHolidayDate(toDay);
|
||||||
|
|
||||||
|
model.addAttribute("result", msgHolidayVO);
|
||||||
|
|
||||||
|
return "/holiday/popup/MsgHolidayModifyPopup";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공휴일 관리 공휴일 정보 신규 등록 처리
|
||||||
|
* @param MsgHolidayVO
|
||||||
|
* @param model
|
||||||
|
* @return "/let/mjo/holiday/insertHolidayRegistAjax.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/let/mjo/holiday/insertHolidayRegistAjax.do")
|
||||||
|
public ResponseEntity<StatusResponse> insertHolidayRegistAjax(@RequestBody MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
if(userId.equals("")) {
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.UNAUTHORIZED
|
||||||
|
, "로그인을 하셔야 이용 가능합니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//공공데이터 포털이 아닌 일반 등록 타입으로 등록해 준다.
|
||||||
|
msgHolidayVO.setApiType("N");
|
||||||
|
msgHolidayVO.setFrstRegisterId(userId);
|
||||||
|
|
||||||
|
//캘린더에서 넘어오는 날짜에서 하이픈을 삭제해준다.
|
||||||
|
String holidayDate = msgHolidayVO.getHolidayDate().replace("-", "");
|
||||||
|
msgHolidayVO.setHolidayDate(holidayDate);
|
||||||
|
|
||||||
|
List<MsgHolidayVO> msgHolidayList = new ArrayList<MsgHolidayVO>();
|
||||||
|
|
||||||
|
msgHolidayList.add(msgHolidayVO);
|
||||||
|
|
||||||
|
int resultCnt = msgHolidayService.insertHolidayData(msgHolidayList);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++++++++++++++ insertHolidayRegistAjax Controller Error!!!! ");
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.BAD_REQUEST
|
||||||
|
, "공휴일 등록 중 오류가 발생하였습니다.."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.OK
|
||||||
|
, "공휴일 등록을 완료하였습니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공휴일 관리 공휴일 정보 신규 등록 처리
|
||||||
|
* @param MsgHolidayVO
|
||||||
|
* @param model
|
||||||
|
* @return "/let/mjo/holiday/insertHolidayRegistAjax.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/uss/umt/holiday/selectHolidayDetailPopupAjax.do")
|
||||||
|
public String selectHolidayDetailPopupAjax(MsgHolidayVO msgHolidayVO, RedirectAttributes redirectAttributes, ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
if(userId.equals("")) {
|
||||||
|
|
||||||
|
redirectAttributes.addFlashAttribute("message", "로그인 후 사용하실 수 있습니다.");
|
||||||
|
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uat/uia/EgovLoginUsr.do");
|
||||||
|
return redirectUrlMaker.getRedirectUrl();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
MsgHolidayVO resultVO = msgHolidayService.selectHolidayDetail(msgHolidayVO);
|
||||||
|
|
||||||
|
model.addAttribute("result", resultVO);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("+++++++++++++++++++++++++++++ selectHolidayDetailPopupAjax Error !!!! ");
|
||||||
|
redirectAttributes.addFlashAttribute("message", "오류가 발생하였습니다.");
|
||||||
|
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/let/mjo/holiday/selectHolidayList.do");
|
||||||
|
return redirectUrlMaker.getRedirectUrl();
|
||||||
|
}
|
||||||
|
|
||||||
|
return "/holiday/popup/MsgHolidayModifyPopup";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공휴일 관리 공휴일 정보 수정 처리
|
||||||
|
* @param MsgHolidayVO
|
||||||
|
* @param model
|
||||||
|
* @return "/let/mjo/holiday/updateHolidayDataAjax.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/let/mjo/holiday/updateHolidayDataAjax.do")
|
||||||
|
public ResponseEntity<StatusResponse> updateHolidayDataAjax(@RequestBody MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
if(userId.equals("")) {
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.UNAUTHORIZED
|
||||||
|
, "로그인을 하셔야 이용 가능합니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//공공데이터 포털이 아닌 일반 등록 타입으로 등록해 준다.
|
||||||
|
msgHolidayVO.setApiType("N");
|
||||||
|
msgHolidayVO.setLastUpdusrId(userId);
|
||||||
|
|
||||||
|
//캘린더에서 넘어오는 날짜에서 하이픈을 삭제해준다.
|
||||||
|
String holidayDate = msgHolidayVO.getHolidayDate().replace("-", "");
|
||||||
|
msgHolidayVO.setHolidayDate(holidayDate);
|
||||||
|
|
||||||
|
int resultCnt = msgHolidayService.updateHolidayData(msgHolidayVO);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++++++++++++++ updateHolidayDataAjax Controller Error!!!! ");
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.BAD_REQUEST
|
||||||
|
, "공휴일 수정 중 오류가 발생하였습니다.."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.OK
|
||||||
|
, "공휴일 수정을 완료하였습니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공휴일 관리 공휴일 정보 삭제 처리(상세 팝업화면에서 삭제 요청시 처리)
|
||||||
|
* @param MsgHolidayVO
|
||||||
|
* @param model
|
||||||
|
* @return "/let/mjo/holiday/deleteHolidayDataAjax.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/let/mjo/holiday/deleteHolidayDataAjax.do")
|
||||||
|
public ResponseEntity<StatusResponse> deleteHolidayDataAjax(@RequestBody MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
if(userId.equals("")) {
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.UNAUTHORIZED
|
||||||
|
, "로그인을 하셔야 이용 가능합니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> idList = new ArrayList<String>();
|
||||||
|
|
||||||
|
String holiId = Integer.toString(msgHolidayVO.getHolidayId());
|
||||||
|
|
||||||
|
idList.add(holiId);
|
||||||
|
|
||||||
|
msgHolidayVO.setHolidayIdList(idList);
|
||||||
|
int resultCnt = msgHolidayService.deleteHolidayData(msgHolidayVO);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++++++++++++++ deleteHolidayDataAjax Controller Error!!!! ");
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.BAD_REQUEST
|
||||||
|
, "공휴일 삭제 중 오류가 발생하였습니다.."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.OK
|
||||||
|
, "공휴일이 삭제 되었습니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 관리자 알림 설정 - 야간스미싱알림 설정 팝업 화면
|
||||||
|
* @param MsgHolidayVO
|
||||||
|
* @param model
|
||||||
|
* @return "/uss/umt/holiday/alarmSet/selectAlarmSettingPopupAjax.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/uss/umt/holiday/alarmSet/selectAlarmSettingPopupAjax.do")
|
||||||
|
public String selectAlarmSettingPopupAjax(MsgAlarmSetVO msgAlarmSetVO, RedirectAttributes redirectAttributes, ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
if(userId.equals("")) {
|
||||||
|
|
||||||
|
redirectAttributes.addFlashAttribute("message", "로그인 후 사용하실 수 있습니다.");
|
||||||
|
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uat/uia/EgovLoginUsr.do");
|
||||||
|
return redirectUrlMaker.getRedirectUrl();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/** pageing */
|
||||||
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
|
paginationInfo.setCurrentPageNo(msgAlarmSetVO.getPageIndex());
|
||||||
|
paginationInfo.setRecordCountPerPage(msgAlarmSetVO.getPageUnit());
|
||||||
|
paginationInfo.setPageSize(msgAlarmSetVO.getPageSize());
|
||||||
|
|
||||||
|
msgAlarmSetVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||||
|
msgAlarmSetVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||||
|
msgAlarmSetVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
|
||||||
|
if("".equals(msgAlarmSetVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||||
|
msgAlarmSetVO.setSearchSortCnd("ALARM_START");
|
||||||
|
msgAlarmSetVO.setSearchSortOrd("desc");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MsgAlarmSetVO> resultList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO);
|
||||||
|
model.addAttribute("resultList", resultList);
|
||||||
|
model.addAttribute("msgAlarmSetVO", msgAlarmSetVO);
|
||||||
|
|
||||||
|
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MsgAlarmSetVO)resultList.get(0)).getTotCnt() : 0);
|
||||||
|
model.addAttribute("paginationInfo", paginationInfo);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("+++++++++++++++++++++++++++++ selectAlarmSettingPopupAjax Error !!!! ");
|
||||||
|
}
|
||||||
|
|
||||||
|
return "/holiday/alarmset/MsgHolidayAlarmSettingListPop";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 관리자 알림 설정 - 야간스미싱알림 일정 추가 처리
|
||||||
|
* @param MsgHolidayVO
|
||||||
|
* @param model
|
||||||
|
* @return "/let/mjo/holiday/alarmSet/insertAlarmSettinDataAjax.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/let/mjo/holiday/alarmSet/insertAlarmSettingDataAjax.do")
|
||||||
|
public ResponseEntity<StatusResponse> insertAlarmSettingDataAjax(@RequestBody MsgAlarmSetVO msgAlarmSetVO, ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
if(userId.equals("")) {
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.UNAUTHORIZED
|
||||||
|
, "로그인을 하셔야 이용 가능합니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//등록자 아이디 셋팅
|
||||||
|
msgAlarmSetVO.setFrstRegisterId(userId);
|
||||||
|
|
||||||
|
int resultCnt = msgHolidayService.insertAlarmSettingData(msgAlarmSetVO);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++++++++++++++ insertAlimSettingDataAjax Controller Error!!!! ");
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.BAD_REQUEST
|
||||||
|
, "알림 일정 등록 중 오류가 발생하였습니다.."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.OK
|
||||||
|
, "알림 일정이 등록 되었습니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 관리자 알림 설정 - 야간스미싱알림 일정 사용상태 변경
|
||||||
|
* @param MsgHolidayVO
|
||||||
|
* @param model
|
||||||
|
* @return "/let/mjo/holiday/alarmSet/updateAlarmSettingDataUseYnAjax.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/let/mjo/holiday/alarmSet/updateAlarmSettingDataUseYnAjax.do")
|
||||||
|
public ResponseEntity<StatusResponse> updateAlarmSettingDataUseYnAjax(@RequestBody MsgAlarmSetVO msgAlarmSetVO, ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
if(userId.equals("")) {
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.UNAUTHORIZED
|
||||||
|
, "로그인을 하셔야 이용 가능합니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println(msgAlarmSetVO.getAlarmId());
|
||||||
|
System.out.println(msgAlarmSetVO.getUseYn());
|
||||||
|
msgAlarmSetVO.setLastUpdusrId(userId);
|
||||||
|
|
||||||
|
int resultCnt = msgHolidayService.updateAlarmSettingDataUseYn(msgAlarmSetVO);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++++++++++++++ updateAlarmSettingDataUseYnAjax Controller Error!!!! ");
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.BAD_REQUEST
|
||||||
|
, "사용여부 변경 중 오류가 발생하였습니다.."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.OK
|
||||||
|
, "변경이 완료 되었습니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 관리자 알림 설정 - 야간스미싱알림 일정 삭제 처리
|
||||||
|
* @param MsgHolidayVO
|
||||||
|
* @param model
|
||||||
|
* @return "/let/mjo/holiday/alarmSet/updateAlarmSettingDataUseYnAjax.do"
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/let/mjo/holiday/alarmSet/deleteAlarmSettingDataAjax.do")
|
||||||
|
public ResponseEntity<StatusResponse> deleteAlarmSettingDataAjax(@RequestBody MsgAlarmSetVO msgAlarmSetVO) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
|
||||||
|
|
||||||
|
if(userId.equals("")) {
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.UNAUTHORIZED
|
||||||
|
, "로그인을 하셔야 이용 가능합니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
String[] splitId = msgAlarmSetVO.getAlarmIds().split(",");
|
||||||
|
|
||||||
|
List<String> idList = Arrays.asList(splitId);
|
||||||
|
|
||||||
|
msgAlarmSetVO.setAlarmIdList(idList);
|
||||||
|
|
||||||
|
int resultCnt = msgHolidayService.deleteAlarmSettingData(msgAlarmSetVO);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("++++++++++++++++++++++++ deleteAlarmSettingDataAjax Controller Error!!!! " + e);
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.BAD_REQUEST
|
||||||
|
, "사용여부 변경 중 오류가 발생하였습니다.."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.OK
|
||||||
|
, "변경이 완료 되었습니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/let/mjo/holiday/alarmSet/selectAlarmSettingDataCheckAjax.do")
|
||||||
|
public ResponseEntity<StatusResponse> selectAlarmSettingDataCheckAjax() throws Exception{
|
||||||
|
|
||||||
|
MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO();
|
||||||
|
|
||||||
|
msgAlarmSetVO.setUseYn("Y");
|
||||||
|
msgAlarmSetVO.setFirstIndex(0);
|
||||||
|
|
||||||
|
List<MsgAlarmSetVO> resultAlarmList = msgHolidayService.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 = msgHolidayService.selectMsgHolidayList(msgHolidayVO);
|
||||||
|
|
||||||
|
MjonHolidayApi mjonHolidayApi = new MjonHolidayApi();
|
||||||
|
|
||||||
|
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
|
||||||
|
|
||||||
|
System.out.println("+++++++++ 스미싱을 패스 시킬건지 ::: "+smishingAlarmPassSts);
|
||||||
|
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
new StatusResponse(HttpStatus.OK
|
||||||
|
, "변경이 완료 되었습니다."
|
||||||
|
, LocalDateTime.now()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -78,10 +78,14 @@ import itn.let.mjo.apikey.service.ApiKeyMngService;
|
|||||||
import itn.let.mjo.event.service.MjonEventService;
|
import itn.let.mjo.event.service.MjonEventService;
|
||||||
import itn.let.mjo.event.service.MjonEventVO;
|
import itn.let.mjo.event.service.MjonEventVO;
|
||||||
import itn.let.mjo.mjocommon.MjonCommon;
|
import itn.let.mjo.mjocommon.MjonCommon;
|
||||||
|
import itn.let.mjo.mjocommon.MjonHolidayApi;
|
||||||
import itn.let.mjo.msg.service.MjonMsgService;
|
import itn.let.mjo.msg.service.MjonMsgService;
|
||||||
import itn.let.mjo.msg.service.MjonMsgVO;
|
import itn.let.mjo.msg.service.MjonMsgVO;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
||||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayService;
|
||||||
|
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
|
||||||
import itn.let.mjo.pay.service.MjonPayService;
|
import itn.let.mjo.pay.service.MjonPayService;
|
||||||
import itn.let.mjo.payva.service.VacsVactService;
|
import itn.let.mjo.payva.service.VacsVactService;
|
||||||
import itn.let.mjo.payva.service.VacsVactVO;
|
import itn.let.mjo.payva.service.VacsVactVO;
|
||||||
@ -196,6 +200,9 @@ public class TestController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
CheckNoServiceCommon checkNoServiceCommon;
|
CheckNoServiceCommon checkNoServiceCommon;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
MjonHolidayApi mjonHolidayApi;
|
||||||
|
|
||||||
@Resource(name = "egovSiteManagerService")
|
@Resource(name = "egovSiteManagerService")
|
||||||
private EgovSiteManagerService egovSiteManagerService;
|
private EgovSiteManagerService egovSiteManagerService;
|
||||||
|
|
||||||
@ -223,6 +230,9 @@ public class TestController {
|
|||||||
@Resource (name = "userManageService")
|
@Resource (name = "userManageService")
|
||||||
private EgovUserManageService egovUserManageService;
|
private EgovUserManageService egovUserManageService;
|
||||||
|
|
||||||
|
@Resource(name = "MsgHolidayService")
|
||||||
|
private MsgHolidayService msgHolidayService;
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(TestController.class);
|
private static final Logger logger = LoggerFactory.getLogger(TestController.class);
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -1029,6 +1039,22 @@ public class TestController {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
//회원 정보 중 금지어 예외 항목에 대해서 스팸 필터링 처리 유무 적용 - 20240820 우영두
|
||||||
|
MberManageVO mberManageVO = new MberManageVO();
|
||||||
|
|
||||||
|
//회원정보 불러오기
|
||||||
|
mberManageVO = mberManageService.selectMber(mjonMsgVO.getMberId());
|
||||||
|
|
||||||
|
//스팸 필터링 예외처리 여부 값 - (온: Y, 오프 : N) 온 일때 스미싱의심 예외 되도록 적용
|
||||||
|
String exceptSpamYn = mberManageVO.getExceptSpamYn();
|
||||||
|
|
||||||
|
if(exceptSpamYn.equals("Y")) {//스팸 필터링 예외 온 일 경우 리턴 처리
|
||||||
|
|
||||||
|
modelAndView.addObject("result", "clear");
|
||||||
|
return modelAndView;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
List<String> resultSpamTxt = mjonMsgDataService.selectSpamKeywordList();
|
List<String> resultSpamTxt = mjonMsgDataService.selectSpamKeywordList();
|
||||||
String spmFilterTxt = "";
|
String spmFilterTxt = "";
|
||||||
if(resultSpamTxt == null) {//스팸 체크리스트가 없는 경우
|
if(resultSpamTxt == null) {//스팸 체크리스트가 없는 경우
|
||||||
@ -2109,12 +2135,47 @@ public class TestController {
|
|||||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||||
|
|
||||||
// SLACK 체크
|
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
|
||||||
//Slack으로 메세지 전송 처리
|
//야간 스미싱의심 알림이 활성화 되어있는 경우
|
||||||
MjonCommon comm = new MjonCommon();
|
if(holiSmishingNoti.equals("Y")) {
|
||||||
System.out.println("slack noti");
|
// SLACK 체크
|
||||||
comm.getAdminSandSlack(mjonMsgVO);
|
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||||
|
//Slack으로 메세지 전송 처리
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
System.out.println("slack noti");
|
||||||
|
comm.getAdminSandSlack(mjonMsgVO);
|
||||||
|
}
|
||||||
|
}else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X)
|
||||||
|
|
||||||
|
MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO();
|
||||||
|
|
||||||
|
msgAlarmSetVO.setUseYn("Y");
|
||||||
|
msgAlarmSetVO.setFirstIndex(0);
|
||||||
|
|
||||||
|
List<MsgAlarmSetVO> resultAlarmList = msgHolidayService.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 = msgHolidayService.selectMsgHolidayList(msgHolidayVO);
|
||||||
|
|
||||||
|
MjonHolidayApi mjonHolidayApi = new MjonHolidayApi();
|
||||||
|
|
||||||
|
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
|
||||||
|
|
||||||
|
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
||||||
|
|
||||||
|
MjonCommon comm = new MjonCommon();
|
||||||
|
comm.getAdminSandSlack(mjonMsgVO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3289,6 +3350,5 @@ public class TestController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,6 +48,7 @@ public class JoinSettingVO {
|
|||||||
private String emailNoti; //관리자 이메일 알림 여부
|
private String emailNoti; //관리자 이메일 알림 여부
|
||||||
private String slackNoti; //관리자 SLACK 알림 여부
|
private String slackNoti; //관리자 SLACK 알림 여부
|
||||||
private String smishingNoti; //첫결제(카드제외) 스미싱의심 알림 여부
|
private String smishingNoti; //첫결제(카드제외) 스미싱의심 알림 여부
|
||||||
|
private String holiSmishingNoti; //야간 스미싱알림 여부
|
||||||
|
|
||||||
public String getSmishingNoti() {
|
public String getSmishingNoti() {
|
||||||
return smishingNoti;
|
return smishingNoti;
|
||||||
@ -215,6 +216,14 @@ public class JoinSettingVO {
|
|||||||
|
|
||||||
public void setFaxPrice(float faxPrice) {
|
public void setFaxPrice(float faxPrice) {
|
||||||
this.faxPrice = faxPrice;
|
this.faxPrice = faxPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHoliSmishingNoti() {
|
||||||
|
return holiSmishingNoti;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHoliSmishingNoti(String holiSmishingNoti) {
|
||||||
|
this.holiSmishingNoti = holiSmishingNoti;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,9 @@
|
|||||||
|
<?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/holiday/MsgHolidayData_SQL_mysql.xml"/>
|
||||||
|
|
||||||
|
</sqlMapConfig>
|
||||||
@ -0,0 +1,213 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><!--
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
========= ======= =================================================
|
||||||
|
2024.07.29 우영두
|
||||||
|
-->
|
||||||
|
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
|
||||||
|
<sqlMap namespace="Holiday">
|
||||||
|
<typeAlias alias="msgHolidayVO" type="itn.let.mjo.msgholiday.service.MsgHolidayVO"/>
|
||||||
|
<typeAlias alias="msgAlarmSetVO" type="itn.let.mjo.msgholiday.service.MsgAlarmSetVO"/>
|
||||||
|
|
||||||
|
|
||||||
|
<insert id="MsgHolidayDAO.insertHolidayData" parameterClass="java.util.List">
|
||||||
|
INSERT INTO MJ_HOLIDAY
|
||||||
|
(HOLIDAY_NM,
|
||||||
|
HOLIDAY_DATE,
|
||||||
|
HOLIDAY_TYPE,
|
||||||
|
API_TYPE,
|
||||||
|
FRST_REGIST_PNTTM,
|
||||||
|
FRST_REGISTER_ID,
|
||||||
|
LAST_UPDT_PNTTM,
|
||||||
|
LAST_UPDUSR_ID
|
||||||
|
)VALUES
|
||||||
|
<iterate conjunction=",">
|
||||||
|
(
|
||||||
|
#[].holidayNm#,
|
||||||
|
#[].holidayDate#,
|
||||||
|
#[].holidayType#,
|
||||||
|
#[].apiType#,
|
||||||
|
NOW(),
|
||||||
|
#[].frstRegisterId#,
|
||||||
|
NOW(),
|
||||||
|
#[].lastUpdusrId#
|
||||||
|
)
|
||||||
|
</iterate>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<select id="MsgHolidayDAO.selectMsgHolidayList" parameterClass="msgHolidayVO" resultClass="msgHolidayVO">
|
||||||
|
|
||||||
|
SELECT COUNT(HOLIDAY_ID) OVER() AS totCnt,
|
||||||
|
HOLIDAY_ID AS holidayId,
|
||||||
|
HOLIDAY_NM AS holidayNm,
|
||||||
|
DATE_FORMAT(HOLIDAY_DATE, '%Y-%m-%d') AS holidayDate,
|
||||||
|
HOLIDAY_TYPE AS holidayType,
|
||||||
|
DATE_FORMAT(FRST_REGIST_PNTTM, '%Y-%m-%d %T') AS frstRegistPnttm,
|
||||||
|
FRST_REGISTER_ID AS frstRegisterId,
|
||||||
|
DATE_FORMAT(LAST_UPDT_PNTTM, '%Y-%m-%d %T') AS lastUpdtPnttm,
|
||||||
|
LAST_UPDUSR_ID AS lastUpdusrID
|
||||||
|
FROM MJ_HOLIDAY
|
||||||
|
WHERE 1=1
|
||||||
|
|
||||||
|
<isNotEmpty property="searchKeyword">
|
||||||
|
AND ( HOLIDAY_NM LIKE CONCAT('%', #searchKeyword#, '%') )
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="holidayType">
|
||||||
|
<isEqual property="holidayType" compareValue="1">
|
||||||
|
AND HOLIDAY_TYPE = 1
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="holidayType" compareValue="2">
|
||||||
|
AND HOLIDAY_TYPE = 2
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="holidayType" compareValue="3">
|
||||||
|
AND HOLIDAY_TYPE = 3
|
||||||
|
</isEqual>
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="searchHoliYear">
|
||||||
|
AND HOLIDAY_DATE LIKE CONCAT(#searchHoliYear#,'%')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="ntceBgnde">
|
||||||
|
AND HOLIDAY_DATE BETWEEN DATE_FORMAT(#ntceBgnde#, '%Y%m%d') AND DATE_FORMAT(#ntceEndde#, '%Y%m%d')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
ORDER BY 1=1
|
||||||
|
<isNotEmpty property="searchSortCnd">
|
||||||
|
,$searchSortCnd$
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="searchSortOrd">
|
||||||
|
$searchSortOrd$
|
||||||
|
</isNotEmpty>
|
||||||
|
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="MsgHolidayDAO.selectHolidayDetail" parameterClass="msgHolidayVO" resultClass="msgHolidayVO">
|
||||||
|
|
||||||
|
SELECT HOLIDAY_ID AS holidayId,
|
||||||
|
HOLIDAY_NM AS holidayNm,
|
||||||
|
DATE_FORMAT(HOLIDAY_DATE, '%Y-%m-%d') AS holidayDate,
|
||||||
|
HOLIDAY_TYPE AS holidayType,
|
||||||
|
DATE_FORMAT(FRST_REGIST_PNTTM, '%Y-%m-%d %T') AS frstRegistPnttm,
|
||||||
|
FRST_REGISTER_ID AS frstRegisterId,
|
||||||
|
DATE_FORMAT(LAST_UPDT_PNTTM, '%Y-%m-%d %T') AS lastUpdtPnttm,
|
||||||
|
LAST_UPDUSR_ID AS lastUpdusrID
|
||||||
|
FROM MJ_HOLIDAY
|
||||||
|
WHERE HOLIDAY_ID = #holidayId#
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<delete id="MsgHolidayDAO.deleteDuplicateHolidayApiData" parameterClass="msgHolidayVO">
|
||||||
|
|
||||||
|
DELETE
|
||||||
|
FROM MJ_HOLIDAY
|
||||||
|
WHERE HOLIDAY_ID IN
|
||||||
|
( SELECT HOLIDAY_ID
|
||||||
|
FROM MJ_HOLIDAY
|
||||||
|
WHERE API_TYPE = 'Y'
|
||||||
|
AND HOLIDAY_DATE LIKE CONCAT(#searchHoliYear#,'%')
|
||||||
|
)
|
||||||
|
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<update id="MsgHolidayDAO.updateHolidayData" parameterClass="msgHolidayVO">
|
||||||
|
|
||||||
|
UPDATE MJ_HOLIDAY
|
||||||
|
SET HOLIDAY_NM = #holidayNm#,
|
||||||
|
HOLIDAY_DATE = #holidayDate#,
|
||||||
|
HOLIDAY_TYPE = #holidayType#,
|
||||||
|
LAST_UPDUSR_ID = #lastUpdusrId#
|
||||||
|
WHERE HOLIDAY_ID = #holidayId#
|
||||||
|
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="MsgHolidayDAO.deleteHolidayData" parameterClass="msgHolidayVO">
|
||||||
|
|
||||||
|
DELETE FROM MJ_HOLIDAY
|
||||||
|
WHERE 1=1
|
||||||
|
<isNotEmpty property="holidayIdList">
|
||||||
|
<iterate prepend="AND HOLIDAY_ID IN " open="(" close=")" conjunction="," property="holidayIdList">
|
||||||
|
#holidayIdList[]#
|
||||||
|
</iterate>
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<insert id="MsgHolidayDAO.insertAlarmSettingData" parameterClass="msgAlarmSetVO">
|
||||||
|
|
||||||
|
INSERT
|
||||||
|
INTO MJ_SPAMPASS_ALARM
|
||||||
|
(
|
||||||
|
ALARM_TYPE,
|
||||||
|
ALARM_START,
|
||||||
|
ALARM_END,
|
||||||
|
FRST_REGIST_PNTTM,
|
||||||
|
FRST_REGISTER_ID,
|
||||||
|
LAST_UPDT_PNTTM,
|
||||||
|
LAST_UPDUSR_ID
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
( #alarmType#
|
||||||
|
, #alarmStart#
|
||||||
|
, #alarmEnd#
|
||||||
|
, NOW()
|
||||||
|
, #frstRegisterId#
|
||||||
|
, NOW()
|
||||||
|
, #frstRegisterId#
|
||||||
|
)
|
||||||
|
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<select id="MsgHolidayDAO.selectAlarmSettingList" parameterClass="msgAlarmSetVO" resultClass="msgAlarmSetVO">
|
||||||
|
|
||||||
|
SELECT COUNT(ALARM_ID) OVER() AS totCnt,
|
||||||
|
ALARM_ID AS alarmId,
|
||||||
|
ALARM_TYPE AS alarmType,
|
||||||
|
ALARM_START AS alarmStart,
|
||||||
|
ALARM_END AS alarmEnd,
|
||||||
|
USE_YN AS useYn,
|
||||||
|
DATE_FORMAT(FRST_REGIST_PNTTM, '%Y-%m-%d %T') AS frstRegistPnttm,
|
||||||
|
FRST_REGISTER_ID AS frstRegisterId,
|
||||||
|
DATE_FORMAT(LAST_UPDT_PNTTM, '%Y-%m-%d %T') AS lastRegistPnttm,
|
||||||
|
LAST_UPDUSR_ID AS lastUpdusrId
|
||||||
|
FROM MJ_SPAMPASS_ALARM
|
||||||
|
WHERE 1=1
|
||||||
|
<isNotEmpty property="useYn">
|
||||||
|
AND USE_YN = #useYn#
|
||||||
|
</isNotEmpty>
|
||||||
|
ORDER BY 1=1
|
||||||
|
, ALARM_TYPE ASC
|
||||||
|
<isNotEmpty property="searchSortCnd">
|
||||||
|
,$searchSortCnd$
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="searchSortOrd">
|
||||||
|
$searchSortOrd$
|
||||||
|
</isNotEmpty>
|
||||||
|
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<update id="MsgHolidayDAO.updateAlarmSettingDataUseYn" parameterClass="msgAlarmSetVO">
|
||||||
|
|
||||||
|
UPDATE MJ_SPAMPASS_ALARM SET
|
||||||
|
USE_YN = #useYn#,
|
||||||
|
LAST_UPDT_PNTTM = NOW(),
|
||||||
|
LAST_UPDUSR_ID = #lastUpdusrId#
|
||||||
|
WHERE ALARM_ID = #alarmId#
|
||||||
|
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="MsgHolidayDAO.deleteAlarmSettingData" parameterClass="msgAlarmSetVO">
|
||||||
|
|
||||||
|
DELETE FROM MJ_SPAMPASS_ALARM
|
||||||
|
WHERE 1=1
|
||||||
|
<isNotEmpty property="alarmIdList">
|
||||||
|
<iterate prepend="AND ALARM_ID IN " open="(" close=")" conjunction="," property="alarmIdList">
|
||||||
|
#alarmIdList[]#
|
||||||
|
</iterate>
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
</sqlMap>
|
||||||
|
|
||||||
@ -2302,6 +2302,39 @@
|
|||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<insert id="mjonMsgDAO.insertSpamPassMsgData" parameterClass="mjonMsgVO">
|
||||||
|
|
||||||
|
INSERT
|
||||||
|
INTO MJ_SPAMPASS_MSG
|
||||||
|
(
|
||||||
|
MSG_GROUP_ID,
|
||||||
|
USER_ID,
|
||||||
|
REQ_DATE,
|
||||||
|
SMS_TXT,
|
||||||
|
MSG_GROUP_CNT,
|
||||||
|
CALL_FROM,
|
||||||
|
MSG_TYPE,
|
||||||
|
RESERVE_YN,
|
||||||
|
FRST_REGIST_PNTTM,
|
||||||
|
LAST_UPDT_PNTTM
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
(
|
||||||
|
#msgGroupId#
|
||||||
|
, #userId#
|
||||||
|
, #reqDate#
|
||||||
|
, #smsTxt#
|
||||||
|
, #totalCallCnt#
|
||||||
|
, #callFrom#
|
||||||
|
, #msgType#
|
||||||
|
, #reserveYn#
|
||||||
|
, NOW()
|
||||||
|
, NOW()
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
</insert>
|
||||||
|
|
||||||
<update id="mjonMsgDAO.updateGroupMsgData" parameterClass="mjonMsgVO">
|
<update id="mjonMsgDAO.updateGroupMsgData" parameterClass="mjonMsgVO">
|
||||||
|
|
||||||
UPDATE MJ_MSG_GROUP_DATA
|
UPDATE MJ_MSG_GROUP_DATA
|
||||||
@ -7517,5 +7550,271 @@
|
|||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="mjonMsgDAO.selectCallFromNumberChk" parameterClass="mjonMsgVO" resultClass="Integer">
|
||||||
|
|
||||||
|
SELECT COUNT(USER_ID) FROM MJ_PHONE_MEMBER
|
||||||
|
WHERE USER_ID = #userId#
|
||||||
|
AND PHM_TYPE = '01'
|
||||||
|
AND PHONE_NUMBER = #callFrom#
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="mjonMsgDAO.selectMjonHoliMsgList" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">
|
||||||
|
|
||||||
|
SELECT M.totCnt,
|
||||||
|
M.userId,
|
||||||
|
M.userNm,
|
||||||
|
M.msgGroupId,
|
||||||
|
M.reqDate,
|
||||||
|
M.reqFullDate,
|
||||||
|
M.smsTxt,
|
||||||
|
M.callFrom,
|
||||||
|
M.msgType,
|
||||||
|
M.msgTypeTxt,
|
||||||
|
M.reserveYn,
|
||||||
|
M.reserveCYn,
|
||||||
|
M.msgGroupCnt,
|
||||||
|
M.sendKind,
|
||||||
|
M.cancelResultYn,
|
||||||
|
M.frstRegistPnttm,
|
||||||
|
M.adminSmsNoticeYn,
|
||||||
|
M.smishingYn,
|
||||||
|
M.atSmishingYn,
|
||||||
|
M.mberSttus,
|
||||||
|
(SELECT COUNT(0)
|
||||||
|
FROM MJ_MSG_DATA B
|
||||||
|
WHERE B.RESERVE_C_YN = 'N'
|
||||||
|
AND B.MSG_GROUP_ID = M.msgGroupId
|
||||||
|
AND (
|
||||||
|
CASE
|
||||||
|
WHEN B.AGENT_CODE = '01'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '100'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE2 = '0'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
THEN 'S'
|
||||||
|
WHEN B.AGENT_CODE = '02'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '0'
|
||||||
|
)
|
||||||
|
THEN 'S'
|
||||||
|
WHEN B.AGENT_CODE = '03'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '100' OR B.RSLT_CODE = '101' OR B.RSLT_CODE = '110' OR B.RSLT_CODE = '800'
|
||||||
|
)
|
||||||
|
THEN 'S'
|
||||||
|
WHEN B.AGENT_CODE = '04'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '4100' OR B.RSLT_CODE = '6600'
|
||||||
|
)
|
||||||
|
THEN 'S'
|
||||||
|
WHEN B.AGENT_CODE = '05'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '1000' OR B.RSLT_CODE = '1001'
|
||||||
|
)
|
||||||
|
THEN 'S'
|
||||||
|
WHEN B.AGENT_CODE = '07'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '6' OR B.RSLT_CODE = '1000'
|
||||||
|
)
|
||||||
|
THEN 'S'
|
||||||
|
WHEN B.AGENT_CODE = '08'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '1000' OR B.RSLT_CODE = '1001'
|
||||||
|
)
|
||||||
|
THEN 'S'
|
||||||
|
WHEN B.AGENT_CODE = '09'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '1000' OR B.RSLT_CODE = '1001'
|
||||||
|
)
|
||||||
|
THEN 'S'
|
||||||
|
ELSE 'F'
|
||||||
|
END) = 'S'
|
||||||
|
)
|
||||||
|
AS successCount,
|
||||||
|
(SELECT COUNT(0)
|
||||||
|
FROM MJ_MSG_DATA B
|
||||||
|
WHERE B.RESERVE_C_YN = 'N'
|
||||||
|
AND B.MSG_GROUP_ID = M.msgGroupId
|
||||||
|
AND (
|
||||||
|
CASE
|
||||||
|
WHEN B.AGENT_CODE = '01'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '410'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE2 = 'c'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
THEN 'E'
|
||||||
|
WHEN B.AGENT_CODE = '02'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '1027' OR B.RSLT_CODE = '1030'
|
||||||
|
)
|
||||||
|
THEN 'E'
|
||||||
|
WHEN B.AGENT_CODE = '03'
|
||||||
|
AND B.RSLT_CODE = '508'
|
||||||
|
THEN 'E'
|
||||||
|
WHEN B.AGENT_CODE = '04'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '4432' OR B.RSLT_CODE = '4433' OR B.RSLT_CODE = '6628' OR B.RSLT_CODE = '6629'
|
||||||
|
)
|
||||||
|
THEN 'E'
|
||||||
|
WHEN B.AGENT_CODE = '05'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '2404' OR B.RSLT_CODE = '3404' OR B.RSLT_CODE = '6404'
|
||||||
|
)
|
||||||
|
THEN 'E'
|
||||||
|
WHEN B.AGENT_CODE = '07'
|
||||||
|
AND B.RSLT_CODE = '9013'
|
||||||
|
THEN 'E'
|
||||||
|
WHEN B.AGENT_CODE = '08'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '2404' OR B.RSLT_CODE = '3404' OR B.RSLT_CODE = '6404'
|
||||||
|
)
|
||||||
|
THEN 'E'
|
||||||
|
WHEN B.AGENT_CODE = '09'
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
B.RSLT_CODE = '2404' OR B.RSLT_CODE = '3404' OR B.RSLT_CODE = '6404'
|
||||||
|
)
|
||||||
|
THEN 'E'
|
||||||
|
ELSE 'ETC'
|
||||||
|
END) = 'E'
|
||||||
|
)
|
||||||
|
AS callRejectionCount
|
||||||
|
FROM ( SELECT COUNT(msm.SPAMPASS_ID) OVER() AS totCnt,
|
||||||
|
mmgd.USER_ID AS userId,
|
||||||
|
lmb.MBER_NM AS userNm,
|
||||||
|
mmgd.MSG_GROUP_ID AS msgGroupId,
|
||||||
|
DATE_FORMAT(mmgd.REQ_DATE, '%Y-%m-%d %H:%i' ) AS reqDate ,
|
||||||
|
DATE_FORMAT(mmgd.REQ_DATE, '%Y-%m-%d %H:%i' ) AS reqFullDate ,
|
||||||
|
mmgd.SMS_TXT AS smsTxt ,
|
||||||
|
mmgd.CALL_FROM AS callFrom ,
|
||||||
|
mmgd.MSG_TYPE AS msgType ,
|
||||||
|
D.CODE_NM AS msgTypeTxt,
|
||||||
|
mmgd.RESERVE_YN AS reserveYn ,
|
||||||
|
mmgd.RESERVE_C_YN AS reserveCYn ,
|
||||||
|
mmgd.MSG_GROUP_CNT AS msgGroupCnt ,
|
||||||
|
mmgd.SEND_KIND AS sendKind,
|
||||||
|
msm.CANCEL_RESULT_YN AS cancelResultYn,
|
||||||
|
DATE_FORMAT(msm.FRST_REGIST_PNTTM, '%Y-%m-%d %H:%i' ) AS frstRegistPnttm,
|
||||||
|
lmb.ADMIN_SMS_NOTICE_YN AS adminSmsNoticeYn,
|
||||||
|
lmb.SMISHING_YN AS smishingYn,
|
||||||
|
lmb.AT_SMISHING_YN AS atSmishingYn,
|
||||||
|
lmb.SPAM_YN AS spamYn,
|
||||||
|
lmb.MBER_STTUS AS mberSttus
|
||||||
|
FROM MJ_SPAMPASS_MSG msm
|
||||||
|
INNER JOIN LETTNGNRLMBER lmb
|
||||||
|
ON msm.USER_ID = lmb.MBER_ID
|
||||||
|
INNER JOIN MJ_MSG_GROUP_DATA mmgd
|
||||||
|
ON msm.MSG_GROUP_ID = mmgd.MSG_GROUP_ID
|
||||||
|
LEFT JOIN
|
||||||
|
( SELECT CODE_NM ,
|
||||||
|
CODE ,
|
||||||
|
CODE_DC
|
||||||
|
FROM LETTCCMMNDETAILCODE
|
||||||
|
WHERE USE_AT = 'Y'
|
||||||
|
AND CODE_ID = 'ITN022'
|
||||||
|
)
|
||||||
|
D
|
||||||
|
ON mmgd.MSG_TYPE = D.CODE
|
||||||
|
/** 메세지타입 */
|
||||||
|
WHERE DATE_FORMAT(msm.FRST_REGIST_PNTTM, '%Y-%m-%d') BETWEEN #ntceBgnde# AND #ntceEndde#
|
||||||
|
|
||||||
|
<isNotEmpty property="searchKeyword">
|
||||||
|
<isEqual property="searchCondition" compareValue="" >
|
||||||
|
AND (
|
||||||
|
mmgd.USER_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
||||||
|
OR mmgd.CALL_FROM LIKE CONCAT('%', #searchKeyword#, '%')
|
||||||
|
OR mmgd.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
|
||||||
|
)
|
||||||
|
</isEqual>
|
||||||
|
|
||||||
|
<isEqual property="searchCondition" compareValue="1">
|
||||||
|
AND mmgd.USER_ID LIKE CONCAT('%', #searchKeyword#, '%')
|
||||||
|
</isEqual>
|
||||||
|
|
||||||
|
<isEqual property="searchCondition" compareValue="2">
|
||||||
|
AND mmgd.CALL_FROM LIKE CONCAT('%', #searchKeyword#, '%')
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="searchCondition" compareValue="3">
|
||||||
|
AND mmgd.SMS_TXT LIKE CONCAT ('%', #searchKeyword#,'%')
|
||||||
|
</isEqual>
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="searchCondition3">
|
||||||
|
<isEqual property="searchCondition3" compareValue="1">
|
||||||
|
AND mmgd.MSG_TYPE = '4'
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="searchCondition3" compareValue="2">
|
||||||
|
AND mmgd.MSG_TYPE = '6' AND mmgd.FILE_CNT = 0
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="searchCondition3" compareValue="3">
|
||||||
|
<![CDATA[
|
||||||
|
AND mmgd.MSG_TYPE = '6' AND mmgd.FILE_CNT <> 0
|
||||||
|
]]>
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="searchCondition3" compareValue="8">
|
||||||
|
AND mmgd.MSG_TYPE = '8'
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="searchCondition3" compareValue="9">
|
||||||
|
AND mmgd.MSG_TYPE = '9'
|
||||||
|
</isEqual>
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="cancelResultYn">
|
||||||
|
<isEqual property="cancelResultYn" compareValue="Y">
|
||||||
|
AND msm.CANCEL_RESULT_YN = 'Y'
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="cancelResultYn" compareValue="N">
|
||||||
|
AND msm.CANCEL_RESULT_YN = 'N'
|
||||||
|
</isEqual>
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="sendKind">
|
||||||
|
<isEqual property="sendKind" compareValue="H">
|
||||||
|
AND mmgd.SEND_KIND = 'H'
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="sendKind" compareValue="A">
|
||||||
|
AND mmgd.SEND_KIND = 'A'
|
||||||
|
</isEqual>
|
||||||
|
</isNotEmpty>
|
||||||
|
ORDER BY 1=1
|
||||||
|
<isNotEmpty property="searchSortCnd">
|
||||||
|
,$searchSortCnd$
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="searchSortOrd">
|
||||||
|
$searchSortOrd$
|
||||||
|
</isNotEmpty>
|
||||||
|
LIMIT #recordCountPerPage# OFFSET #firstIndex#
|
||||||
|
) M
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<update id="mjonMsgDAO.updateHoliMsgResultYn" parameterClass="mjonMsgVO">
|
||||||
|
|
||||||
|
UPDATE MJ_SPAMPASS_MSG
|
||||||
|
SET CANCEL_RESULT_YN = 'Y'
|
||||||
|
, LAST_UPDUSR_ID = #lastUpdusrId#
|
||||||
|
, LAST_UPDT_PNTTM = NOW()
|
||||||
|
WHERE USER_ID = #userId#
|
||||||
|
AND MSG_GROUP_ID = #msgGroupId#
|
||||||
|
|
||||||
|
</update>
|
||||||
|
|
||||||
</sqlMap>
|
</sqlMap>
|
||||||
|
|
||||||
|
|||||||
@ -956,6 +956,7 @@
|
|||||||
IFNULL(EMAIL_NOTI, 'N') AS emailNoti,
|
IFNULL(EMAIL_NOTI, 'N') AS emailNoti,
|
||||||
IFNULL(SLACK_NOTI, 'N') AS slackNoti,
|
IFNULL(SLACK_NOTI, 'N') AS slackNoti,
|
||||||
IFNULL(SMISHING_NOTI, 'N') AS smishingNoti,
|
IFNULL(SMISHING_NOTI, 'N') AS smishingNoti,
|
||||||
|
IFNULL(HOLI_SMISHING_NOTI, 'N') AS holiSmishingNoti,
|
||||||
LAST_UPDUSR_ID AS lasUpdusrId,
|
LAST_UPDUSR_ID AS lasUpdusrId,
|
||||||
LAST_UPDT_PNTTM AS lastUpdtPnttm
|
LAST_UPDT_PNTTM AS lastUpdtPnttm
|
||||||
FROM MJ_MBER_SETTING
|
FROM MJ_MBER_SETTING
|
||||||
@ -972,6 +973,7 @@
|
|||||||
,EMAIL_NOTI = #emailNoti#
|
,EMAIL_NOTI = #emailNoti#
|
||||||
,SLACK_NOTI = #slackNoti#
|
,SLACK_NOTI = #slackNoti#
|
||||||
,SMISHING_NOTI = #smishingNoti#
|
,SMISHING_NOTI = #smishingNoti#
|
||||||
|
,HOLI_SMISHING_NOTI = #holiSmishingNoti#
|
||||||
,LAST_UPDUSR_ID = #lasUpdusrId#
|
,LAST_UPDUSR_ID = #lasUpdusrId#
|
||||||
,LAST_UPDT_PNTTM = NOW()
|
,LAST_UPDT_PNTTM = NOW()
|
||||||
|
|
||||||
|
|||||||
400
src/main/webapp/WEB-INF/jsp/holiday/MsgHolidayList.jsp
Normal file
400
src/main/webapp/WEB-INF/jsp/holiday/MsgHolidayList.jsp
Normal file
@ -0,0 +1,400 @@
|
|||||||
|
<%--
|
||||||
|
Class Name : MsgHolidayList.jsp
|
||||||
|
Description : 공휴일 관리 리스트
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2024.07.29 우영두 최초 생성
|
||||||
|
|
||||||
|
author : 공통서비스 개발팀 장동한
|
||||||
|
since : 2009.09.16
|
||||||
|
|
||||||
|
Copyright (C) 2009 by MOPAS All right reserved.
|
||||||
|
--%>
|
||||||
|
<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
|
||||||
|
<% pageContext.setAttribute("newLineChar", "\r\n"); %>
|
||||||
|
<% pageContext.setAttribute("newLineChar2", "\n"); %>
|
||||||
|
<%
|
||||||
|
response.setHeader("Cache-Control","no-store");
|
||||||
|
response.setHeader("Pragma","no-cache");
|
||||||
|
response.setDateHeader("Expires",0);
|
||||||
|
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
|
||||||
|
%>
|
||||||
|
<!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/EgovMultiFile.js'/>"></script>
|
||||||
|
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script>
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
|
||||||
|
function fn_search(){
|
||||||
|
var searchKeyword = $('input[name=searchKeyword]').val();
|
||||||
|
$('input[name=searchKeyword]').val(searchKeyword.replace(/(\s*)/g, ""));
|
||||||
|
linkPage(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function linkPage(pageNo){
|
||||||
|
var toDay = getToday();
|
||||||
|
//if (toDay == $('#ntceBgndeYYYMMDD').val() && toDay == $('#ntceEnddeYYYMMDD').val()) {
|
||||||
|
if ($('#ntceBgndeYYYMMDD').val() != "" && $('#ntceEnddeYYYMMDD').val() != "") {
|
||||||
|
// 오늘 검색
|
||||||
|
$("#todayYn").val("Y");
|
||||||
|
}
|
||||||
|
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.pageIndex.value = pageNo ;
|
||||||
|
|
||||||
|
$('#ntceBgnde').val($('#ntceBgndeYYYMMDD').val()) ; //검색날짜 세팅
|
||||||
|
$('#ntceEndde').val($('#ntceEnddeYYYMMDD').val()) ;
|
||||||
|
|
||||||
|
listForm.action = "<c:url value='/let/mjo/holiday/selectHolidayList.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getToday() {
|
||||||
|
// new Date를 통해서 날짜 객체를 생성. 여기서 년, 월, 일 정보만 필요.
|
||||||
|
const nowDate = new Date();
|
||||||
|
|
||||||
|
var year = nowDate.getFullYear(); // 년
|
||||||
|
var month = ('0' + (nowDate.getMonth() + 1)).slice(-2); // 월
|
||||||
|
var day = ('0' + nowDate.getDate()).slice(-2); // 일
|
||||||
|
|
||||||
|
// yyyy-mm-dd 형식으로 todate에 담기.
|
||||||
|
var todate = year + '-' + month + '-' + day;
|
||||||
|
|
||||||
|
return todate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 날자 초기화 */
|
||||||
|
function init_date(){
|
||||||
|
$('#ntceBgndeYYYMMDD').val('');
|
||||||
|
$('#ntceEnddeYYYMMDD').val('');
|
||||||
|
$('#ntceBgnde').val('');
|
||||||
|
$('#ntceEndde').val('');
|
||||||
|
}
|
||||||
|
|
||||||
|
//기간선택 select
|
||||||
|
function fnSetCalMonth(val) {
|
||||||
|
var form = document.listForm;
|
||||||
|
var today = new Date();
|
||||||
|
|
||||||
|
var year = today.getFullYear();
|
||||||
|
var month = ("0"+(today.getMonth()+1)).slice(-2);
|
||||||
|
var date = ("0"+today.getDate()).slice(-2);
|
||||||
|
|
||||||
|
var sDate = new Date(today.setMonth(today.getMonth() - val));
|
||||||
|
|
||||||
|
var sYear = sDate.getFullYear();
|
||||||
|
var sMonth = ("0"+(sDate.getMonth()+1)).slice(-2);
|
||||||
|
var sDate = ("0"+sDate.getDate()).slice(-2);
|
||||||
|
|
||||||
|
form.ntceBgndeYYYMMDD.value = sYear + "-" + sMonth + "-" + sDate;
|
||||||
|
form.ntceEnddeYYYMMDD.value = year + "-" + month + "-" + date;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function fnCheckAll(){
|
||||||
|
var checkField = document.listForm.checkField;
|
||||||
|
if(document.listForm.checkAll.checked) {
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var i=0; i < checkField.length; i++) {
|
||||||
|
checkField[i].checked = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
checkField.checked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var j=0; j < checkField.length; j++) {
|
||||||
|
checkField[j].checked = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
checkField.checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnMsgHolidayDel(){
|
||||||
|
|
||||||
|
if($("input:checkbox[name='checkField']").is(":checked")==false){
|
||||||
|
alert("선택된 항목이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var checkField = document.listForm.checkField;
|
||||||
|
var id = document.listForm.checkId;
|
||||||
|
var checkedIds = "";
|
||||||
|
var checkedCount = 0;
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var i=0; i < checkField.length; i++) {
|
||||||
|
if(checkField[i].checked) {
|
||||||
|
checkedIds += ((checkedCount==0? "" : ",") + id[i].value);
|
||||||
|
checkedCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(checkField.checked) {
|
||||||
|
checkedIds = id.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(checkedIds.length > 0) {
|
||||||
|
var msg = "공휴일 정보를 삭제하시겠습니까?";
|
||||||
|
|
||||||
|
if(confirm(msg)){
|
||||||
|
document.listForm.checkedIdForDel.value=checkedIds;
|
||||||
|
document.listForm.action = "<c:url value='/let/mjo/holiday/deleteHolidayList.do'/>";
|
||||||
|
document.listForm.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getMsgHolidayApi(){
|
||||||
|
|
||||||
|
var searchHoliYear = $("#searchHoliYear option:selected").val();
|
||||||
|
|
||||||
|
var form = document.listForm;
|
||||||
|
|
||||||
|
form.action="/let/mjo/holiday/getHolidayApiDataAjax.do";
|
||||||
|
form.submit();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnRegistHoliday() {
|
||||||
|
|
||||||
|
document.listForm.holidayId.value = "0";
|
||||||
|
window.open("about:blank", 'popupRegistHoliday', 'width=900, height=600, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbar=no');
|
||||||
|
document.listForm.action = "<c:url value='/uss/umt/holiday/selectHolidayModifyPopupAjax.do'/>";
|
||||||
|
document.listForm.target = "popupRegistHoliday";
|
||||||
|
document.listForm.submit();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnHolidayDetail(holidayId) {
|
||||||
|
|
||||||
|
var form = document.listForm;
|
||||||
|
form.holidayId.value = holidayId;
|
||||||
|
|
||||||
|
window.open("about:blank", 'popupHolidayDetail', 'width=900, height=600, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbar=no');
|
||||||
|
form.action = "<c:url value='/uss/umt/holiday/selectHolidayDetailPopupAjax.do'/>";
|
||||||
|
form.target = "popupHolidayDetail";
|
||||||
|
form.submit();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail {overflow:inherit;text-overflow:inherit;position:relative;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail p {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover {overflow:hidden;text-overflow:ellipsis;display:none;word-wrap:break-word;-webkit-line-clamp:20;-webkit-box-orient:vertical;position:absolute;left:-15px;top:45px;width:calc(100% + 150px);padding:15px;line-height:20px;white-space:normal;border:1px solid #e5e5e5;background:#fff;border-radius:5px;box-sizing:border-box;box-shadow:0px 3px 10px 0px rgb(0 0 0 / 0.2);z-index:1;font-size:14px;text-align:left;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover:after {content:'';position:absolute;left:0;bottom:0;width:100%;height:10px;background:#fff;border-radius:0 0 5px 5px;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail:hover .sms_detail_hover {display:-webkit-box;}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form name="listForm" action="<c:url value='/let/mjo/holiday/selectHolidayList.do'/>" method="post">
|
||||||
|
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/>
|
||||||
|
<input type="hidden" name="delFlag" value="Y" />
|
||||||
|
<input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
|
||||||
|
<input type="hidden" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
|
||||||
|
<input type="hidden" name="ntceBgnde" id="ntceBgnde" value="">
|
||||||
|
<input type="hidden" name="ntceEndde" id="ntceEndde" value="">
|
||||||
|
<input name="checkedIdForDel" type="hidden" />
|
||||||
|
<input type="hidden" name="todayYn" id="todayYn" value="N"/>
|
||||||
|
<input type="hidden" id="holidayId" name="holidayId" value="0"/>
|
||||||
|
|
||||||
|
<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">
|
||||||
|
<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">
|
||||||
|
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);">
|
||||||
|
|
||||||
|
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly=""
|
||||||
|
value="<c:out value="${searchVO.ntceBgnde}" />" >
|
||||||
|
<input type="button" class="calBtn">
|
||||||
|
</a>
|
||||||
|
<span class="line">~</span>
|
||||||
|
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);">
|
||||||
|
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly=""
|
||||||
|
value="<c:out value="${searchVO.ntceEndde}" />"
|
||||||
|
>
|
||||||
|
<input type="button" class="calBtn">
|
||||||
|
</a>
|
||||||
|
<a href="#" style="margin-left: 17px;" onclick="init_date(); return false;">
|
||||||
|
<img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘">
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<br /><br />
|
||||||
|
<select name="searchCondition" class="select" title="검색조건 선택">
|
||||||
|
<option value="" <c:if test="${searchVO.searchCondition == ''}">selected="selected"</c:if>>전체</option>
|
||||||
|
<option value="1" <c:if test="${searchVO.searchCondition == '1'}">selected="selected"</c:if>>공휴일명</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select name="holidayType" id="holidayType" title="공휴일 종류" onchange="fn_search();">
|
||||||
|
<option value="" <c:if test="${empty searchVO.holidayType }">selected="selected"</c:if> >공휴일 종류</option>
|
||||||
|
<option value="1" <c:if test="${searchVO.holidayType == '1'}">selected="selected"</c:if>>공휴일</option>
|
||||||
|
<option value="2" <c:if test="${searchVO.holidayType == '2'}">selected="selected"</c:if>>임시공휴일</option>
|
||||||
|
<option value="3" <c:if test="${searchVO.holidayType == '3'}">selected="selected"</c:if>>기타</option>
|
||||||
|
</select>
|
||||||
|
<input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="15" title="검색" maxlength="100" />
|
||||||
|
<input type="button" class="btnType1" value="검색" onclick="fn_search(); return false;">
|
||||||
|
</div>
|
||||||
|
<div class="listTop">
|
||||||
|
<p class="tType5">
|
||||||
|
총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건
|
||||||
|
<c:if test="${todayYn eq 'Y' }">
|
||||||
|
(예약발송 : <fmt:formatNumber value="${msgGroupCntSum}" pattern="#,###" />건)
|
||||||
|
</c:if>
|
||||||
|
</p>
|
||||||
|
<div class="rightWrap">
|
||||||
|
|
||||||
|
|
||||||
|
<select name="searchHoliYear" id="searchHoliYear" class="select" title="공휴일 연도">
|
||||||
|
<option value='2024' >2024 년</option>
|
||||||
|
<option value='2025' >2025 년</option>
|
||||||
|
<option value='2026' >2026 년</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<input type="button" style="cursor: pointer;" onclick="getMsgHolidayApi();" value="공휴일 불러오기">
|
||||||
|
|
||||||
|
<!-- <input type="button" class="printBtn"> -->
|
||||||
|
<select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);">
|
||||||
|
<option value='10' <c:if test="${searchVO.pageUnit == '10' or searchVO.pageUnit == ''}">selected</c:if>>10줄</option>
|
||||||
|
<option value='20' <c:if test="${searchVO.pageUnit == '20'}">selected</c:if>>20줄</option>
|
||||||
|
<option value='30' <c:if test="${searchVO.pageUnit == '30'}">selected</c:if>>30줄</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tableWrap">
|
||||||
|
<table class="tbType1">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 5%">
|
||||||
|
<col style="width: 5%">
|
||||||
|
<col style="width: auto;">
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: 10%">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="fnCheckAll();" /><label for="checkAll"></label></th>
|
||||||
|
<th>번호<input type="button" class="sort sortBtn" id="sort_holidayId"></th>
|
||||||
|
<th>공휴일명<input type="button" class="sort sortBtn" id="sort_holidayNm"></th>
|
||||||
|
<th>휴일일자<input type="button" class="sort sortBtn" id="sort_holidayDate"></th>
|
||||||
|
<th>휴일종류<input type="button" class="sort sortBtn" id="sort_holidayType"></th>
|
||||||
|
<th>등록일자<input type="button" class="sort sortBtn" id="sort_frstRegistPnttm"></th>
|
||||||
|
<th>등록자<input type="button" class="sort sortBtn" id="sort_frstRegisterId"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="result" items="${resultList}" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input name="checkField" id="<c:out value="${result.holidayId}}"/>" title="Check <c:out value="${status.count}"/>" type="checkbox"/><label for="<c:out value="${result.holidayId}"/>"></label>
|
||||||
|
<input name="checkId" type="hidden" class="${result.holidayId}" value="<c:out value='${result.holidayId}'/>"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
|
||||||
|
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${searchVO.searchSortOrd eq 'asc' }">
|
||||||
|
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
|
||||||
|
</c:if>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="#" onclick="javascript:fnHolidayDetail('<c:out value="${result.holidayId}"/>'); return false;">
|
||||||
|
<c:out value="${result.holidayNm}"/>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${result.holidayDate}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.holidayType eq '1'}">
|
||||||
|
법정 공휴일
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${result.holidayType eq '2'}">
|
||||||
|
임시 공휴일
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
기타
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${result.frstRegistPnttm}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${result.frstRegisterId}"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
<c:if test="${empty resultList}">
|
||||||
|
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
|
||||||
|
</c:if>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="btnWrap" style="margin-bottom: 15px;">
|
||||||
|
<input type="button" class="btnType2" onclick="fnMsgHolidayDel(); return false;" value="삭제">
|
||||||
|
<input type="button" class="btnType1" onclick="fnRegistHoliday(); return false;" value="등록">
|
||||||
|
</div>
|
||||||
|
<!-- 페이지 네비게이션 시작 -->
|
||||||
|
<c:if test="${!empty resultList}">
|
||||||
|
<div class="page">
|
||||||
|
<ul class="inline">
|
||||||
|
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<!-- //페이지 네비게이션 끝 -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,675 @@
|
|||||||
|
<%--
|
||||||
|
Class Name : MsgHolidayAlarmSettingListPop.jsp
|
||||||
|
Description : 야간 스미싱알림 일정 등록관리 팝업
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2024.07.31 우영두 최초 생성
|
||||||
|
|
||||||
|
author : 우영두
|
||||||
|
since : 2022.07.01
|
||||||
|
|
||||||
|
Copyright (C) 2009 by MOPAS All right reserved.
|
||||||
|
--%>
|
||||||
|
<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
|
||||||
|
<% pageContext.setAttribute("newLineChar", "\r\n"); %>
|
||||||
|
<% pageContext.setAttribute("newLineChar2", "\n"); %>
|
||||||
|
<%
|
||||||
|
response.setHeader("Cache-Control","no-store");
|
||||||
|
response.setHeader("Pragma","no-cache");
|
||||||
|
response.setDateHeader("Expires",0);
|
||||||
|
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
|
||||||
|
%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>스미싱의심 알림 설정 관리</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<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">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail {overflow:inherit;text-overflow:inherit;position:relative;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail p {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover {overflow:hidden;text-overflow:ellipsis;display:none;word-wrap:break-word;-webkit-line-clamp:20;-webkit-box-orient:vertical;position:absolute;left:-5px;top:45px;width:calc(100% + 150px);padding:15px;line-height:20px;white-space:normal;border:1px solid #e5e5e5;background:#fff;border-radius:5px;box-sizing:border-box;box-shadow:0px 3px 10px 0px rgb(0 0 0 / 0.2);z-index:1;font-size:14px;text-align:left;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover:after {content:'';position:absolute;left:0;bottom:0;width:100%;height:10px;background:#fff;border-radius:0 0 5px 5px;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail:hover .sms_detail_hover {display:-webkit-box;}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="/pb/js/jquery-3.5.0.js"></script>
|
||||||
|
<script type="text/javascript" src="/pb/js/common.js"></script>
|
||||||
|
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
|
||||||
|
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script>
|
||||||
|
<script type="text/javascript" src="<c:url value='/js/ncms_common.js' />"></script>
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
|
||||||
|
function fn_search(){
|
||||||
|
var searchKeyword = $('input[name=searchKeyword]').val();
|
||||||
|
$('input[name=searchKeyword]').val(searchKeyword.replace(/(\s*)/g, ""));
|
||||||
|
linkPage(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function linkPage(pageNo){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.pageIndex.value = pageNo ;
|
||||||
|
|
||||||
|
listForm.action = "<c:url value='/uss/umt/user/EgovGnrlselectedUserMsgDataListAjax.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function fnCheckAll(){
|
||||||
|
var checkField = document.listForm.checkField;
|
||||||
|
if(document.listForm.checkAll.checked) {
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var i=0; i < checkField.length; i++) {
|
||||||
|
checkField[i].checked = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
checkField.checked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var j=0; j < checkField.length; j++) {
|
||||||
|
checkField[j].checked = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
checkField.checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 체크된 메인배너 목록 삭제 */
|
||||||
|
function fn_delete(){
|
||||||
|
if($("input[name=del]:checked").length == 0){
|
||||||
|
alert("선택된 항목이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (confirm("해당 문자를 삭제하시겠습니까?")){
|
||||||
|
frm = document.listForm;
|
||||||
|
frm.action = "<c:url value='/uss/ion/msg/SendMsgDelete.do' />";
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 수정 화면*/
|
||||||
|
function fn_modify(msgId){
|
||||||
|
var frm = document.modiForm ;
|
||||||
|
frm.msgId.value = msgId ;
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 수정 화면*/
|
||||||
|
function fn_detail_list(msgGroupId){
|
||||||
|
var frm = document.modiForm ;
|
||||||
|
frm.msgGroupId.value = msgGroupId ;
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 날자 초기화 */
|
||||||
|
function init_date(){
|
||||||
|
$('#ntceBgndeYYYMMDD').val('');
|
||||||
|
$('#ntceEnddeYYYMMDD').val('');
|
||||||
|
$('#ntceBgnde').val('');
|
||||||
|
$('#ntceEndde').val('');
|
||||||
|
|
||||||
|
$('#searchKeyword').val('');
|
||||||
|
$('#sendKind').val('').prop("selected",true);
|
||||||
|
$('#searchCondition').val('').prop("selected",true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//엑셀 다운로드
|
||||||
|
function sendMsgExcelDownload(){
|
||||||
|
var frm = document.listForm;
|
||||||
|
$('#ntceBgnde').val($('#ntceBgndeYYYMMDD').val()) ;
|
||||||
|
$('#ntceEndde').val($('#ntceEnddeYYYMMDD').val()) ;
|
||||||
|
|
||||||
|
var ntceBgnde = $('#ntceBgndeYYYMMDD').val();
|
||||||
|
var ntceEndde = $('#ntceEnddeYYYMMDD').val();
|
||||||
|
|
||||||
|
frm.ntceBgnde.value = ntceBgnde;
|
||||||
|
frm.ntceEndde.value = ntceEndde;
|
||||||
|
|
||||||
|
frm.method = "post";
|
||||||
|
frm.action = "<c:url value='/uss/ion/msg/selectMberSendMsgExcelDownload.do'/>";
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function fn_updateMberSttus(msgGroupId){
|
||||||
|
|
||||||
|
var form = document.listForm;
|
||||||
|
|
||||||
|
if(confirm("이용자 정지를 진행하시겠습니까?")){
|
||||||
|
|
||||||
|
var data = new FormData(form);
|
||||||
|
url = "/uss/umt/user/updateMberSttusBlockAjax.do";
|
||||||
|
data.append("msgGroupId", msgGroupId);
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url,
|
||||||
|
data: data,
|
||||||
|
dataType:'json',
|
||||||
|
async: false,
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
cache: false,
|
||||||
|
success: function (returnData, status) {
|
||||||
|
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
||||||
|
if("fail"==returnData.result){
|
||||||
|
|
||||||
|
alert(returnData.message);
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}else if("loginFail"==returnData.result){
|
||||||
|
|
||||||
|
alert(returnData.message);
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}else{ //문자발송 성공시 처리
|
||||||
|
|
||||||
|
alert(returnData.message);
|
||||||
|
opener.parent.location.reload();
|
||||||
|
location.reload();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if(status== 'fail'){
|
||||||
|
alert("이용자 상태 변경에 실패하였습니다.");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeSend: function () {
|
||||||
|
//로딩창 show
|
||||||
|
$('.loading_layer').addClass('active');
|
||||||
|
},
|
||||||
|
complete: function () {
|
||||||
|
//로딩창 hide
|
||||||
|
$('.loading_layer').removeClass('active');
|
||||||
|
},
|
||||||
|
error: function (e) { alert("이용자 상태 변경에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function msgDetailView(obj, msgGroupId, index){
|
||||||
|
|
||||||
|
var form = document.modiForm;
|
||||||
|
form.msgGroupId.value = msgGroupId;
|
||||||
|
var sendData = $(form).serializeArray();
|
||||||
|
|
||||||
|
$(".msgSentDetailPopLoad"+index).load("/uss/umt/user/selectMberMsgDetailAjax.do", sendData ,function(response, status, xhr){
|
||||||
|
var target=$(obj);
|
||||||
|
$('.layer_msg_detail').hide();
|
||||||
|
target.next('.layer_msg_wrap').find('.layer_msg_detail').show();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnAlimSetReg(){
|
||||||
|
|
||||||
|
var form = document.listForm;
|
||||||
|
|
||||||
|
var startHour = form.startHour.value;
|
||||||
|
var startMin = form.startMin.value;
|
||||||
|
var endHour = form.endHour.value;
|
||||||
|
var endMin = form.endMin.value;
|
||||||
|
var alarmType = form.alarmType.value;
|
||||||
|
|
||||||
|
var alarmStart = startHour + ":" + startMin;
|
||||||
|
var alarmEnd = endHour + ":" + endMin;
|
||||||
|
|
||||||
|
|
||||||
|
if(confirm("알람설정을 등록하시겠습니까?")){
|
||||||
|
|
||||||
|
url = "/let/mjo/holiday/alarmSet/insertAlarmSettingDataAjax.do";
|
||||||
|
var jsonParam = {"alarmStart" : alarmStart, "alarmEnd" : alarmEnd, "alarmType" : alarmType};
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url,
|
||||||
|
data: JSON.stringify(jsonParam),
|
||||||
|
dataType:'json',
|
||||||
|
contentType: 'application/json',
|
||||||
|
async: true,
|
||||||
|
success: function (data) {
|
||||||
|
if(data.status == "OK"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
location.reload();
|
||||||
|
|
||||||
|
}else if(data.status == "UNAUTHORIZED"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
window.location.href="/uat/uia/EgovLoginUsr.do";
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeSend: function () {
|
||||||
|
//로딩창 show
|
||||||
|
$('.loading_layer').addClass('active');
|
||||||
|
},
|
||||||
|
complete: function () {
|
||||||
|
//로딩창 hide
|
||||||
|
$('.loading_layer').removeClass('active');
|
||||||
|
},
|
||||||
|
error: function (e) { alert("공휴일 삭제에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnUpdateAlarmUse(alarmId, useYn){
|
||||||
|
|
||||||
|
var msg = "";
|
||||||
|
|
||||||
|
if(useYn == "Y"){
|
||||||
|
|
||||||
|
msg = "사용으로 변경하시겠습니까?";
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
msg = "미사용으로 변경하시겠습니까?";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(confirm(msg)){
|
||||||
|
|
||||||
|
url = "/let/mjo/holiday/alarmSet/updateAlarmSettingDataUseYnAjax.do";
|
||||||
|
var jsonParam = {"alarmId" : alarmId, "useYn" : useYn};
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url,
|
||||||
|
data: JSON.stringify(jsonParam),
|
||||||
|
dataType:'json',
|
||||||
|
contentType: 'application/json',
|
||||||
|
async: true,
|
||||||
|
success: function (data) {
|
||||||
|
if(data.status == "OK"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
location.reload();
|
||||||
|
|
||||||
|
}else if(data.status == "UNAUTHORIZED"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
window.location.href="/uat/uia/EgovLoginUsr.do";
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeSend: function () {
|
||||||
|
//로딩창 show
|
||||||
|
$('.loading_layer').addClass('active');
|
||||||
|
},
|
||||||
|
complete: function () {
|
||||||
|
//로딩창 hide
|
||||||
|
$('.loading_layer').removeClass('active');
|
||||||
|
},
|
||||||
|
error: function (e) { alert("공휴일 삭제에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnGoHoliday(){
|
||||||
|
|
||||||
|
opener.location.href="<c:out value='/let/mjo/holiday/selectHolidayList.do'/>";
|
||||||
|
self.close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnMsgAlimDel(){
|
||||||
|
|
||||||
|
if($("input:checkbox[name='checkField']").is(":checked")==false){
|
||||||
|
alert("선택된 항목이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var checkField = document.listForm.checkField;
|
||||||
|
var id = document.listForm.checkId;
|
||||||
|
var checkedIds = "";
|
||||||
|
var checkedCount = 0;
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var i=0; i < checkField.length; i++) {
|
||||||
|
if(checkField[i].checked) {
|
||||||
|
checkedIds += ((checkedCount==0? "" : ",") + id[i].value);
|
||||||
|
checkedCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(checkField.checked) {
|
||||||
|
checkedIds = id.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("+++ checkedIds ::: "+checkedIds);
|
||||||
|
|
||||||
|
if(checkedIds.length > 0) {
|
||||||
|
var msg = "스미싱 알림 일정을 삭제하시겠습니까?";
|
||||||
|
|
||||||
|
if(confirm(msg)){
|
||||||
|
|
||||||
|
document.listForm.checkedIdForDel.value = checkedIds;
|
||||||
|
|
||||||
|
/* document.listForm.checkedIdForDel.value=checkedIds;
|
||||||
|
document.listForm.action = "<c:url value='/let/mjo/holiday/alarmSet/deleteAlarmSettingDataAjax.do'/>";
|
||||||
|
document.listForm.submit(); */
|
||||||
|
|
||||||
|
var data = new FormData(document.listForm);
|
||||||
|
url = "/let/mjo/holiday/alarmSet/deleteAlarmSettingDataAjax.do";
|
||||||
|
console.log(document.listForm.checkedIdForDel.value)
|
||||||
|
var jsonParam = {"alarmIds" : document.listForm.checkedIdForDel.value};
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url,
|
||||||
|
data: JSON.stringify(jsonParam),
|
||||||
|
dataType:'json',
|
||||||
|
contentType: 'application/json',
|
||||||
|
async: true,
|
||||||
|
success: function (data) {
|
||||||
|
if(data.status == "OK"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
location.reload();
|
||||||
|
|
||||||
|
}else if(data.status == "UNAUTHORIZED"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
window.location.href="/uat/uia/EgovLoginUsr.do";
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeSend: function () {
|
||||||
|
//로딩창 show
|
||||||
|
$('.loading_layer').addClass('active');
|
||||||
|
},
|
||||||
|
complete: function () {
|
||||||
|
//로딩창 hide
|
||||||
|
$('.loading_layer').removeClass('active');
|
||||||
|
},
|
||||||
|
error: function (e) { alert("알림 일정 삭제에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnClose(){
|
||||||
|
|
||||||
|
window.close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.pageCont {width:100%;padding:50px 30px;box-sizing:border-box;}
|
||||||
|
.tableWrapTotal {margin:0 0 20px;}
|
||||||
|
.tableWrapTotal .tbType1 thead tr:first-child {border-width:1px;}
|
||||||
|
.tableWrapTotal .tbType1 thead tr th {border-left:1px solid #e6e6e6;}
|
||||||
|
.tableWrapTotal .tbType1 thead tr th:first-child {border-left:0 none;}
|
||||||
|
.tableWrapTotal .tbType1 thead tr.content th {font-size:14px;}
|
||||||
|
.tableWrapTotal .tbType1 tbody tr td {border-left:1px solid #e6e6e6;}
|
||||||
|
.tableWrapTotal .tbType1 tbody tr td:first-child {border-left:0 none;}
|
||||||
|
.listSerch .select {height:42px;vertical-align:top;}
|
||||||
|
.pageCont .tbType1 tbody tr td.msg_detail {overflow:inherit;}
|
||||||
|
.pageCont .tbType1 tbody tr td.msg_detail a {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;}
|
||||||
|
/* .layer_msg_wrap {position:relative;} */
|
||||||
|
.layer_msg_wrap .layer_msg_detail {overflow:hidden;display:none;position:absolute;left:50%;top:600px;width:400px;max-height:600px;background:#eee;transform:translateX(-50%);z-index:1;}
|
||||||
|
.layer_msg_wrap .layer_msg_detail button {position:absolute;right:0;top:0;width:35px;height:35px;}
|
||||||
|
.layer_msg_wrap .layer_msg_detail button:before {content:'';position:absolute;left:50%;top:50%;width:1px;height:14px;margin:-7px 0 0;background:#fff;transform:rotate(-45deg);}
|
||||||
|
.layer_msg_wrap .layer_msg_detail button:after {content:'';position:absolute;left:50%;top:50%;width:1px;height:14px;margin:-7px 0 0;background:#fff;transform:rotate(45deg);}
|
||||||
|
.layer_msg_wrap .layer_msg_detail .title {height:35px;padding:0 15px;font-size:16px;line-height:35px;text-align:left;color:#fff;background:#456ded;border-radius:5px 5px 0 0;}
|
||||||
|
.layer_msg_wrap .layer_msg_detail .content {overflow-y:auto;max-height:535px;margin:15px;padding:10px 15px;line-height:20px;white-space:normal;background:#fff;}
|
||||||
|
.layer_msg_wrap .layer_msg_detail .content .rev_cont {text-align:left;}
|
||||||
|
@media screen and (max-width:916px){
|
||||||
|
.pageCont .tableWrap table thead tr th {padding:15px 0;}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="loading_layer">
|
||||||
|
<div class="loading_container">
|
||||||
|
<div class="bar"></div>
|
||||||
|
<div class="text">Loading</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form id="listForm" name="listForm" method="post">
|
||||||
|
<input name="pageIndex" type="hidden" value="<c:out value='${msgAlarmSetVO.pageIndex}'/>"/>
|
||||||
|
<input name="checkedIdForDel" type="hidden" />
|
||||||
|
<div class="contWrap" style="position:relative;left:inherit;top:inherit;min-height:auto;padding:40px;">
|
||||||
|
<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">
|
||||||
|
<div class="listSerch">
|
||||||
|
<select id="startHour" name="startHour" class="select" title="시작시간">
|
||||||
|
<c:forEach var="hour" begin="0" end="23" step="1" varStatus="status">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${hour < 10}">
|
||||||
|
<option value="0${hour}">0${hour}시</option>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<option value="${hour}">${hour}시</option>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="startMin" name="startMin" class="select" title="시작시간분">
|
||||||
|
<c:forEach var="min" begin="0" end="59" step="1">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${min < 10}">
|
||||||
|
<option value="0${min}">0${min}분</option>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<option value="${min}">${min}분</option>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
부터
|
||||||
|
|
||||||
|
<select id="endHour" name="endHour" class="select" title="종료시간">
|
||||||
|
<c:forEach var="hour" begin="0" end="23" step="1" varStatus="status">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${hour < 10}">
|
||||||
|
<option value="0${hour}">0${hour}시</option>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<option value="${hour}">${hour}시</option>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="endMin" name="endMin" class="select" title="종료시간분">
|
||||||
|
<c:forEach var="min" begin="0" end="59" step="1">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${min < 10}">
|
||||||
|
<option value="0${min}">0${min}분</option>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<option value="${min}">${min}분</option>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
까지
|
||||||
|
|
||||||
|
<select id="alarmType" name="alarmType" class="select" title="알람종류">
|
||||||
|
<option value="W">평일 (월~금)</option>
|
||||||
|
<option value="E">주말 (토/일)</option>
|
||||||
|
<option value="H">공휴일</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<input type="button" class="btnType1" onclick="javascript:fnAlimSetReg();" value="+ 추가" style="margin-left:20px;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="listTop">
|
||||||
|
<p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p>
|
||||||
|
<div class="rightWrap">
|
||||||
|
<input type="button" class="btnType2" onclick="javascript:fnGoHoliday();" value="공휴일 관리">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tableWrap">
|
||||||
|
<table class="tbType1">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: 15%">
|
||||||
|
<col style="width: 15%">
|
||||||
|
<col style="width: 15%">
|
||||||
|
<col style="width: 15%">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="fnCheckAll();" /><label for="checkAll"></label></th>
|
||||||
|
<th>번호</th>
|
||||||
|
<th>구분</th>
|
||||||
|
<th>시작시간</th>
|
||||||
|
<th>종료시간</th>
|
||||||
|
<th colspan="2">사용여부</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="result" items="${resultList}" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input name="checkField" id="<c:out value="${result.alarmId}"/>" title="Check <c:out value="${status.count}"/>" type="checkbox"/><label for="<c:out value="${result.alarmId}"/>"></label>
|
||||||
|
<input name="checkId" type="hidden" class="${result.alarmId}" value="<c:out value='${result.alarmId}'/>"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:if test="${msgAlarmSetVO.searchSortOrd eq 'desc' }">
|
||||||
|
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${msgAlarmSetVO.searchSortOrd eq 'asc' }">
|
||||||
|
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
|
||||||
|
</c:if>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.alarmType eq 'W'}">
|
||||||
|
평일
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${result.alarmType eq 'E'}">
|
||||||
|
주말
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
공휴일
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${result.alarmStart}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${result.alarmEnd}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.useYn eq 'Y'}">
|
||||||
|
사용 중
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<!-- 사용으로 변경 -->
|
||||||
|
<input type="button" class="btnType1" onclick="javascript:fnUpdateAlarmUse('<c:out value="${result.alarmId}"/>','Y');" value="사용" style="width:55px;"/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.useYn eq 'Y'}">
|
||||||
|
<!-- 미사용으로 변경 -->
|
||||||
|
<input type="button" class="btnType1" onclick="javascript:fnUpdateAlarmUse('<c:out value="${result.alarmId}"/>','N');" value="미사용"/>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
미사용
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
<c:if test="${empty resultList}">
|
||||||
|
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
|
||||||
|
</c:if>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="btnWrap">
|
||||||
|
<input type="button" class="btnType2" onclick="fnMsgAlimDel(); return false;" value="삭제">
|
||||||
|
<input type="button" class="btnType1" onclick="fnClose(); return false;" value="닫기">
|
||||||
|
</div>
|
||||||
|
<!-- 페이지 네비게이션 시작 -->
|
||||||
|
<c:if test="${!empty resultList}">
|
||||||
|
<div class="page">
|
||||||
|
<ul class="inline">
|
||||||
|
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<!-- //페이지 네비게이션 끝 -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,443 @@
|
|||||||
|
<%--
|
||||||
|
Class Name : MsgHolidayModifyPopup.jsp
|
||||||
|
Description : 공휴일 등록 팝업
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2024.07.29 우영두 최초 생성
|
||||||
|
|
||||||
|
author : 우영두
|
||||||
|
since : 2022.07.01
|
||||||
|
|
||||||
|
Copyright (C) 2009 by MOPAS All right reserved.
|
||||||
|
--%>
|
||||||
|
<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
|
||||||
|
<% pageContext.setAttribute("newLineChar", "\r\n"); %>
|
||||||
|
<% pageContext.setAttribute("newLineChar2", "\n"); %>
|
||||||
|
<%
|
||||||
|
response.setHeader("Cache-Control","no-store");
|
||||||
|
response.setHeader("Pragma","no-cache");
|
||||||
|
response.setDateHeader("Expires",0);
|
||||||
|
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
|
||||||
|
%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="kr">
|
||||||
|
<head>
|
||||||
|
<title>공휴일 등록</title>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<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">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail {overflow:inherit;text-overflow:inherit;position:relative;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail p {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover {overflow:hidden;text-overflow:ellipsis;display:none;word-wrap:break-word;-webkit-line-clamp:20;-webkit-box-orient:vertical;position:absolute;left:-5px;top:45px;width:calc(100% + 150px);padding:15px;line-height:20px;white-space:normal;border:1px solid #e5e5e5;background:#fff;border-radius:5px;box-sizing:border-box;box-shadow:0px 3px 10px 0px rgb(0 0 0 / 0.2);z-index:1;font-size:14px;text-align:left;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover:after {content:'';position:absolute;left:0;bottom:0;width:100%;height:10px;background:#fff;border-radius:0 0 5px 5px;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail:hover .sms_detail_hover {display:-webkit-box;}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="/pb/js/jquery-3.5.0.js"></script>
|
||||||
|
<script type="text/javascript" src="/pb/js/common.js"></script>
|
||||||
|
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script>
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
|
||||||
|
function fn_search(){
|
||||||
|
var searchKeyword = $('input[name=searchKeyword]').val();
|
||||||
|
$('input[name=searchKeyword]').val(searchKeyword.replace(/(\s*)/g, ""));
|
||||||
|
linkPage(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function linkPage(pageNo){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.pageIndex.value = pageNo ;
|
||||||
|
if( $('#ntceBgndeYYYMMDD').val() != '' && $('#ntceEnddeYYYMMDD').val() != '' ){
|
||||||
|
var iChkBeginDe = Number($('#ntceBgndeYYYMMDD').val().replaceAll("-", ""));
|
||||||
|
var iChkEndDe = Number($('#ntceEnddeYYYMMDD').val().replaceAll("-", ""));
|
||||||
|
if(iChkBeginDe > iChkEndDe || iChkEndDe < iChkBeginDe ){
|
||||||
|
alert("검색시작일자는 종료일자 보다 클수 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#ntceBgnde').val($('#ntceBgndeYYYMMDD').val()) ;
|
||||||
|
$('#ntceEndde').val($('#ntceEnddeYYYMMDD').val()) ;
|
||||||
|
|
||||||
|
listForm.action = "<c:url value='/uss/umt/user/EgovGnrlselectedUserMsgDataListAjax.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function fnCheckAll() {
|
||||||
|
if( $("#checkAll").is(':checked') ){
|
||||||
|
$("input[name=del]").prop("checked", true);
|
||||||
|
}else{
|
||||||
|
$("input[name=del]").prop("checked", false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 체크된 메인배너 목록 삭제 */
|
||||||
|
function fn_delete(){
|
||||||
|
if($("input[name=del]:checked").length == 0){
|
||||||
|
alert("선택된 항목이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (confirm("해당 문자를 삭제하시겠습니까?")){
|
||||||
|
frm = document.listForm;
|
||||||
|
frm.action = "<c:url value='/uss/ion/msg/SendMsgDelete.do' />";
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 수정 화면*/
|
||||||
|
function fn_modify(msgId){
|
||||||
|
var frm = document.modiForm ;
|
||||||
|
frm.msgId.value = msgId ;
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 수정 화면*/
|
||||||
|
function fn_detail_list(msgGroupId){
|
||||||
|
var frm = document.modiForm ;
|
||||||
|
frm.msgGroupId.value = msgGroupId ;
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 날자 초기화 */
|
||||||
|
function init_date(){
|
||||||
|
$('#ntceBgndeYYYMMDD').val('');
|
||||||
|
$('#ntceEnddeYYYMMDD').val('');
|
||||||
|
$('#ntceBgnde').val('');
|
||||||
|
$('#ntceEndde').val('');
|
||||||
|
|
||||||
|
$('#searchKeyword').val('');
|
||||||
|
$('#sendKind').val('').prop("selected",true);
|
||||||
|
$('#searchCondition').val('').prop("selected",true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//엑셀 다운로드
|
||||||
|
function sendMsgExcelDownload(){
|
||||||
|
var frm = document.listForm;
|
||||||
|
$('#ntceBgnde').val($('#ntceBgndeYYYMMDD').val()) ;
|
||||||
|
$('#ntceEndde').val($('#ntceEnddeYYYMMDD').val()) ;
|
||||||
|
|
||||||
|
var ntceBgnde = $('#ntceBgndeYYYMMDD').val();
|
||||||
|
var ntceEndde = $('#ntceEnddeYYYMMDD').val();
|
||||||
|
|
||||||
|
frm.ntceBgnde.value = ntceBgnde;
|
||||||
|
frm.ntceEndde.value = ntceEndde;
|
||||||
|
|
||||||
|
frm.method = "post";
|
||||||
|
frm.action = "<c:url value='/uss/ion/msg/selectMberSendMsgExcelDownload.do'/>";
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnHolidayReg(){
|
||||||
|
|
||||||
|
var form = document.modiForm;
|
||||||
|
|
||||||
|
if(form.holidayNm.value == ""){
|
||||||
|
alert("휴일명을 입력해 주세요.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(form.ntceBgndeYYYMMDD.value == ""){
|
||||||
|
|
||||||
|
alert("휴일 일자를 선택해 주세요.");
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(form.holidayType.value == ""){
|
||||||
|
|
||||||
|
alert("휴일 구분을 입력해 주세요.");
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(confirm("공휴일을 등록하시겠습니까?")){
|
||||||
|
|
||||||
|
var holidayDate = form.ntceBgndeYYYMMDD.value;
|
||||||
|
|
||||||
|
url = "/let/mjo/holiday/insertHolidayRegistAjax.do";
|
||||||
|
var jsonParam = {"holidayNm" : form.holidayNm.value, "holidayDate" : holidayDate, "holidayType" : form.holidayType.value};
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url,
|
||||||
|
data: JSON.stringify(jsonParam),
|
||||||
|
dataType:'json',
|
||||||
|
contentType: 'application/json',
|
||||||
|
async: true,
|
||||||
|
success: function (data) {
|
||||||
|
if(data.status == "OK"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
opener.location.reload();
|
||||||
|
window.close();
|
||||||
|
|
||||||
|
}else if(data.status == "UNAUTHORIZED"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
window.location.href="/uat/uia/EgovLoginUsr.do";
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeSend: function () {
|
||||||
|
//로딩창 show
|
||||||
|
$('.loading_layer').addClass('active');
|
||||||
|
},
|
||||||
|
complete: function () {
|
||||||
|
//로딩창 hide
|
||||||
|
$('.loading_layer').removeClass('active');
|
||||||
|
},
|
||||||
|
error: function (e) { alert("공휴일 정보 등록에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnHolidayUpdt(){
|
||||||
|
|
||||||
|
var form = document.modiForm;
|
||||||
|
|
||||||
|
if(form.holidayNm.value == ""){
|
||||||
|
alert("휴일명을 입력해 주세요.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(confirm("공휴일 정보를 수정하시겠습니까?")){
|
||||||
|
|
||||||
|
var holidayDate = form.ntceBgndeYYYMMDD.value;
|
||||||
|
|
||||||
|
url = "/let/mjo/holiday/updateHolidayDataAjax.do";
|
||||||
|
var jsonParam = {"holidayId" : form.holidayId.value,"holidayNm" : form.holidayNm.value, "holidayDate" : holidayDate, "holidayType" : form.holidayType.value};
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url,
|
||||||
|
data: JSON.stringify(jsonParam),
|
||||||
|
dataType:'json',
|
||||||
|
contentType: 'application/json',
|
||||||
|
async: true,
|
||||||
|
success: function (data) {
|
||||||
|
if(data.status == "OK"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
opener.location.reload();
|
||||||
|
window.close();
|
||||||
|
|
||||||
|
}else if(data.status == "UNAUTHORIZED"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
window.location.href="/uat/uia/EgovLoginUsr.do";
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeSend: function () {
|
||||||
|
//로딩창 show
|
||||||
|
$('.loading_layer').addClass('active');
|
||||||
|
},
|
||||||
|
complete: function () {
|
||||||
|
//로딩창 hide
|
||||||
|
$('.loading_layer').removeClass('active');
|
||||||
|
},
|
||||||
|
error: function (e) { alert("공휴일 정보 변경에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnHolidayDel(){
|
||||||
|
|
||||||
|
var form = document.modiForm;
|
||||||
|
|
||||||
|
if(confirm("공휴일 정보를 삭제하시겠습니까?")){
|
||||||
|
|
||||||
|
url = "/let/mjo/holiday/deleteHolidayDataAjax.do";
|
||||||
|
var jsonParam = {"holidayId" : form.holidayId.value};
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url,
|
||||||
|
data: JSON.stringify(jsonParam),
|
||||||
|
dataType:'json',
|
||||||
|
contentType: 'application/json',
|
||||||
|
async: true,
|
||||||
|
success: function (data) {
|
||||||
|
if(data.status == "OK"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
opener.location.reload();
|
||||||
|
window.close();
|
||||||
|
|
||||||
|
}else if(data.status == "UNAUTHORIZED"){
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
window.location.href="/uat/uia/EgovLoginUsr.do";
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
alert(data.message);
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeSend: function () {
|
||||||
|
//로딩창 show
|
||||||
|
$('.loading_layer').addClass('active');
|
||||||
|
},
|
||||||
|
complete: function () {
|
||||||
|
//로딩창 hide
|
||||||
|
$('.loading_layer').removeClass('active');
|
||||||
|
},
|
||||||
|
error: function (e) { alert("공휴일 삭제에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnClose(){
|
||||||
|
|
||||||
|
window.close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
.pageCont {width:100%;padding:50px 30px;box-sizing:border-box;}
|
||||||
|
.tableWrapTotal {margin:0 0 20px;}
|
||||||
|
.tableWrapTotal .tbType1 thead tr:first-child {border-width:1px;}
|
||||||
|
.tableWrapTotal .tbType1 thead tr th {border-left:1px solid #e6e6e6;}
|
||||||
|
.tableWrapTotal .tbType1 thead tr th:first-child {border-left:0 none;}
|
||||||
|
.tableWrapTotal .tbType1 thead tr.content th {font-size:14px;}
|
||||||
|
.tableWrapTotal .tbType1 tbody tr td {border-left:1px solid #e6e6e6;}
|
||||||
|
.tableWrapTotal .tbType1 tbody tr td:first-child {border-left:0 none;}
|
||||||
|
.listSerch .select {height:42px;vertical-align:top;}
|
||||||
|
.pageCont .tbType1 tbody tr td.msg_detail {overflow:inherit;}
|
||||||
|
.pageCont .tbType1 tbody tr td.msg_detail a {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;}
|
||||||
|
/* .layer_msg_wrap {position:relative;} */
|
||||||
|
.layer_msg_wrap .layer_msg_detail {overflow:hidden;display:none;position:absolute;left:50%;top:600px;width:400px;max-height:600px;background:#eee;transform:translateX(-50%);z-index:1;}
|
||||||
|
.layer_msg_wrap .layer_msg_detail button {position:absolute;right:0;top:0;width:35px;height:35px;}
|
||||||
|
.layer_msg_wrap .layer_msg_detail button:before {content:'';position:absolute;left:50%;top:50%;width:1px;height:14px;margin:-7px 0 0;background:#fff;transform:rotate(-45deg);}
|
||||||
|
.layer_msg_wrap .layer_msg_detail button:after {content:'';position:absolute;left:50%;top:50%;width:1px;height:14px;margin:-7px 0 0;background:#fff;transform:rotate(45deg);}
|
||||||
|
.layer_msg_wrap .layer_msg_detail .title {height:35px;padding:0 15px;font-size:16px;line-height:35px;text-align:left;color:#fff;background:#456ded;border-radius:5px 5px 0 0;}
|
||||||
|
.layer_msg_wrap .layer_msg_detail .content {overflow-y:auto;max-height:535px;margin:15px;padding:10px 15px;line-height:20px;white-space:normal;background:#fff;}
|
||||||
|
.layer_msg_wrap .layer_msg_detail .content .rev_cont {text-align:left;}
|
||||||
|
@media screen and (max-width:916px){
|
||||||
|
.pageCont .tableWrap table thead tr th {padding:15px 0;}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="loading_layer">
|
||||||
|
<div class="loading_container">
|
||||||
|
<div class="bar"></div>
|
||||||
|
<div class="text">Loading</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form id="modiForm" name="modiForm" method="post">
|
||||||
|
<input type="hidden" id="holidayId" name="holidayId" value="<c:out value='${result.holidayId}'/>"/>
|
||||||
|
<input type="hidden" name="ntceBgnde" id="ntceBgnde" value="">
|
||||||
|
<input type="hidden" name="ntceEndde" id="ntceEndde" value="">
|
||||||
|
|
||||||
|
<div class="contWrap" style="position:relative;left:inherit;top:inherit;min-height:auto;padding:40px; width:900px; ">
|
||||||
|
<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" style="min-height: 300px;">
|
||||||
|
<table class="tbType2">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 20%">
|
||||||
|
<col style="width: 80%">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th><span class="reqArea">휴일명</span></th>
|
||||||
|
<td colspan="3">
|
||||||
|
<input type="text" id="holidayNm" name="holidayNm" title="아이디" maxlength="30" value="<c:out value='${result.holidayNm}'/>"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th><span class="reqArea">휴일 일자</span></th>
|
||||||
|
<td colspan="3">
|
||||||
|
<input type="hidden" name="cal_url" id="cal_url" value="/sym/cmm/EgovNormalCalPopup.do">
|
||||||
|
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.modiForm, document.forms.modiForm.ntceBgndeYYYMMDD);">
|
||||||
|
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly=""
|
||||||
|
value="<c:out value='${result.holidayDate}'/>" >
|
||||||
|
<input type="button" class="calBtn">
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th><span class="reqArea">휴일 구분</span></th>
|
||||||
|
<td colspan="3">
|
||||||
|
<select id="holidayType" name="holidayType" style="min-width: 150px;">
|
||||||
|
<option value="1" <c:if test="${result.holidayType eq '1'}">selected</c:if> >법정 공휴일</option>
|
||||||
|
<option value="2" <c:if test="${result.holidayType eq '2'}">selected</c:if>>임시 공휴일</option>
|
||||||
|
<option value="3" <c:if test="${result.holidayType eq '3'}">selected</c:if>>기타</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="btnWrap" style="margin-bottom: 15px;">
|
||||||
|
<input type="button" class="btnType1" onclick="fnClose(); return false;" value="닫기">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.holidayId > 0}">
|
||||||
|
<input type="button" class="btnType2" onclick="fnHolidayDel(); return false;" value="삭제">
|
||||||
|
<input type="button" class="btnType1" onclick="fnHolidayUpdt(); return false;" value="수정">
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<input type="button" class="btnType1" onclick="fnHolidayReg(); return false;" value="등록">
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -6,9 +6,34 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>관리자 알림 관리</title>
|
<title>관리자 알림 관리</title>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
$(document).ready(function(){
|
||||||
|
|
||||||
|
var holiSmishingNoti = $('#holiSmishingNoti').val();
|
||||||
|
|
||||||
|
if(holiSmishingNoti == "Y"){
|
||||||
|
|
||||||
|
$('.btnTypeAlim').hide();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#holiSmishingNoti').change(function(){
|
||||||
|
|
||||||
|
if($('#holiSmishingNoti').val() == "Y"){
|
||||||
|
|
||||||
|
$('.btnTypeAlim').hide();
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
$('.btnTypeAlim').show();
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
function doUpdate() {
|
function doUpdate() {
|
||||||
var form = document.form;
|
var form = document.form;
|
||||||
@ -20,7 +45,20 @@
|
|||||||
form.submit();
|
form.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fnAlimSetPopup(){
|
||||||
|
|
||||||
|
window.open("about:blank", 'popupAlimSetting', 'width=1250, height=800, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbar=no');
|
||||||
|
document.form.action = "<c:url value='/uss/umt/holiday/alarmSet/selectAlarmSettingPopupAjax.do'/>";
|
||||||
|
document.form.target = "popupAlimSetting";
|
||||||
|
document.form.submit();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.pageCont .btnTypeAlim{background-color: #456ded !important;}
|
||||||
|
.btnTypeAlim{font-size: 1em;height: 40px;vertical-align: middle;color: #fff;background-color: #aaa;border: none;border-radius: 3px;cursor: pointer;padding: 0 10px}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="contWrap">
|
<div class="contWrap">
|
||||||
@ -73,6 +111,17 @@
|
|||||||
<option value="N" <c:if test="${joinSettingVO.smishingNoti == 'N'}">selected</c:if> >비활성화</option>
|
<option value="N" <c:if test="${joinSettingVO.smishingNoti == 'N'}">selected</c:if> >비활성화</option>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>스미싱의심 알림 여부</th>
|
||||||
|
<td>
|
||||||
|
<select name="holiSmishingNoti" id="holiSmishingNoti">
|
||||||
|
<option value="Y" <c:if test="${joinSettingVO.holiSmishingNoti == 'Y'}">selected</c:if> >활성화</option>
|
||||||
|
<option value="N" <c:if test="${joinSettingVO.holiSmishingNoti == 'N'}">selected</c:if> >비활성화</option>
|
||||||
|
</select>
|
||||||
|
<input type="button" class="btnTypeAlim" value="일정관리" onclick="javascript:fnAlimSetPopup(); return false;" style="margin-left:50px;">
|
||||||
|
</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
705
src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendHoliMsgList.jsp
Normal file
705
src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendHoliMsgList.jsp
Normal file
@ -0,0 +1,705 @@
|
|||||||
|
<%--
|
||||||
|
Class Name : SendHoliMsgList.jsp
|
||||||
|
Description : 야간 스미싱의심 알림 제한 발송 내역
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2024.07.24 우영두 최초 생성
|
||||||
|
|
||||||
|
author : 공통서비스 개발팀 장동한
|
||||||
|
since : 2009.09.16
|
||||||
|
|
||||||
|
Copyright (C) 2009 by MOPAS All right reserved.
|
||||||
|
--%>
|
||||||
|
<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
|
||||||
|
<% pageContext.setAttribute("newLineChar", "\r\n"); %>
|
||||||
|
<% pageContext.setAttribute("newLineChar2", "\n"); %>
|
||||||
|
<%
|
||||||
|
response.setHeader("Cache-Control","no-store");
|
||||||
|
response.setHeader("Pragma","no-cache");
|
||||||
|
response.setDateHeader("Expires",0);
|
||||||
|
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
|
||||||
|
%>
|
||||||
|
<!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/EgovMultiFile.js'/>"></script>
|
||||||
|
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script>
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
|
||||||
|
function fn_search(){
|
||||||
|
var searchKeyword = $('input[name=searchKeyword]').val();
|
||||||
|
$('input[name=searchKeyword]').val(searchKeyword.replace(/(\s*)/g, ""));
|
||||||
|
linkPage(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function linkPage(pageNo){
|
||||||
|
var toDay = getToday();
|
||||||
|
//if (toDay == $('#ntceBgndeYYYMMDD').val() && toDay == $('#ntceEnddeYYYMMDD').val()) {
|
||||||
|
if ($('#ntceBgndeYYYMMDD').val() != "" && $('#ntceEnddeYYYMMDD').val() != "") {
|
||||||
|
// 오늘 검색
|
||||||
|
$("#todayYn").val("Y");
|
||||||
|
}
|
||||||
|
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.pageIndex.value = pageNo ;
|
||||||
|
|
||||||
|
$('#ntceBgnde').val($('#ntceBgndeYYYMMDD').val()) ; //검색날짜 세팅
|
||||||
|
$('#ntceEndde').val($('#ntceEnddeYYYMMDD').val()) ;
|
||||||
|
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setToday(){
|
||||||
|
var toDay = getToday();
|
||||||
|
|
||||||
|
$('#ntceBgndeYYYMMDD').val(toDay);
|
||||||
|
$('#ntceEnddeYYYMMDD').val(toDay);
|
||||||
|
|
||||||
|
$('#ntceBgnde').val($('#ntceBgndeYYYMMDD').val()) ;
|
||||||
|
$('#ntceEndde').val($('#ntceEnddeYYYMMDD').val()) ;
|
||||||
|
|
||||||
|
// 오늘 검색
|
||||||
|
$("#todayYn").val("Y");
|
||||||
|
|
||||||
|
linkPage(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getToday() {
|
||||||
|
// new Date를 통해서 날짜 객체를 생성. 여기서 년, 월, 일 정보만 필요.
|
||||||
|
const nowDate = new Date();
|
||||||
|
|
||||||
|
var year = nowDate.getFullYear(); // 년
|
||||||
|
var month = ('0' + (nowDate.getMonth() + 1)).slice(-2); // 월
|
||||||
|
var day = ('0' + nowDate.getDate()).slice(-2); // 일
|
||||||
|
|
||||||
|
// yyyy-mm-dd 형식으로 todate에 담기.
|
||||||
|
var todate = year + '-' + month + '-' + day;
|
||||||
|
|
||||||
|
return todate;
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnCheckAll() {
|
||||||
|
if( $("#checkAll").is(':checked') ){
|
||||||
|
$("input[name=del]").prop("checked", true);
|
||||||
|
}else{
|
||||||
|
$("input[name=del]").prop("checked", false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 체크된 메인배너 목록 삭제 */
|
||||||
|
function fn_delete(){
|
||||||
|
if($("input[name=del]:checked").length == 0){
|
||||||
|
alert("선택된 항목이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (confirm("해당 문자를 삭제하시겠습니까?")){
|
||||||
|
frm = document.listForm;
|
||||||
|
frm.action = "<c:url value='/uss/ion/msg/SendMsgDelete.do' />";
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 수정 화면*/
|
||||||
|
function fn_modify(msgId){
|
||||||
|
var frm = document.modiForm ;
|
||||||
|
frm.msgId.value = msgId ;
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 수정 화면*/
|
||||||
|
function fn_detail_list(msgGroupId){
|
||||||
|
var frm = document.modiForm ;
|
||||||
|
frm.msgGroupId.value = msgGroupId ;
|
||||||
|
frm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 날자 초기화 */
|
||||||
|
function init_date(){
|
||||||
|
$('#ntceBgndeYYYMMDD').val('');
|
||||||
|
$('#ntceEnddeYYYMMDD').val('');
|
||||||
|
$('#ntceBgnde').val('');
|
||||||
|
$('#ntceEndde').val('');
|
||||||
|
}
|
||||||
|
|
||||||
|
//기간선택 select
|
||||||
|
function fnSetCalMonth(val) {
|
||||||
|
var form = document.listForm;
|
||||||
|
var today = new Date();
|
||||||
|
|
||||||
|
var year = today.getFullYear();
|
||||||
|
var month = ("0"+(today.getMonth()+1)).slice(-2);
|
||||||
|
var date = ("0"+today.getDate()).slice(-2);
|
||||||
|
|
||||||
|
var sDate = new Date(today.setMonth(today.getMonth() - val));
|
||||||
|
|
||||||
|
var sYear = sDate.getFullYear();
|
||||||
|
var sMonth = ("0"+(sDate.getMonth()+1)).slice(-2);
|
||||||
|
var sDate = ("0"+sDate.getDate()).slice(-2);
|
||||||
|
|
||||||
|
form.ntceBgndeYYYMMDD.value = sYear + "-" + sMonth + "-" + sDate;
|
||||||
|
form.ntceEnddeYYYMMDD.value = year + "-" + month + "-" + date;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnSelectMber(mberId) {
|
||||||
|
document.modiForm2.mberId.value = mberId;
|
||||||
|
window.open("about:blank", 'popupSelectMber', 'width=900, height=1800, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbar=no');
|
||||||
|
document.modiForm2.action = "<c:url value='/uss/umt/user/EgovGnrlselectedUserView.do'/>";
|
||||||
|
document.modiForm2.target = "popupSelectMber";
|
||||||
|
document.modiForm2.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function fnCheckAll(){
|
||||||
|
var checkField = document.listForm.checkField;
|
||||||
|
if(document.listForm.checkAll.checked) {
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var i=0; i < checkField.length; i++) {
|
||||||
|
checkField[i].checked = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
checkField.checked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var j=0; j < checkField.length; j++) {
|
||||||
|
checkField[j].checked = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
checkField.checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 법인폰 알림 업데이트
|
||||||
|
function fnSmsNotiUpdate(flag) {
|
||||||
|
if($("input:checkbox[name='checkField']").is(":checked")==false){
|
||||||
|
alert("선택된 항목이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var checkField = document.listForm.checkField;
|
||||||
|
var id = document.listForm.checkId;
|
||||||
|
var checkedIds = "";
|
||||||
|
var checkedCount = 0;
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var i=0; i < checkField.length; i++) {
|
||||||
|
if(checkField[i].checked) {
|
||||||
|
checkedIds += ((checkedCount==0? "" : ",") + id[i].className);
|
||||||
|
checkedCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(checkField.checked) {
|
||||||
|
checkedIds = id.className;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(checkedIds.length > 0) {
|
||||||
|
var msg = "";
|
||||||
|
if(flag == 'on') {
|
||||||
|
document.listForm.adminSmsNoticeYn.value='Y';
|
||||||
|
msg = "선택하신 사용자의 법인폰 알림을 On 하시겠습니까?";
|
||||||
|
} else {
|
||||||
|
document.listForm.adminSmsNoticeYn.value='N';
|
||||||
|
msg = "선택하신 사용자의 법인폰 알림을 Off 하시겠습니까?";
|
||||||
|
}
|
||||||
|
if(confirm(msg)){
|
||||||
|
document.listForm.checkedIdForDel.value=checkedIds;
|
||||||
|
document.listForm.action = "<c:url value='/uss/umt/user/EgovUsersSmsNoticeUpdate3.do'/>";
|
||||||
|
document.listForm.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//스미싱의심 온/오프
|
||||||
|
function fnSmishingUpdate(flag) {
|
||||||
|
if($("input:checkbox[name='checkField']").is(":checked")==false){
|
||||||
|
alert("선택된 항목이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var checkField = document.listForm.checkField;
|
||||||
|
var id = document.listForm.checkId;
|
||||||
|
var checkedIds = "";
|
||||||
|
var checkedCount = 0;
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var i=0; i < checkField.length; i++) {
|
||||||
|
if(checkField[i].checked) {
|
||||||
|
checkedIds += ((checkedCount==0? "" : ",") + id[i].className);
|
||||||
|
checkedCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(checkField.checked) {
|
||||||
|
checkedIds = id.className;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(checkedIds.length > 0) {
|
||||||
|
var msg = "";
|
||||||
|
if(flag == 'on') {
|
||||||
|
document.listForm.smishingYn.value='Y';
|
||||||
|
msg = "선택하신 사용자의 스미싱의심을 On 하시겠습니까?";
|
||||||
|
} else {
|
||||||
|
document.listForm.smishingYn.value='N';
|
||||||
|
msg = "선택하신 사용자의 스미싱의심을 Off 하시겠습니까?";
|
||||||
|
}
|
||||||
|
if(confirm(msg)){
|
||||||
|
document.listForm.checkedIdForDel.value=checkedIds;
|
||||||
|
document.listForm.action = "<c:url value='/uss/umt/user/EgovUsersSmishingUpdate.do'/>";
|
||||||
|
document.listForm.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnUserMsgUpdt(){
|
||||||
|
|
||||||
|
if($("input:checkbox[name='checkField']").is(":checked")==false){
|
||||||
|
alert("선택된 항목이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var checkField = document.listForm.checkField;
|
||||||
|
var id = document.listForm.checkId;
|
||||||
|
var checkedIds = "";
|
||||||
|
var checkedCount = 0;
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var i=0; i < checkField.length; i++) {
|
||||||
|
if(checkField[i].checked) {
|
||||||
|
checkedIds += ((checkedCount==0? "" : ",") + id[i].value);
|
||||||
|
checkedCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(checkField.checked) {
|
||||||
|
checkedIds = id.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(checkedIds.length > 0) {
|
||||||
|
var msg = "사용자 이용정지 및 예약문자 취소를 진행하시겠습니까?";
|
||||||
|
|
||||||
|
if(confirm(msg)){
|
||||||
|
document.listForm.checkedIdForDel.value=checkedIds;
|
||||||
|
document.listForm.action = "<c:url value='/uss/ion/msg/updateUserMsgData.do'/>";
|
||||||
|
document.listForm.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnMsgStatusUpdt(){
|
||||||
|
|
||||||
|
if($("input:checkbox[name='checkField']").is(":checked")==false){
|
||||||
|
alert("선택된 항목이 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var checkField = document.listForm.checkField;
|
||||||
|
var id = document.listForm.checkId;
|
||||||
|
var checkedIds = "";
|
||||||
|
var checkedCount = 0;
|
||||||
|
if(checkField) {
|
||||||
|
if(checkField.length > 1) {
|
||||||
|
for(var i=0; i < checkField.length; i++) {
|
||||||
|
if(checkField[i].checked) {
|
||||||
|
checkedIds += ((checkedCount==0? "" : ",") + id[i].value);
|
||||||
|
checkedCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(checkField.checked) {
|
||||||
|
checkedIds = id.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(checkedIds.length > 0) {
|
||||||
|
var msg = "이용자정지, 예약취소 없이 상태만 변경됩니다. 완료처리를 진행하시겠습니까?";
|
||||||
|
|
||||||
|
if(confirm(msg)){
|
||||||
|
document.listForm.checkedIdForDel.value=checkedIds;
|
||||||
|
document.listForm.action = "<c:url value='/uss/ion/msg/updateMsgStatusData.do'/>";
|
||||||
|
document.listForm.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail {overflow:inherit;text-overflow:inherit;position:relative;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail p {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover {overflow:hidden;text-overflow:ellipsis;display:none;word-wrap:break-word;-webkit-line-clamp:20;-webkit-box-orient:vertical;position:absolute;left:-15px;top:45px;width:calc(100% + 150px);padding:15px;line-height:20px;white-space:normal;border:1px solid #e5e5e5;background:#fff;border-radius:5px;box-sizing:border-box;box-shadow:0px 3px 10px 0px rgb(0 0 0 / 0.2);z-index:1;font-size:14px;text-align:left;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail .sms_detail_hover:after {content:'';position:absolute;left:0;bottom:0;width:100%;height:10px;background:#fff;border-radius:0 0 5px 5px;}
|
||||||
|
.pageCont .tbType1 tbody tr td.sms_detail:hover .sms_detail_hover {display:-webkit-box;}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form name="listForm" action="<c:url value='/uss/ion/msg/selectHoliMsgList.do'/>" method="post">
|
||||||
|
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/>
|
||||||
|
<input type="hidden" name="delFlag" value="Y" />
|
||||||
|
<input type="hidden" name="selectedId" />
|
||||||
|
<input type="hidden" name="pageType" />
|
||||||
|
<input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
|
||||||
|
<input type="hidden" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
|
||||||
|
<input type="hidden" name="ntceBgnde" id="ntceBgnde" value="">
|
||||||
|
<input type="hidden" name="ntceEndde" id="ntceEndde" value="">
|
||||||
|
<input type="hidden" name="reserveYn" id="reserveYn" value="Y">
|
||||||
|
<input type="hidden" name="adminSmsNoticeYn" value=""/>
|
||||||
|
<input name="checkedIdForDel" type="hidden" />
|
||||||
|
<input type="hidden" name="todayYn" id="todayYn" value="N"/>
|
||||||
|
|
||||||
|
<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">
|
||||||
|
<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">
|
||||||
|
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceBgndeYYYMMDD);">
|
||||||
|
|
||||||
|
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="4" maxlength="4" readonly=""
|
||||||
|
value="<c:out value="${searchVO.ntceBgnde}" />" >
|
||||||
|
<input type="button" class="calBtn">
|
||||||
|
</a>
|
||||||
|
<span class="line">~</span>
|
||||||
|
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);">
|
||||||
|
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly=""
|
||||||
|
value="<c:out value="${searchVO.ntceEndde}" />"
|
||||||
|
>
|
||||||
|
<input type="button" class="calBtn">
|
||||||
|
</a>
|
||||||
|
<a href="#" style="margin-left: 17px;" onclick="init_date(); return false;">
|
||||||
|
<img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘">
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<br /><br />
|
||||||
|
<select name="searchCondition" class="select" title="검색조건 선택">
|
||||||
|
<option value="" <c:if test="${searchVO.searchCondition == ''}">selected="selected"</c:if>>ID/내용/발신번호(전체)</option>
|
||||||
|
<option value="1" <c:if test="${searchVO.searchCondition == '1'}">selected="selected"</c:if>>사용자ID</option>
|
||||||
|
<option value="2" <c:if test="${searchVO.searchCondition == '2'}">selected="selected"</c:if>>발신번호</option>
|
||||||
|
<option value="3" <c:if test="${searchVO.searchCondition == '3'}">selected="selected"</c:if>>전송내용</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<%-- <ec:select codeId="ITN019" name="searchCondition2" id="searchCondition2" css="class='select'" selectedValue="${searchVO.searchCondition2}"
|
||||||
|
defaultValue="" defaultText="전송사(전체)" /> --%>
|
||||||
|
|
||||||
|
<select name="searchCondition3" class="select" title="메세지타입(전체)" onchange="fn_search();">
|
||||||
|
<option value="" <c:if test="${searchVO.searchCondition3 == ''}">selected="selected"</c:if>>메세지타입(전체)</option>
|
||||||
|
<option value="1" <c:if test="${searchVO.searchCondition3 == '1'}">selected="selected"</c:if>>단문</option>
|
||||||
|
<option value="2" <c:if test="${searchVO.searchCondition3 == '2'}">selected="selected"</c:if>>장문</option>
|
||||||
|
<option value="3" <c:if test="${searchVO.searchCondition3 == '3'}">selected="selected"</c:if>>그림</option>
|
||||||
|
<option value="8" <c:if test="${searchVO.searchCondition3 == '8'}">selected="selected"</c:if>>알림톡</option>
|
||||||
|
<option value="9" <c:if test="${searchVO.searchCondition3 == '9'}">selected="selected"</c:if>>친구톡</option>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select name="cancelResultYn" id="cancelResultYn" title="처리상태" onchange="fn_search();">
|
||||||
|
<option value="" <c:if test="${empty searchVO.cancelResultYn }">selected="selected"</c:if> >처리상태</option>
|
||||||
|
<option value="Y" <c:if test="${searchVO.cancelResultYn == 'Y'}">selected="selected"</c:if>>처리완료</option>
|
||||||
|
<option value="N" <c:if test="${searchVO.cancelResultYn == 'N'}">selected="selected"</c:if>>미처리</option>
|
||||||
|
</select>
|
||||||
|
<select id="sendKind" name="sendKind" onchange="fn_search();">
|
||||||
|
<option value=""<c:if test="${searchVO.sendKind eq ''}">selected="selected"</c:if>>발송방식 전체</option>
|
||||||
|
<option value="H"<c:if test="${searchVO.sendKind eq 'H'}">selected="selected"</c:if>>WEB</option>
|
||||||
|
<option value="A"<c:if test="${searchVO.sendKind eq 'A'}">selected="selected"</c:if>>API</option>
|
||||||
|
</select>
|
||||||
|
<input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="15" title="검색" maxlength="100" />
|
||||||
|
<input type="button" class="btnType1" value="검색" onclick="fn_search(); return false;">
|
||||||
|
</div>
|
||||||
|
<div class="listTop">
|
||||||
|
<p class="tType5">
|
||||||
|
총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건
|
||||||
|
<c:if test="${todayYn eq 'Y' }">
|
||||||
|
(예약발송 : <fmt:formatNumber value="${msgGroupCntSum}" pattern="#,###" />건)
|
||||||
|
</c:if>
|
||||||
|
</p>
|
||||||
|
<div class="rightWrap">
|
||||||
|
<input type="button" style="cursor: pointer;" onclick="setToday();" value="Today">
|
||||||
|
|
||||||
|
<!-- <input type="button" class="printBtn"> -->
|
||||||
|
<select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);">
|
||||||
|
<option value='10' <c:if test="${searchVO.pageUnit == '10' or searchVO.pageUnit == ''}">selected</c:if>>10줄</option>
|
||||||
|
<option value='20' <c:if test="${searchVO.pageUnit == '20'}">selected</c:if>>20줄</option>
|
||||||
|
<option value='30' <c:if test="${searchVO.pageUnit == '30'}">selected</c:if>>30줄</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tableWrap">
|
||||||
|
<table class="tbType1">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 3%">
|
||||||
|
<col style="width: 5%">
|
||||||
|
<col style="width: 15%">
|
||||||
|
<col style="width: 5%">
|
||||||
|
<col style="width: 7%">
|
||||||
|
<col style="width: 8%">
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: 8%">
|
||||||
|
<col style="width: auto;">
|
||||||
|
<col style="width: 5%">
|
||||||
|
<col style="width: 5%">
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: 5%">
|
||||||
|
<%--
|
||||||
|
<col style="width: 13%">
|
||||||
|
--%>
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="fnCheckAll();" /><label for="checkAll"></label></th>
|
||||||
|
<th>번호<input type="button" class="sort sortBtn" id="sort_msgGroupId"></th>
|
||||||
|
<th>아이디<input type="button" class="sort sortBtn" id="sort_userId"></th>
|
||||||
|
<th>회원상태<input type="button" class="sort sortBtn" id="sort_adminSmsNoticeYn"></th>
|
||||||
|
<th>발신번호<input type="button" class="sort sortBtn" id="sort_callFrom"></th>
|
||||||
|
<th>발송건수<input type="button" class="sort sortBtn" id="sort_msgGroupCnt"></th>
|
||||||
|
<th>요청시간<input type="button" class="sort sortBtn" id="sort_reqDate"></th>
|
||||||
|
<th>예약여부<input type="button" class="sort sortBtn" id="sort_reserveYn"></th>
|
||||||
|
<th>내용<input type="button" class="sort sortBtn" id="sort_smsTxt"></th>
|
||||||
|
<th>타입<input type="button" class="sort sortBtn" id="sort_msgTypeTxt"></th>
|
||||||
|
<th>방식<input type="button" class="sort sortBtn" id="sort_sendKind"></th>
|
||||||
|
<th>등록일자<input type="button" class="sort sortBtn" id="sort_frstRegistPnttm"></th>
|
||||||
|
<th>처리상태<input type="button" class="sort sortBtn" id="sort_cancelResultYn"></th>
|
||||||
|
<!-- <th>예약상태<input type="button" class="sort sortBtn" id="sort_conectMthdTxt"></th> -->
|
||||||
|
<!--
|
||||||
|
<th>취소일자<input type="button" class="sort sortBtn" id="sort_agentCodeTxt"></th>
|
||||||
|
-->
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="result" items="${resultList}" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input name="checkField" id="<c:out value="${result.userId}_${status.count}"/>" title="Check <c:out value="${status.count}"/>" type="checkbox"/><label for="<c:out value="${result.userId}"/>"></label>
|
||||||
|
<input name="checkId" type="hidden" class="${result.userId}" value="<c:out value='${result.userId}'/>§<c:out value='${result.msgGroupId}'/>§<c:out value='${result.reserveYn}'/>"/>
|
||||||
|
</td>
|
||||||
|
<td <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if>>
|
||||||
|
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
|
||||||
|
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${searchVO.searchSortOrd eq 'asc' }">
|
||||||
|
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
|
||||||
|
</c:if>
|
||||||
|
</td>
|
||||||
|
<td <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if>>
|
||||||
|
<a href="#" onclick="javascript:fnSelectMber('<c:out value="${result.userId}"/>'); return false;">
|
||||||
|
<c:out value="${result.userId}"/>
|
||||||
|
(<c:out value="${result.userNm}"/>)
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if>>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.mberSttus eq 'Y'}">
|
||||||
|
일반
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${result.mberSttus eq 'N'}">
|
||||||
|
탈퇴
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${result.mberSttus eq 'B'}">
|
||||||
|
이용정지
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
기타(${result.mberSttus})
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td onclick="fn_detail_list('${result.msgGroupId}'); return false;" <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if><c:if test="${result.smishingYn eq 'N'}">style="cursor:pointer;"</c:if>>
|
||||||
|
<a href="#" onclick="fn_detail_list('${result.msgGroupId}'); return false;">
|
||||||
|
<c:out value="${result.callFrom}"/>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td onclick="fn_detail_list('${result.msgGroupId}'); return false;" <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if><c:if test="${result.smishingYn eq 'N'}">style="cursor:pointer;"</c:if>>
|
||||||
|
<fmt:parseDate value="${result.reqDate}" var="reqDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
||||||
|
<fmt:parseDate value="${result.nowDate}" var="nowDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${nowDateValue < reqDateValue}">
|
||||||
|
<c:out value="${result.msgGroupCnt}"/>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out value="${result.msgGroupCnt}"/>(<fmt:formatNumber value="${(result.successCount / result.msgGroupCnt) * 100}" pattern="#,###" />%)
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td onclick="fn_detail_list('${result.msgGroupId}'); return false;" <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if><c:if test="${result.smishingYn eq 'N'}">style="cursor:pointer;"</c:if>>
|
||||||
|
<c:out value="${result.reqDate}"/>
|
||||||
|
</td>
|
||||||
|
<td <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if>>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.reserveYn eq 'Y'}">
|
||||||
|
예약
|
||||||
|
<%-- <c:if test="${result.reserveCYn eq 'Y'}">
|
||||||
|
(취소)
|
||||||
|
</c:if> --%>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
즉시
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td class="sms_detail left" <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF;"</c:if>>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${empty result.smsTxt}">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.msgType eq '4'}">
|
||||||
|
내용없음
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
그림문자
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<div class="sms_detail_hover">
|
||||||
|
<c:if test="${not empty fn:split(result.atchFiles, '^')[0]}">
|
||||||
|
<img class="MyMsgImg1" src="/cmm/fms/getImage2.do?atchFileId=${fn:split(result.atchFiles, '^')[0]}&fileSn=0" style="width: 120px;">
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${not empty fn:split(result.atchFiles, '^')[1]}">
|
||||||
|
<img class="MyMsgImg1" src="/cmm/fms/getImage2.do?atchFileId=${fn:split(result.atchFiles, '^')[1]}&fileSn=0" style="width: 120px;">
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${not empty fn:split(result.atchFiles, '^')[2]}">
|
||||||
|
<img class="MyMsgImg1" src="/cmm/fms/getImage2.do?atchFileId=${fn:split(result.atchFiles, '^')[2]}&fileSn=0" style="width: 120px;">
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<p><c:out value="${result.smsTxt}"/></p>
|
||||||
|
<div class="sms_detail_hover">
|
||||||
|
<c:if test="${not empty fn:split(result.atchFiles, '^')[0]}">
|
||||||
|
<img class="MyMsgImg1" src="/cmm/fms/getImage2.do?atchFileId=${fn:split(result.atchFiles, '^')[0]}&fileSn=0" style="width: 120px;">
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${not empty fn:split(result.atchFiles, '^')[1]}">
|
||||||
|
<img class="MyMsgImg1" src="/cmm/fms/getImage2.do?atchFileId=${fn:split(result.atchFiles, '^')[1]}&fileSn=0" style="width: 120px;">
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${not empty fn:split(result.atchFiles, '^')[2]}">
|
||||||
|
<img class="MyMsgImg1" src="/cmm/fms/getImage2.do?atchFileId=${fn:split(result.atchFiles, '^')[2]}&fileSn=0" style="width: 120px;">
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<c:if test="${not empty fn:split(result.atchFiles, '^')[0]}">
|
||||||
|
<br />
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
<c:out value="${fn:replace(fn:replace(result.smsTxt, newLineChar, '<br/>'), newLineChar2, '<br/>')}" escapeXml="false"/>
|
||||||
|
</div>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if>>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.msgTypeTxt eq 'SMS전송'}">
|
||||||
|
SMS
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${result.msgTypeTxt eq 'MMS전송' && result.fileCnt eq '0'}">
|
||||||
|
LMS
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${result.msgTypeTxt eq 'MMS전송' && result.fileCnt ne '0'}">
|
||||||
|
MMS
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${result.msgTypeTxt eq '알림톡전송'}">
|
||||||
|
알림톡
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out value="${result.msgTypeTxt}"/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if>>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.sendKind eq 'A'}">
|
||||||
|
API
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${result.sendKind eq 'H'}">
|
||||||
|
WEB
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if>>
|
||||||
|
<c:out value="${result.frstRegistPnttm}"/>
|
||||||
|
</td>
|
||||||
|
<td <c:if test="${result.smishingYn eq 'Y'}">style="color: #0000FF; cursor:pointer;"</c:if>>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${result.cancelResultYn eq 'Y'}">
|
||||||
|
처리완료
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${result.cancelResultYn eq 'B'}">
|
||||||
|
이용정지
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${result.cancelResultYn eq 'R'}">
|
||||||
|
예약취소
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
미처리
|
||||||
|
</c:otherwise>
|
||||||
|
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
<c:if test="${empty resultList}">
|
||||||
|
<tr><td colspan="13"><spring:message code="common.nodata.msg" /></td></tr>
|
||||||
|
</c:if>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="btnWrap" style="margin-bottom: 15px;">
|
||||||
|
<input type="button" class="btnType2" style="padding:5px 10px" onclick="fnUserMsgUpdt(); return false;" value="사용자 이용정지 및 예약문자 취소">
|
||||||
|
<input type="button" class="btnType2" style="padding:5px 10px" onclick="fnMsgStatusUpdt(); return false;" value="완료 처리">
|
||||||
|
</div>
|
||||||
|
<!-- 페이지 네비게이션 시작 -->
|
||||||
|
<c:if test="${!empty resultList}">
|
||||||
|
<div class="page">
|
||||||
|
<ul class="inline">
|
||||||
|
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<!-- //페이지 네비게이션 끝 -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<form name="modiForm" method="get" action="<c:url value='/uss/ion/msg/SendMsgDetailList.do'/>" >
|
||||||
|
<input name="msgId" type="hidden" />
|
||||||
|
<input name="msgGroupId" type="hidden" />
|
||||||
|
<input name="detailType" type="hidden" value="sendHoliMsgList" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<form name="modiForm2" id="modiForm2" method="post">
|
||||||
|
<input name="mberId" type="hidden" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -105,6 +105,10 @@ function goList() {
|
|||||||
frm.action ='/uss/ion/msg/NewUserSendMsgList.do';
|
frm.action ='/uss/ion/msg/NewUserSendMsgList.do';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(detailType == "sendHoliMsgList") {
|
||||||
|
frm.action ='/uss/ion/msg/selectHoliMsgList.do';
|
||||||
|
}
|
||||||
|
|
||||||
frm.submit();
|
frm.submit();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -17,10 +17,10 @@
|
|||||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
|
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
|
||||||
<%
|
<%
|
||||||
response.setHeader("Cache-Control","no-store");
|
response.setHeader("Cache-Control","no-store");
|
||||||
response.setHeader("Pragma","no-cache");
|
response.setHeader("Pragma","no-cache");
|
||||||
response.setDateHeader("Expires",0);
|
response.setDateHeader("Expires",0);
|
||||||
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
|
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
|
||||||
%>
|
%>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko">
|
<html lang="ko">
|
||||||
@ -35,7 +35,7 @@
|
|||||||
html {
|
html {
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script src="/pb/js/jquery-3.5.0.js"></script>
|
<script src="/pb/js/jquery-3.5.0.js"></script>
|
||||||
@ -45,141 +45,141 @@ html {
|
|||||||
<script type="text/javaScript" language="javascript">
|
<script type="text/javaScript" language="javascript">
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
// change 함수
|
// change 함수
|
||||||
$("#changeWord").change(function() {
|
$("#changeWord").change(function() {
|
||||||
// 변경된 값으로 비교 후 alert 표출
|
// 변경된 값으로 비교 후 alert 표출
|
||||||
if($(this).val() == ""){
|
if($(this).val() == ""){
|
||||||
$("#rejectReason").val('');
|
$("#rejectReason").val('');
|
||||||
} else {
|
} else {
|
||||||
$("#rejectReason").val($(this).val());
|
$("#rejectReason").val($(this).val());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//PdfView
|
//PdfView
|
||||||
function pdfViewPhonePop(atchFileId,fileSn) {
|
function pdfViewPhonePop(atchFileId,fileSn) {
|
||||||
document.pdfForm.atchFileId.value = atchFileId;
|
document.pdfForm.atchFileId.value = atchFileId;
|
||||||
document.pdfForm.fileSn.value = fileSn;
|
document.pdfForm.fileSn.value = fileSn;
|
||||||
document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfViewPhone.do'/>";
|
document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfViewPhone.do'/>";
|
||||||
document.pdfForm.submit();
|
document.pdfForm.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
//기업회원 신청 승인/반려 처리
|
//기업회원 신청 승인/반려 처리
|
||||||
function updateAuthYn(phmId, authYn, userId) {
|
function updateAuthYn(phmId, authYn, userId) {
|
||||||
|
|
||||||
var form = document.authForm;
|
var form = document.authForm;
|
||||||
form.phmId.value = phmId;
|
form.phmId.value = phmId;
|
||||||
form.authYn.value = authYn;
|
form.authYn.value = authYn;
|
||||||
form.userId.value = userId;
|
form.userId.value = userId;
|
||||||
var data = new FormData(form);
|
var data = new FormData(form);
|
||||||
|
|
||||||
if (confirm("인증완료 하시겠습니까?")) {
|
if (confirm("인증완료 하시겠습니까?")) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "/uss/ion/msg/updateAuthYnAjax.do",
|
url: "/uss/ion/msg/updateAuthYnAjax.do",
|
||||||
data: data,
|
data: data,
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
async: false,
|
async: false,
|
||||||
processData: false,
|
processData: false,
|
||||||
contentType: false,
|
contentType: false,
|
||||||
cache: false,
|
cache: false,
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data.result) {
|
if (data.result) {
|
||||||
alert(data.msg);
|
alert(data.msg);
|
||||||
opener.location.reload();
|
opener.location.reload();
|
||||||
self.close();
|
self.close();
|
||||||
} else {
|
} else {
|
||||||
alert(data.msg);
|
alert(data.msg);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: function (e) {
|
error: function (e) {
|
||||||
alert("저장에 실패하였습니다.");
|
alert("저장에 실패하였습니다.");
|
||||||
alert("ERROR : " + JSON.stringify(e));
|
alert("ERROR : " + JSON.stringify(e));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//기업회원 신청 승인/반려 처리
|
//기업회원 신청 승인/반려 처리
|
||||||
function authYnC() {
|
function authYnC() {
|
||||||
|
|
||||||
if( $("#rejectReason").val() == '' ){
|
if( $("#rejectReason").val() == '' ){
|
||||||
alert("반려사유를 입력해주세요.");
|
alert("반려사유를 입력해주세요.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (confirm("반려 하시겠습니까?")) {
|
if (confirm("반려 하시겠습니까?")) {
|
||||||
|
|
||||||
var form = document.returnPopForm;
|
var form = document.returnPopForm;
|
||||||
form.authYn.value = "C"
|
form.authYn.value = "C"
|
||||||
var data = new FormData(form);
|
var data = new FormData(form);
|
||||||
url = "/uss/ion/msg/updateAuthYnAjax.do";
|
url = "/uss/ion/msg/updateAuthYnAjax.do";
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: url,
|
url: url,
|
||||||
data: data,
|
data: data,
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
async: false,
|
async: false,
|
||||||
processData: false,
|
processData: false,
|
||||||
contentType: false,
|
contentType: false,
|
||||||
cache: false,
|
cache: false,
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data.result) {
|
if (data.result) {
|
||||||
// 초기화
|
// 초기화
|
||||||
alert(data.msg);
|
alert(data.msg);
|
||||||
opener.location.reload();
|
opener.location.reload();
|
||||||
self.close();
|
self.close();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
alert(data.msg);
|
alert(data.msg);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: function (e) {
|
error: function (e) {
|
||||||
alert("저장에 실패하였습니다.");
|
alert("저장에 실패하였습니다.");
|
||||||
alert("ERROR : " + JSON.stringify(e));
|
alert("ERROR : " + JSON.stringify(e));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//반려화면 Call
|
//반려화면 Call
|
||||||
function setRejectAreaCall(sType) {
|
function setRejectAreaCall(sType) {
|
||||||
if (sType == "SHOW") {
|
if (sType == "SHOW") {
|
||||||
if ($("#rejectArea").css("display") == "block") {
|
if ($("#rejectArea").css("display") == "block") {
|
||||||
//반려 Hide
|
//반려 Hide
|
||||||
setRejectAreaHide();
|
setRejectAreaHide();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// 반려 Show
|
// 반려 Show
|
||||||
setRejectAreaShow();
|
setRejectAreaShow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//반려 Hide
|
//반려 Hide
|
||||||
setRejectAreaHide();
|
setRejectAreaHide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 반려 Show
|
// 반려 Show
|
||||||
function setRejectAreaShow() {
|
function setRejectAreaShow() {
|
||||||
$("#rejectArea").show();
|
$("#rejectArea").show();
|
||||||
|
|
||||||
$("#btnReject").text("반려 CLOSE");
|
$("#btnReject").text("반려 CLOSE");
|
||||||
$("#btnReject").removeClass("btnType1");
|
$("#btnReject").removeClass("btnType1");
|
||||||
$("#btnReject").addClass("btnType2");
|
$("#btnReject").addClass("btnType2");
|
||||||
}
|
}
|
||||||
|
|
||||||
//반려 Hide
|
//반려 Hide
|
||||||
function setRejectAreaHide() {
|
function setRejectAreaHide() {
|
||||||
$("#rejectArea").hide();
|
$("#rejectArea").hide();
|
||||||
|
|
||||||
$("#btnReject").text("반려 OPEN");
|
$("#btnReject").text("반려 OPEN");
|
||||||
$("#btnReject").removeClass("btnType2");
|
$("#btnReject").removeClass("btnType2");
|
||||||
$("#btnReject").addClass("btnType1");
|
$("#btnReject").addClass("btnType1");
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@ -188,247 +188,247 @@ function setRejectAreaHide() {
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="pageCont" style="text-align: center; width: 1000px;">
|
<div class="pageCont" style="text-align: center; width: 1000px;">
|
||||||
<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
|
<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
|
||||||
<p class="tType5">발신번호 신청 정보</p>
|
<p class="tType5">발신번호 신청 정보</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="tableWrap">
|
<div class="tableWrap">
|
||||||
<table class="tbType1">
|
<table class="tbType1">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 12%">
|
<col style="width: 12%">
|
||||||
<col style="width: *%">
|
<col style="width: *%">
|
||||||
<col style="width: 11%">
|
<col style="width: 11%">
|
||||||
<col style="width: 8%">
|
<col style="width: 8%">
|
||||||
<col style="width: 8%">
|
<col style="width: 8%">
|
||||||
<col style="width: 8%">
|
<col style="width: 8%">
|
||||||
<col style="width: 8%">
|
<col style="width: 8%">
|
||||||
<col style="width: 8%">
|
<col style="width: 8%">
|
||||||
<col style="width: 15%">
|
<col style="width: 15%">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>발신번호</th>
|
<th>발신번호</th>
|
||||||
<th>대표</th>
|
<th>대표</th>
|
||||||
<th>담당자</th>
|
<th>담당자</th>
|
||||||
<th>회원</th>
|
<th>회원</th>
|
||||||
<th>구분</th>
|
<th>구분</th>
|
||||||
<th>인증방식</th>
|
<th>인증방식</th>
|
||||||
<th>인증자</th>
|
<th>인증자</th>
|
||||||
<th>인증여부</th>
|
<th>인증여부</th>
|
||||||
<th>다운로드</th>
|
<th>다운로드</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td title="${phoneNumber}">${phoneNumber}</td>
|
<td title="${phoneNumber}">${phoneNumber}</td>
|
||||||
<td title="${userName}">${userName}</td>
|
<td title="${userName}">${userName}</td>
|
||||||
<td title="${managerNm}">${managerNm}</td>
|
<td title="${managerNm}">${managerNm}</td>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${dept == 'c'}">
|
<c:when test="${dept == 'c'}">
|
||||||
기업
|
기업
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
개인
|
개인
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${not empty nameType}">
|
<c:when test="${not empty nameType}">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${nameType == '1'}">
|
<c:when test="${nameType == '1'}">
|
||||||
당사
|
당사
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${nameType == '2'}">
|
<c:when test="${nameType == '2'}">
|
||||||
대표
|
대표
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${nameType == '3'}">
|
<c:when test="${nameType == '3'}">
|
||||||
직원
|
직원
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${nameType == '4'}">
|
<c:when test="${nameType == '4'}">
|
||||||
타사
|
타사
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${nameType == '5'}">
|
<c:when test="${nameType == '5'}">
|
||||||
본인
|
본인
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
타인
|
타인
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
없음
|
없음
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${phmAuthTypeTxt eq '휴대폰 인증'}">
|
<c:when test="${phmAuthTypeTxt eq '휴대폰 인증'}">
|
||||||
휴대폰
|
휴대폰
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${phmAuthTypeTxt eq '서류인증'}">
|
<c:when test="${phmAuthTypeTxt eq '서류인증'}">
|
||||||
서류
|
서류
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<c:out value="${phmAuthTypeTxt}"/>
|
<c:out value="${phmAuthTypeTxt}"/>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${phmAuthTypeTxt eq '서류인증'}">
|
<c:when test="${phmAuthTypeTxt eq '서류인증'}">
|
||||||
|
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<c:out value="${ownerName}"/>
|
<c:out value="${ownerName}"/>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${phmType eq '03'}">
|
<c:when test="${phmType eq '03'}">
|
||||||
발신번호 차단
|
발신번호 차단
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<c:if test="${authYnTxt eq '심사중'}">인증요청</c:if>
|
<c:if test="${authYnTxt eq '심사중'}">인증요청</c:if>
|
||||||
<c:if test="${authYnTxt ne '심사중'}"><c:out value="${authYnTxt}"/></c:if>
|
<c:if test="${authYnTxt ne '심사중'}"><c:out value="${authYnTxt}"/></c:if>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<c:import url="/cmm/fms/selectMberFileInfs.do" charEncoding="utf-8">
|
<c:import url="/cmm/fms/selectMberFileInfs.do" charEncoding="utf-8">
|
||||||
<c:param name="param_atchFileId" value="${atchFileId}" />
|
<c:param name="param_atchFileId" value="${atchFileId}" />
|
||||||
</c:import>
|
</c:import>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<!-- 필수서류 체크 -->
|
<!-- 필수서류 체크 -->
|
||||||
<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
|
<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
|
||||||
<p class="tType5">승인에 필요한 서류</p>
|
<p class="tType5">승인에 필요한 서류</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="tableWrap">
|
<div class="tableWrap">
|
||||||
<table class="tbType1">
|
<table class="tbType1">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: *%">
|
<col style="width: *%">
|
||||||
<col style="width: 25%">
|
<col style="width: 25%">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="left" style="padding: 10px 0 10px 0; line-height: 1.6em;">${requiredDocuments}</td>
|
<td class="left" style="padding: 10px 0 10px 0; line-height: 1.6em;">${requiredDocuments}</td>
|
||||||
<td style="padding: 10px 0 10px 0; vertical-align: middle;">
|
<td style="padding: 10px 0 10px 0; vertical-align: middle;">
|
||||||
<c:if test="${authYn eq 'H'}">
|
<c:if test="${authYn eq 'H'}">
|
||||||
<button class="btnType1" onclick="updateAuthYn('<c:out value='${phmId}'/>', 'Y', '<c:out value='${userId}'/>'); return false;" style="background-color: blue;">인증완료</button>
|
<button class="btnType1" onclick="updateAuthYn('<c:out value='${phmId}'/>', 'Y', '<c:out value='${userId}'/>'); return false;" style="background-color: blue;">인증완료</button>
|
||||||
<button class="btnType1" onclick="setRejectAreaCall('SHOW'); return false;" id="btnReject">반려 OPEN</button>
|
<button class="btnType1" onclick="setRejectAreaCall('SHOW'); return false;" id="btnReject">반려 OPEN</button>
|
||||||
</c:if>
|
</c:if>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- 반려 -->
|
<!-- 반려 -->
|
||||||
<div id="rejectArea" class="rejectAreaClass" style="display: none;">
|
<div id="rejectArea" class="rejectAreaClass" style="display: none;">
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
|
<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
|
||||||
<p class="tType5">반려</p>
|
<p class="tType5">반려</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="tableWrap">
|
<div class="tableWrap">
|
||||||
<form id="returnPopForm" name="returnPopForm" method="post">
|
<form id="returnPopForm" name="returnPopForm" method="post">
|
||||||
<input type="hidden" name="phmId" id="phmId" value="${phmId}"/>
|
<input type="hidden" name="phmId" id="phmId" value="${phmId}"/>
|
||||||
<input type="hidden" name="authYn" id="authYn"/>
|
<input type="hidden" name="authYn" id="authYn"/>
|
||||||
<input type="hidden" name="userId" value="${userId}" />
|
<input type="hidden" name="userId" value="${userId}" />
|
||||||
<table class="tbType3">
|
<table class="tbType3">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 15%">
|
<col style="width: 15%">
|
||||||
<col style="width: *%">
|
<col style="width: *%">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>반려문구</th>
|
<th>반려문구</th>
|
||||||
<td class="left">
|
<td class="left">
|
||||||
<c:if test="${authYn eq 'H'}">
|
<c:if test="${authYn eq 'H'}">
|
||||||
<select id="changeWord" name="changeWord" style="width: 89%;">
|
<select id="changeWord" name="changeWord" style="width: 89%;">
|
||||||
<option value="">직접입력</option>
|
<option value="">직접입력</option>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${dept == 'c'}">
|
<c:when test="${dept == 'c'}">
|
||||||
<option value='[문자온] 기업의 일반전화 발신번호 등록을 위해서는 "통신서비스이용증명원"이 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>기업(회사 명의 일반전화)</option>
|
<option value='[문자온] 기업의 일반전화 발신번호 등록을 위해서는 "통신서비스이용증명원"이 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>기업(회사 명의 일반전화)</option>
|
||||||
<option value='[문자온] 기업회원의 전화번호 중 직원명의로 가입된 일반전화의 발신번호 등록을 위해서는 "통신서비스이용증명원", "재직증명서류(재직증명서, 4대보험 가입증명서 등)"가 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>기업(직원 명의 일반전화)</option>
|
<option value='[문자온] 기업회원의 전화번호 중 직원명의로 가입된 일반전화의 발신번호 등록을 위해서는 "통신서비스이용증명원", "재직증명서류(재직증명서, 4대보험 가입증명서 등)"가 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>기업(직원 명의 일반전화)</option>
|
||||||
<option value='[문자온] 기업 재직 직원명의의 휴대폰 발신번호를 등록하기 위해서는 "통신서비스이용증명원(직원 명의 본인의 휴대폰 인증 대체 가능)", "재직증명서류(재직증명서, 4대보험 가입증명서 등)"가 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>기업(직원 명의 휴대폰)</option>
|
<option value='[문자온] 기업 재직 직원명의의 휴대폰 발신번호를 등록하기 위해서는 "통신서비스이용증명원(직원 명의 본인의 휴대폰 인증 대체 가능)", "재직증명서류(재직증명서, 4대보험 가입증명서 등)"가 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>기업(직원 명의 휴대폰)</option>
|
||||||
<option value='[문자온] 기업 자사 명의 외 타사 일반전화 및 타사 명의의 휴대폰 발신번호 등록을 위해서는 "거래관계확인서(계약서, 세금계산서 등)", "발신번호 명의업체의 사업자등록증", "대리인 신분증 사본(문자온에 가입하신 대리인의 신분증, 주민번호 뒷자리 마스킹 처리)", "발신번호 명의업체의 위임장", "통신서비스이용증명원"이 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>기업(타사 일반전화 또는 타사 휴대폰)</option>
|
<option value='[문자온] 기업 자사 명의 외 타사 일반전화 및 타사 명의의 휴대폰 발신번호 등록을 위해서는 "거래관계확인서(계약서, 세금계산서 등)", "발신번호 명의업체의 사업자등록증", "대리인 신분증 사본(문자온에 가입하신 대리인의 신분증, 주민번호 뒷자리 마스킹 처리)", "발신번호 명의업체의 위임장", "통신서비스이용증명원"이 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>기업(타사 일반전화 또는 타사 휴대폰)</option>
|
||||||
<option value='[문자온] 기업 자사 명의 외 타사 일반전화 및 타사 명의의 휴대폰 발신번호 등록을 위해서는 "거래관계확인서(계약서, 세금계산서 등)", "발신번호 명의업체의 사업자등록증", "대리인 신분증 사본(문자온에 가입하신 대리인의 신분증, 주민번호 뒷자리 마스킹 처리)", "발신번호 명의업체의 위임장", "통신서비스이용증명원", "재직증명서류(재직증명서, 4대보험 가입증명서 등)"가 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>기업(타사 직원 일반전화 또는 타사 직원 휴대폰)</option>
|
<option value='[문자온] 기업 자사 명의 외 타사 일반전화 및 타사 명의의 휴대폰 발신번호 등록을 위해서는 "거래관계확인서(계약서, 세금계산서 등)", "발신번호 명의업체의 사업자등록증", "대리인 신분증 사본(문자온에 가입하신 대리인의 신분증, 주민번호 뒷자리 마스킹 처리)", "발신번호 명의업체의 위임장", "통신서비스이용증명원", "재직증명서류(재직증명서, 4대보험 가입증명서 등)"가 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>기업(타사 직원 일반전화 또는 타사 직원 휴대폰)</option>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<option value='[문자온] 일반전화 발신번호 등록을 위해서는 "통신서비스이용증명원"이 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>개인(본인 일반전화)</option>
|
<option value='[문자온] 일반전화 발신번호 등록을 위해서는 "통신서비스이용증명원"이 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>개인(본인 일반전화)</option>
|
||||||
<option value='[문자온] 타인의 일반전화 발신번호 등록을 위해서는 "통신서비스이용증명원", "발신번호 명의자의 위임장", "대리인 신분증 사본(문자온에 가입하신 대리인의 신분증, 주민번호 뒷자리 마스킹 처리)"이 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>개인(타인 일반전화)</option>
|
<option value='[문자온] 타인의 일반전화 발신번호 등록을 위해서는 "통신서비스이용증명원", "발신번호 명의자의 위임장", "대리인 신분증 사본(문자온에 가입하신 대리인의 신분증, 주민번호 뒷자리 마스킹 처리)"이 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>개인(타인 일반전화)</option>
|
||||||
<option value='[문자온] 타인 명의의 휴대폰 번호를 발신번호로 사용하실 경우 해당번호에 대한 "통신서비스이용증명원(타인 명의 본인의 휴대폰 인증 대체 가능)", "발신번호 명의자의 위임장", "대리인 신분증 사본(문자온에 가입하신 대리인의 신분증, 주민번호 뒷자리 마스킹 처리)"이 반드시 첨부되어야 됩니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>개인(타인 휴대폰)</option>
|
<option value='[문자온] 타인 명의의 휴대폰 번호를 발신번호로 사용하실 경우 해당번호에 대한 "통신서비스이용증명원(타인 명의 본인의 휴대폰 인증 대체 가능)", "발신번호 명의자의 위임장", "대리인 신분증 사본(문자온에 가입하신 대리인의 신분증, 주민번호 뒷자리 마스킹 처리)"이 반드시 첨부되어야 됩니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>개인(타인 휴대폰)</option>
|
||||||
<option value='[문자온] 개인회원이 회사 명의의 일반전화 또는 회사 명의의 휴대폰 발신번호를 등록하기 위해서는 "통신서비스이용증명원", "사업자등록증", "재직증명서(문자온 회원 가입자가 사업자등록증 상의 대표자가 아닌 경우에 한함)"가 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>개인(회사 일반전화 또는 회사 휴대폰, 재직증명가능)</option>
|
<option value='[문자온] 개인회원이 회사 명의의 일반전화 또는 회사 명의의 휴대폰 발신번호를 등록하기 위해서는 "통신서비스이용증명원", "사업자등록증", "재직증명서(문자온 회원 가입자가 사업자등록증 상의 대표자가 아닌 경우에 한함)"가 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>개인(회사 일반전화 또는 회사 휴대폰, 재직증명가능)</option>
|
||||||
<option value='[문자온] 개인회원 중 재직증명서 제출이 불가한 자가(가족, 자원봉사자 등) 회사 명의의 일반전화 또는 회사 명의의 휴대폰 발신번호를 등록하기 위해서는 "통신서비스이용증명원", "발신번호 명의업체의 사업자등록증", "발신번호 명의자의 위임장", "대리인 신분증 사본(문자온에 가입하신 대리인의 신분증, 주민번호 뒷자리 마스킹 처리)"이 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>개인(회사 일반전화 또는 회사 휴대폰, 재직증명불가)</option>
|
<option value='[문자온] 개인회원 중 재직증명서 제출이 불가한 자가(가족, 자원봉사자 등) 회사 명의의 일반전화 또는 회사 명의의 휴대폰 발신번호를 등록하기 위해서는 "통신서비스이용증명원", "발신번호 명의업체의 사업자등록증", "발신번호 명의자의 위임장", "대리인 신분증 사본(문자온에 가입하신 대리인의 신분증, 주민번호 뒷자리 마스킹 처리)"이 반드시 첨부되어야 합니다. 해당 서류 첨부(문자온 로그인-마이페이지-발신번호관리 메뉴-서류제출-파일 등록)하여 재신청해 주시면 빠른 승인 도와드리겠습니다.'>개인(회사 일반전화 또는 회사 휴대폰, 재직증명불가)</option>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</select>
|
</select>
|
||||||
</c:if>
|
</c:if>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>반려사유</th>
|
<th>반려사유</th>
|
||||||
<td class="left">
|
<td class="left">
|
||||||
<textarea style="width: 87%; height: 160px" name="rejectReason" id="rejectReason" maxlength="1000" <c:if test="${authYn eq 'C'}">readonly</c:if>>${rejectReason}</textarea>
|
<textarea style="width: 87%; height: 160px" name="rejectReason" id="rejectReason" maxlength="1000" <c:if test="${authYn eq 'C'}">readonly</c:if>>${rejectReason}</textarea>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
</table>
|
</table>
|
||||||
<div class="button_box" style="margin-top: 15px;">
|
<div class="button_box" style="margin-top: 15px;">
|
||||||
<c:if test="${authYn eq 'H'}">
|
<c:if test="${authYn eq 'H'}">
|
||||||
<button type="button" class="btnType btnType20" onClick="authYnC(); return false;" style="background-color: blue;">반려</button>
|
<button type="button" class="btnType btnType20" onClick="authYnC(); return false;" style="background-color: blue;">반려</button>
|
||||||
</c:if>
|
</c:if>
|
||||||
<button type="button" class="btnType btnType20" onClick="setRejectAreaCall('HIDE'); return false;">취소</button>
|
<button type="button" class="btnType btnType20" onClick="setRejectAreaCall('HIDE'); return false;">취소</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<br /><br />
|
<br /><br />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<c:if test="${not empty fileList}">
|
<c:if test="${not empty fileList}">
|
||||||
<div style="width: 100%; text-align: center; margin: 30px 0 30px 0;">
|
<div style="width: 100%; text-align: center; margin: 30px 0 30px 0;">
|
||||||
<c:set var="plusCnt" value="0"/>
|
<c:set var="plusCnt" value="0"/>
|
||||||
<c:set var="btnClass" value="btnType1"/>
|
<c:set var="btnClass" value="btnType1"/>
|
||||||
<c:forEach var="result" items="${fileList}" varStatus="status">
|
<c:forEach var="result" items="${fileList}" varStatus="status">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${result.fileSn eq fileSn}">
|
<c:when test="${result.fileSn eq fileSn}">
|
||||||
<c:set var="btnClass" value="btnType2"/>
|
<c:set var="btnClass" value="btnType2"/>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<c:set var="btnClass" value="btnType1"/>
|
<c:set var="btnClass" value="btnType1"/>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
<c:set var="plusCnt" value="${plusCnt + 1}"/>
|
<c:set var="plusCnt" value="${plusCnt + 1}"/>
|
||||||
<button class="<c:out value="${btnClass}"/>" onclick="pdfViewPhonePop('${result.atchFileId}','${result.fileSn}'); return false;"> 첨부파일 <c:out value="${plusCnt}"/> </button>
|
<button class="<c:out value="${btnClass}"/>" onclick="pdfViewPhonePop('${result.atchFileId}','${result.fileSn}'); return false;"> 첨부파일 <c:out value="${plusCnt}"/> </button>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
|
||||||
<c:if test="${fileType eq 'etc'}">
|
<c:if test="${fileType eq 'etc'}">
|
||||||
<div style="width: 100%; text-align: center; margin: 30px 0 30px 0; color: red;">
|
<div style="width: 100%; text-align: center; margin: 30px 0 30px 0; color: red;">
|
||||||
PDF 뷰어에서 지원하지 않는 형식의 파일입니다. 첨부파일 다운로드후 확인해주세요.
|
PDF 뷰어에서 지원하지 않는 형식의 파일입니다. 첨부파일 다운로드후 확인해주세요.
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
<canvas id="the-canvas" name="the-canvas" style="min-width: 600px; max-width: 1000px; margin-top: 25px; margin-bottom: 25px;"></canvas>
|
<canvas id="the-canvas" name="the-canvas" style="min-width: 600px; max-width: 1000px; margin-top: 25px; margin-bottom: 25px;"></canvas>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<button class="btnType" id="prev">Previous</button>
|
<button class="btnType" id="prev">Previous</button>
|
||||||
<span>Page: <span id="page_num"></span> / <span id="page_count"></span></span>
|
<span>Page: <span id="page_num"></span> / <span id="page_count"></span></span>
|
||||||
<button class="btnType" id="next">Next</button>
|
<button class="btnType" id="next">Next</button>
|
||||||
|
|
||||||
<div style="float: right; margin-right: 10px;"><button onclick="javascript:opener.location.reload(); self.window.close();" class="btnType">CLOSE</button></div>
|
<div style="float: right; margin-right: 10px;"><button onclick="javascript:opener.location.reload(); self.window.close();" class="btnType">CLOSE</button></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br /><br />
|
<br /><br />
|
||||||
@ -458,95 +458,101 @@ function setRejectAreaHide() {
|
|||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
<script type="text/javaScript" language="javascript">
|
<script type="text/javaScript" language="javascript">
|
||||||
var pdfDoc = null;
|
var pdfDoc = null;
|
||||||
var pageNum = 1;
|
var pageNum = 1;
|
||||||
var pageRendering = false;
|
var pageRendering = false;
|
||||||
var pageNumPending = null;
|
var pageNumPending = null;
|
||||||
var scale = 1.4;
|
var scale = 1.4;
|
||||||
var canvas = document.getElementById('the-canvas');
|
var canvas = document.getElementById('the-canvas');
|
||||||
var ctx = canvas.getContext('2d');
|
var ctx = canvas.getContext('2d');
|
||||||
/* var url = '/cmm/fms/FileDown.do?atchFileId=FILE_000000000019061&fileSn=0'; */
|
/* var url = '/cmm/fms/FileDown.do?atchFileId=FILE_000000000019061&fileSn=0'; */
|
||||||
// var url = '/usr/local/tomcat/file/sht/pdf/2ccbb16e-62df-48c0-bbb1-3b6559bd4c36.pdf';
|
// var url = '/usr/local/tomcat/file/sht/pdf/2ccbb16e-62df-48c0-bbb1-3b6559bd4c36.pdf';
|
||||||
var url = '${pdfPath}';
|
var url = '${pdfPath}';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get page info from document, resize canvas accordingly, and render page.
|
* Get page info from document, resize canvas accordingly, and render page.
|
||||||
* @param num Page number.
|
* @param num Page number.
|
||||||
*/
|
*/
|
||||||
function renderPage(num) {
|
function renderPage(num) {
|
||||||
pageRendering = true;
|
pageRendering = true;
|
||||||
// Using promise to fetch the page
|
// Using promise to fetch the page
|
||||||
pdfDoc.getPage(num).then(function(page) {
|
pdfDoc.getPage(num).then(function(page) {
|
||||||
var viewport = page.getViewport({scale: scale});
|
var viewport = page.getViewport({scale: scale});
|
||||||
canvas.height = viewport.height;
|
canvas.height = viewport.height;
|
||||||
canvas.width = viewport.width;
|
canvas.width = viewport.width;
|
||||||
|
|
||||||
// Render PDF page into canvas context
|
// Render PDF page into canvas context
|
||||||
var renderContext = {
|
var renderContext = {
|
||||||
canvasContext: ctx,
|
canvasContext: ctx,
|
||||||
viewport: viewport
|
viewport: viewport
|
||||||
};
|
};
|
||||||
var renderTask = page.render(renderContext);
|
var renderTask = page.render(renderContext);
|
||||||
|
|
||||||
// Wait for rendering to finish
|
// Wait for rendering to finish
|
||||||
renderTask.promise.then(function() {
|
renderTask.promise.then(function() {
|
||||||
pageRendering = false;
|
pageRendering = false;
|
||||||
if (pageNumPending !== null) {
|
if (pageNumPending !== null) {
|
||||||
// New page rendering is pending
|
// New page rendering is pending
|
||||||
renderPage(pageNumPending);
|
renderPage(pageNumPending);
|
||||||
pageNumPending = null;
|
pageNumPending = null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Update page counters
|
// Update page counters
|
||||||
document.getElementById('page_num').textContent = num;
|
document.getElementById('page_num').textContent = num;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If another page rendering in progress, waits until the rendering is
|
* If another page rendering in progress, waits until the rendering is
|
||||||
* finised. Otherwise, executes rendering immediately.
|
* finised. Otherwise, executes rendering immediately.
|
||||||
*/
|
*/
|
||||||
function queueRenderPage(num) {
|
function queueRenderPage(num) {
|
||||||
if (pageRendering) {
|
if (pageRendering) {
|
||||||
pageNumPending = num;
|
pageNumPending = num;
|
||||||
} else {
|
} else {
|
||||||
renderPage(num);
|
renderPage(num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays previous page.
|
* Displays previous page.
|
||||||
*/
|
*/
|
||||||
function onPrevPage() {
|
function onPrevPage() {
|
||||||
if (pageNum <= 1) {
|
if (pageNum <= 1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pageNum--;
|
pageNum--;
|
||||||
queueRenderPage(pageNum);
|
queueRenderPage(pageNum);
|
||||||
}
|
}
|
||||||
document.getElementById('prev').addEventListener('click', onPrevPage);
|
document.getElementById('prev').addEventListener('click', onPrevPage);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays next page.
|
* Displays next page.
|
||||||
*/
|
*/
|
||||||
function onNextPage() {
|
function onNextPage() {
|
||||||
if (pageNum >= pdfDoc.numPages) {
|
if (pageNum >= pdfDoc.numPages) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pageNum++;
|
pageNum++;
|
||||||
queueRenderPage(pageNum);
|
queueRenderPage(pageNum);
|
||||||
}
|
}
|
||||||
document.getElementById('next').addEventListener('click', onNextPage);
|
document.getElementById('next').addEventListener('click', onNextPage);
|
||||||
/**
|
/**
|
||||||
* Asynchronously downloads PDF.
|
* Asynchronously downloads PDF.
|
||||||
*/
|
*/
|
||||||
pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
|
pdfjsLib.getDocument(
|
||||||
pdfDoc = pdfDoc_;
|
{
|
||||||
document.getElementById('page_count').textContent = pdfDoc.numPages;
|
url: url,
|
||||||
|
cMapUrl: '/js/pdfjs-3.11.174/web/cmaps/',
|
||||||
|
cMapPacked: true
|
||||||
|
}
|
||||||
|
).promise.then(function(pdfDoc_) {
|
||||||
|
pdfDoc = pdfDoc_;
|
||||||
|
document.getElementById('page_count').textContent = pdfDoc.numPages;
|
||||||
|
|
||||||
// Initial/first page rendering
|
// Initial/first page rendering
|
||||||
renderPage(pageNum);
|
renderPage(pageNum);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
Loading…
Reference in New Issue
Block a user