# WARNING: head commit changed in the meantime

Merge branch 'master' of
http://yongjoon.cho@vcs.iten.co.kr:9999/itnAdmin/fairnet

2024-10-30 관리자 로그 수정
This commit is contained in:
myname 2024-10-30 09:25:29 +09:00
parent 510c2e1c17
commit 1fbcbff10d
8 changed files with 826 additions and 158 deletions

View File

@ -110,11 +110,28 @@ public class EgovLoginLogController {
loginLog.setSearchSortOrd("desc");
}
List<LoginLog> adminLogList = loginLogService.selectAmdinLog(loginLog);
int adminLogListCnt = 0;
if (adminLogList.size()>0) {
adminLogListCnt = adminLogList.get(0).getTotCnt();
}
paginationInfo.setTotalRecordCount(adminLogListCnt);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("adminLogList", adminLogList);
/*
int adminLogListCnt = loginLogService.selectAmdinLogTotCnt(loginLog);
paginationInfo.setTotalRecordCount(adminLogListCnt);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("adminLogList", adminLogList);
*/
return "sym/log/clg/EgovLoginLogList";
}
/**

View File

@ -0,0 +1,337 @@
package seed.com.user.check;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Map;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.sci.v2.ipin.secu.SciSecuManager;
import com.sci.v2.ipin.secu.hmac.SciHmac;
import kcc.com.utl.fcc.service.EgovNumberUtil;
import kcc.com.utl.fcc.service.EgovStringUtil;
import seed.utils.SeedUtils;
@Controller
public class WebUserCheckController {
@RequestMapping("/web/user/case/userCheck/setCheckCode/check.do")
public String setCheckCodeAndRedirect(ModelMap map, HttpServletRequest req, HttpServletResponse response, HttpSession session, @RequestParam Map<String,Object> paramMap){
String nextUrl = req.getParameter("nextUrl");
String commandCode = req.getParameter("commandCode");
String srvNo = "";
String hpSrvNo = "";
String agreeCheck = "";
String personalCheck = "";
String mediType = "";
String retUrl = "";//아이핀 인증후 리턴 페이지
String hpRetUrl = "";//모바일 인증후 리턴 페이지
String sServerName = req.getServerName();
if(commandCode.equals("medi")){//분쟁조정신청 본인인증
//개발서버
// srvNo = "007001";// 아이핀 코드
// hpSrvNo = "008001";//휴대폰 코드
//실서버
srvNo = "009001";// 아이핀 코드
hpSrvNo = "012001";//휴대폰 코드
agreeCheck = req.getParameter("agreeCheck");
personalCheck = req.getParameter("personalCheck");
mediType = req.getParameter("mediType");
//개발서버
// retUrl = "23http://ServerName:8080/user/extra/case/siren/ipin_popup_seed/jsp/Page.do";
// retUrl = retUrl.replaceAll("ServerName", sServerName);
// hpRetUrl = "32http://ServerName:8080/user/extra/case/siren/hpParamPop/jsp/Page.do";
// hpRetUrl = hpRetUrl.replaceAll("ServerName", sServerName);
//실서버
retUrl = "23http://fairnet.kofair.or.kr/web/user/extra/case/siren/ipin_popup_seed/jsp/Page.do";
// retUrl = retUrl.replaceAll("ServerName", sServerName);
hpRetUrl = "32http://fairnet.kofair.or.kr/web/user/extra/case/siren/hpParamPop/jsp/Page.do";
// hpRetUrl = hpRetUrl.replaceAll("ServerName", sServerName);
session.setAttribute("agreeCheck", agreeCheck);
session.setAttribute("personalCheck", personalCheck);
session.setAttribute("mediType", mediType);
//hpName존재하면 이미 본인인증을 거쳤기 때문에 다음으로 바로 넘어간다.
if(!SeedUtils.setReplaceNull(session.getAttribute("hpName")).equals("")){
// nextUrl = "/user/mediation/case/05/154/mediationStep04Ftc.do";
nextUrl = "/web/user/mediation/case/05/154/mediationStep04.do";
}
}else if(commandCode.equals("my")){//마이페이지 본인인증
//개발서버
// srvNo = "007002";
// hpSrvNo = "008002";
//실서버
srvNo = "009002";
hpSrvNo = "012002";
//개발서버
// retUrl = "23http://ServerName:8080/user/extra/case/siren/myPage_ipin_popup_seed/jsp/Page.do";
// retUrl = retUrl.replaceAll("ServerName", sServerName);
// hpRetUrl = "32http://ServerName:8080/user/extra/case/siren/myPage_hpParamPop/jsp/Page.do";
// hpRetUrl = hpRetUrl.replaceAll("ServerName", sServerName);
//실서버
retUrl = "23http://fairnet.kofair.or.kr/web/user/extra/case/siren/myPage_ipin_popup_seed/jsp/Page.do";
// retUrl = retUrl.replaceAll("ServerName", sServerName);
hpRetUrl = "32http://fairnet.kofair.or.kr/web/user/extra/case/siren/myPage_hpParamPop/jsp/Page.do";
// hpRetUrl = hpRetUrl.replaceAll("ServerName", sServerName);
}else if(commandCode.equals("online")){//온라인 분쟁조정 상담 본인인증
//개발서버
srvNo = "007003";
hpSrvNo = "008003";
//실서버
// srvNo = "009003";
// hpSrvNo = "012003";
personalCheck = req.getParameter("personalCheck");
session.setAttribute("personalCheck", personalCheck);
//개발서버
// retUrl = "23http://ServerName:8080/user/extra/case/siren/onlineCounsel_ipin_popup_seed/jsp/Page.do";
// retUrl = retUrl.replaceAll("ServerName", sServerName);
// hpRetUrl = "32http://ServerName:8080/user/extra/case/siren/onlineCounsel_hpParamPop/jsp/Page.do";
// hpRetUrl = hpRetUrl.replaceAll("ServerName", sServerName);
//실서버
retUrl = "23http://fairnet.kofair.or.kr/web/user/extra/case/siren/onlineCounsel_ipin_popup_seed/jsp/Page.do";
hpRetUrl = "32http://fairnet.kofair.or.kr/web/user/extra/case/siren/onlineCounsel_hpParamPop/jsp/Page.do";
//hpName존재하면 이미 본인인증을 거쳤기 때문에 다음으로 바로 넘어간다.
if(!SeedUtils.setReplaceNull(session.getAttribute("hpName")).equals("")){
nextUrl = "/web/user/onlineCounsel/case/01/158/write.do";
}
}else if(commandCode.equals("law")){
//개발서버
// srvNo = "007004";
// hpSrvNo = "008005";
//실서버
srvNo = "009004";
hpSrvNo = "012004";
personalCheck = req.getParameter("personalCheck");
session.setAttribute("personalCheck", personalCheck);
//개발서버
// retUrl = "23http://ServerName:8080/user/extra/case/siren/lawCounsel_ipin_popup_seed/jsp/Page.do";
// retUrl = retUrl.replaceAll("ServerName", sServerName);
// hpRetUrl = "32http://ServerName:8080/user/extra/case/siren/lawCounsel_hpParamPop/jsp/Page.do";
// hpRetUrl = hpRetUrl.replaceAll("ServerName", sServerName);
//실서버
retUrl = "23http://fairnet.kofair.or.kr/web/user/extra/case/siren/lawCounsel_ipin_popup_seed/jsp/Page.do";
hpRetUrl = "32http://fairnet.kofair.or.kr/web/user/extra/case/siren/lawCounsel_hpParamPop/jsp/Page.do";
//hpName존재하면 이미 본인인증을 거쳤기 때문에 다음으로 바로 넘어간다.
if(!SeedUtils.setReplaceNull(session.getAttribute("hpName")).equals("")){
nextUrl = "/web/user/lawCounsel/case/02/159/lawWrite.do";
}
}else if(commandCode.equals("medi_check")){
//개발서버
// srvNo = "007005";
// hpSrvNo = "008006";
//실서버
srvNo = "009005";
hpSrvNo = "012005";
String caseNo = req.getParameter("caseNo");
String checkPass = req.getParameter("checkPass");
session.setAttribute("caseNo", caseNo);
session.setAttribute("checkPass", checkPass);
//개발서버
// retUrl = "23http://ServerName:8080/user/extra/case/siren/checkMedi_ipin_popup_seed/jsp/Page.do";
// retUrl = retUrl.replaceAll("ServerName", sServerName);
// hpRetUrl = "32http://ServerName:8080/user/extra/case/siren/checkMedi_hpParamPop/jsp/Page.do";
// hpRetUrl = hpRetUrl.replaceAll("ServerName", sServerName);
//실서버
retUrl = "23http://fairnet.kofair.or.kr/web/user/extra/case/siren/checkMedi_ipin_popup_seed/jsp/Page.do";
hpRetUrl = "32http://fairnet.kofair.or.kr/web/user/extra/case/siren/checkMedi_hpParamPop/jsp/Page.do";
//hpName존재하면 이미 본인인증을 거쳤기 때문에 다음으로 바로 넘어간다.
/* if(!SeedUtils.setReplaceNull(session.getAttribute("hpName")).equals("")){
nextUrl = "/user/mediation/case/03/155/checkMediationStep03.do";
}*/
}
//나중에 메인 페이지 나오면 튕겨내기
if(nextUrl == null || agreeCheck == null){
map.put("siteIdx", "case");
map.put("url", "/case/index.do");
map.put("message", "잘못된 접근 입니다.");
map.put("opener", "");
map.put("append", "");
map.put("self", "");
return "/_common/jsp/umessage";
}
/**
* 아이핀 인증 시작 */
//String sServerName = req.getServerName();
//회원사 ID : KFA001
String id = "KFA001";
//회원가입화면용 결과 수신 URL : 23http:/211.43.219.170/hp/meb/pinSignupView.do
//String retUrl = "23http://ServerName/user/extra/case/siren/ipin_popup_seed/jsp/Page.do";
//retUrl = retUrl.replaceAll("ServerName", sServerName);
//분쟁조정신청 서비스 번호 : 006001
// String srvNo = "006001";
//요청번호(유닉크한 랜덤값) : 40 byte까지
String reqNum = "kofair" + EgovStringUtil.getTimeStamp() + EgovNumberUtil.getRandomNum(1000, 9999);
session.setAttribute("id", id);
session.setAttribute("retUrl", retUrl);
session.setAttribute("srvNo", srvNo);
session.setAttribute("reqNum", reqNum);
//복호화용 임시필드
String exVar = "0000000000000000";
/**
*
* reqNum 값은 최종 결과값 복호화를 위한 SecuKey로 활용 되므로 중요합니다.
* reqNum 아이핀 서비스 요청시 항상 새로운 값으로 중복 되지 않게 생성 해야 합니다.
* 쿠키 또는 Session및 기타 방법을 사용해서 reqNum 값을
* ipin_result_seed.jsp에서 가져 있도록 해야 .
* 샘플을 위해서 쿠키를 사용한 것이므로 참고 하시길 바랍니다.
*
*/
/* Cookie c = new Cookie("reqNum", reqNum);
//c.setMaxAge(1800); // <== 필요시 설정(초단위로 설정됩니다)
response.addCookie(c);*/
session.setAttribute("reqNumKey", reqNum);
// 암호화 모듈 선언
SciSecuManager seed = new SciSecuManager();
// 1차 암호화
String encStr = "";
String reqInfo = reqNum + "/" + id + "/" + srvNo + "/" + exVar;
encStr = seed.getEncPublic(reqInfo);
// 위변조 검증 등록
SciHmac hmac = new SciHmac();
String hmacMsg = SciHmac.HMacEncriptPublic(encStr);
// 2차 암호화
reqInfo = seed.getEncPublic(encStr + "/" + hmacMsg + "/" + "00000000");
session.setAttribute("reqInfo", reqInfo);
/**
* 아이핀 인증 */
/**
* 핸드폰 인증 시작 */
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
java.util.Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String hpId = "SKFA001"; // 본인실명확인 회원사 아이디
//String hpSrvNo = "005001"; // 본인실명확인 서비스번호
String hpReqNum = day + randomStr; // 본인실명확인 요청번호
String hpExVar = "0000000000000000"; // 복호화용 임시필드
String hpCertDate = day; // 본인실명확인 요청시간
String hpCertGb = "H"; // 본인실명확인 본인확인 인증수단
String hpAddVar = ""; // 본인실명확인 추가 파라메터
//String hpRetUrl = "32http://ServerName/kmcis/kmcisIdSearch.jsp"; // 본인인증서비스 결과수신 POPUP URL
//String hpRetUrl = "32http://ServerName/user/extra/case/siren/hpParamPop/jsp/Page.do";
//hpRetUrl = "32http://kofair2.global-it.co.kr/kmcis/kmcisIdSearch.jsp";
//hpRetUrl = hpRetUrl.replaceAll("ServerName", sServerName); //오픈할 주석으로 교체해줘야함
/**
*
* reqNum 값은 최종 결과값 복호화를 위한 SecuKey로 활용 되므로 중요합니다.
* reqNum 본인 확인 요청시 항상 새로운 값으로 중복 되지 않게 생성 해야 합니다.
* 쿠키 또는 Session및 기타 방법을 사용해서 reqNum 값을
* pcc_V3_result_seed.jsp에서 가져 있도록 해야 .
* 샘플을 위해서 쿠키를 사용한 것이므로 참고 하시길 바랍니다.
*
*/
/*Cookie hpC = new Cookie("hpReqNum", hpReqNum);
//c.setMaxAge(1800); // <== 필요시 설정(초단위로 설정됩니다)
response.addCookie(hpC);*/
session.setAttribute("hpReqNumKey", hpReqNum);
//01. 암호화 모듈 선언
com.sci.v2.pcc.secu.SciSecuManager hpSeed = new com.sci.v2.pcc.secu.SciSecuManager();
//02. 1차 암호화
String hpEncStr = "";
String hpReqInfo = hpId+"^"+hpSrvNo+"^"+hpReqNum+"^"+hpCertDate+"^"+hpCertGb+"^"+hpAddVar+"^"+hpExVar; // 데이터 암호화
hpEncStr = hpSeed.getEncPublic(hpReqInfo);
//03. 위변조 검증 생성
com.sci.v2.pcc.secu.hmac.SciHmac hpHmac = new com.sci.v2.pcc.secu.hmac.SciHmac();
String hpHmacMsg = hpHmac.HMacEncriptPublic(hpEncStr);
//03. 2차 암호화
hpReqInfo = hpSeed.getEncPublic(hpEncStr + "^" + hpHmacMsg + "^" + "0000000000000000"); //2차암호화
session.setAttribute("hpRetUrl", hpRetUrl);
session.setAttribute("hpReqInfo", hpReqInfo);
/**
* 핸드폰 인증 */
return "redirect:" + nextUrl;
}
}

View File

@ -502,6 +502,172 @@ public class WebCounselController {
return new ModelAndView("/_extra/web/user/onlineCounsel/lawCounselStep02");
}
// /user/lawCounsel/case/02/159/step03.do
@RequestMapping("/web/user/lawCounsel/{siteIdx}/02/{siteMenuIdx}/step03.do")
public ModelAndView lawCounselStep03(ModelMap map, HttpSession session, @RequestParam Map<String,Object> paramMap,
@PathVariable(value="siteIdx") String siteIdx,
@PathVariable(value="siteMenuIdx") Integer siteMenuIdx){
/*
String tempSrvNo = SeedUtils.setReplaceNull(session.getAttribute("srvNo"));
String tempPersonalCheck = SeedUtils.setReplaceNull(session.getAttribute("personalCheck"));
if(tempSrvNo.equals("") || tempPersonalCheck.equals("")){
map.put("siteIdx", "case");
map.put("url", "/case/index.do");
map.put("message", "user.message.medi.alert");
map.put("opener", "");
map.put("append", "");
map.put("self", "");
return new ModelAndView("/_common/jsp/umessage");
}
*/
setSessionMessageRemove(session);
/*----권한체크----*/
Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
boolean memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); memberAuthM = true; memberAuth = true;
//메뉴 권한설정
/*
if(!memberGrant.equals("S") && !memberAuthM && !memberAuth &&
!managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){
map.put("message", "common.message.no.grant");
if(memberIdx.equals(0)){
map.put("url", "/"+siteIdx+"/index.do");
}else{
map.put("self", "history");
}
return new ModelAndView("/_common/jsp/umessage");
}
*/
boolean b_ret = true;
b_ret = FairnetUtils.hasUserAuth(memberIdx, memberGrant, memberAuth, session, map);
if (!b_ret) {
return new ModelAndView("/_common/jsp/message");
}
Map<Object, Object> tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx,
new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS",
"siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1",
"tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"});
if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){
if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){
map.put("message", "common.message.no.siteMenu");
map.put("self", "history");
return new ModelAndView("/_common/jsp/umessage");
}
}
if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
try{
Date getDate = new Date();
Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate")));
Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate")));
if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) ||
(sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){
return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do");
}
}catch(ParseException e){
log.error("CHECK ERROR:",e);
}
}
if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") ||
SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){
return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl")));
}
String siteMenuManager = "N";
StringBuffer siteMenuManagerIdx = new StringBuffer();
String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N");
List<Map<Object, Object>> siteMenuManagerList =
managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"});
for(int i=0; i<siteMenuManagerList.size(); i++){
Map<Object, Object> tSiteMenuManagerDB = siteMenuManagerList.get(i);
if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){
if(!memberIdx.equals(0) &&
memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) &&
siteMenuManager.equals("N")){
siteMenuManager = "Y";
}
siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString());
siteMenuManagerIdx.append(",");
}
}
if(memberGrant.equals("S") || memberAuthM){
siteMenuManager = "Y";
}
//편집 권한
map.put("siteMenuManager", siteMenuManager);
//담당자 보기 설정
map.put("siteMenuCharge", siteMenuCharge);
//담당자 이름
map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString());
//만족도 설정
map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N"));
map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1"))));
String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("", "|") +
" | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName"));
map.put("siteMenuTitle", siteMenuTitle);
//부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴
if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){
String[] siteMenuTitles = siteMenuTitle.split("\\|");
tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]);
}
map.put("tSiteMenuDB", tSiteMenuDB);
map.put("memberAuthM", memberAuthM);
map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx));
/*----권한체크 종료----*/
map.put("id", session.getAttribute("id"));
map.put("retUrl", session.getAttribute("retUrl"));
map.put("srvNo", session.getAttribute("srvNo"));
map.put("reqNum", session.getAttribute("reqNum"));
map.put("reqInfo", session.getAttribute("reqInfo"));
map.put("hpRetUrl", session.getAttribute("hpRetUrl"));
map.put("hpReqInfo", session.getAttribute("hpReqInfo"));
session.removeAttribute("id");
session.removeAttribute("retUrl");
session.removeAttribute("srvNo");
session.removeAttribute("reqNum");
session.removeAttribute("reqInfo");
session.removeAttribute("hpRetUrl");
session.removeAttribute("hpReqInfo");
return new ModelAndView("/_extra/web/user/onlineCounsel/lawCounselStep03");
}
// /user/lawCounsel/case/02/159/lawWrite.do
@RequestMapping(value="/web/user/lawCounsel/{siteIdx}/02/{siteMenuIdx}/lawWrite.do", method=RequestMethod.GET)
public ModelAndView weblawCounselWrite(ModelMap map, HttpSession session, @RequestParam Map<String,Object> paramMap,
@ -817,7 +983,11 @@ public class WebCounselController {
service.lawCounselInsert(paramMap);
paramMap.put("dataIdx", paramMap.get("seq"));
try {
fileService.fileInsert(paramMap, request, session);
}catch(Exception ex) {
ex.printStackTrace();
}
map.put("siteIdx", "case");
map.put("url", "/web/user/mypage/case/03/242/myLawCounsel.do");
@ -826,8 +996,13 @@ public class WebCounselController {
map.put("append", "");
map.put("self", "");
return new ModelAndView("/_common/jsp/umessage");
//return new ModelAndView("/_common/jsp/umessage");
return new ModelAndView("redirect:/web/user/lawCounsel/"+siteIdx+"/02/"+siteMenuIdx+"/step03.do");
}
}

View File

@ -21,13 +21,32 @@
$( document ).ready(function(){
});
function checkFunc(){
var checkAll = $("input:checkbox[name=all_agree]")
var checkList = $("input:checkbox[name=infoAgree]")
for(var i = 0; i < checkList.length; i++){
$(checkList[i]).prop("checked",checkAll.is(":checked"))
}
}
function moveFunc(type){
if(type == "step01"){
$("#moveFrm").attr("action", "/web/user/lawCounsel/case/02/159/step01.do");
$("#moveFrm").submit();
}else if(type == "step02Write"){
$("#moveFrm").attr("action", "/web/user/lawCounsel/case/02/159/lawWrite.do");
$("#moveFrm").submit();
var checkList = $("input:checkbox[name=infoAgree]")
for(var i = 0; i < checkList.length; i++){
if($(checkList[i]).is(":checked") == false){
alert("개인정보 수집에 동의 해 주세요.");
return false;
}
}
$("#personalCheck").val("Y");
//$("#moveFrm").attr("action", "/web/user/lawCounsel/case/02/159/lawWrite.do");
$("#frm").submit();
}else if(type == "list"){
$("#examNo").remove();
$("#fileFuncType").remove();
@ -68,6 +87,12 @@
<h3 class="sub_con_tit">무료법률 상담</h3>
<div class="free_counsel_content">
<form id="frm" name="frm" action="/web/user/case/userCheck/setCheckCode/check.do" method="post">
<input type="hidden" name="personalCheck" id="personalCheck" value="">
<input type="hidden" name="commandCode" id="commandCode" value="law">
<input type="hidden" name="nextUrl" value="/web/user/lawCounsel/${siteIdx}/02/${siteMenuIdx}/lawWrite.do">
<ul class="process_step_wrap step3">
<li class="active">
<p>STEP 01 <span>개인정보수집</span></p>
@ -107,11 +132,13 @@
위 사항에 동의하십니까?</p>
<ul class="input_box">
<li>
<input type="checkbox" class="checkbox" name="agree01" id="agree01_Y"><label for="agree01_Y">동의</label>
<input type="checkbox" class="checkbox" name="infoAgree" id="agree1"><label for="agree01_Y">동의</label>
</li>
<!--
<li>
<input type="checkbox" class="checkbox" name="agree01" id="agree01_N"><label for="agree01_N">동의안함</label>
<input type="checkbox" class="checkbox" name="infoAgree" id="agree01_N"><label for="agree01_N">동의안함</label>
</li>
-->
</ul>
</div>
<b class="title depth02 orange_border round">개인정보 수집·이용·제공 동의서 <span class="color_red">(필수)</span></b>
@ -138,15 +165,17 @@
위 사항에 동의하십니까?</p>
<ul class="input_box">
<li>
<input type="checkbox" class="checkbox" name="agree02" id="agree02_Y"><label for="agree02_Y">동의</label>
<input type="checkbox" class="checkbox" name="infoAgree" id="agree2"><label for="agree02_Y">동의</label>
</li>
<!--
<li>
<input type="checkbox" class="checkbox" name="agree02" id="agree02_N"><label for="agree02_N">동의안함</label>
</li>
-->
</ul>
</div>
<div class="box gray_fill all_agree_box">
<input type="checkbox" class="checkbox" id="all_agree"><label for="all_agree">모든 이용약관 동의</label>
<input type="checkbox" class="checkbox" id="all_agree" name="all_agree" onclick="checkFunc()"><label for="all_agree">모든 이용약관 동의</label>
</div>
<div class="box gray_fill gray_border border_3">
@ -157,6 +186,7 @@
<button type="button" class="btn btn_text btn_45 darkgray_border" onclick="javascript:moveFunc('step01')">취소</button>
<button type="button" class="btn btn_text btn_45 darkblue_fill" onclick="javascript:moveFunc('step02Write')">다음단계</button>
</div>
</form>
</div>

View File

@ -0,0 +1,81 @@
<%
response.setHeader("Pragma", "no-cache" );
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-store");
response.setHeader("Cache-Control", "no-cache" );
%>
<%@ page language='java' contentType='text/html; charset=UTF-8'%>
<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>
<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
});
function checkFunc(){
var checkAll = $("input:checkbox[name=all_agree]")
var checkList = $("input:checkbox[name=infoAgree]")
for(var i = 0; i < checkList.length; i++){
$(checkList[i]).prop("checked",checkAll.is(":checked"))
}
}
function moveFunc(type){
if(type == "main"){
$("#moveFrm").attr("action", "/web/main/mainPage.do");
$("#moveFrm").submit();
}else if(type == "mypage"){
$("#moveFrm").attr("action", "/web/user/mypage/case/01/169/myMediationList.do");
$("#moveFrm").submit();
}
}
</script>
<div class="sub_content counsel_content">
<form action="" method="post" id="moveFrm">
</form>
<!-- page_location -->
<ul class="page_location">
<li><i class="icon home"></i></li>
<li>분쟁조정 상담</li>
<li>상담신청</li>
<li>무료법률 상담</li>
</ul>
<!-- //page_location -->
<h3 class="sub_con_tit">무료법률 상담</h3>
<div class="free_counsel_content">
<ul class="process_step_wrap step3">
<li>
<p>STEP 01 <span>개인정보수집</span></p>
<i class="icon step step01"></i>
</li>
<li>
<p>STEP 02 <span>정보입력</span></p>
<i class="icon step step02"></i>
</li>
<li class="active">
<p>STEP 03 <span>신청완료</span></p>
<i class="icon step step03"></i>
</li>
</ul>
<div class="box gray_fill box_complete">
<i class="icon process complete"></i>
<b class="gMarket_bold">무료법률 상담 신청이 완료되었습니다.</b>
<p>마이페이지로 이동하시면 신청한 내용을 확인할 수 있습니다.</p>
<div class="btn_wrap center">
<button type="button" class="btn btn_text btn_45 darkblue_fill" onclick="moveFunc('mypage')">마이페이지</button>
<button type="button" class="btn btn_text btn_45 darkblue_border" onclick="moveFunc('main')">메인으로</button>
</div>
</div>
</div>
</div>

View File

@ -19,15 +19,113 @@
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
caseGubunCombo();
$("#caseGubun").change(function(){
$("#troubleType").html("<option value=''>선택</option>");
resnCombo();
});
});
//조정유형
function caseGubunCombo(){
var url = "";
$("#type").val("L");
var param = jQuery('#writeFrm').serialize();
url = "/user/case/common/ajax/CaseGubun2.do";
XHR(url, param, function(r){
var objList = $("#caseGubun");
var sel = "";
ajaxCombo(r.data, objList, sel);
});
}
//신청사유
function resnCombo(){
var url = "";
$("#type").val("L");
var param = jQuery('#writeFrm').serialize();
url = "/user/case/common/ajax/Resn2.do";
XHR(url, param, function(r){
var sel = "";
var objList = $("#troubleType");
if(objList.length > 0 && objList.val() == ""){
ajaxCombo(r.data, objList, sel);
}
});
}
function moveFunc(type){
if(type == "step02"){
$("#moveFrm").attr("action", "/web/user/lawCounsel/case/02/159/step02.do");
$("#moveFrm").attr("action", "/web/user/lawCounsel/${siteIdx}/02/${siteMenuIdx}/step02.do");
$("#moveFrm").submit();
}else if(type == "step03"){
$("#moveFrm").attr("action", "/web/user/lawCounsel/case/02/159/step03.do");
$("#moveFrm").submit();
if($("#reserveTel01").val() == ""){
alert("전화번호를 입력해 주세요");
$("#reserveTel01").focus();
return false;
}
if($("#reserveTel02").val() == ""){
alert("전화번호를 입력해 주세요");
$("#reserveTel02").focus();
return false;
}
if($("#reserveTel03").val() == ""){
alert("전화번호를 입력해 주세요");
$("#reserveTel03").focus();
return false;
}
/*
if($("#caseGubun").val() == ""){
alert("조정유형을 선택해 주세요");
$("#caseGubun").focus();
return false;
}
*/
if($("#applcntTel01").val() == ""){
alert("전화번호를 입력해 주세요");
$("#applcntTel01").focus();
return false;
}
if($("#applcntTel02").val() == ""){
alert("전화번호를 입력해 주세요");
$("#applcntTel02").focus();
return false;
}
if($("#applcntTel03").val() == ""){
alert("전화번호를 입력해 주세요");
$("#applcntTel03").focus();
return false;
}
if($("#applcntEmail").val() == ""){
alert("이메일을 입력해 주세요");
$("#applcntEmail").focus();
return false;
}
if($("#counselTitle").val() == ""){
alert("상담제목을 입력해 주세요");
$("#counselTitle").focus();
return false;
}
if($("#editorParam_counselContent").val() == ""){
alert("상담내용을 입력해 주세요");
return false;
}
$("#writeFrm").attr("action", "/web/user/lawCounsel/${siteIdx}/02/${siteMenuIdx}/lawWrite.do");
$("#writeFrm").submit();
}else if(type == "list"){
$("#examNo").remove();
$("#fileFuncType").remove();
@ -123,6 +221,14 @@
<p class="cf_text"><span class="color_red">*</span> 표기는 필수 입력사항</p>
</div>
<div class="table_type_rows">
<form id="writeFrm" name="writeFrm" action="/web/user/lawCounsel/${siteIdx}/02/${siteMenuIdx}/lawWrite.do" method="post">
<input type="hidden" name="applcntNm" value="${hpName}">
<input type="hidden" name="applcntCi" value="${hpCi1}">
<input type="hidden" name="applcntDi" value="${hpDi}">
<input type="hidden" name="personalCheck" value="${personalCheck}">
<input type="hidden" name="siteIdx" value="${siteIdx}" />
<table>
<colgroup>
<col style="width:200px;">
@ -139,12 +245,33 @@
</th>
<td>
<div class="phone_wrap">
<select name="" id="" title="핸드폰 첫번째 자리 선택" class="select">
<option value="">010</option>
<option value="">011</option>
<select id="reserveTel01" name="reserveTel01" class="select" title="휴대폰 앞번호">
<option value="010">010</option>
<option value="011">011</option>
<option value="016">016</option>
<option value="017">017</option>
<option value="019">019</option>
<option value="070">070</option>
<option value="02">02</option>
<option value="031">031</option>
<option value="032">032</option>
<option value="033">033</option>
<option value="041">041</option>
<option value="043">043</option>
<option value="042">042</option>
<option value="044">044</option>
<option value="051">051</option>
<option value="052">052</option>
<option value="053">053</option>
<option value="054">054</option>
<option value="055">055</option>
<option value="061">061</option>
<option value="063">063</option>
<option value="064">064</option>
</select> -
<input type="text" class="input_text" title="핸드폰 가운데 자리 입력"> -
<input type="text" class="input_text" title="핸드폰 마지막 자리 입력">
<input type="text" class="input_text" title="핸드폰 가운데 자리 입력" maxlength="4" name="reserveTel02" id="reserveTel02" onkeyup="removeChar(event);" onkeydown='onlyNumber(event);' style="ime-mode:disabled"> -
<input type="text" class="input_text" title="핸드폰 마지막 자리 입력" maxlength="4" name="reserveTel03" id="reserveTel03" onkeyup="removeChar(event);" onkeydown='onlyNumber(event);' style="ime-mode:disabled">
</div>
</td>
</tr>
@ -153,21 +280,21 @@
<p class="required_text">*<span>필수입력</span></p>조정유형
</th>
<td>
<select name="" id="" title="조정유형 선택" class="select w100per">
<select class="select w100per" name="caseGubun" id="caseGubun" onchange="resnCombo()" title="조정유형 선택">
<option value="">선택</option>
</select>
</td>
<th>
<p class="required_text">*<span>필수입력</span></p>사무실
</th>
<td>
<div class="phone_wrap">
<select name="" id="" title="사무실 첫번째 자리 선택" class="select">
<option value="">010</option>
<option value="">011</option>
</select> -
<input type="text" class="input_text" title="사무실 가운데 자리 입력"> -
<input type="text" class="input_text" title="사무실 마지막 자리 입력">
<input type="text" id="applcntTel01" name="applcntTel01" class="input_text" title="사무실 첫번째 자리 선택" maxlength="3" onkeyup="removeChar(event);" onkeydown='onlyNumber(event);' style="ime-mode:disabled; width: 27%"> -
<input type="text" id="applcntTel02" name="applcntTel02" class="input_text" title="사무실 가운데 자리 입력" maxlength="4" onkeyup="removeChar(event);" onkeydown='onlyNumber(event);' style="ime-mode:disabled"> -
<input type="text" id="applcntTel03" name="applcntTel03" class="input_text" title="사무실 마지막 자리 입력" maxlength="4" onkeyup="removeChar(event);" onkeydown='onlyNumber(event);' style="ime-mode:disabled">
</div>
</td>
</tr>
@ -175,9 +302,9 @@
<th>이메일</th>
<td colspan="3">
<div class="email_wrap">
<input type="text" class="input_text input_email" title="이메일 공급자 입력">
<input type="text" class="input_text input_email" name="applcntEmail1" title="이메일 공급자 입력">
@
<input type="text" class="input_text input_email" title="이메일 공급자 입력">
<input type="text" class="input_text input_email" name="applcntEmail2" title="이메일 공급자 입력">
<select name="" id="" class="select email_select" title="이메일 공급자 선택">
<option value="0">직접입력</option>
<option value="chol.com">chol.com</option>
@ -207,14 +334,14 @@
<p class="required_text">*<span>필수입력</span></p>상담제목
</th>
<td colspan="3">
<input type="text" class="input_text w100per" placeholder="ex) 가맹사업거래 상담 신청합니다.">
<input type="text" class="input_text w100per" placeholder="ex) 가맹사업거래 상담 신청합니다." id="counselTitle" name="counselTitle">
</td>
</tr>
<tr>
<th>상담내용</th>
<td colspan="3">
<div class="length_wrap">
<textarea name="" id="" class="input_text"></textarea>
<textarea name="editorParam_counselContent" id="editorParam_counselContent" class="input_text"></textarea>
<p class="length"><span class="color_red">0</span>/ 1300자</p>
</div>
</td>
@ -237,12 +364,13 @@
</tr>
</tbody>
</table>
</form>
</div>
<p class="cf_text">※ 위 신청 내용에 따라 상담센터에서 유선으로 일정을 문의드릴 수 있으며, 이후 확정된 상담일자는 마이페이지 메뉴에서 확인하시기 바랍니다.</p>
<div class="btn_wrap right">
<button type="button" class="btn btn_text btn_45 darkgray_border" onclick="javascript:moveFunc('step02')">취소</button>
<button type="button" class="btn btn_text btn_45 darkblue_fill" onclick="javascript:moveFunc('step03')">신청</button>
<button type="button" class="btn btn_text btn_45 darkgray_border" onclick="javascript:moveFunc('step02')">취소</button>
</div>

View File

@ -125,10 +125,9 @@ function logListExcelDownload(){
<div class="cont">
<!-- list_top -->
<div class="list_top">
<div class="list_util">
<div class="detail_search">
<ul>
<div class="search_detail">
<ul class="search_ul">
<li>
<p class="tit_text">구분</p>
<select name="searchCondition" id="searchCondition">
@ -137,12 +136,14 @@ function logListExcelDownload(){
<option value='2' <c:if test="${searchVO.searchCondition == '2'}">selected</c:if>>URL</option>
</select>
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="50"/>
<button class="btn_search" onclick="fn_select('1'); return false;">검색</button>
</li>
<li>
<button class="btn btn_36 blue_border btn-page-sch" title="검색 완료 버튼" onclick="fn_select('1'); return false;">검색</button>
</li>
</ul>
</div>
</div>
</div>
<!-- //list_top -->
<div class="form-wrap">
@ -195,64 +196,15 @@ function logListExcelDownload(){
</table>
</div>
<!--
<div class="change-state-area btn_wrap right" style="overflow: hidden;padding:0;">
<button type="button" onclick="goPage('write','')" class="btn-change-state btn btn_text btn_46 blue_fill">글쓰기</button>
</div>
-->
</div>
<!-- list -->
<div class="list tbType01">
<table>
<colgroup>
<col style="width: 8%">
<col style="width: 12%">
<col style="width: 9%">
<col style="width: 20%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 24%">
<col style="width: 15%">
</colgroup>
<thead>
<tr>
<th>번호 <button type="button" class="sortBtn sort" id="sort_logId"></button></th>
<th>메뉴명 <button type="button" class="sortBtn sort" id="sort_menuNm"></button></th>
<th>접근구분 <button type="button" class="sortBtn sort" id="sort_approNm"></button></th>
<th>메소드 <button type="button" class="sortBtn sort" id="sort_progrmFileNm"></button></th>
<th>접속ID <button type="button" class="sortBtn sort" id="sort_loginId"></button></th>
<th>접속IP <button type="button" class="sortBtn sort" id="sort_loginIp"></button></th>
<th>접속URL <button type="button" class="sortBtn sort" id="sort_url"></button></th>
<th>접속일자 <button type="button" class="sortBtn sort" id="sort_creatDt"></button></th>
</tr>
</thead>
<tbody>
<c:forEach var="result" items="${adminLogList}" varStatus="status">
<tr>
<td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</c:if>
<c:if test="${searchVO.searchSortOrd eq 'asc' }">
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
</c:if>
</td>
<td><c:out value="${result.menuNm}"/></td>
<td><c:out value="${result.approNm}"/></td>
<td><c:out value="${result.progrmFileNm}"/></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>
<td><c:out value="${result.creatDt}"/></td>
</tr>
</c:forEach>
<c:if test="${empty adminLogList}">
<tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">

View File

@ -115,10 +115,9 @@ function logListExcelDownload(){
<div class="cont">
<!-- list_top -->
<div class="list_top">
<div class="list_util">
<div class="detail_search">
<ul>
<div class="search_detail">
<ul class="search_ul">
<li>
<p class="tit_text">구분</p>
<select name="searchCondition" id="searchCondition">
@ -127,12 +126,14 @@ function logListExcelDownload(){
<option value='2' <c:if test="${searchVO.searchCondition == '2'}">selected</c:if>>URL</option>
</select>
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="50"/>
<button class="btn_search" onclick="fn_select('1'); return false;">검색</button>
</li>
<li>
<button class="btn btn_36 blue_border btn-page-sch" title="검색 완료 버튼" onclick="fn_select('1'); return false;">검색</button>
</li>
</ul>
</div>
</div>
</div>
<!-- //list_top -->
@ -186,66 +187,13 @@ function logListExcelDownload(){
</table>
</div>
<!--
<div class="change-state-area btn_wrap right" style="overflow: hidden;padding:0;">
<button type="button" onclick="goPage('write','')" class="btn-change-state btn btn_text btn_46 blue_fill">글쓰기</button>
</div>
-->
</div>
<!-- list -->
<div class="list tbType01">
<table>
<colgroup>
<col style="width: 5%">
<col style="width: 12%">
<%-- <col style="width: 9%"> --%>
<col style="width: 6%">
<col style="width: 15%">
<col style="width: 10%">
<col style="width: 24%">
<col style="width: 15%">
</colgroup>
<thead>
<tr>
<th><p>번호</p><button type="button" class="sortBtn sort" id="sort_logId"></button></th>
<th><p>메뉴명</p><button type="button" class="sortBtn sort" id="sort_menuNm"></button></th>
<!-- <th>접근구분 <button type="button" class="sortBtn sort" id="sort_approNm"></button></th> -->
<th><p>메소드</p><button type="button" class="sortBtn sort" id="sort_progrmFileNm"></button></th>
<th><p>접속ID</p><button type="button" class="sortBtn sort" id="sort_loginId"></button></th>
<th><p>접속IP</p><button type="button" class="sortBtn sort" id="sort_loginIp"></button></th>
<th><p>접속URL</p><button type="button" class="sortBtn sort" id="sort_url"></button></th>
<th><p>접속일자</p><button type="button" class="sortBtn sort" id="sort_creatDt"></button></th>
</tr>
</thead>
<tbody>
<c:forEach var="result" items="${adminLogList}" varStatus="status">
<tr>
<td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</c:if>
<c:if test="${searchVO.searchSortOrd eq 'asc' }">
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
</c:if>
</td>
<td><c:out value="${result.menuNm}"/></td>
<%-- <td><c:out value="${result.methodNm}"/></td> --%>
<td><c:out value="${result.approNm}"/></td>
<td><span class="privateInfo"><c:out value="${result.loginId}"/></span></td>
<td><c:out value="${result.loginIp}"/></td>
<td class="td_wrap t_left"><c:out value="${result.methodNm}"/></td>
<td><c:out value="${result.creatDt}"/></td>
</tr>
</c:forEach>
<c:if test="${empty adminLogList}">
<tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />