2024-01-19 12:17 설문 중복 노출 수정

This commit is contained in:
myname 2024-01-19 12:18:07 +09:00
parent da8503d61d
commit a2becfbc04
6 changed files with 261 additions and 99 deletions

View File

@ -171,11 +171,16 @@ public class VEAStngMixServiceImpl implements VEAStngMixService {
if(flag == false) break;
vEAStngVO.setLctrPsblStrtDt(s_eduHopeDt[i]);
//vELctrDetailVO.setPrdDivCd(prdDivCd[i]);
System.out.println("vEAStngVO.toString()");
System.out.println(vEAStngVO.toString());
System.out.println(vEAStngVO.toString());
////신청 차시 지역에 관계없이 해당 일자의 가능/불가능 여부를 체크한다.
v_ret = this._eduAplctDateCheck(vEAStngVO);
if (!"".equals(v_ret)) {
//신청 불가능한 일자가 있다.
break;
}
/*
//청소년 요청이 신청한 지역의 신청 제한에 맞게 재대로 신청한 것인지 확인 한다.
VEAStngVO dateVO = vEAStngMixDAO.selectEduAplctDateChkList(vEAStngVO);
@ -197,6 +202,7 @@ public class VEAStngMixServiceImpl implements VEAStngMixService {
flag = false;
v_ret = s_eduHopeDt[i];
}
*/
}
return v_ret;
@ -217,12 +223,16 @@ public class VEAStngMixServiceImpl implements VEAStngMixService {
System.out.println(p_eduHopeDt);
VEAStngVO vEAStngVO = new VEAStngVO();
//교육회차
vEAStngVO.setRndsOrd(p_rndsOrd);
//교육희망일
vEAStngVO.setLctrPsblStrtDt(p_eduHopeDt);
////신청 차시 지역에 관계없이 해당 일자의 가능/불가능 여부를 체크한다.
v_ret = this._eduAplctDateCheck(vEAStngVO);
/*
//청소년 요청이 신청한 지역의 신청 제한에 맞게 재대로 신청한 것인지 확인 한다.
VEAStngVO dateVO = vEAStngMixDAO.selectEduAplctDateChkList(vEAStngVO);
@ -244,6 +254,7 @@ public class VEAStngMixServiceImpl implements VEAStngMixService {
v_ret = p_eduHopeDt;
}
}
*/
return v_ret;
}
@ -361,4 +372,44 @@ public class VEAStngMixServiceImpl implements VEAStngMixService {
public List<VEAStngVO> selectList_VEAIIMT_1(VEAStngVO paramVO) throws Exception{
return vEAStngMixDAO.selectList_VEAIIMT_1(paramVO);
}
//////////////////////////////////////////////
//
// private
//
////신청 차시 지역에 관계없이 해당 일자의 가능/불가능 여부를 체크한다.
private String _eduAplctDateCheck(
VEAStngVO vEAStngVO
) throws Exception{
String v_ret = "";
try {
//청소년 요청이 신청한 지역의 신청 제한에 맞게 재대로 신청한 것인지 확인 한다.
VEAStngVO dateVO = vEAStngMixDAO.selectEduAplctDateChkList(vEAStngVO);
System.out.println("_eduAplctDateCheck");
if (dateVO==null) {
//대상 기간이 없다.
v_ret = vEAStngVO.getLctrPsblStrtDt();
}else if (Integer.parseInt(dateVO.getDpStrtDt())>0 && Integer.parseInt(dateVO.getDpDdlnDt())<=0){
// 날짜에 부합하는 데이터가 없는 경우 flag 변경 처리
//가능한 기간에 값이 있고, 불가능한 기간에 값이 없음
;
}else {
//해당 일자가 불가능 기간이다. - 신청 차시 지역에 관계없이 해당 일자의 가능/불가능 여부를 체크한다.
v_ret = vEAStngVO.getLctrPsblStrtDt();
}
}catch(Exception ex) {
System.out.println(ex.toString());
v_ret = vEAStngVO.getLctrPsblStrtDt();
}
return v_ret;
}
}

View File

@ -614,7 +614,7 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
return flag;
}
//전체 시간 체크
@Override
public String eduAplctChkProcessToStr(HttpServletRequest request, ModelAndView modelAndView) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
@ -648,6 +648,13 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
vEAStngVO.setLctrPsblStrtTm(s_strtTm[i]);
vEAStngVO.setLctrPsblDdlnTm(s_endTm[i]);
v_ret = this._eduAplctDateCheck(vEAStngVO, eduSlctCd, eduSlctAreaCd[i]);
if (!"".equals(v_ret)) {
break;
}
/*
if ("10".equals(eduSlctCd)) { //온라인인 경우
vEAStngVO.setAreaCd("400");
}else { //오프라인인 경우
@ -664,12 +671,74 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
flag = false;
v_ret = s_strtTm[i]+"~"+s_endTm[i];
}
*/
}
return v_ret;
}
//개별 시간 체크
@Override
public String eduAplctEAChkProcessToStr(
//HttpServletRequest request
//, ModelAndView modelAndView
String p_rndsOrd
, String p_eduSlctCd
, String p_eduSlctAreaCd
, String p_strtTm
, String p_endTm
) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//boolean flag = true;
String v_ret = "";
//String eduSlctCd = request.getParameter("eduSlctCd");
//차시 저장
//String s_eduHopeDt = request.getParameter("eduHopeDt");
//String s_strtTm = request.getParameter("strtTm");
//String s_endTm = request.getParameter("endTm");
//String eduSlctAreaCd = request.getParameter("eduSlctAreaCd");
//String prdDivCd = request.getParameter("prdDivCd");
//String rndsOrd = request.getParameter("rndsOrd");
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setRndsOrd(p_rndsOrd);
vEAStngVO.setLctrPsblStrtTm(p_strtTm);
vEAStngVO.setLctrPsblDdlnTm(p_endTm);
v_ret = this._eduAplctDateCheck(vEAStngVO, p_eduSlctCd, p_eduSlctAreaCd);
/*
if ("10".equals(p_eduSlctCd)) { //온라인인 경우
vEAStngVO.setAreaCd("400");
}else { //오프라인인 경우
vEAStngVO.setAreaCd(p_eduSlctAreaCd);
}
//청소년 요청이 신청한 지역의 신청 제한에 맞게 재대로 신청한 것인지 확인 한다.
List<VEAStngVO> list = vELctrAreaMngDAO.selectList20231024(vEAStngVO);
// 날짜와 시간에 부합하는 데이터가 없는 경우 flag 변경 처리
if(list.size() == 0) {
//flag = false;
v_ret = p_strtTm+"~"+p_endTm;
}
*/
return v_ret;
}
@Override
public String eduAplctChkZoneChasiProcessToStr(HttpServletRequest request, ModelAndView modelAndView) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
@ -729,63 +798,7 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
return v_ret;
}
//개별 시간 체크
@Override
public String eduAplctEAChkProcessToStr(
//HttpServletRequest request
//, ModelAndView modelAndView
String p_rndsOrd
, String p_eduSlctCd
, String p_eduSlctAreaCd
, String p_strtTm
, String p_endTm
) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//boolean flag = true;
String v_ret = "";
//String eduSlctCd = request.getParameter("eduSlctCd");
//차시 저장
//String s_eduHopeDt = request.getParameter("eduHopeDt");
//String s_strtTm = request.getParameter("strtTm");
//String s_endTm = request.getParameter("endTm");
//String eduSlctAreaCd = request.getParameter("eduSlctAreaCd");
//String prdDivCd = request.getParameter("prdDivCd");
//String rndsOrd = request.getParameter("rndsOrd");
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setRndsOrd(p_rndsOrd);
if ("10".equals(p_eduSlctCd)) { //온라인인 경우
vEAStngVO.setAreaCd("400");
}else { //오프라인인 경우
vEAStngVO.setAreaCd(p_eduSlctAreaCd);
}
vEAStngVO.setLctrPsblStrtTm(p_strtTm);
vEAStngVO.setLctrPsblDdlnTm(p_endTm);
//청소년 요청이 신청한 지역의 신청 제한에 맞게 재대로 신청한 것인지 확인 한다.
List<VEAStngVO> list = vELctrAreaMngDAO.selectList20231024(vEAStngVO);
// 날짜와 시간에 부합하는 데이터가 없는 경우 flag 변경 처리
if(list.size() == 0) {
//flag = false;
v_ret = p_strtTm+"~"+p_endTm;
}
return v_ret;
}
//전체에 대해서 동일한 신청이 있는지 확인(일자, 대상)
@Override
public boolean eduAplctDuplChkProcess(VEEduAplctVO vEEduAplctVO, HttpServletRequest request, ModelAndView modelAndView) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
@ -808,6 +821,13 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
vo.setTrgt(s_trgt[i]);
vo.setLctrDivCd("10"); //청소년
flag = this._eduAplctDupDateNTrgtCheck(vo);
if (!flag) {
break;
}
/*
//해당 사용자가 중복 신청했는지 확인
cnt = vEEduMIXDAO.selectAplctDuplCnt(vo);
@ -815,12 +835,14 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
if(cnt > 0) {
flag = false;
}
*/
}
return flag;
}
//개별건에 대해서 동일한 신청(일자, 대상이 있는지 확인)
@Override
public boolean eduAplctDuplEAChkProcess(
String p_eduHopeDt
@ -847,6 +869,9 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
vo.setTrgt(p_trgt);
vo.setLctrDivCd("10"); //청소년
flag = this._eduAplctDupDateNTrgtCheck(vo);
/*
//해당 사용자가 중복 신청했는지 확인
cnt = vEEduMIXDAO.selectAplctDuplCnt(vo);
@ -854,6 +879,7 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
if(cnt > 0) {
flag = false;
}
*/
return flag;
}
@ -1158,11 +1184,15 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
//해당일의 신청한 차시
int i_aplctChasi = 0;
try {
i_psblChasi = vELctrAreaMngDAO.selectList20231026(vEAStngVO);
i_aplctChasi = vELctrAreaMngDAO.selectList20231026(vEAStngVO);
}catch(Exception ex) {
ex.printStackTrace();
}
System.out.println("i_psblChasi");
System.out.println(i_psblChasi);
System.out.println(i_aplctChasi);
//신청한 차시가 신청가능한 차시보다 크면 신청 불가
if (i_psblChasi<=i_aplctChasi) {
flag = false;
@ -1172,6 +1202,11 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
return v_ret;
}
//////////////////////////////////////////////
//
// private
//
private VEEduAplctVO chkOnChasiWait202310(VEEduAplctVO vEEduAplctVO, HttpServletRequest request) throws Exception {
//1. 지역별강의관리의 해당 지역코드의 총수강시간을 가져옴
@ -1233,4 +1268,67 @@ public class EduAplctTngrServiceImpl implements EduAplctTngrService {
return vEEduAplctVO;
}
//청소년 요청이 신청한 지역의 신청 시간 제한에 맞게 제대로 신청한 것인지 확인 한다.
private String _eduAplctDateCheck(
VEAStngVO vEAStngVO
, String p_eduSlctCd //10-온라인, 20-오프라인
, String p_eduSlctAreaCd //지역코드 , 온라인인 경우는 400으로
) throws Exception{
String v_ret = "";
try {
if ("10".equals(p_eduSlctCd)) { //온라인인 경우
vEAStngVO.setAreaCd("400");
}else { //오프라인인 경우
vEAStngVO.setAreaCd(p_eduSlctAreaCd);
}
//vELctrDetailVO.setPrdDivCd(prdDivCd[i]);
//청소년 요청이 신청한 지역의 신청 제한에 맞게 재대로 신청한 것인지 확인 한다.
List<VEAStngVO> list = vELctrAreaMngDAO.selectList20231024(vEAStngVO);
// 날짜와 시간에 부합하는 데이터가 없는 경우 flag 변경 처리
if(list.size() == 0) {
v_ret = vEAStngVO.getLctrPsblStrtTm()+"~"+vEAStngVO.getLctrPsblDdlnTm();
}
}catch(Exception ex) {
System.out.println(ex.toString());
v_ret = vEAStngVO.getLctrPsblStrtTm()+"~"+vEAStngVO.getLctrPsblDdlnTm();
}
return v_ret;
}
//동일한 신청이 있었는지 확인(일자, 대상)
private boolean _eduAplctDupDateNTrgtCheck(
VEEduAplctVO p_vo
) throws Exception{
boolean v_ret = true;
try {
//해당 사용자가 중복 신청했는지 확인
int cnt = vEEduMIXDAO.selectAplctDuplCnt(p_vo);
// 날짜와 시간에 부합하는 데이터가 없는 경우 flag 변경 처리
if(cnt > 0) {
v_ret = false;
}
}catch(Exception ex) {
System.out.println(ex.toString());
v_ret = false;
}
return v_ret;
}
}

View File

@ -349,7 +349,7 @@ public class EduAplctTngrController {
if (loginVO == null || ssoLoginVO == null) {
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
modelAndView.addObject("result", "fail5");
modelAndView.addObject("result", "fail4");
return modelAndView;
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
@ -369,6 +369,7 @@ public class EduAplctTngrController {
2-4.동일한 날짜에 신청된 건이 있는지(구현)
* */
try {
//1.교육희망일이 신청 가능한 일자인지 fail3
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
@ -391,6 +392,7 @@ public class EduAplctTngrController {
return modelAndView;
}
//작업 필요함 2023-10-17
//2.신청 시간이 해당 지역의 가능한 시간인지 fail
//신청한 교육 일자 시간이 신청기간에 받을수 있는 지역의 시간, 일자 조건에 맞는지 확인 한다.
@ -418,7 +420,7 @@ public class EduAplctTngrController {
String s_flag4 = eduAplctTngrService.eduAplctChkDayChasiProcessToStr(request, modelAndView);
if(!"".equals(s_flag4)){
modelAndView.addObject("result", "fail4");
modelAndView.addObject("result", "fail6");
modelAndView.addObject("msg", s_flag4);
return modelAndView;
}
@ -502,7 +504,7 @@ public class EduAplctTngrController {
String s_flag5 = eduAplctTngrService.eduAplctChkZoneChasiProcessToStr(request, modelAndView);
if(!"".equals(s_flag5)){
modelAndView.addObject("result", "fail6");
modelAndView.addObject("result", "fail7");
modelAndView.addObject("msg", s_flag5);
return modelAndView;
}
@ -538,7 +540,7 @@ public class EduAplctTngrController {
if (loginVO == null || ssoLoginVO == null) {
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
modelAndView.addObject("result", "fail5");
modelAndView.addObject("result", "fail4");
return modelAndView;
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
@ -661,7 +663,7 @@ public class EduAplctTngrController {
//2-3.해당일 신청가능한 차시가 남았는지 확인
//현업 요청으로 제거 해당일 신청가능한 차시가 없으면 대기로 등록됨
/*
{
String s_flag4 = "";
@ -672,12 +674,11 @@ public class EduAplctTngrController {
}
if(!"".equals(s_flag4)){
modelAndView.addObject("result", "fail4");
modelAndView.addObject("result", "fail6");
modelAndView.addObject("msg", s_flag4);
return modelAndView;
}
}
*/
//동일한 신청건이 있는지 확인(신청자아이디, 교육희망일, 교육대상 동일 비교)

View File

@ -274,7 +274,8 @@ public class OprtnInstrTngrPrflContoller {
comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword());
comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
//selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
selectCondition += "AND a.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'";
comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
}

View File

@ -134,7 +134,7 @@ function _fncEduHopeDtStep1(
dataType:'json',
async: false,
success:function(returnData){
if(returnData.result == "fail5"){
if(returnData.result == "fail4"){
alert("로그인 후 다시 교육신청해 주세요.");
flag = false;
return;
@ -151,6 +151,12 @@ function _fncEduHopeDtStep1(
alert(returnData.msg+"일은 교육가능일자가 아닙니다.");
flag = false;
return;
}else if(returnData.result == "fail6"){
//alert("신청한 차시 중 신청기간, 강의가능시간이 아닌 교육이 있습니다.");
$('.duet-date__input:eq('+p_idx+')').val('');
alert(returnData.msg+"는 일일 신청 차시 제한이 넘어서 더이상 신청이 불가능합니다.");
flag = false;
return ;
}else if(returnData.result == "fail"){
//alert("신청한 차시 중 신청기간, 강의가능시간이 아닌 교육이 있습니다.");
alert(returnData.msg+"는 강의가능시간이 아닙니다.");
@ -459,16 +465,18 @@ function _chkChasiTime(p_this){
var data = new FormData(document.getElementById("createForm"));
if(type == 'S' || type == 'E' ){
// 입력 데이터 유효성 체크(시간만체크)
// 입력 데이터 유효성 체크(시간만체크)-초등/중등/고등 최소 시간에 맞는지 확인
if (!timeValidCheck()) return;
// 입력 데이터 유효성 체크(시간이외체크)
// 입력 데이터 유효성 체크(시간이외체크)-입력데이터 유효성 체크
if (!validCheck()) return;
// 작성한 차시가 신청 가능한 기간/시간인지 체크(관리자 지역별 강의관리 참고) 및 중복신청건 조회
//DB로 체크
if(!checkAplctPsbl()) return;
//지역체크 추가
if(!checkAplctZonePsbl()) return;
//지역체크 추가 - 지역제한은 제외 신청시 대기로 전환
//if(!checkAplctZonePsbl()) return;
}
var url = '${pageContext.request.contextPath}/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctRegAjax.do';
@ -600,6 +608,9 @@ function _chkChasiTime(p_this){
}
var trObj = $('.addClassRow').find('tbody > tr').not('.calendar_wrap tr');
//var trObj = $('.addClassRow > tbody').find('>tr');
if(trObj.length == 0){
alert('교육차시 정보를 등록해주세요.');
return false;
@ -615,6 +626,8 @@ function _chkChasiTime(p_this){
}
var eduHopeDt = $(this).find('input[name=eduHopeDt]').val();
//alert(idx);
//alert(eduHopeDt);
var yyyy = eduHopeDt.substr(0,4);
var mm = eduHopeDt.substr(5,2);
var dd = eduHopeDt.substr(8,2);
@ -835,17 +848,8 @@ function _chkChasiTime(p_this){
}
}
alert(scholDivCd);
alert(lrnTm);
alert(v_TR0E);
alert(v_TR0M);
alert(v_TR0H);
});
return true;
}
@ -907,22 +911,29 @@ function _chkChasiTime(p_this){
if(returnData.result == "fail4"){
alert("로그인 후 다시 교육신청해 주세요.");
flag = false;
//return false;
return ;
}else if(returnData.result == "fail3"){
//alert("가능한 교육희망일자가 아닙니다.");
alert(returnData.msg+"일은 교육가능일자가 아닙니다.");
flag = false;
//return false;
return ;
}else if(returnData.result == "fail"){
//alert("신청한 차시 중 신청기간, 강의가능시간이 아닌 교육이 있습니다.");
alert(returnData.msg+"는 강의가능시간이 아닙니다.");
flag = false;
//return false;
return ;
}else if(returnData.result == "fail6"){
//alert("신청한 차시 중 신청기간, 강의가능시간이 아닌 교육이 있습니다.");
alert(returnData.msg+"는 일일 신청 차시 제한이 넘어서 더이상 신청이 불가능합니다.");
flag = false;
return ;
/*
}else if(returnData.result == "fail5"){
//alert("신청한 차시 중 신청기간, 강의가능시간이 아닌 교육이 있습니다.");
alert("해당 지역의 차시 신청이 초과 되어서 교육신청을 할 수 없습니다.");
flag = false;
//return false;
*/
}else if(!duplChk) {
if(returnData.result == "fail2"){
if(confirm("중복된 신청 건이 있습니다. 진행하시겠습니까?")){
@ -931,7 +942,7 @@ function _chkChasiTime(p_this){
} else {
flag = false;
}
//return;
return;
}
}
},