2023-09-19 10:03 사용자/관리자 로그 수정

This commit is contained in:
myname 2023-09-19 10:03:49 +09:00
parent 598cc0940a
commit 37fc8c5c75
27 changed files with 2569 additions and 156 deletions

View File

@ -578,4 +578,16 @@ public final class StringUtil2 {
}
public static String extractLogMethodNm(
String p_url
) throws Exception{
String[] s_arr = p_url.split("/");
if (s_arr.length>=3) {
return s_arr[s_arr.length-3]+"/"+s_arr[s_arr.length-2]+"/"+s_arr[s_arr.length-1];
}
return p_url;
}
}

View File

@ -3,6 +3,8 @@ package kcc.let.sym.log.clg.service;
import java.util.List;
import java.util.Map;
import egovframework.rte.psl.dataaccess.util.EgovMap;
/**
* 시스템 로그 생성을 위한 ASPECT 클래스
* @author 공통서비스개발팀 이삼섭
@ -64,6 +66,8 @@ public interface EgovLoginLogService {
public LoginLog selectLogMethod(LoginLog loginLog) throws Exception;
public EgovMap selectMethodEgov(LoginLog loginLog) throws Exception;
public void updateLogMethod(LoginLog tempLoginLog) throws Exception;
public void insertLogMethod(LoginLog loginLog) throws Exception;

View File

@ -146,6 +146,10 @@ public class LoginLog extends ComDefaultVO implements Serializable {
private String totalLogCnt;
private String useYn; //통계 사용여부
private String sortNum; //통계 순서
private List<LoginLog> logDataList = new ArrayList<LoginLog>() ;
@ -480,4 +484,20 @@ public class LoginLog extends ComDefaultVO implements Serializable {
this.totalLogCnt = totalLogCnt;
}
public String getUseYn() {
return useYn;
}
public void setUseYn(String useYn) {
this.useYn = useYn;
}
public String getSortNum() {
return sortNum;
}
public void setSortNum(String sortNum) {
this.sortNum = sortNum;
}
}

View File

@ -10,6 +10,8 @@ import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import kcc.com.cmm.util.StringUtil2;
import kcc.let.sym.log.clg.service.EgovLoginLogService;
import kcc.let.sym.log.clg.service.LoginLog;
@ -69,9 +71,13 @@ public class EgovLoginLogServiceImpl extends EgovAbstractServiceImpl implements
//method name 설정
//LETTNLOGINLOG_BAK 테이블을 위해서 추가됨
String[] s_arr = loinLog.getUrl().split("/");
//String[] s_arr = loinLog.getUrl().split("/");
//loinLog.setMethodNm(s_arr[s_arr.length-3]+"/"+s_arr[s_arr.length-2]+"/"+s_arr[s_arr.length-1]);
loinLog.setMethodNm(StringUtil2.extractLogMethodNm(loinLog.getUrl()));
loinLog.setMethodNm(s_arr[s_arr.length-2]+"/"+s_arr[s_arr.length-1]);
System.out.println("loinLog.getMethodNm()");
System.out.println(loinLog.getMethodNm());
@ -183,6 +189,10 @@ public class EgovLoginLogServiceImpl extends EgovAbstractServiceImpl implements
return loginLogDAO.selectLogMethod(loginLog);
}
public EgovMap selectMethodEgov(LoginLog loginLog) throws Exception {
return loginLogDAO.selectMethodEgov(loginLog);
}
@Override
public void updateLogMethod(LoginLog loginLog) throws Exception {
loginLogDAO.updateLogMethod(loginLog);

View File

@ -5,6 +5,7 @@ import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import kcc.let.sym.log.clg.service.LoginLog;
/**
@ -112,9 +113,14 @@ public class LoginLogDAO extends EgovAbstractDAO {
}
public LoginLog selectLogMethod(LoginLog loginLog) throws Exception{
System.out.println((LoginLog)select("LoginLogDAO.selectLogMethod", loginLog));
return (LoginLog)select("LoginLogDAO.selectLogMethod", loginLog);
}
public EgovMap selectMethodEgov(LoginLog loginLog) throws Exception {
return (EgovMap) select("LoginLogDAO.selectMethodEgov", loginLog);
}
public void updateLogMethod(LoginLog loginLog) throws Exception{
update("LoginLogDAO.updateLogMethod", loginLog);
}
@ -136,8 +142,8 @@ public class LoginLogDAO extends EgovAbstractDAO {
}
public int logInsertWebLoginLogNewStep1(LoginLog loinLog) throws Exception{
update("LoginLogDAO.logInsertWebLoginLogNewStep1", loinLog);
return update("LoginLogDAO.logInsertWebLoginLogNewStep1_bak", loinLog);
return update("LoginLogDAO.logInsertWebLoginLogNewStep1", loinLog);
//return update("LoginLogDAO.logInsertWebLoginLogNewStep1_bak", loinLog);
}
public int logInsertWebLoginLogNewStep2(LoginLog loinLog) throws Exception{

View File

@ -31,6 +31,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.EgovMessageSource;
import kcc.com.cmm.LoginVO;
@ -106,7 +107,7 @@ public class EgovLoginLogController {
loginLog.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(loginLog.getSearchSortCnd())){ //최초조회시 최신것 조회List
loginLog.setSearchSortCnd("logId");
loginLog.setSearchSortCnd("b.ADMINLOG_ID");
loginLog.setSearchSortOrd("desc");
}
@ -401,11 +402,26 @@ public class EgovLoginLogController {
System.out.println(loginLog.getAdmotId());
System.out.println(loginLog.getAdmotId());
LoginLog loginLog2 = new LoginLog();
EgovMap upDownNttid = null;
if("Modify".equals((String)commandMap.get("pageType"))){ //수정
System.out.println("loginLog");
System.out.println(loginLog);
loginLog.setAdmotId(loginLog.getAdmotId().trim());
loginLog = loginLogService.selectLogMethod(loginLog);
loginLog2 = loginLogService.selectLogMethod(loginLog);
//loginLog.setAdmotId("18");
upDownNttid = loginLogService.selectMethodEgov(loginLog);
}
model.addAttribute("loginLog", loginLog);
System.out.println("loginLog");
System.out.println(loginLog);
System.out.println(loginLog2);
System.out.println(upDownNttid);
model.addAttribute("loginLog", loginLog2);
model.addAttribute("searchFr", loginLog);
return "sym/log/clg/ViewLogMethod";
}
@ -497,6 +513,7 @@ public class EgovLoginLogController {
}
List<LoginLog> webMenuLogList = loginLogService.selectWebMenuLogList(loginLog); //사용자 매뉴 리스트
/*
List<LoginLog> userMenuList = loginLogService.selectUserMenuList(loginLog); //사용자 매뉴(전체)
for(LoginLog userMenuVO :userMenuList){
@ -525,12 +542,16 @@ public class EgovLoginLogController {
logVO.getLogDataList().add(tempLog);
}
model.addAttribute("userMenuList", userMenuList);
*/
model.addAttribute("webMenuLogList", webMenuLogList);
/* paginationInfo.setTotalRecordCount( webLogList.size()> 0 ? ((LoginLog)webLogList.get(0)).getTotCnt() : 0);
model.addAttribute("webLogList", webLogList);*/
paginationInfo.setTotalRecordCount(userMenuList.size());
model.addAttribute("paginationInfo", paginationInfo);
//paginationInfo.setTotalRecordCount(userMenuList.size());
//model.addAttribute("paginationInfo", paginationInfo);
return "sym/log/clg/SelectWebLogList";
}

View File

@ -271,6 +271,7 @@ public class EgovSysLogAspect {
*/
public Object logAdminInsert(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("logAdminInsert");
StopWatch stopWatch = new StopWatch();
try {
@ -337,6 +338,7 @@ public class EgovSysLogAspect {
*/
public Object logAdminUpdate(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("logAdminUpdate");
StopWatch stopWatch = new StopWatch();
try {
@ -392,6 +394,7 @@ public class EgovSysLogAspect {
*/
public Object logAdminDelete(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("logAdminDelete");
StopWatch stopWatch = new StopWatch();
try {
@ -446,6 +449,7 @@ public class EgovSysLogAspect {
* @throws Exception
*/
public void logAdminSelect(JoinPoint joinPoint) throws Throwable {
System.out.println("logAdminSelect");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(isAuthenticated.booleanValue()) {
SysLog sysLog = new SysLog();

View File

@ -11,6 +11,7 @@ import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.util.StringUtil2;
import kcc.let.sym.log.lgm.service.EgovSysLogService;
import kcc.let.sym.log.lgm.service.SysLog;
@ -100,6 +101,9 @@ public class EgovSysLogServiceImpl extends EgovAbstractServiceImpl implements
return _map;
}
/*
* 관리자 로그 정보 이므로, method_cd='A' 이어야만 한다.
* */
@Override
public void logInsertAdminSysLog(SysLog sysLog) throws Exception {
String requstId = egovAdminLogIdGnrService.getNextStringId();
@ -108,6 +112,10 @@ public class EgovSysLogServiceImpl extends EgovAbstractServiceImpl implements
if(null != loginVO){
sysLog.setSiteId(loginVO.getSiteId());
}
//고유값으로 만들기
sysLog.setMethodNm(StringUtil2.extractLogMethodNm(sysLog.getUrl()));
//sysLogDAO.logInsertAdminSysLog(sysLog);
int i = sysLogDAO.logInsertAdminSysLogNewStep1(sysLog);
@ -120,6 +128,12 @@ public class EgovSysLogServiceImpl extends EgovAbstractServiceImpl implements
System.out.println("=====i====="+sysLog.getTrgetMenuNm());
System.out.println("=====i====="+sysLog.getSrvcNm());
System.out.println("=====i====="+sysLog.getUrl());
System.out.println("=====i====="+sysLog.getPageUnit());
System.out.println("=====i====="+sysLog.getRqsterNm());
System.out.println("=====i====="+sysLog.getMethodNm());
try {
//저장이 안되었으면 LETTNADMINMETHOD 테이블에 추가하고 다시 저장해보기

View File

@ -609,7 +609,19 @@ public class EgovLoginController {
throw new IllegalStateException("No AuthenticationProcessingFilter");
}
System.out.println("==18=1=");
springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null);
try{
System.out.println("==18=1=");
System.out.println("EgovUserDetailsHelper.isAuthenticated()");
System.out.println(EgovUserDetailsHelper.isAuthenticated());
}catch(Exception ex){
ex.printStackTrace();
}
{ // 관리자 로그인 log 저장
String uniqId = "";
String ip = "";
@ -893,8 +905,18 @@ public class EgovLoginController {
} else {
throw new IllegalStateException("No AuthenticationProcessingFilter");
}
System.out.println("==14==");
System.out.println("==14=1=");
springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null);
try{
System.out.println("==14=1=");
System.out.println("EgovUserDetailsHelper.isAuthenticated()");
System.out.println(EgovUserDetailsHelper.isAuthenticated());
}catch(Exception ex){
ex.printStackTrace();
}
{ // 관리자 로그인 log 저장
String uniqId = "";
String ip = "";
@ -943,7 +965,7 @@ public class EgovLoginController {
loginLog.setProgrmFileNm("adminLogin");
loginLog.setMenuNm("관리자로그인");
loginLogService.logInsertLoginLog(loginLog);
System.out.println("==15==");
System.out.println("==15=0=");
}
// session.setAttribute("beforeSiteUrl", request.getRequestURI());
@ -957,7 +979,7 @@ public class EgovLoginController {
request.getSession().setAttribute("registMessage", loginVO.getMessage());
}
}
System.out.println("==16==");
System.out.println("==16=0=");
// 개인키 삭제
// 성공시 웹페이지 분기로 인해 session에 페이지 타입을 넣어준다.
request.getSession().setAttribute("pageType", "web");
@ -1144,7 +1166,18 @@ public class EgovLoginController {
throw new IllegalStateException("No AuthenticationProcessingFilter");
}
System.out.println("==15=1=");
springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null);
try{
System.out.println("==15=1=");
System.out.println("EgovUserDetailsHelper.isAuthenticated()");
System.out.println(EgovUserDetailsHelper.isAuthenticated());
}catch(Exception ex){
ex.printStackTrace();
}
{ // 관리자 로그인 log 저장
String uniqId = "";
String ip = "";
@ -1355,7 +1388,19 @@ public class EgovLoginController {
throw new IllegalStateException("No AuthenticationProcessingFilter");
}
System.out.println("==16=1=");
springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null);
try{
System.out.println("==16=1=");
System.out.println("EgovUserDetailsHelper.isAuthenticated()");
System.out.println(EgovUserDetailsHelper.isAuthenticated());
}catch(Exception ex){
ex.printStackTrace();
}
{ // 관리자 로그인 log 저장
String uniqId = "";
String ip = "";
@ -1465,6 +1510,10 @@ public class EgovLoginController {
// 1. Spring Security 사용자권한 처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
System.out.println("===========isAuthenticated===========0");
System.out.println(isAuthenticated);
if (!isAuthenticated) { // 로그인이 안되었을경우
if (session.getAttribute("pageType") != null) { // 사용자 로그인 추가
if ("web".equals((String) session.getAttribute("pageType"))) {
@ -1765,7 +1814,19 @@ public class EgovLoginController {
} else {
throw new IllegalStateException("No AuthenticationProcessingFilter");
}
System.out.println("==17=1=");
springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null);
try{
System.out.println("==17=1=");
System.out.println("EgovUserDetailsHelper.isAuthenticated()");
System.out.println(EgovUserDetailsHelper.isAuthenticated());
}catch(Exception ex){
ex.printStackTrace();
}
return "blank"; // action.do 에서 일반사용자 분기처리
} else {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));

View File

@ -0,0 +1,225 @@
package kcc.ve.adv.tngr.stngInfo.service;
import java.io.Serializable;
import kcc.com.cmm.ComDefaultVO;
public class VEAStngVO extends ComDefaultVO implements Serializable {
/*
* 과정온라인콘텐츠
* */
private static final long serialVersionUID = 1L;
//ve_prcs_onln_cntnt
private String prcsOrd; //과정순번
private String prcsAplctPrdOrd; //과정신청기간순번
private String prcsOnlnCntntOrd; //과정온라인콘텐츠순번
private String[] prcsOnlnCntntOrdArr; //과정온라인콘텐츠순번
private String[] prcsOrdArr; //과정순번
private String onlnCntntDivCd; //온라인콘텐츠구분코드
private String detailPrcsNm; //상세과정이름
private String chasi; //차시
private String useYn; //사용여부
private String frstRegistPnttm; // 등록일시
private String frstRegisterId; // 등록자
private String lastUpdtPnttm; // 수정일시
private String lastUpdusrId; // 수정자
private String prcsNmTit; // 수정자
//ve_edu_aplct_onln
private String eduAplctOrd; //교육신청순번
//ve_prcs_cmplt_detail //과정이수상세
private String eduStrtDt; //교육시작일자
private String eduEndDt; //교육마감일자
private String eduPrsnl; //교육인원
private String sbmtYn; //제출여부
private String sbmtPnttm; //제출일시
private String sbmtId; //제출자
private String aprvlCd; //승인코드
private String aprvlPnttm; //승인일시
private String aprvlId; //승인자
private String aprvlCn; //승인내용
private String prcsNm; //과정명
private String selectPagingListQuery;
private String orderByQuery;
public String getPrcsOrd() {
return prcsOrd;
}
public void setPrcsOrd(String prcsOrd) {
this.prcsOrd = prcsOrd;
}
public String getPrcsAplctPrdOrd() {
return prcsAplctPrdOrd;
}
public void setPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
this.prcsAplctPrdOrd = prcsAplctPrdOrd;
}
public String getPrcsOnlnCntntOrd() {
return prcsOnlnCntntOrd;
}
public void setPrcsOnlnCntntOrd(String prcsOnlnCntntOrd) {
this.prcsOnlnCntntOrd = prcsOnlnCntntOrd;
}
public String[] getPrcsOnlnCntntOrdArr() {
return prcsOnlnCntntOrdArr;
}
public void setPrcsOnlnCntntOrdArr(String[] prcsOnlnCntntOrdArr) {
this.prcsOnlnCntntOrdArr = prcsOnlnCntntOrdArr;
}
public String[] getPrcsOrdArr() {
return prcsOrdArr;
}
public void setPrcsOrdArr(String[] prcsOrdArr) {
this.prcsOrdArr = prcsOrdArr;
}
public String getOnlnCntntDivCd() {
return onlnCntntDivCd;
}
public void setOnlnCntntDivCd(String onlnCntntDivCd) {
this.onlnCntntDivCd = onlnCntntDivCd;
}
public String getDetailPrcsNm() {
return detailPrcsNm;
}
public void setDetailPrcsNm(String detailPrcsNm) {
this.detailPrcsNm = detailPrcsNm;
}
public String getChasi() {
return chasi;
}
public void setChasi(String chasi) {
this.chasi = chasi;
}
public String getUseYn() {
return useYn;
}
public void setUseYn(String useYn) {
this.useYn = useYn;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getPrcsNmTit() {
return prcsNmTit;
}
public void setPrcsNmTit(String prcsNmTit) {
this.prcsNmTit = prcsNmTit;
}
public String getEduAplctOrd() {
return eduAplctOrd;
}
public void setEduAplctOrd(String eduAplctOrd) {
this.eduAplctOrd = eduAplctOrd;
}
public String getEduStrtDt() {
return eduStrtDt;
}
public void setEduStrtDt(String eduStrtDt) {
this.eduStrtDt = eduStrtDt;
}
public String getEduEndDt() {
return eduEndDt;
}
public void setEduEndDt(String eduEndDt) {
this.eduEndDt = eduEndDt;
}
public String getEduPrsnl() {
return eduPrsnl;
}
public void setEduPrsnl(String eduPrsnl) {
this.eduPrsnl = eduPrsnl;
}
public String getSbmtYn() {
return sbmtYn;
}
public void setSbmtYn(String sbmtYn) {
this.sbmtYn = sbmtYn;
}
public String getSbmtPnttm() {
return sbmtPnttm;
}
public void setSbmtPnttm(String sbmtPnttm) {
this.sbmtPnttm = sbmtPnttm;
}
public String getSbmtId() {
return sbmtId;
}
public void setSbmtId(String sbmtId) {
this.sbmtId = sbmtId;
}
public String getAprvlCd() {
return aprvlCd;
}
public void setAprvlCd(String aprvlCd) {
this.aprvlCd = aprvlCd;
}
public String getAprvlPnttm() {
return aprvlPnttm;
}
public void setAprvlPnttm(String aprvlPnttm) {
this.aprvlPnttm = aprvlPnttm;
}
public String getAprvlId() {
return aprvlId;
}
public void setAprvlId(String aprvlId) {
this.aprvlId = aprvlId;
}
public String getAprvlCn() {
return aprvlCn;
}
public void setAprvlCn(String aprvlCn) {
this.aprvlCn = aprvlCn;
}
public String getPrcsNm() {
return prcsNm;
}
public void setPrcsNm(String prcsNm) {
this.prcsNm = prcsNm;
}
public String getSelectPagingListQuery() {
return selectPagingListQuery;
}
public void setSelectPagingListQuery(String selectPagingListQuery) {
this.selectPagingListQuery = selectPagingListQuery;
}
public String getOrderByQuery() {
return orderByQuery;
}
public void setOrderByQuery(String orderByQuery) {
this.orderByQuery = orderByQuery;
}
}

View File

@ -0,0 +1,252 @@
package kcc.ve.oprtn.tngrVisitEdu.areaLctrMng.web;
import java.util.List;
import java.util.Properties;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.utl.user.service.CheckAdrProcessUtil;
import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrService;
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
import kcc.let.sym.ccm.cde.service.EgovCcmCmmnDetailCodeManageService;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduPnltyService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctUnqIsuesService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduCnfrmDsgnService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService;
import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrAreaMngService;
import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
/**
* 교육신청관리(관리자-청소년찾아가는저작권교육)-고도화
* 교육신청관리에 관한 controller 클래스를 정의한다.
* @author 조용준
* @since 2021.12.16
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2021.12.16 조용준 최초 생성
*
* </pre>
*/
@Controller
//@RequestMapping("/kccadr/oprtn/tngrVisitEdu")
public class AdvAreaLctrMngTngrController {
private static final Logger LOGGER = LoggerFactory.getLogger(AdvAreaLctrMngTngrController.class);
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
//과정 관리
@Resource(name = "vEPrcsService")
private VEPrcsService vEPrcsService;
//신청과정 관리
@Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService;
//강의지역 관리
@Resource(name = "vELctrAreaMngService")
private VELctrAreaMngService vELctrAreaMngService;
//교육신청
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
//교육과정신청
@Resource(name = "vEPrcsMIXService")
private VEPrcsMIXService vEPrcsMIXService;
//차시
@Resource(name = "vEEduChasiService")
private VEEduChasiService vVEEduChasiService;
// 교육신청 서비스단
@Resource(name = "AdjReqMgrService")
private AdjReqMgrService adjReqMgrService;
// eGov 공통코드
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
// global 프로퍼티
@Resource(name="globalSettings")
protected Properties propertiesService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
// 첨부파일 정보
@Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
@Resource(name="KccadrMgrUdtService")
private KccadrMgrUdtService kccadrMgrUdtService;
// 교육신청 서비스단
@Resource(name = "checkAdrProcessUtil")
private CheckAdrProcessUtil checkAdrProcessUtil;
// 강의배정정보
@Resource(name = "vEAsgnmMIXService")
private VEAsgnmMIXService vEAsgnmMIXService;
//파일 체크 util
@Resource(name = "checkFileUtil")
private CheckFileUtil checkFileUtil;
//교육확정안
@Resource(name = "vEEduCnfrmDsgnService")
private VEEduCnfrmDsgnService vEEduCnfrmDsgnService;
// 교육패널티
@Resource(name = "vEEduPnltyService")
private VEEduPnltyService vEEduPnltyService;
// 특이사항
@Resource(name = "vEEduAplctUnqIsuesService")
private VEEduAplctUnqIsuesService vEEduAplctUnqIsuesService;
// 강사료
@Resource(name = "vEInstrFeeService")
private VEInstrFeeService vEInstrFeeService;
// 강사목록
@Resource(name = "vEInstrMixService")
private VEInstrMixService vEInstrMixService;
@Resource(name = "CmmnDetailCodeManageService")
private EgovCcmCmmnDetailCodeManageService cmmnDetailCodeManageService;
/**
* 지역별 강의관리 목록 화면
*/
@RequestMapping("/kccadr/oprtn/tngrVisitEdu/advAreaLctrMngList.do")
public String areaLctrMngList(
@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
, ModelMap model
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
//String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
//if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
//vEEduAplctVO.setLctrDivCd("30");
vELctrDetailVO.setInstrDiv("10");
if (vELctrDetailVO.getStngYr()!=null && vELctrDetailVO.getPrdDivCd()!=null) {
List<VELctrDetailVO> vELctrDetailVOList = vELctrAreaMngService.selectList(vELctrDetailVO);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vELctrDetailVOList);
VELctrDetailVO selectTimeSum = vELctrAreaMngService.selectTimeSum(vELctrDetailVO);
//대상 리스트, 페이징 정보 전달
model.addAttribute("selectTimeSum", selectTimeSum);
}
return "oprtn/tngrVisitEdu/advAreaLctrMngList";
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
// private function
//
//
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1(
VEEduAplctVO p_vEEduAplctVO
)throws Exception{
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEEduAplctVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEEduAplctVO.getPageUnit());
paginationInfo.setPageSize(p_vEEduAplctVO.getPageSize());
return paginationInfo;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEEduAplctVO setPagingStep2(
VEEduAplctVO p_vEEduAplctVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEEduAplctVO.setSearchSortCnd("prcs_ord");
p_vEEduAplctVO.setSearchSortOrd("desc");
}
return p_vEEduAplctVO;
}
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3(
List<VEEduAplctVO> p_vEEduAplctVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_vEEduAplctVOList.size() > 0) totCnt = p_vEEduAplctVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo;
}
}

View File

@ -2891,4 +2891,52 @@
<property name="fillChar" value="0" />
</bean>
<!-- 18.일별가능시수설정 vea_dt_psbl_tm_qntty_stng -->
<bean name="dtPsblTmQnttyGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy" ref="dtPsblTmQnttyStrategy" /><!-- strategy 값 수정 -->
<property name="blockSize" value="10"/>
<property name="table" value="IDS"/>
<property name="tableName" value="DT_PSBL_TM_QNTTY"/><!-- tableName 값 수정 -->
</bean>
<!-- 과정 ID Generation Strategy Config -->
<bean name="dtPsblTmQnttyStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"><!-- bean name 값에 strategy 값 입력 -->
<property name="prefix" value="dtPsblTmQntty_" /><!-- prefix 값 수정 -->
<property name="cipers" value="6" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
<!-- 19.회차순번 vea_lctr_rnds_stng -->
<bean name="rndsOrdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy" ref="rndsOrdStrategy" /><!-- strategy 값 수정 -->
<property name="blockSize" value="10"/>
<property name="table" value="IDS"/>
<property name="tableName" value="RNDS_ORD"/><!-- tableName 값 수정 -->
</bean>
<!-- 과정 ID Generation Strategy Config -->
<bean name="rndsOrdStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"><!-- bean name 값에 strategy 값 입력 -->
<property name="prefix" value="rndsOrd_" /><!-- prefix 값 수정 -->
<property name="cipers" value="12" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
<!-- 20.강의가능기간순번 vea_lctr_psbl_prd_stng -->
<bean name="lctrPsblPrdOrdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy" ref="lctrPsblPrdOrdStrategy" /><!-- strategy 값 수정 -->
<property name="blockSize" value="10"/>
<property name="table" value="IDS"/>
<property name="tableName" value="RNDS_ORD"/><!-- tableName 값 수정 -->
</bean>
<!-- 과정 ID Generation Strategy Config -->
<bean name="lctrPsblPrdOrdStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"><!-- bean name 값에 strategy 값 입력 -->
<property name="prefix" value="lctrPsblPrd_" /><!-- prefix 값 수정 -->
<property name="cipers" value="8" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
</beans>

View File

@ -111,4 +111,10 @@
<!-- 강의 NOTI 관리 -->
<sqlMap resource="egovframework/sqlmap/ve/asgnm/VEAsgnm_NOTI_SQL_Tibero.xml"/>
<!-- 청소년 추가 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEADtPsblTmQnttyStng_SQL_Tibero.xml"/> <!-- 일별가능시수설정 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrYrStng_SQL_Tibero.xml"/> <!-- 강의년도설정 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrRndsStng_SQL_Tibero.xml"/> <!-- 강의회차설정 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrPsblPrdStng_SQL_Tibero.xml"/> <!-- 강의가능기간설정 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAAreaLctrStng_SQL_Tibero.xml"/> <!-- 지역별강의설정 -->
</sqlMapConfig>

View File

@ -65,6 +65,7 @@
<!-- 로그인 로그 상세 조회 -->
<select id="LoginLogDAO.selectLoginLog" parameterClass="loginLog" resultMap="LoginLogVO">
/* LoginLogDAO.selectLoginLog */
<![CDATA[
SELECT
a.LOG_ID
@ -87,6 +88,7 @@
<!-- 로그인 로그 목록 조회 -->
<select id="LoginLogDAO.selectLoginLogInf" parameterClass="loginLog" resultMap="LoginLogVO">
/* LoginLogDAO.selectLoginLogInf */
<![CDATA[
SELECT
a.LOG_ID
@ -117,7 +119,7 @@
<!-- 로그인 로그 총건수 -->
<select id="LoginLogDAO.selectLoginLogInfCnt" parameterClass="loginLog" resultClass="java.lang.Integer">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectLoginLogInfCnt */
<![CDATA[
SELECT COUNT(a.LOG_ID) as cnt
FROM
@ -140,7 +142,7 @@
<!-- 오늘 날짜 로그인 로그 상세 조회 -->
<select id="LoginLogDAO.selectLoginUserLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectLoginUserLog */
<![CDATA[
SELECT
a.LOG_ID
@ -160,7 +162,7 @@
<!-- 관리자 대쉬보드 접속 리스트 -->
<select id="LoginLogDAO.selectMainAmdinLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectMainAmdinLog */
SELECT
a.LOG_ID logId ,
b.USER_NM loginNm,
@ -180,7 +182,7 @@
<!-- 관리자 대쉬보드 접속 TOTCNT -->
<select id="LoginLogDAO.selectMainAmdinLogTotCnt" parameterClass="loginLog" resultClass="int">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectMainAmdinLogTotCnt */
SELECT
COUNT(a.LOG_ID)
FROM
@ -235,6 +237,67 @@
<!-- 관리자 대쉬보드 접속 리스트 -->
<select id="LoginLogDAO.selectAmdinLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectAmdinLog */
SELECT
COUNT(1) OVER() AS totCnt
, a.MENU_NM AS menuNm
, a.APPRO_NM AS approNm
, a.METHOD_NM AS methodNm
, b.URL AS url
, b.creat_dt AS creatDt
, b.CONECT_IP AS loginIp
, b.CONECT_ID AS conectId
, c.USER_ID AS loginId
, c.USER_NM AS userNm
FROM LETTNADMINMETHOD a
, LETTNADMINLOG b
, COMVNUSERMASTER c
WHERE 1=1
AND a.use_yn='Y'
AND a.method_cd='A'
AND a.METHOD_NM =b.PROGRM_FILE_NM
AND b.CONECT_ID =c.ESNTL_ID
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( a.MENU_NM LIKE '%'||#searchKeyword#||'%'
OR
b.URL LIKE '%'||#searchKeyword#||'%'
)
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
a.MENU_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
b.URL LIKE '%'||#searchKeyword#||'%'
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' ) >= #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
AND #searchEndDt# >= TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' )
</isNotEmpty>
ORDER BY 1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- 관리자 대쉬보드 접속 리스트 -->
<select id="LoginLogDAO.selectAmdinLog_bak" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectAmdinLog_bak */
SELECT
COUNT(1) OVER() AS totCnt ,
a.ADMINLOG_ID logId ,
@ -291,7 +354,7 @@
<!-- 관리자 대쉬보드 접속 TOTCNT -->
<select id="LoginLogDAO.selectAmdinLogTotCnt" parameterClass="loginLog" resultClass="int">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectAmdinLogTotCnt */
SELECT
COUNT(a.ADMINLOG_ID)
FROM
@ -328,18 +391,20 @@
A.PARAM AS param,
A.CREAT_DT AS tempSortNum,
A.PRIVACY AS privacy,
A.USE_YN AS useYn,
A.SORT_NUM AS sortNum,
A.method_cd as dateType
FROM LETTNADMINMETHOD A
WHERE 1=1
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( A.MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%') OR A.METHOD_NM LIKE CONCAT('%' , #searchKeyword#, '%') )
( A.MENU_NM LIKE '%'||#searchKeyword#||'%' OR A.METHOD_NM LIKE '%'||#searchKeyword#||'%' )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
A.MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%')
A.MENU_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
A.METHOD_NM LIKE CONCAT('%' , #searchKeyword#, '%')
A.METHOD_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
</isNotEmpty>
/*
@ -361,16 +426,23 @@
<!-- 관리자 로그설정 메소드 VO -->
<select id="LoginLogDAO.selectLogMethod" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectLogMethod */
SELECT
COUNT(A.ADMOT_ID) OVER() AS totCnt,
A.ADMOT_ID AS admotId,
A.METHOD_NM AS methodNm,
/*
DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d') AS creatDt,
*/
TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD') AS creatDt,
A.MENU_NM AS menuNm,
A.APPRO_NM AS approNm,
A.PARAM AS param,
A.CREAT_DT AS tempSortNum,
A.PRIVACY AS privacy,
A.method_cd AS dateType
A.USE_YN AS useYn,
A.SORT_NUM AS sortNum,
A.method_cd as dateType
FROM LETTNADMINMETHOD A
WHERE 1=1
<isNotEmpty property="admotId">
@ -384,6 +456,36 @@
</isNotEmpty>
</select>
<!-- 관리자 로그설정 메소드 VO -->
<select id="LoginLogDAO.selectMethodEgov" parameterClass="loginLog" resultClass="egovMap">
SELECT
COUNT(A.ADMOT_ID) OVER() AS totCnt,
A.ADMOT_ID AS admotId,
A.METHOD_NM AS methodNm,
TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD') AS creatDt,
A.MENU_NM AS menuNm,
A.APPRO_NM AS approNm,
A.PARAM AS param,
A.CREAT_DT AS tempSortNum,
A.PRIVACY AS privacy,
A.USE_YN AS useYn,
A.SORT_NUM AS sortNum,
A.method_cd as dateType
FROM LETTNADMINMETHOD A
WHERE 1=1
<isNotEmpty property="admotId">
AND A.ADMOT_ID = #admotId#
</isNotEmpty>
<isNotEmpty property="methodNm">
AND A.METHOD_NM = #methodNm#
</isNotEmpty>
<isNotEmpty property="param">
AND A.PARAM = #param#
</isNotEmpty>
</select>
<!-- 관리자 로그설정 메소드 수정 -->
<update id="LoginLogDAO.updateLogMethod" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
@ -393,6 +495,8 @@
, MENU_NM = #menuNm#
, APPRO_NM = #approNm#
, PRIVACY = #privacy#
, USE_YN = #useYn#
, sort_num = #sortNum#
WHERE ADMOT_ID = #admotId#
</update>
@ -405,7 +509,9 @@
PARAM,
MENU_NM,
APPRO_NM,
PRIVACY
PRIVACY,
use_yn,
sort_num
)
VALUES
(
@ -414,7 +520,9 @@
#param#,
#menuNm#,
#approNm#,
#privacy#
#privacy#,
#useYn#,
#sortNum#
)
</insert>
@ -425,7 +533,7 @@
<!-- 이전 관리자 로그인 로그 상세 조회 -->
<select id="LoginLogDAO.selectBeforeAmdinLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectBeforeAmdinLog */
/*
SELECT DATE_FORMAT(A.CREAT_DT, '%Y-%m-%d %H:%i' ) creatDt FROM LETTNADMINLOG A
@ -472,10 +580,10 @@
</insert>
<!-- 사용자 접속 로그 등록(매뉴에 등록된 페이지만 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep1" parameterClass="loginLog">
<update id="LoginLogDAO.logInsertWebLoginLogNewStep1_bak" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 2023-06-20일 저장확인을 위해 update 추가함*/
/* LoginLogDAO.logInsertWebLoginLogNewStep1 */
/* LoginLogDAO.logInsertWebLoginLogNewStep1_bak */
INSERT INTO LETTNLOGINLOG
( LOG_ID
, CONECT_ID
@ -505,6 +613,37 @@
AND B.URL = #url#
</update>
<!-- 사용자 접속 로그 등록(매뉴에 등록된 페이지만 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep1" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 2023-06-20일 저장확인을 위해 update 추가함*/
/* LoginLogDAO.logInsertWebLoginLogNewStep1 */
INSERT INTO LETTNLOGINLOG
( LOG_ID
, CONECT_ID
, CONECT_IP
, USER_AT
, DEVICE_TYPE /**인테넛,모바일 */
, PROGRM_FILE_NM
, MENU_NM
, URL
, CREAT_DT )
SELECT
#logId#
, #loginId#
, #loginIp#
, #userAt# /**A:관리자, U:홈페이지 */
, #deviceType#
, method_nm
, menu_nm
, #url#
, SYSDATE
FROM LETTNADMINMETHOD
WHERE METHOD_NM = #methodNm#
LIMIT 1
</update>
<!-- 사용자 접속 로그 등록(매뉴에 없는 페이지 등록용 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep2" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
@ -535,36 +674,7 @@
FROM DUAL
</update>
<!-- 사용자 접속 로그 등록(매뉴에 등록된 페이지만 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep1_bak" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 2023-06-20일 저장확인을 위해 update 추가함*/
/* LoginLogDAO.logInsertWebLoginLogNewStep1_bak */
INSERT INTO LETTNLOGINLOG_BAK
( LOG_ID
, CONECT_ID
, CONECT_IP
, USER_AT
, DEVICE_TYPE /**인테넛,모바일 */
, PROGRM_FILE_NM
, MENU_NM
, URL
, CREAT_DT )
SELECT
#logId#
, #loginId#
, #loginIp#
, #userAt# /**A:관리자, U:홈페이지 */
, #deviceType#
, method_nm
, menu_nm
, #url#
, SYSDATE
FROM LETTNADMINMETHOD
WHERE METHOD_NM = #methodNm#
LIMIT 1
</update>
<!-- 사용자 접속 로그 등록(매뉴에 없는 페이지 등록용 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep2_bak" parameterClass="loginLog">
@ -623,7 +733,7 @@
<!-- 사용자 메뉴별 접속 리스트 -->
<select id="LoginLogDAO.selectWebLogList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectWebLogList */
SELECT COUNT(A.MENU_NM) OVER() AS totCnt,
COUNT(B.CREAT_DT) menuCnt,
A.MENU_NM AS menuNm,
@ -658,10 +768,56 @@
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
<!-- 사용자 메뉴별 접속 로그 리스트 -->
<select id="LoginLogDAO.selectWebMenuLogList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectWebMenuLogList */
SELECT a.MENU_NM AS menuNm,
a.APPRO_NM AS approNm,
a.METHOD_NM AS methodNm,
a.SORT_NUM AS sortNum,
count(*) AS totCnt
FROM LETTNADMINMETHOD a
LEFT OUTER JOIN LETTNLOGINLOG b
ON (a.METHOD_NM =b.PROGRM_FILE_NM)
WHERE a.use_yn ='Y'
AND a.METHOD_CD ='U'
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( a.MENU_NM LIKE '%'||#searchKeyword#||'%'
OR
a.METHOD_NM LIKE '%'||#searchKeyword#||'%'
)
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
a.MENU_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
a.METHOD_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' ) >= #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
AND #searchEndDt# >= TO_CHAR(b.CREAT_DT, 'YYYY.MM.DD' )
</isNotEmpty>
GROUP BY a.MENU_NM,
a.APPRO_NM,
a.METHOD_NM,
a.SORT_NUM
ORDER BY A.SORT_NUM
</select>
<!-- 사용자 메뉴별 접속 로그 리스트 -->
<select id="LoginLogDAO.selectWebMenuLogList_bak" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectWebMenuLogList_bak */
<isEqual property="dateType" compareValue="D"> /** 일별 */
SELECT C.creatDt creatDt ,
C.menuNm menuNm,
@ -852,7 +1008,7 @@
<!-- 사용자 메뉴별 접속 로그 리스트 (접속일자(조회))-->
<select id="LoginLogDAO.selectDateLogList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectDateLogList */
SELECT DATE_FORMAT(A.Dates, '%Y-%m-%d') AS creatDt
FROM (
SELECT CURDATE() - INTERVAL (A.A + (10 * B.A) + (100 * C.A) + (1000 * D.A) ) DAY AS DATES
@ -865,7 +1021,7 @@
</select>
<!-- 사용자 메뉴별 접속 로그 리스트(사용자 매뉴(전체)) -->
<select id="LoginLogDAO.selectUserMenuList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectUserMenuList */
SELECT A.MENU_NM AS menuNm,
A.PROGRM_FILE_NM AS progrmFileNm ,
A.MENU_NO AS menuNo
@ -884,7 +1040,7 @@
<!-- footer 하단 접속자수 조회 -->
<select id="LoginLogDAO.selectLogCnt" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectLogCnt */
SELECT A.todayLogCnt , B.totalLogCnt from
( SELECT COUNT(*) todayLogCnt , 'TEMP' AS TEMP FROM LETTNLOGINLOG
WHERE TO_CHAR(CREAT_DT, 'YYYY-MM-DD') = TO_CHAR(SYSDATE , 'YYYY-MM-DD') ) A

View File

@ -219,6 +219,7 @@
#url#
FROM LETTNADMINMETHOD
WHERE METHOD_NM = #methodNm#
AND method_cd='A'
<isNotEmpty prepend="AND" property="param">
PARAM = #param#
</isNotEmpty>

View File

@ -174,7 +174,7 @@
SELECT CNTDT_ID cntDtId,
CNT_ID cntId,
CNT_NAME cntName,
(SELECT CONCAT(MENU_NM , '>' , C.MENU_NM ) FROM LETTNMENUINFO
(SELECT MENU_NM||'>'||C.MENU_NM FROM LETTNMENUINFO
WHERE MENU_NO = C.UPPER_MENU_NO ) menu_fullNm,
'' as menuCours
/*getMenuCours(C.MENU_NO) as menuCours*/

View File

@ -351,15 +351,15 @@
AND DEL = '0'
<isNotEmpty property="searchKeyword">
<isEqual property="searchCondition" compareValue="">
AND ( POZ_NM LIKE CONCAT ('%', #searchKeyword#,'%')
OR MLINK LIKE CONCAT ('%', #searchKeyword#,'%')
AND ( POZ_NM LIKE '%'||#searchKeyword#||'%'
OR MLINK LIKE '%'||#searchKeyword#||'%'
)
</isEqual>
<isEqual property="searchCondition" compareValue="1">
AND POZ_NM LIKE CONCAT ('%', #searchKeyword#,'%')
AND POZ_NM LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual property="searchCondition" compareValue="2">
AND MLINK LIKE CONCAT ('%', #searchKeyword#,'%')
AND MLINK LIKE '%'||#searchKeyword#||'%'
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchConditionSite">
@ -396,7 +396,7 @@
MLINK,
ISTARGET,
REGDT,
DATE_FORMAT(MODDT, '%Y-%m-%d %h:%m:%s') MODDT ,
TO_CHAR(MODDT, 'YYYY-MM-DD HH24:MI:SS') MODDT ,
DEL,
SORT,
POPUPZONE_IMAGE AS POPUPZONEIMAGE ,

View File

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 교육 결과 테이블 -->
<sqlMap namespace="VEAAreaLctrStng">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEAAreaLctrStngDAO.table_name">
ve_edu_aplct_onln
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEAAreaLctrStngDAO.column_name">
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEAAreaLctrStngDAO.select_column_name">
a.edu_aplct_ord AS eduAplctOrd,
a.prcs_ord AS prcsOrd,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId
</sql>
<!-- 강사 등록 C -->
<insert id="VEAAreaLctrStngDAO.insert" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEAAreaLctrStngDAO.table_name"/> (
<include refid="VEAAreaLctrStngDAO.column_name"/>
)VALUES(
#eduAplctOrd#,
#prcsOrd#,
SYSDATE,
#frstRegisterId#,
SYSDATE,
#lastUpdusrId#
)
</insert>
<!-- 강사 정보 R -->
<select id="VEAAreaLctrStngDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEAAreaLctrStngDAO.select_column_name"/>
FROM
<include refid="VEAAreaLctrStngDAO.table_name"/> a
WHERE
a.edu_aplct_ord = #eduAplctOrd#
AND a.prcs_ord = #prcsOrd#
</select>
<!-- 강사 정보 U -->
<update id="VEAAreaLctrStngDAO.update" parameterClass="VEAStngVO">
UPDATE
<include refid="VEAAreaLctrStngDAO.table_name"/>
SET
LAST_UPDT_PNTTM = SYSDATE
,LAST_UPDUSR_ID = #lastUpdusrId#
WHERE
edu_aplct_ord = #eduAplctOrd#
AND prcs_ord = #prcsOrd#
</update>
<!-- 강사 정보 U -->
<update id="VEAAreaLctrStngDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEAAreaLctrStngDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
<!-- 강사 정보 D -->
<delete id="VEAAreaLctrStngDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEAAreaLctrStngDAO.table_name"/>
WHERE
edu_aplct_ord = #eduAplctOrd#
<isNotEmpty property="prcsOrd">
AND prcs_ord = #prcsOrd#
</isNotEmpty>
</delete>
<!-- 강사 정보 L -->
<select id="VEAAreaLctrStngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEAAreaLctrStngDAO.select_column_name"/>
FROM
<include refid="VEAAreaLctrStngDAO.table_name"/> a
WHERE
1=1
</select>
<!-- 강사 정보 L page -->
<select id="VEAAreaLctrStngDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEAAreaLctrStngDAO.select_column_name"/>
FROM
<include refid="VEAAreaLctrStngDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="eduAplctOrd">
AND a.edu_aplct_ord=#eduAplctOrd#
</isNotEmpty>
ORDER BY 1=1
<isEmpty property="orderByQuery">
, a.edu_aplct_ord desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
</sqlMap>

View File

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 교육 결과 테이블 -->
<sqlMap namespace="VEADtPsblTmQnttyStng">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEADtPsblTmQnttyStngDAO.table_name">
ve_edu_aplct_onln
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEADtPsblTmQnttyStngDAO.column_name">
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEADtPsblTmQnttyStngDAO.select_column_name">
a.edu_aplct_ord AS eduAplctOrd,
a.prcs_ord AS prcsOrd,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId
</sql>
<!-- 강사 등록 C -->
<insert id="VEADtPsblTmQnttyStngDAO.insert" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEADtPsblTmQnttyStngDAO.table_name"/> (
<include refid="VEADtPsblTmQnttyStngDAO.column_name"/>
)VALUES(
#eduAplctOrd#,
#prcsOrd#,
SYSDATE,
#frstRegisterId#,
SYSDATE,
#lastUpdusrId#
)
</insert>
<!-- 강사 정보 R -->
<select id="VEADtPsblTmQnttyStngDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEADtPsblTmQnttyStngDAO.select_column_name"/>
FROM
<include refid="VEADtPsblTmQnttyStngDAO.table_name"/> a
WHERE
a.edu_aplct_ord = #eduAplctOrd#
AND a.prcs_ord = #prcsOrd#
</select>
<!-- 강사 정보 U -->
<update id="VEADtPsblTmQnttyStngDAO.update" parameterClass="VEAStngVO">
UPDATE
<include refid="VEADtPsblTmQnttyStngDAO.table_name"/>
SET
LAST_UPDT_PNTTM = SYSDATE
,LAST_UPDUSR_ID = #lastUpdusrId#
WHERE
edu_aplct_ord = #eduAplctOrd#
AND prcs_ord = #prcsOrd#
</update>
<!-- 강사 정보 U -->
<update id="VEADtPsblTmQnttyStngDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEADtPsblTmQnttyStngDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
<!-- 강사 정보 D -->
<delete id="VEADtPsblTmQnttyStngDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEADtPsblTmQnttyStngDAO.table_name"/>
WHERE
edu_aplct_ord = #eduAplctOrd#
<isNotEmpty property="prcsOrd">
AND prcs_ord = #prcsOrd#
</isNotEmpty>
</delete>
<!-- 강사 정보 L -->
<select id="VEADtPsblTmQnttyStngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEADtPsblTmQnttyStngDAO.select_column_name"/>
FROM
<include refid="VEADtPsblTmQnttyStngDAO.table_name"/> a
WHERE
1=1
</select>
<!-- 강사 정보 L page -->
<select id="VEADtPsblTmQnttyStngDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEADtPsblTmQnttyStngDAO.select_column_name"/>
FROM
<include refid="VEADtPsblTmQnttyStngDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="eduAplctOrd">
AND a.edu_aplct_ord=#eduAplctOrd#
</isNotEmpty>
ORDER BY 1=1
<isEmpty property="orderByQuery">
, a.edu_aplct_ord desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
</sqlMap>

View File

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 교육 결과 테이블 -->
<sqlMap namespace="VEALctrPsblPrdStng">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEALctrPsblPrdStngDAO.table_name">
ve_edu_aplct_onln
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEALctrPsblPrdStngDAO.column_name">
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEALctrPsblPrdStngDAO.select_column_name">
a.edu_aplct_ord AS eduAplctOrd,
a.prcs_ord AS prcsOrd,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId
</sql>
<!-- 강사 등록 C -->
<insert id="VEALctrPsblPrdStngDAO.insert" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEALctrPsblPrdStngDAO.table_name"/> (
<include refid="VEALctrPsblPrdStngDAO.column_name"/>
)VALUES(
#eduAplctOrd#,
#prcsOrd#,
SYSDATE,
#frstRegisterId#,
SYSDATE,
#lastUpdusrId#
)
</insert>
<!-- 강사 정보 R -->
<select id="VEALctrPsblPrdStngDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEALctrPsblPrdStngDAO.select_column_name"/>
FROM
<include refid="VEALctrPsblPrdStngDAO.table_name"/> a
WHERE
a.edu_aplct_ord = #eduAplctOrd#
AND a.prcs_ord = #prcsOrd#
</select>
<!-- 강사 정보 U -->
<update id="VEALctrPsblPrdStngDAO.update" parameterClass="VEAStngVO">
UPDATE
<include refid="VEALctrPsblPrdStngDAO.table_name"/>
SET
LAST_UPDT_PNTTM = SYSDATE
,LAST_UPDUSR_ID = #lastUpdusrId#
WHERE
edu_aplct_ord = #eduAplctOrd#
AND prcs_ord = #prcsOrd#
</update>
<!-- 강사 정보 U -->
<update id="VEALctrPsblPrdStngDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEALctrPsblPrdStngDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
<!-- 강사 정보 D -->
<delete id="VEALctrPsblPrdStngDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEALctrPsblPrdStngDAO.table_name"/>
WHERE
edu_aplct_ord = #eduAplctOrd#
<isNotEmpty property="prcsOrd">
AND prcs_ord = #prcsOrd#
</isNotEmpty>
</delete>
<!-- 강사 정보 L -->
<select id="VEALctrPsblPrdStngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEALctrPsblPrdStngDAO.select_column_name"/>
FROM
<include refid="VEALctrPsblPrdStngDAO.table_name"/> a
WHERE
1=1
</select>
<!-- 강사 정보 L page -->
<select id="VEALctrPsblPrdStngDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEALctrPsblPrdStngDAO.select_column_name"/>
FROM
<include refid="VEALctrPsblPrdStngDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="eduAplctOrd">
AND a.edu_aplct_ord=#eduAplctOrd#
</isNotEmpty>
ORDER BY 1=1
<isEmpty property="orderByQuery">
, a.edu_aplct_ord desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
</sqlMap>

View File

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 교육 결과 테이블 -->
<sqlMap namespace="VEALctrRndsStng">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEALctrRndsStngDAO.table_name">
ve_edu_aplct_onln
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEALctrRndsStngDAO.column_name">
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEALctrRndsStngDAO.select_column_name">
a.edu_aplct_ord AS eduAplctOrd,
a.prcs_ord AS prcsOrd,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId
</sql>
<!-- 강사 등록 C -->
<insert id="VEALctrRndsStngDAO.insert" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEALctrRndsStngDAO.table_name"/> (
<include refid="VEALctrRndsStngDAO.column_name"/>
)VALUES(
#eduAplctOrd#,
#prcsOrd#,
SYSDATE,
#frstRegisterId#,
SYSDATE,
#lastUpdusrId#
)
</insert>
<!-- 강사 정보 R -->
<select id="VEALctrRndsStngDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEALctrRndsStngDAO.select_column_name"/>
FROM
<include refid="VEALctrRndsStngDAO.table_name"/> a
WHERE
a.edu_aplct_ord = #eduAplctOrd#
AND a.prcs_ord = #prcsOrd#
</select>
<!-- 강사 정보 U -->
<update id="VEALctrRndsStngDAO.update" parameterClass="VEAStngVO">
UPDATE
<include refid="VEALctrRndsStngDAO.table_name"/>
SET
LAST_UPDT_PNTTM = SYSDATE
,LAST_UPDUSR_ID = #lastUpdusrId#
WHERE
edu_aplct_ord = #eduAplctOrd#
AND prcs_ord = #prcsOrd#
</update>
<!-- 강사 정보 U -->
<update id="VEALctrRndsStngDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEALctrRndsStngDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
<!-- 강사 정보 D -->
<delete id="VEALctrRndsStngDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEALctrRndsStngDAO.table_name"/>
WHERE
edu_aplct_ord = #eduAplctOrd#
<isNotEmpty property="prcsOrd">
AND prcs_ord = #prcsOrd#
</isNotEmpty>
</delete>
<!-- 강사 정보 L -->
<select id="VEALctrRndsStngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEALctrRndsStngDAO.select_column_name"/>
FROM
<include refid="VEALctrRndsStngDAO.table_name"/> a
WHERE
1=1
</select>
<!-- 강사 정보 L page -->
<select id="VEALctrRndsStngDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEALctrRndsStngDAO.select_column_name"/>
FROM
<include refid="VEALctrRndsStngDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="eduAplctOrd">
AND a.edu_aplct_ord=#eduAplctOrd#
</isNotEmpty>
ORDER BY 1=1
<isEmpty property="orderByQuery">
, a.edu_aplct_ord desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
</sqlMap>

View File

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 교육 결과 테이블 -->
<sqlMap namespace="VEALctrYrStng">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEALctrYrStngDAO.table_name">
ve_edu_aplct_onln
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEALctrYrStngDAO.column_name">
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEALctrYrStngDAO.select_column_name">
a.edu_aplct_ord AS eduAplctOrd,
a.prcs_ord AS prcsOrd,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId
</sql>
<!-- 강사 등록 C -->
<insert id="VEALctrYrStngDAO.insert" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEALctrYrStngDAO.table_name"/> (
<include refid="VEALctrYrStngDAO.column_name"/>
)VALUES(
#eduAplctOrd#,
#prcsOrd#,
SYSDATE,
#frstRegisterId#,
SYSDATE,
#lastUpdusrId#
)
</insert>
<!-- 강사 정보 R -->
<select id="VEALctrYrStngDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEALctrYrStngDAO.select_column_name"/>
FROM
<include refid="VEALctrYrStngDAO.table_name"/> a
WHERE
a.edu_aplct_ord = #eduAplctOrd#
AND a.prcs_ord = #prcsOrd#
</select>
<!-- 강사 정보 U -->
<update id="VEALctrYrStngDAO.update" parameterClass="VEAStngVO">
UPDATE
<include refid="VEALctrYrStngDAO.table_name"/>
SET
LAST_UPDT_PNTTM = SYSDATE
,LAST_UPDUSR_ID = #lastUpdusrId#
WHERE
edu_aplct_ord = #eduAplctOrd#
AND prcs_ord = #prcsOrd#
</update>
<!-- 강사 정보 U -->
<update id="VEALctrYrStngDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEALctrYrStngDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
<!-- 강사 정보 D -->
<delete id="VEALctrYrStngDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEALctrYrStngDAO.table_name"/>
WHERE
edu_aplct_ord = #eduAplctOrd#
<isNotEmpty property="prcsOrd">
AND prcs_ord = #prcsOrd#
</isNotEmpty>
</delete>
<!-- 강사 정보 L -->
<select id="VEALctrYrStngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEALctrYrStngDAO.select_column_name"/>
FROM
<include refid="VEALctrYrStngDAO.table_name"/> a
WHERE
1=1
</select>
<!-- 강사 정보 L page -->
<select id="VEALctrYrStngDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEALctrYrStngDAO.select_column_name"/>
FROM
<include refid="VEALctrYrStngDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="eduAplctOrd">
AND a.edu_aplct_ord=#eduAplctOrd#
</isNotEmpty>
ORDER BY 1=1
<isEmpty property="orderByQuery">
, a.edu_aplct_ord desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
</sqlMap>

View File

@ -0,0 +1,686 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : advAreaLctrMngList.jsp
* @Description : 지역별 강의관리 설정> 지역별 강의 설정 관리
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.14 조용준 최초 생성
* @author 조용준
* @since 2021.12.14
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$("input[name=searchStatusArr]").on("click" , function(){
var value = $(this).val();
if(value == "99"){
$("input[name=searchStatusArr]").prop("checked", $(this).is(":checked"));
}
})
$("input[name=searchMonth]").on("click" , function(){
var value = $(this).val();
if(value == "99"){
$("#sel_date").find("button").prop("disabled" , false);
$("#sel_date").find("input").prop("readonly", false);
}else{
setSearchMonthDate(value);
$("#sel_date").find("button").prop("disabled" , true);
$("#sel_date").find("input").prop("readonly", true);
}
})
if('${adjReqMgrVO.searchMonth}' != '99'){
setSearchMonthDate('${adjReqMgrVO.searchMonth}');
}
});
function setSearchMonthDate(month){
if(month == undefined || month == ""){
month = '${adjReqMgrVO.searchMonth}';
}
//현재날짜
var now = new Date();
var endDt = now.getFullYear()+"-"+ ((now.getMonth()+1) < 10 ? '0'+ (now.getMonth()+1) : (now.getMonth()+1) )+ "-"
+ ((now.getDate()) < 10 ? '0'+ (now.getDate()) : (now.getDate()) );
//month + 날자
month = parseInt(month);
var getMonthDate = new Date(now.setMonth(now.getMonth() - month)); // 한달 후
var startDt = getMonthDate.getFullYear()+"-"+ ((getMonthDate.getMonth()+1) < 10 ? '0'+ (getMonthDate.getMonth()+1) : (getMonthDate.getMonth()+1)) + "-"
+ ((getMonthDate.getDate()) < 10 ? '0'+ (getMonthDate.getDate()) : (getMonthDate.getDate()));
$("input[name=searchStartDt]").val(startDt);
$("input[name=searchEndDt]").val(endDt);
}
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
//listForm.searchCondition.value = $('#searchCondition').val();
//listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/areaLctrMngList.do'/>";
listForm.submit();
}
function chkAll(thisObj){
$("input[name=chk]").prop("checked" , $(thisObj).is(":checked"));
}
function fncGoDetail(p_eduAplctOrd){
var listForm = document.listForm ;
listForm.eduAplctOrd.value = p_eduAplctOrd ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/areaLctrMngDetail.do'/>";
listForm.submit();
}
function fncSecurityPop(adrSeq,edtTy,edtSn) {
$("#editForm > input[name=mode]").val("D");
$("#editForm > input[name=adrSeq]").val(adrSeq);
$("#editForm > input[name=edtTy]").val(edtTy);
$("#editForm > input[name=edtSn]").val(edtSn);
commonPopWindowopenForm("${pageContext.request.contextPath}/kccadr/adjReqMgr/popup/adjReqMgrRegSecurityPopup.do" , "800", "500", "securityPop",$("#editForm"));
}
function fncRejectCnPop(adrSeq,rejectCn) {
$("#editForm > input[name=adrSeq]").val(adrSeq);
$("#editForm > input[name=rejectCn]").val(rejectCn);
commonPopWindowopenForm("${pageContext.request.contextPath}/kccadr/adjReqMgr/popup/adjReqMgrRegRejectCnPopup.do" , "800", "600", "rejectCnPop",$("#editForm"));
}
function fncMultyPay(){
var list = $("input[name=chk]:checked");
if(list.length < 1){
alert("일괄납부 데이터를 선택해주세요.");
return false;
}
var form = $('<form id="payform"></form>');
var validArr = [];
$.each(list, function(idx, obj){
validArr[idx] = $(this).attr("regId");
form.append($('<input/>', {type: 'hidden', name: 'adrSeqArr', value: $(this).val()}));
});
var uniqueArr = validArr.filter(function(element, index){
return validArr.indexOf(element) === index;
});
if(uniqueArr.length > 1){
alert("동일사용자만 선택해주세요.");
$("input[name=chk]:checked").prop("checked" , false);
return false;
}
form.appendTo('body');
commonPopWindowopenForm("${pageContext.request.contextPath}/kccadr/adjReqMgr/popup/adjReqMgrRegMultyPaymentPopup.do" , "660", "500", "multyPayPop", form);
form.remove();
}
function fncCreate() {
var listForm = document.listForm ;
listForm.target = "_self";
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/areaLctrMngReg.do'/>";
listForm.submit();
}
/* ********************************************************
* 체크 박스 선택 함수
******************************************************** */
function fn_egov_checkAll_PopupManage(){
var FLength = document.getElementsByName("checkList").length;
var checkAllValue = document.getElementById('checkAll').checked;
//undefined
if( FLength == 1){
document.getElementById("checkList").checked = checkAllValue;
}{
for(var i=0; i < FLength; i++)
{
document.getElementsByName("checkList")[i].checked = checkAllValue;
}
}
}
//마감상태 변경
function _fncDdlnState() {
var height = "450";
//$("#aprvlCd").val(p_aprvl_cd);
//commonPopWindowopenForm("/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngDdlnStatePopup.do" , "700", height, "securityPop",$("#listForm"));
commonPopWindowopenForm("${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngDdlnStatePopup.do" , "700", height, "securityPop",$("#listForm"));
//commonPopWindowopenForm("/kccadr/oprtn/cpyrgExprnClsrm/popup/rgstrAplctMngDetailRfslSecurityPopup.do" , "700", height, "securityPop",$("#createForm"));
}
//강의 가능 시간
function fncax_LctrPsblTm_aa() {
var height = "450";
//$("#aprvlCd").val(p_aprvl_cd);
//commonPopWindowopenForm("${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngLctrPsblTmPopup.do" , "700", height, "securityPop",$("#listForm"));
//commonPopWindowopenForm("${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/popup/rgstrAplctMngDetailRfslSecurityPopup.do" , "700", height, "securityPop",$("#createForm"));
}
function fncDdlnState() { //메뉴생성 화면 호출
var list = $("input[name=checkList]:checked");
if(list.length < 1){
alert("마감상태 변경 대상을 선택해주세요.");
return false;
}
//document.listForm.authorCode.value = vAuthorCode;
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngDdlnStatePopup.do'/>";
window.open("#", "_ddlnStatePop", "scrollbars = no, top=100px, left=100px, height=450px, width=450px");
document.listForm.target = "_ddlnStatePop";
document.listForm.submit();
}
function fncDdlnState1() { //메뉴생성 화면 호출
var list = $("input[name=checkList]:checked");
if(list.length < 1){
alert("마감상태 변경 대상을 선택해주세요.");
return false;
}
//document.listForm.authorCode.value = vAuthorCode;
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngDdlnStatePop1up.do'/>";
window.open("#", "_ddlnStatePop", "scrollbars = no, top=100px, left=100px, height=450px, width=450px");
document.listForm.target = "_ddlnStatePop";
document.listForm.submit();
}
function fncAplctPrd() { //메뉴생성 화면 호출
var list = $("input[name=checkList]:checked");
if(list.length < 1){
alert("신청기간 변경 대상을 선택해주세요.");
return false;
}
//document.listForm.authorCode.value = vAuthorCode;
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngAplctPrdPopup.do'/>";
window.open("#", "_aplctPrdPop", "scrollbars = no, top=100px, left=100px, height=600px, width=700px");
document.listForm.target = "_aplctPrdPop";
document.listForm.submit();
}
function fncLctrPsblTm() { //메뉴생성 화면 호출
var list = $("input[name=checkList]:checked");
if(list.length < 1){
alert("강의가능 시간 변경 대상을 선택해주세요.");
return false;
}
//document.listForm.authorCode.value = vAuthorCode;
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngLctrPsblTmPopup.do'/>";
window.open("#", "_ctrPsblTmPop", "scrollbars = no, top=100px, left=100px, height=450px, width=450px");
document.listForm.target = "_ctrPsblTmPop";
document.listForm.submit();
}
//교육설정 등록여부 체크
function fncDupleCheck(thisObj){
var p_rgstrPsblTm = $(thisObj).closest("td").find("input[name=rgstrPsblTm]").val();
var p_stngYr = $("#stngYr").val();
var p_prdDivCd = $("#prdDivCd").val();
var p_instrDiv = $("input[name=instrDiv]").val();
var p_areaCd = $(thisObj).closest("tr").find("input[name=checkList]").val();
//alert(p_areaCd);
if(p_rgstrPsblTm != "") {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngrgstrPsblTmAjax.do",
data:{
"instrDiv" : p_instrDiv,
"areaCd" : p_areaCd,
"stngYr" : p_stngYr,
"prdDivCd" : p_prdDivCd,
"rgstrPsblTm" : p_rgstrPsblTm,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
fncGoList();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("지역별 총 접수시간을 입력해주세요.");
}
}
function fncRgstrDateSave(){
if(confirm("접수일자를 저장 하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngRgstrDtAjax.do",
data: {
"stngYr" : $("#stngYr").val() ,
"prdDivCd" : $("#prdDivCd").val() ,
"rgstrStrtDt" : $("#rgstrStrtDt").val() ,
"rgstrEndDt" : $("#rgstrEndDt").val() ,
},
dataType:'json',
success:function(returnData){
fncGoList();
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncDeadLineDateSave(){
if(confirm("마감일자를 저장 하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/areaDeadLineDtAjax.do",
data: {
"stngYr" : $("#stngYr").val() ,
"prdDivCd" : $("#prdDivCd").val() ,
"deadlineDt" : $("#deadlineDt").val()
},
dataType:'json',
success:function(returnData){
fncGoList();
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
<title>신청관리</title>
</head>
<body>
<form id="editForm" name="editForm" method="post">
<input type="hidden" name="mode" value=""/>
<input type="hidden" name="adrSeq" value=""/>
<input type="hidden" name="edtTy" value=""/>
<input type="hidden" name="edtSn" value=""/>
<input type="hidden" name="rejectCn" value=""/>
</form>
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vELctrDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vELctrDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vELctrDetailVO.searchSortOrd}" />" />
<input type="hidden" name="instrDiv" value="10"/>
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>지역별 강의관리 설정</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>청소년 찾아가는 저작권 교육</p>
</li>
<li><span class="cur_nav">지역별 강의관리</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_top -->
<div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>구분1</p>
</div>
<div class="util_right">
<p>&nbsp;&nbsp;&nbsp;년도&nbsp;&nbsp;</p>
<ve:select codeId="VE0029" name="stngYr" id="stngYr" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.stngYr}"
/>
<p>&nbsp;&nbsp;&nbsp;지역&nbsp;&nbsp;</p>
<ve:select codeId="VE0008" name="areaCd" id="areaCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.areaCd}" defaultValue=''
defaultText='전체'
/>
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div>
</div>
<div class="list_top_2">
<div class="util_left">
<p>구분2</p>
</div>
<div class="util_right">
<p>신청상태&nbsp;&nbsp;</p>
<ve:select codeId="VE0014" name="ddlnStateCd" id="ddlnStateCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.ddlnStateCd}" defaultValue=''
defaultText='전체'
/>
<p>반기&nbsp;&nbsp;</p>
<ve:select codeId="VE0026" name="prdDivCd" id="prdDivCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.prdDivCd}"
/>
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div>
</div>
<!--
<c:if test="${not empty list}">
<div class="list_top_3">
<div class="util_left">
<p>접수일자</p>
</div>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="rgstrStrtDt" name="rgstrStrtDt" value="${list.get(0).rgstrStrtDt}">09시
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="rgstrEndDt" name="rgstrEndDt" value="${list.get(0).rgstrEndDt}">24시
</div>
<button class="btn_type08" onclick="fncGoList(); return false;">접수일자저장</button>
</div>
</div>
</c:if>
-->
<!-- <div class="list_top_1">
<div class="util_left">
<p>마감상태</p>
</div>
<div class="util_right">
<p>신청상태</p>
<ve:select codeId="VE0014" name="ddlnStateCd" id="ddlnStateCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.ddlnStateCd}" defaultValue=''
defaultText='전체'
/>
<p>년도</p>
<ve:select codeId="VE0029" name="stngYr" id="stngYr" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.stngYr}"
/>
<p>반기</p>
<ve:select codeId="VE0026" name="prdDivCd" id="prdDivCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.prdDivCd}"
/>
<p>지역</p>
<ve:select codeId="VE0008" name="areaCd" id="areaCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.areaCd}" defaultValue=''
defaultText='전체'
/>
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div>
<div class="util_left">
<p>마감상태</p>
</div>
<div class="util_right">
<p>마감상태</p>
<kc:select codeId="VE0014" name="ddlnStateCd" id="ddlnStateCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.ddlnStateCd}" defaultValue=''
defaultText='전체'
/>
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div>
</div> -->
</div>
<c:if test="${not empty list}">
<div class="btn_wrap btn_layout01">
<div class="btn_left"></div>
<div class="btn_center"></div>
<div class="btn_right" style="width: 100%">
<button class="btn_type06" onclick="fncDdlnState(); return false;" >신청상태변경</button>
<!-- <button class="btn_type06" onclick="fncDdlnState1(); return false;" >신청상태변경</button> -->
<button class="btn_type06" onclick="fncAplctPrd(); return false;" >강의가능기간변경</button>
<button class="btn_type06" onclick="fncLctrPsblTm(); return false;" >강의가능시간변경</button>
</div>
</div>
<br/>
<div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>접수일자</p>
</div>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="rgstrStrtDt" name="rgstrStrtDt" value="${list.get(0).rgstrStrtDt}">
</div>
<p>&nbsp;&nbsp;09시&nbsp;&nbsp;</p>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="rgstrEndDt" name="rgstrEndDt" value="${list.get(0).rgstrEndDt}">
</div>
<p>&nbsp;&nbsp;24시&nbsp;&nbsp;</p>
<button class="btn_type08" onclick="fncRgstrDateSave(); return false;">접수일자저장</button>
</div>
</div>
<!--
<div class="list_top_1">
<div class="util_left">
<p>마감일자</p>
</div>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="deadlineDt" name="deadlineDt" value="${list.get(0).deadlineDt}">
</div>
<p>&nbsp;&nbsp;06시&nbsp;&nbsp;</p>
<button class="btn_type08" onclick="fncDeadLineDateSave(); return false;">마감일자저장</button>
</div>
</div>
-->
</div>
</c:if>
<!-- //list_top -->
<!-- list_top -->
<!--
<div class="list_util">
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
<div>
<select class="sel2" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px">
<option value='10' <c:if test="${vELctrDetailVO.pageUnit == '10' or vELctrDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vELctrDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vELctrDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vELctrDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
</div>
</div>
-->
<!-- //list_top -->
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 5%">
<col style="width: 7%">
<%-- <col style="width: 8%"> --%>
<col style="width: 7%">
<col style="width: 10%">
<col style="width: auto">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 15%">
<col style="width: 15%">
</colgroup>
<thead>
<tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="fn_egov_checkAll_PopupManage();" /><label for="checkAll"></label></th>
<th>지역</th>
<th>신청상태</th>
<th>강의가능시간</th>
<th>강의가능기간</th>
<th>등록자</th>
<th>등록일</th>
<th>지역별 총 접수시간(차시)</th>
<th>지역별 신청현황<br/>차시(신청)</th>
</tr>
</thead>
<tbody>
<c:set var="chasiSum" value="0" />
<c:set var="aplctChasiSum" value="0" />
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td>
<input name="checkList" id="${status.index}" value="${list.areaCd}" regId="${list.frstRegisterId}" title="Check" type="checkbox"/>
</td>
<td>
<!--<c:out value="${status.count}"/>-->
<!--<c:out value="${list.areaCd}"/>-->
<p><ve:code codeId="VE0008" code="${list.areaCd}"/></p>
</td>
<td>
<p><ve:code codeId="VE0014" code="${list.ddlnStateCd}"/></p>
</td>
<td>
<c:out value="${list.lctrPsblStrtTm}"/>~<c:out value="${list.lctrPsblEndTm}"/>
</td>
<td>
<c:out value="${list.aplctPrdStrt}"/>~ <c:out value="${list.aplctPrdEnd}"/>
</td>
<td>
<c:out value="${list.userNm}"/>
</td>
<td>
<c:out value="${list.frstRegistPnttm}"/>
</td>
<td>
<input type="text" size="3" id="rgstrPsblTm" name="rgstrPsblTm" maxlength="10" value='<c:out value="${list.rgstrPsblTm}"/>'/>
<button type="button" class="btn_type06"
onclick="fncDupleCheck(this); return false;" style="height: 40px; border-radius: 5px; vertical-align: middle;">수정</button>
</td>
<td>
<c:if test="${list.areaCd eq '400'}">
<c:out value="${list.sumOnTtl}"/>
(<c:out value="${list.sumOnCnt}"/>)
<!--
<c:out value="${list.sumOn10Cnt}"/>
/<c:out value="${list.sumOn60Cnt}"/>
/<c:out value="${list.sumOn230Cnt}"/>
/<c:out value="${list.sumOnEtcCnt}"/>
-->
<c:set var="chasiSum" value="${chasiSum + list.sumOnTtl}" />
<c:set var="aplctChasiSum" value="${aplctChasiSum + list.sumOnCnt}" />
</c:if>
<c:if test="${list.areaCd ne '400'}">
<c:out value="${list.sumOffTtl}"/>
(<c:out value="${list.sumOffCnt}"/>)
<!--
<c:out value="${list.sumOff10Cnt}"/>
/<c:out value="${list.sumOff60Cnt}"/>
/<c:out value="${list.sumOff230Cnt}"/>
/<c:out value="${list.sumOffEtcCnt}"/>
-->
<c:set var="chasiSum" value="${chasiSum + list.sumOffTtl}" />
<c:set var="aplctChasiSum" value="${aplctChasiSum + list.sumOffCnt}" />
</c:if>
</td>
</tr>
</c:forEach>
<c:if test="${not empty list and not empty selectTimeSum}">
<tr>
<td colspan="7">
&nbsp;
</td>
<td>
합계 : <c:out value="${selectTimeSum.rgstrPsblTm}"/>(차시)
</td>
<td>
합계 : <c:out value="${chasiSum}"/>(<c:out value="${aplctChasiSum}"/>)
</td>
</tr>
</c:if>
<c:if test="${empty list}">
<tr><td colspan="9"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<c:if test="${not empty list}">
<div class="btn_wrap btn_layout01">
<div class="btn_left"></div>
<div class="btn_center"></div>
<div class="btn_right">
<button class="btn_type04" onclick="fncCreate(); return false;" >교육신청 등록</button>
</div>
</div>
</c:if>
</div>
</div>
</div>
<!-- //cont -->
</form:form>
</body>
</html>

View File

@ -193,14 +193,14 @@ function fncReset(thisObj){
<div class="list tb_type01">
<table>
<colgroup>
<col style="width: 8%">
<col style="width: 4%">
<col style="width: 12%">
<col style="width: 9%">
<col style="width: 7%">
<col style="width: 12%">
<col style="width: 8%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 15%">
<col style="width: 24%">
<col style="width: 20%">
<col style="width: 15%">
</colgroup>
<thead>
<tr>
@ -239,7 +239,7 @@ function fncReset(thisObj){
</td>
<td><c:out value="${result.menuNm}"/></td>
<td><c:out value="${result.approNm}"/></td>
<td><c:out value="${result.progrmFileNm}"/></td>
<td><c:out value="${result.methodNm}"/></td>
<td><span class="privateInfo"><c:out value="${result.loginId}"/></span></td>
<td><c:out value="${result.loginIp}"/></td>
<td><c:out value="${result.url}"/></td>

View File

@ -228,7 +228,9 @@ function fnCheckAll(){
<col style="width: 15%">
<col style="width: 15%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: 7%">
<col style="width: 7%">
<col style="width: 7%">
</colgroup>
<thead>
<tr>
@ -241,6 +243,8 @@ function fnCheckAll(){
<th>개인정보여부 <input type="button" class="sortBtn sort" id="sort_privacy"></th>
<th>등록일자 <input type="button" class="sortBtn sort" id="sort_creatDt"></th>
<th>사용자구분<input type="button" class="sortBtn sort" id="sort_method_cd"></th>
<th>통계사용여부<input type="button" class="sortBtn sort" id="sort_use_yn"></th>
<th>통계순서<input type="button" class="sortBtn sort" id="sort_sort_num"></th>
<th>관리</th>
</tr>
</thead>
@ -267,6 +271,8 @@ function fnCheckAll(){
<td><c:out value="${result.privacy}"/></td>
<td><c:out value="${result.creatDt}"/></td>
<td><c:out value="${result.dateType}"/></td>
<td><c:out value="${result.useYn}"/></td>
<td><c:out value="${result.sortNum}"/></td>
<td>
<input type="button" value="수정" class="btnType1" onclick="fn_modify('${result.admotId}'); return false;">
</td>

View File

@ -148,6 +148,23 @@ function webLogListExcelDownload(){
document.frm.action = "<c:url value='/sym/log/clg/webLogListExcelDownload.do'/>";
document.frm.submit();
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
if($(this).prop('tagName') == 'SELECT'){
if($(this).attr('name').indexOf('Month') != -1){
$(this).val(new Date().getMonth()+1);
}else if($(this).attr('name').indexOf('Year') != -1){
$(this).val(new Date().getFullYear());
}else{
$(this).prop("selectedIndex", 0);
}
}else{
$(this).val('');
}
});
}
</script>
</head>
<body>
@ -218,22 +235,22 @@ function webLogListExcelDownload(){
<!-- //list_top -->
<!-- list util -->
<div class="list_util">
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px">
<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>
<option value='100' <c:if test="${searchVO.pageUnit == '100'}">selected</c:if>>100줄</option>
<!-- <div class="list_util"> -->
<%-- <p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p> --%>
<!-- <div> -->
<!-- <select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px"> -->
<%-- <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> --%>
<%-- <option value='100' <c:if test="${searchVO.pageUnit == '100'}">selected</c:if>>100줄</option> --%>
</select>
<!-- </select> -->
<!--
<button type="button" class="btn_type03" onclick="fncPrintListPopup(); return false;">신청서 일괄출력</button>
<button type="button" class="btn_down_excel" onclick="excelDownLoad();">엑셀 다운로드</button>
-->
</div>
</div>
<!-- <button type="button" class="btn_type03" onclick="fncPrintListPopup(); return false;">신청서 일괄출력</button> -->
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoad();">엑셀 다운로드</button> -->
<!-- -->
<!-- </div> -->
<!-- </div> -->
@ -244,35 +261,52 @@ function webLogListExcelDownload(){
<table class="tbType1">
<colgroup>
<col style="width: 5%">
<col style="width: 15%">
<col style="width: 10%">
<col style="width: 40%">
<col style="width: 15%">
<col style="width: 15%">
</colgroup>
<thead>
<tr>
<c:if test="${not empty userMenuList}">
<th>번호</th>
<th>no</th>
<th>메뉴명</th>
<c:forEach var="result" items="${userMenuList[0].logDataList}"
end="${fn:length(userMenuList[0].logDataList)-2}" varStatus="status">
<th>
<c:if test="${searchVO.dateType == 'D'}"><!--일별 -->
${fn:substring(result.creatDt,5,7)}<br>
${fn:substring(result.creatDt,8,10)}
</c:if>
<c:if test="${searchVO.dateType == 'M'}"><!--월별 -->
${fn:substring(result.creatDt,0,4)}<br>
${fn:substring(result.creatDt,5,8)}
</c:if>
<c:if test="${searchVO.dateType == 'Y'}"><!--년별 -->
${fn:substring(result.creatDt,0,4)}
</c:if>
</th>
</c:forEach>
<th>합계</th>
</c:if>
<th>접근구분</th>
<th>URL</th>
<th>순서</th>
<th>접속수</th>
</tr>
</thead>
<!-- <thead> -->
<!-- <tr> -->
<%-- <c:if test="${not empty userMenuList}"> --%>
<!-- <th>번호</th> -->
<!-- <th>메뉴명</th> -->
<%-- <c:forEach var="result" items="${userMenuList[0].logDataList}" --%>
<%-- end="${fn:length(userMenuList[0].logDataList)-2}" varStatus="status"> --%>
<!-- <th> -->
<%-- <c:if test="${searchVO.dateType == 'D'}"><!--일별 --> --%>
<%-- ${fn:substring(result.creatDt,5,7)}<br> --%>
<%-- ${fn:substring(result.creatDt,8,10)} --%>
<%-- </c:if> --%>
<%-- <c:if test="${searchVO.dateType == 'M'}"><!--월별 --> --%>
<%-- ${fn:substring(result.creatDt,0,4)}<br> --%>
<%-- ${fn:substring(result.creatDt,5,8)} --%>
<%-- </c:if> --%>
<%-- <c:if test="${searchVO.dateType == 'Y'}"><!--년별 --> --%>
<%-- ${fn:substring(result.creatDt,0,4)} --%>
<%-- </c:if> --%>
<!-- </th> -->
<%-- </c:forEach> --%>
<!-- <th>합계</th> -->
<%-- </c:if> --%>
<!-- </tr> -->
<!-- </thead> -->
<tbody>
<c:forEach var="result" items="${userMenuList}" varStatus="status">
<c:forEach var="result" items="${webMenuLogList}" varStatus="status">
<tr>
<td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
@ -283,14 +317,23 @@ function webLogListExcelDownload(){
</c:if>
</td>
<td>
<a herf="#" style="cursor: pointer" onclick="fn_select_menu('${result.progrmFileNm}'); return false;"><c:out value="${result.menuNm}"/></a>
<c:out value="${result.menuNm}"/>
</td>
<td>
<c:out value="${result.approNm}"/>
</td>
<td>
<c:out value="${result.methodNm}"/>
</td>
<td>
<c:out value="${result.sortNum}"/>
</td>
<td>
<c:out value="${result.totCnt}"/>
</td>
<c:forEach var="resultLogData" items="${result.logDataList}" varStatus="status">
<td>${resultLogData.menuCnt}</td>
</c:forEach>
</tr>
</c:forEach>
<c:if test="${empty userMenuList}">
<c:if test="${empty webMenuLogList}">
<tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
@ -315,13 +358,13 @@ function webLogListExcelDownload(){
<!-- //btn_wrap -->
<!-- 페이지 네비게이션 시작 -->
<c:if test="${!empty userMenuList}">
<div class="page">
<ul class="inline">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</ul>
</div>
</c:if>
<%-- <c:if test="${!empty userMenuList}"> --%>
<!-- <div class="page"> -->
<!-- <ul class="inline"> -->
<%-- <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" /> --%>
<!-- </ul> -->
<!-- </div> -->
<%-- </c:if> --%>
<!-- //페이지 네비게이션 끝 -->
</div>
</div>
@ -337,6 +380,6 @@ function webLogListExcelDownload(){
<input name="searchConditionSite" type="hidden" />
</form>
-->
<c:import url="/uss/umt/IncInfoProtect.do" />
<%-- <c:import url="/uss/umt/IncInfoProtect.do" /> --%>
</body>
</html>

View File

@ -126,8 +126,8 @@ function fnCheckAll(){
/* pagination 페이지 링크 function */
function goList(){
//document.searchForm.submit();
location.href = "<c:url value='/sym/log/clg/SelectLogMethodList.do'/>";
document.searchForm.submit();
//location.href = "<c:url value='/sym/log/clg/SelectLogMethodList.do'/>";
}
/* 등록시 값 확인 */
@ -200,7 +200,8 @@ function fn_delete() {
<input type="hidden" name="del" value="${loginLog.admotId}" />
<input type="hidden" name="admotId" value="${loginLog.admotId}" />
<input name="searchCondition" type="hidden" value="<c:out value="${searchFr.searchCondition}" />" />
<input name="searchKeyword" type="hidden" value="<c:out value="${searchFr.searchKeyword}" />"/>
<div class="cont_wrap">
@ -208,6 +209,7 @@ function fn_delete() {
<!-- cont_tit -->
<div class="cont_tit">
<h2>관리자로그설정관리상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
@ -236,48 +238,64 @@ function fn_delete() {
<tbody>
<tr>
<th><span class="reqArea">메뉴명</span></th>
<td colspan="3">
<input type="text" size="50" name="menuNm" value="${loginLog.menuNm}" title="menuNm" maxlength="100" />
<td colspan="3" style="text-align:left;">
<input type="text" size="100" name="menuNm" value="${loginLog.menuNm}" title="menuNm" maxlength="100" />
</td>
</tr>
<tr>
<th><span class="reqArea">메소드명</span></th>
<td colspan="3">
<input type="text" size="50" name="methodNm" value="${loginLog.methodNm}" title="methodNm" maxlength="100" />
<td colspan="3" style="text-align:left;">
<input type="text" size="100" name="methodNm" value="${loginLog.methodNm}" title="methodNm" maxlength="100" />
</td>
</tr>
<tr>
<th><span class="reqArea">기능명</span></th>
<td colspan="3">
<input type="text" size="50" name="approNm" value="${loginLog.approNm}" title="approNm" maxlength="100" />
<td colspan="3" style="text-align:left;">
<input type="text" size="100" name="approNm" value="${loginLog.approNm}" title="approNm" maxlength="100" />
</td>
</tr>
<tr>
<th><span class="reqArea">파라미터</span></th>
<td colspan="3">
<input type="text" size="50" name="param" value="${empty loginLog.admotId ? 'N' : loginLog.param }" title="param" maxlength="100" />
<br><span class="cfText">*기본값은 N 입니다.</span>
<br><span class="cfText c_ed4555">*N이 아닌 값을 사용할 경우는 url에 'logParam=파라미터값' 형식을 추가해야 적용됩니다.</span>
<td colspan="3" style="text-align:left;">
<input type="text" size="100" name="param" value="${empty loginLog.admotId ? 'N' : loginLog.param }" title="param" maxlength="100" />
<br><span class="cfText">*기본값은 N 입니다.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="cfText c_ed4555">*N이 아닌 값을 사용할 경우는 url에 'logParam=파라미터값' 형식을 추가해야 적용됩니다.</span>
</td>
</tr>
<tr>
<th><span class="reqArea">privacy</span></th>
<td colspan="3">
<input type="text" size="50" name="privacy" value="${empty loginLog.admotId ? 'N' : loginLog.privacy }" title="privacy" maxlength="100" />
<br><span class="cfText">*기본값은 N 입니다.</span>
<br><span class="cfText c_ed4555">N / Y *개인정보 포함 여부를 표시합니다.</span>
<td colspan="3" style="text-align:left;">
<input type="text" size="100" name="privacy" value="${empty loginLog.admotId ? 'N' : loginLog.privacy }" title="privacy" maxlength="100" />
<br><span class="cfText">*기본값은 N 입니다.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="cfText c_ed4555">N / Y *개인정보 포함 여부를 표시합니다.</span>
</td>
</tr>
<tr>
<th><span class="reqArea">사용자구분</span></th>
<td colspan="3">${loginLog.dateType}
<br><span class="cfText c_ed4555">U(사용자) / A(관리자)</span>
<td colspan="3" style="text-align:left;">${loginLog.dateType}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="cfText c_ed4555">U(사용자) / A(관리자)</span>
</td>
</tr>
<tr>
<th><span class="reqArea">통계노출여부</span></th>
<td colspan="3" style="text-align:left;">
<select name="useYn" id="useYn" class="sel_type1">
<option value="N" <c:if test="${loginLog.useYn == 'N'}">selected</c:if>>미사용</option>
<option value="Y" <c:if test="${loginLog.useYn == 'Y'}">selected</c:if>>사용</option>
</select>
</td>
</tr>
<tr>
<th><span class="reqArea">통계순서</span></th>
<td colspan="3" style="text-align:left;">
<input type="text" size="10" name="sortNum" value="${loginLog.sortNum}" title="sortNum" maxlength="10" />
</td>
</tr>
<c:if test="${!empty loginLog.admotId }">
<tr>
<th><span class="reqArea">등록일자</span></th>
<td colspan="3">${loginLog.creatDt}
<td colspan="3" style="text-align:left;">
${loginLog.creatDt}
<%-- <input name="creatDt" value="${loginLog.creatDt}" title="creatDt" maxlength="100" readonly /> --%>
</td>
</tr>
@ -331,13 +349,13 @@ function fn_delete() {
<!-- //cont -->
</form>
<!--
<form name="searchForm" method="get" action="<c:url value='/sym/log/clg/SelectLoginLogList.do'/>">
<form name="searchForm" method="post" action="<c:url value='/sym/log/clg/SelectLogMethodList.do'/>">
<input name="pageIndex" type="hidden" value="1" />
<input name="searchCondition" type="hidden" />
<input name="searchKeyword" type="hidden" />
<input name="searchCondition" type="hidden" value="<c:out value="${searchFr.searchCondition}" />" />
<input name="searchKeyword" type="hidden" value="<c:out value="${searchFr.searchKeyword}" />"/>
<input name="searchConditionSite" type="hidden" />
</form>
-->
</body>
</html>