야간 스미싱 알림기능 개발 완료
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 itn.let.kakao.kakaoComm.KakaoVO;
|
||||
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.impl.MjonMsgDAO;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||
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.MjonPayVO;
|
||||
import itn.let.sym.site.service.JoinSettingVO;
|
||||
import itn.let.sym.site.service.impl.SiteManagerDAO;
|
||||
|
||||
@Service("kakaoAlimTalkService")
|
||||
public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements KakaoAlimTalkService{
|
||||
@ -33,6 +39,12 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
@Resource(name="kakaoAlimTalkDAO")
|
||||
private KakaoAlimTalkDAO kakaoAlimTalkDAO;
|
||||
|
||||
@Resource(name="siteManagerDAO")
|
||||
SiteManagerDAO siteManagerDAO;
|
||||
|
||||
@Resource(name="MsgHolidayDAO")
|
||||
private MsgHolidayDAO msgHolidayDAO;
|
||||
|
||||
@Resource(name = "egovMjonMsgIdGnrService")
|
||||
private EgovIdGnrService idgenMsgId;
|
||||
|
||||
@ -96,6 +108,52 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
//카카오 알림톡 전송 리스트
|
||||
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++) {
|
||||
|
||||
@ -159,7 +217,7 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
|
||||
}
|
||||
|
||||
if(kakaoVO.getAtSmishingYn().equals("Y")) {
|
||||
if(atSmishingYn.equals("Y")) {
|
||||
String sandDate = "";
|
||||
|
||||
if(kakaoVO.getDivideChk().equals("Y")) {
|
||||
@ -293,7 +351,14 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
mjonMsgVO.setBefCash(kakaoVO.getBefCash());
|
||||
mjonMsgVO.setBefPoint(kakaoVO.getBefPoint());
|
||||
mjonMsgVO.setKakaoSubMagOrgnlTxt(kakaoVO.getKakaoSubMagOrgnlTxt());
|
||||
|
||||
//야간 스미싱 알림 비활성화인 경우 딜레이처리 안하도록 함 20240722 우영두 수정
|
||||
if(spamSmishingPassStatus) {
|
||||
mjonMsgVO.setAtDelayYn("N");
|
||||
}else {
|
||||
mjonMsgVO.setAtDelayYn(kakaoVO.getAtSmishingYn());
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(kakaoVO.getBizJsonYn().equals("Y")) {
|
||||
@ -311,6 +376,20 @@ public class KakaoAlimTalkServiceImpl extends EgovAbstractServiceImpl implements
|
||||
if(msgGroupDataCnt < 1) {
|
||||
mjonMsgDAO.insertGroupMsgData(mjonMsgVO);
|
||||
kakaoAlimTalkDAO.insertKakaoSendPrice(kakaoVO);
|
||||
|
||||
|
||||
try {
|
||||
|
||||
//야간 스미싱 알림이 비활성화 이고 스팸 또는 스미싱 의심 상태일 경우 문자정보 별도 저장처리 - 20240722 우영두 추가
|
||||
if(spamSmishingPassStatus && kakaoVO.getAtSmishingYn().equals("Y")) {
|
||||
mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("++++++++++++++++++++++++++++++ spamSmishingPassStatus 알림톡 야간 스미싱 알림 데이터 입력 오류 발생 !!!!");
|
||||
}
|
||||
|
||||
|
||||
}else {
|
||||
mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO);
|
||||
}
|
||||
|
||||
@ -769,12 +769,19 @@ public class KakaoAlimTalkSendController {
|
||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||
|
||||
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||
|
||||
//야간 스미싱의심 알림이 활성화 되어있는 경우만 슬랙 알림 전송처리
|
||||
if(holiSmishingNoti.equals("Y")) {
|
||||
|
||||
// SLACK 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||
//Slack으로 메세지 전송 처리
|
||||
MjonCommon comm = new MjonCommon();
|
||||
comm.getAdminKakaoAtSandSlack(kakaoVO);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
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;
|
||||
|
||||
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 cancelResultYn = ""; //야간스미싱 알림에 따른 관리자 결과(회원이용정지 또는 문자발송 취소) 처리 여부 N:미처리, Y:처리완료
|
||||
|
||||
public String getSearchDelayMsgYn() {
|
||||
return searchDelayMsgYn;
|
||||
}
|
||||
@ -1646,4 +1648,10 @@ public class MjonMsgVO extends ComDefaultVO{
|
||||
public void setBookmarkYn(String 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);
|
||||
}
|
||||
|
||||
public void insertSpamPassMsgData(MjonMsgVO mjonMsgVO) throws Exception{
|
||||
insert("mjonMsgDAO.insertSpamPassMsgData", mjonMsgVO);
|
||||
}
|
||||
|
||||
public void updateMsgGroupDataForTotCntSum(MjonMsgVO mjonMsgVO) {
|
||||
|
||||
update("mjonMsgDAO.updateMsgGroupDataForTotCntSum",mjonMsgVO);
|
||||
@ -504,4 +508,18 @@ public class MjonMsgDAO extends EgovAbstractDAO {
|
||||
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.impl.MjonReservMsgDAO;
|
||||
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.impl.AdmProcHstryDAO;
|
||||
|
||||
@ -64,6 +65,10 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
|
||||
@Resource(name="MjonReservMsgDAO")
|
||||
private MjonReservMsgDAO mjonReservMsgDAO;
|
||||
|
||||
/** mberManageDAO */
|
||||
@Resource(name="mberManageDAO")
|
||||
private MberManageDAO mberManageDAO;
|
||||
|
||||
@Resource(name="mjonPayDAO")
|
||||
private MjonPayDAO mjonPayDAO;
|
||||
|
||||
@ -1158,4 +1163,21 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
|
||||
public MjonMsgVO selectApiSttstList(MjonMsgVO mjonMsgVO) throws Exception {
|
||||
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.MjonMsgSentTestVO;
|
||||
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.MjonResvMsgVO;
|
||||
import itn.let.sts.com.StatsVO;
|
||||
@ -161,6 +163,10 @@ public class MjonMsgController {
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileService;
|
||||
|
||||
//전용계좌 서비스
|
||||
@Resource(name = "vacsVactService")
|
||||
private VacsVactService vacsVactService;
|
||||
|
||||
//배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
|
||||
private String[][] sendMsgExcelValue ={
|
||||
{"0" ,"번호" , "1" , "" },
|
||||
@ -1174,10 +1180,10 @@ public class MjonMsgController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 문자전송 리스트
|
||||
* 문자예약전송 리스트
|
||||
* @param searchVO
|
||||
* @param model
|
||||
* @return uss/ion/msg/ReserveNumberList.do(에약 문자리스트)
|
||||
* @return /uss/ion/msg/ReserveNumberList.do(예약 문자리스트)
|
||||
* @throws Exception
|
||||
*/
|
||||
@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
|
||||
|
||||
@ -69,6 +69,7 @@ import itn.let.mjo.addr.service.AddrVO;
|
||||
import itn.let.mjo.event.service.MjonEventService;
|
||||
import itn.let.mjo.event.service.MjonEventVO;
|
||||
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.MjonMsgVO;
|
||||
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.MjonMsgReturnVO;
|
||||
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.MjonPayVO;
|
||||
import itn.let.mjo.spammsg.service.MjonSpamMsgService;
|
||||
@ -172,6 +176,9 @@ public class MjonMsgCampainDataController {
|
||||
@Resource(name = "mberGrdService")
|
||||
MberGrdService mberGrdService;
|
||||
|
||||
@Resource(name = "MsgHolidayService")
|
||||
private MsgHolidayService msgHolidayService;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainDataController.class);
|
||||
|
||||
/**
|
||||
@ -2006,6 +2013,18 @@ public class MjonMsgCampainDataController {
|
||||
|
||||
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,17 +3193,53 @@ public class MjonMsgCampainDataController {
|
||||
// 법인폰 알람여부 체크
|
||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||
|
||||
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||
|
||||
// SMS 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
||||
getAdminPhoneSendMsgData(mjonMsgVO);
|
||||
}
|
||||
|
||||
//야간 스미싱의심 알림이 활성화 되어있는 경우
|
||||
if(holiSmishingNoti.equals("Y")) {
|
||||
// SLACK 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||
//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.MjonEventVO;
|
||||
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.MjonMsgVO;
|
||||
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.MjonMsgDataVO;
|
||||
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.spammsg.service.MjonSpamMsgService;
|
||||
import itn.let.mjo.symbol.service.MjonSymbolService;
|
||||
@ -143,6 +147,8 @@ public class MjonMsgCampainHGDataController {
|
||||
@Resource(name = "mberGrdService")
|
||||
MberGrdService mberGrdService;
|
||||
|
||||
@Resource(name = "MsgHolidayService")
|
||||
private MsgHolidayService msgHolidayService;
|
||||
|
||||
/**
|
||||
* 선거 문자 대량 발송 화면
|
||||
@ -578,6 +584,18 @@ public class MjonMsgCampainHGDataController {
|
||||
|
||||
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);
|
||||
|
||||
mjonMsgVO.setTotalCallCnt(addrDupListLen);
|
||||
|
||||
//수신자 총 수 * 단가 를 통해 총 결제 금액 계산
|
||||
int tmpTotCallCnt = addrDupListLen; //mjonMsgVO.getCallToList().length;
|
||||
float tmpTotPrice = tmpTotCallCnt * tmpEachPrice;
|
||||
@ -1082,18 +1102,54 @@ public class MjonMsgCampainHGDataController {
|
||||
// 법인폰 알람여부 체크
|
||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||
|
||||
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||
|
||||
// SMS 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
||||
MjonMsgCampainDataController mcdController = new MjonMsgCampainDataController();
|
||||
mcdController.getAdminPhoneSendMsgData(mjonMsgVO);
|
||||
}
|
||||
|
||||
//야간 스미싱의심 알림이 활성화 되어있는 경우만 슬랙 알림 전송처리
|
||||
if(holiSmishingNoti.equals("Y")) {
|
||||
// SLACK 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||
//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.MjonEventVO;
|
||||
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.MjonMsgVO;
|
||||
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.MjonMsgReturnVO;
|
||||
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.spammsg.service.MjonSpamMsgService;
|
||||
import itn.let.mjo.symbol.service.MjonSymbolService;
|
||||
@ -167,6 +171,9 @@ public class MjonMsgCampainTWDataController {
|
||||
@Resource(name = "mberGrdService")
|
||||
MberGrdService mberGrdService;
|
||||
|
||||
@Resource(name = "MsgHolidayService")
|
||||
private MsgHolidayService msgHolidayService;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainTWDataController.class);
|
||||
|
||||
/**
|
||||
@ -930,6 +937,18 @@ public class MjonMsgCampainTWDataController {
|
||||
|
||||
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,18 +2076,54 @@ public class MjonMsgCampainTWDataController {
|
||||
// 법인폰 알람여부 체크
|
||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||
|
||||
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||
|
||||
// SMS 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
||||
MjonMsgCampainDataController mjonCampDataController = new MjonMsgCampainDataController();
|
||||
mjonCampDataController.getAdminPhoneSendMsgData(mjonMsgVO);
|
||||
}
|
||||
|
||||
//야간 스미싱의심 알림이 활성화 되어있는 경우만 슬랙 알림 전송처리
|
||||
if(holiSmishingNoti.equals("Y")) {
|
||||
// SLACK 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||
//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.MjonEventVO;
|
||||
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.impl.MjonMsgDAO;
|
||||
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.MjonMsgDataVO;
|
||||
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.MjonPayVO;
|
||||
import itn.let.mjo.pay.service.impl.MjonPayDAO;
|
||||
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.uss.umt.service.MberManageVO;
|
||||
|
||||
@ -50,6 +55,12 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
||||
@Resource(name="mjonMsgAgentStsDAO")
|
||||
private MjonMsgAgentStsDAO mjonMsgAgentStsDAO;
|
||||
|
||||
@Resource(name="siteManagerDAO")
|
||||
SiteManagerDAO siteManagerDAO;
|
||||
|
||||
@Resource(name="MsgHolidayDAO")
|
||||
private MsgHolidayDAO msgHolidayDAO;
|
||||
|
||||
@Resource(name = "egovMjonMsgIdGnrService")
|
||||
private EgovIdGnrService idgenMsgId;
|
||||
|
||||
@ -152,6 +163,42 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
||||
MberManageVO userInfo = mjonMsgDataDAO.selectMberManageInfo(mjonMsgVO.getUserId());
|
||||
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")) {
|
||||
|
||||
@ -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")) {//예약문자인 경우 시간 셋팅
|
||||
|
||||
@ -786,6 +842,17 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
||||
}
|
||||
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 {
|
||||
mjonMsgDAO.updateMsgGroupDataForTotCntSum(mjonMsgVO);
|
||||
}
|
||||
@ -2372,6 +2439,43 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
||||
MberManageVO userInfo = mjonMsgDataDAO.selectMberManageInfo(mjonMsgVO.getUserId());
|
||||
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")) {
|
||||
|
||||
@ -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")) {//예약문자인 경우 시간 셋팅
|
||||
|
||||
@ -3013,6 +3126,29 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
||||
}
|
||||
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 {
|
||||
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.MjonEventVO;
|
||||
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.MjonMsgVO;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
|
||||
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.MjonMsgSentVO;
|
||||
import itn.let.mjo.pay.service.MjonPayService;
|
||||
@ -181,6 +185,9 @@ public class MjonMsgDataController {
|
||||
@Resource(name = "MjonMsgSentService")
|
||||
private MjonMsgSentService mjonMsgSentService;
|
||||
|
||||
@Resource(name = "MsgHolidayService")
|
||||
private MsgHolidayService msgHolidayService;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
|
||||
|
||||
/**
|
||||
@ -2112,6 +2119,20 @@ public class MjonMsgDataController {
|
||||
|
||||
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,19 +3043,54 @@ public class MjonMsgDataController {
|
||||
// 법인폰 알람여부 체크
|
||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||
|
||||
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||
|
||||
// SMS 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
|
||||
getAdminPhoneSendMsgData(mjonMsgVO);
|
||||
}
|
||||
|
||||
//야간 스미싱의심 알림이 활성화 되어있는 경우
|
||||
if(holiSmishingNoti.equals("Y")) {
|
||||
// SLACK 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||
//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) {
|
||||
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.MjonEventVO;
|
||||
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.MjonMsgVO;
|
||||
import itn.let.mjo.msgdata.service.MjonMsgDataService;
|
||||
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.payva.service.VacsVactService;
|
||||
import itn.let.mjo.payva.service.VacsVactVO;
|
||||
@ -196,6 +200,9 @@ public class TestController {
|
||||
@Autowired
|
||||
CheckNoServiceCommon checkNoServiceCommon;
|
||||
|
||||
@Autowired
|
||||
MjonHolidayApi mjonHolidayApi;
|
||||
|
||||
@Resource(name = "egovSiteManagerService")
|
||||
private EgovSiteManagerService egovSiteManagerService;
|
||||
|
||||
@ -223,6 +230,9 @@ public class TestController {
|
||||
@Resource (name = "userManageService")
|
||||
private EgovUserManageService egovUserManageService;
|
||||
|
||||
@Resource(name = "MsgHolidayService")
|
||||
private MsgHolidayService msgHolidayService;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(TestController.class);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -1029,6 +1039,22 @@ public class TestController {
|
||||
|
||||
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();
|
||||
String spmFilterTxt = "";
|
||||
if(resultSpamTxt == null) {//스팸 체크리스트가 없는 경우
|
||||
@ -2109,6 +2135,10 @@ public class TestController {
|
||||
JoinSettingVO joinSettingVO = new JoinSettingVO();
|
||||
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
|
||||
|
||||
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
|
||||
|
||||
//야간 스미싱의심 알림이 활성화 되어있는 경우
|
||||
if(holiSmishingNoti.equals("Y")) {
|
||||
// SLACK 체크
|
||||
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
||||
//Slack으로 메세지 전송 처리
|
||||
@ -2116,6 +2146,37 @@ public class TestController {
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3290,5 +3351,4 @@ public class TestController {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -48,6 +48,7 @@ public class JoinSettingVO {
|
||||
private String emailNoti; //관리자 이메일 알림 여부
|
||||
private String slackNoti; //관리자 SLACK 알림 여부
|
||||
private String smishingNoti; //첫결제(카드제외) 스미싱의심 알림 여부
|
||||
private String holiSmishingNoti; //야간 스미싱알림 여부
|
||||
|
||||
public String getSmishingNoti() {
|
||||
return smishingNoti;
|
||||
@ -217,4 +218,12 @@ public class JoinSettingVO {
|
||||
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 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 MJ_MSG_GROUP_DATA
|
||||
@ -7517,5 +7550,271 @@
|
||||
|
||||
</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>
|
||||
|
||||
|
||||
@ -956,6 +956,7 @@
|
||||
IFNULL(EMAIL_NOTI, 'N') AS emailNoti,
|
||||
IFNULL(SLACK_NOTI, 'N') AS slackNoti,
|
||||
IFNULL(SMISHING_NOTI, 'N') AS smishingNoti,
|
||||
IFNULL(HOLI_SMISHING_NOTI, 'N') AS holiSmishingNoti,
|
||||
LAST_UPDUSR_ID AS lasUpdusrId,
|
||||
LAST_UPDT_PNTTM AS lastUpdtPnttm
|
||||
FROM MJ_MBER_SETTING
|
||||
@ -972,6 +973,7 @@
|
||||
,EMAIL_NOTI = #emailNoti#
|
||||
,SLACK_NOTI = #slackNoti#
|
||||
,SMISHING_NOTI = #smishingNoti#
|
||||
,HOLI_SMISHING_NOTI = #holiSmishingNoti#
|
||||
,LAST_UPDUSR_ID = #lasUpdusrId#
|
||||
,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>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>관리자 알림 관리</title>
|
||||
<script type="text/javascript">
|
||||
<meta charset="UTF-8">
|
||||
<title>관리자 알림 관리</title>
|
||||
<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() {
|
||||
var form = document.form;
|
||||
@ -20,7 +45,20 @@
|
||||
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>
|
||||
<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>
|
||||
<body>
|
||||
<div class="contWrap">
|
||||
@ -74,6 +112,17 @@
|
||||
</select>
|
||||
</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>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
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';
|
||||
}
|
||||
|
||||
if(detailType == "sendHoliMsgList") {
|
||||
frm.action ='/uss/ion/msg/selectHoliMsgList.do';
|
||||
}
|
||||
|
||||
frm.submit();
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -542,7 +542,13 @@ function setRejectAreaHide() {
|
||||
/**
|
||||
* Asynchronously downloads PDF.
|
||||
*/
|
||||
pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
|
||||
pdfjsLib.getDocument(
|
||||
{
|
||||
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;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user