diff --git a/src/main/java/seed/com/user/board/BoardController.java b/src/main/java/seed/com/user/board/BoardController.java index c36e374b..1a7aac2e 100644 --- a/src/main/java/seed/com/user/board/BoardController.java +++ b/src/main/java/seed/com/user/board/BoardController.java @@ -35,6 +35,7 @@ import seed.manager.site.service.ManagerSiteManagerService; import seed.manager.site.service.ManagerSiteMenuAuthService; import seed.manager.site.service.ManagerSiteMenuManagerService; import seed.manager.site.service.ManagerSiteMenuService; +import seed.utils.FairnetUtils; import seed.utils.SeedDbUtilsSupport; //import seed.utils.SeedUtils;elService; import seed.utils.SeedUtils; @@ -420,6 +421,7 @@ private Logger log = Logger.getLogger(this.getClass()); boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); //메뉴 권한설정 + /* if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ @@ -433,6 +435,14 @@ private Logger log = Logger.getLogger(this.getClass()); 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 tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", diff --git a/src/main/java/seed/com/user/board/WebBoardController.java b/src/main/java/seed/com/user/board/WebBoardController.java new file mode 100644 index 00000000..3fa85743 --- /dev/null +++ b/src/main/java/seed/com/user/board/WebBoardController.java @@ -0,0 +1,553 @@ +package seed.com.user.board; + +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import com.ibm.icu.text.SimpleDateFormat; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import kcc.com.cmm.CmmUtil; +import kcc.xxx.service.XxxVO; + +//import seed.com.ibm.icu.text.SimpleDateFo + +import seed.com.gtm.board.CaseBoardService; +import seed.com.gtm.exam.ExamBoardService; +import seed.com.gtm.faqbbs.faqBpardService; +import seed.com.gtm.seedfile.SeedFileService; +import seed.com.gtm.util.Criteria; +import seed.com.gtm.util.PageMaker; +import seed.manager.group.service.ManagerGroupService; +import seed.manager.member.service.ManagerMemberService; +import seed.manager.site.service.ManagerSiteManagerService; +import seed.manager.site.service.ManagerSiteMenuAuthService; +import seed.manager.site.service.ManagerSiteMenuManagerService; +import seed.manager.site.service.ManagerSiteMenuService; +import seed.utils.FairnetUtils; +import seed.utils.SeedDbUtilsSupport; +//import seed.utils.SeedUtils;elService; +import seed.utils.SeedUtils; + +@Controller +public class WebBoardController { + +private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private ManagerSiteMenuService managerSiteMenuService; + + @Autowired + private ManagerSiteManagerService managerSiteManagerService; + + @Autowired + private ManagerMemberService managerMemberService; + + @Autowired + private ManagerSiteMenuManagerService managerSiteMenuManagerService; + + @Autowired + private ManagerSiteMenuAuthService managerSiteMenuAuthService; + + @Autowired + private ManagerGroupService managerGroupService; + + @Autowired + private faqBpardService service; + + @Autowired + private ExamBoardService service2; + + @Autowired + private CaseBoardService service3; + + @Autowired + private SeedFileService fileService; + + @Value("#{config['member.merge']}") + private String memberMerge; + + @Value("#{config['member.merge.siteIdx']}") + private String memberMergeSiteIdx; + + public void setSessionRemove(HttpSession session){ + session.removeAttribute("memberIdx"); + session.removeAttribute("memberId"); + session.removeAttribute("memberName"); + session.removeAttribute("memberDept"); + session.removeAttribute("memberPosition"); + session.removeAttribute("memberTel"); + session.removeAttribute("memberPhone"); + session.removeAttribute("memberEmail1"); + session.removeAttribute("memberEmail2"); + session.removeAttribute("memberGrant"); + + session.removeAttribute("url"); + session.removeAttribute("message"); + session.removeAttribute("opener"); + session.removeAttribute("append"); + session.removeAttribute("self"); + } + + public void setSessionMessageRemove(HttpSession session){ + session.removeAttribute("url"); + session.removeAttribute("message"); + session.removeAttribute("opener"); + session.removeAttribute("append"); + session.removeAttribute("self"); + } + + + //@RequestMapping("/web/xxx/xxxList.do") + @RequestMapping(value="/web/user/exam1/{siteIdx}/{boardIdx}/{siteMenuIdx}/list.do", method=RequestMethod.GET) + public String xxxList( + ModelMap model + , HttpServletRequest request + , @ModelAttribute("xxxVO") XxxVO xxxVO + ) throws Exception { + + ArrayList xxxList = new ArrayList(); + + for(int i = 0 ; i < 10 ; i++) { + XxxVO tmpVO = new XxxVO(); + tmpVO.setTotCnt(200); + tmpVO.setCol1(String.valueOf(i)); + tmpVO.setCol2("유형내용" + i + "입니다."); + tmpVO.setCol3("제목내용" + i + "입니다."); + tmpVO.setCol4("등록일시" + i + "입니다."); + + xxxList.add(tmpVO); + } + + // 페이징 처리 객체 + PaginationInfo paginationInfo = CmmUtil.getPageing(xxxVO, xxxVO.getPageUnit()); + paginationInfo.setTotalRecordCount(xxxList.size() > 0 ? ((XxxVO) xxxList.get(0)).getTotCnt() : 0); + + model.addAttribute("xxxList", xxxList); + model.addAttribute("paginationInfo", paginationInfo); + + //return "/web/xxx/xxxList"; + return "/_extra/web/user/exam1/examList"; + //return new ModelAndView("/_extra/web/user/exam/examList"); + } + + // 20190902 /user/exam/case/402/162/list.do + @RequestMapping(value= {"/web/user/exam/{siteIdx}/{boardIdx}/{siteMenuIdx}/examList.do" + , "/web/user/exam/{siteIdx}/{boardIdx}/{siteMenuIdx}/exam{boardIdx}List.do"}, method=RequestMethod.GET) + public ModelAndView examList(ModelMap map, HttpSession session, @RequestParam Map paramMap, Criteria cri, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="boardIdx") String boardIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx, HttpServletRequest request){ + + 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); + + //메뉴 권한설정 + /* + 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 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> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i 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)); + /*----권한체크 종료----*/ + + /*String titleName = "ALL"; + if(paramMap.get("titleName") != null){ + titleName = paramMap.get("titleName").toString(); + } + String menuName = ""; + if(titleName.equals("ALL")){ + menuName = "ALL"; + }else if(titleName.equals("search2")){ + menuName= "공정거래"; + }else if(titleName.equals("search3")){ + menuName = "가맹사업거래"; + }else if(titleName.equals("search4")){ + menuName = "하도급거래"; + }else if(titleName.equals("search5")){ + menuName = "대규모유통업거래"; + }else if(titleName.equals("search6")){ + menuName = "불공정약관"; + }*/ + + String menuName = ""; + if(boardIdx.equals("402")){ + menuName = "공정거래"; + }else if(boardIdx.equals("403")){ + menuName = "가맹사업거래"; + }else if(boardIdx.equals("404")){ + menuName = "하도급거래"; + }else if(boardIdx.equals("405")){ + menuName = "대규모유통업거래"; + }else if(boardIdx.equals("406")){ + menuName = "불공정약관"; + }else if(boardIdx.equals("407")){ + menuName = "대리점거래"; + } + + //20191004 추가 + session.setAttribute("selCode", request.getParameter("searchMenu")); + + session.setAttribute("menuName", menuName); + + //페이징 관련 + paramMap.put("pageStart", cri.getPageStart()); + paramMap.put("perPageNum", cri.getPerPageNum()); + paramMap.put("boardIdx", boardIdx); + + List> bbsList = service2.boardList(paramMap); + + PageMaker pageMaker = new PageMaker(); + pageMaker.setCri(cri); + pageMaker.setTotalCount(service2.boardListCnt(paramMap)); + + map.addAttribute("boardIdx", boardIdx); + map.addAttribute("bbsList", bbsList); + map.addAttribute("pageMaker", pageMaker); + + + // 페이징 처리 객체 + //PaginationInfo paginationInfo = CmmUtil.getPageing(bbsList, bbsList.size()); + //paginationInfo.setTotalRecordCount(bbsList.size() > 0 ? ((XxxVO) bbsList.get(0)).getTotCnt() : 0); + + //map.addAttribute("paginationInfo", paginationInfo); + + ////ModelAndView mav = new ModelAndView(); + //mav.addObject("/_extra/web/user/exam/examList"); + + //return new ModelAndView("/_extra/user/exam/list"); + return new ModelAndView("/_extra/web/user/exam/examList"); + //return mav; + } + + @RequestMapping(value= {"/web/user/exam/{siteIdx}/{boardIdx}/{siteMenuIdx}/examDetail.do" + , "/web/user/exam/{siteIdx}/{boardIdx}/{siteMenuIdx}/exam{boardIdx}Detail.do" + }, method=RequestMethod.GET) + public ModelAndView examView(ModelMap map, HttpSession session, @RequestParam Map paramMap, Criteria cri, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="boardIdx") String boardIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + 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); + + //메뉴 권한설정 + /* + 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 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> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i 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)); + /*----권한체크 종료----*/ + + /* + String menuName = ""; + + if(boardIdx.equals("402")){ + menuName = "공정거래"; + }else if(boardIdx.equals("403")){ + menuName = "가맹사업거래"; + }else if(boardIdx.equals("404")){ + menuName = "하도급거래"; + }else if(boardIdx.equals("405")){ + menuName = "대규모유통업거래"; + }else if(boardIdx.equals("406")){ + menuName = "불공정약관"; + }else if(boardIdx.equals("407")){ + menuName = "대리점거래"; + } + + */ + paramMap.put("dataIdx", paramMap.get("examNo")); + + SeedDbUtilsSupport seeDbUtilsSupport = new SeedDbUtilsSupport(); + + service2.cntUpdate(paramMap); + Map bbsInfoView = service2.boardView(paramMap); + + //여기로 자리 이동 + + String titleName = bbsInfoView.get("EXAM_ID").toString(); + + String menuName = ""; + + if(titleName.equals("402")){ + menuName = "공정거래"; + }else if(titleName.equals("403")){ + menuName = "가맹사업거래"; + }else if(titleName.equals("404")){ + menuName = "하도급거래"; + }else if(titleName.equals("405")){ + menuName = "대규모유통업거래"; + }else if(titleName.equals("406")){ + menuName = "불공정약관"; + }else if(titleName.equals("407")){ + menuName = "대리점거래"; + } + + session.setAttribute("menuName", menuName); + + + bbsInfoView.put("EXAM_CONT", seeDbUtilsSupport.clobToString(bbsInfoView.get("EXAM_CONT"))); + bbsInfoView.put("EXAM_CONT2", seeDbUtilsSupport.clobToString(bbsInfoView.get("EXAM_CONT2"))); + bbsInfoView.put("EXAM_CONT3", seeDbUtilsSupport.clobToString(bbsInfoView.get("EXAM_CONT3"))); + bbsInfoView.put("EXAM_CONT4", seeDbUtilsSupport.clobToString(bbsInfoView.get("EXAM_CONT4"))); + + map.addAttribute("bbsView", bbsInfoView); + map.addAttribute("boardIdx", boardIdx); + map.addAttribute("fileList", fileService.fileList(paramMap)); + + //2024-09-25 추가 + map.addAttribute("siteMenuIdx", siteMenuIdx); + + + return new ModelAndView("/_extra/web/user/exam/examDetail"); + } +} diff --git a/src/main/java/seed/home/WebHomeController.java b/src/main/java/seed/home/WebHomeController.java new file mode 100644 index 00000000..4fddf36f --- /dev/null +++ b/src/main/java/seed/home/WebHomeController.java @@ -0,0 +1,260 @@ +package seed.home; + +import java.text.ParseException; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +import com.ibm.icu.text.SimpleDateFormat; + +import seed.admin.errorlogs.service.AdminErrorLogsService; +import seed.admin.member.service.AdminMemberService; +import seed.admin.site.service.AdminSiteService; +import seed.admin.statistics.service.AdminStatisticsService; +import seed.manager.bbs.service.ManagerBbsDataService; +import seed.manager.group.service.ManagerGroupService; +import seed.manager.member.service.ManagerMemberService; +import seed.manager.site.service.ManagerSiteManagerService; +import seed.manager.site.service.ManagerSiteMenuAuthService; +import seed.manager.site.service.ManagerSiteMenuManagerService; +import seed.manager.site.service.ManagerSiteMenuService; +import seed.manager.site.service.ManagerSiteService; +import seed.manager.statistics.service.ManagerStatisticsService; +import seed.utils.FairnetUtils; +import seed.utils.SeedUtils; + +@Controller +public class WebHomeController { + + private Logger log = Logger.getLogger(this.getClass()); + + @Autowired + private AdminSiteService adminSiteService; + + @Autowired + private AdminStatisticsService adminStatisticsService; + + @Autowired + private AdminMemberService adminMemberService; + + @Autowired + private AdminErrorLogsService adminErrorLogsService; + + @Autowired + private ManagerSiteService managerSiteService; + + @Autowired + private ManagerSiteMenuService managerSiteMenuService; + + @Autowired + private ManagerSiteManagerService managerSiteManagerService; + + @Autowired + private ManagerSiteMenuManagerService managerSiteMenuManagerService; + + @Autowired + private ManagerSiteMenuAuthService managerSiteMenuAuthService; + + @Autowired + private ManagerMemberService managerMemberService; + + @Autowired + private ManagerGroupService managerGroupService; + + @Autowired + private ManagerBbsDataService managerBbsDataService; + + @Autowired + private ManagerStatisticsService managerStatisticsService; + + @Value("#{config['root.path']}") + private String rootPath; + + @Value("#{config['was.log.path']}") + private String wasLogPath; + + @Value("#{config['member.merge']}") + private String memberMerge; + + @Value("#{config['member.merge.siteIdx']}") + private String memberMergeSiteIdx; + + private void setSessionRemove(HttpSession session){ + session.removeAttribute("memberIdx"); + session.removeAttribute("memberId"); + session.removeAttribute("memberName"); + session.removeAttribute("memberDept"); + session.removeAttribute("memberPosition"); + session.removeAttribute("memberTel"); + session.removeAttribute("memberPhone"); + session.removeAttribute("memberEmail1"); + session.removeAttribute("memberEmail2"); + session.removeAttribute("memberGrant"); + + session.removeAttribute("url"); + session.removeAttribute("message"); + session.removeAttribute("opener"); + session.removeAttribute("append"); + session.removeAttribute("self"); + + } + + private void setSessionMessageRemove(HttpSession session){ + session.removeAttribute("url"); + session.removeAttribute("message"); + session.removeAttribute("opener"); + session.removeAttribute("append"); + session.removeAttribute("self"); + } + + @RequestMapping(value = "/web/{siteIdx}/subIndex/{siteMenuIdx}.do") + public ModelAndView setSubIndex(HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + 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); + + //메뉴 권한설정 + /* + 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 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> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i 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)); + + return new ModelAndView("/web/user/index/subIndex"); + } + + @RequestMapping(value = "/web/{siteIdx}/{siteMenuIdx}/content.do") + public ModelAndView getContent(HttpSession session, Map map, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + return new ModelAndView("/web/site/"+siteIdx+"/jsp/content/"+managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, new String[] {"siteMenuIdxs"}).get("_siteMenuIdxs")); + } +} \ No newline at end of file diff --git a/src/main/java/seed/utils/FairnetUtils.java b/src/main/java/seed/utils/FairnetUtils.java index a78c8eef..3fe9de54 100644 --- a/src/main/java/seed/utils/FairnetUtils.java +++ b/src/main/java/seed/utils/FairnetUtils.java @@ -18,6 +18,7 @@ public class FairnetUtils { boolean b_ret = true; //기존 권한 관리 부분을 주석 처리함 - 필요시 사용할것 + //egov 권한으로 대체 예정 /* try { if(p_memberIdx == 0 || (!p_memberGrant.equals("S") && !p_memberAuth)){ @@ -35,5 +36,39 @@ public class FairnetUtils { return b_ret; } + + public static boolean hasUserAuth( + int p_memberIdx + , String p_memberGrant + , boolean p_memberAuth + , HttpSession p_session + , Map p_map + ) { + boolean b_ret = true; + + //기존 권한 관리 부분을 주석 처리함 - 필요시 사용할것 + //egov 권한으로 대체 예정 + /* + try { + 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"); + b_ret = false; + } + }catch(Exception ex) { + ex.printStackTrace(); + } + */ + + return b_ret; + } } \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/exam/examDetail.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/exam/examDetail.jsp new file mode 100644 index 00000000..0276c815 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/_extra/web/user/exam/examDetail.jsp @@ -0,0 +1,193 @@ +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> + + + +
+ + + + + +
+
+ +
    +
  • +
  • 분쟁조정 안내
  • +
  • 분쟁조정 안내
  • +
  • 분쟁조정 관련 서식
  • +
+ + +

분쟁조정 관련 서식

+

분쟁조정 신청서(및 작성예시), 위임장, 합의취하서 등 분쟁조정 관련 서식을 제공하고 있습니다. 다운로드 받아 사용하시기 바랍니다.

+ +
+
+

+ ${bbsView.EXAM_SUBJ} +

+ + +
    +
  • +

    · 유형 :

    + + ${bbsView.EXAM_TYPE} +
  • +
  • +

    · 결과 :

    + + ${bbsView.EXAM_RESULT1}<%-- / ${bbsView.EXAM_RESULT2} --%> +
  • +
  • +

    · 작성자 :

    + + ${bbsView.EXAM_REGMEM_NM} +
  • +
  • +

    · 작성일 :

    + + ${bbsView.EXAM_REGDATE} +
  • +
  • +

    · 조회수 :

    + + ${bbsView.EXAM_CNT} +
  • +
+ + + + + + + +
+
+ 사례 상세보기 +
    +
  • + +
  • +
  • + +
  • +
+
+
    +
  • +
  • +
  • +
  • +
+ +
+ 사건의 개요 +
+ ${bbsView.EXAM_CONT } + +<%-- --%> + +
+
+
+ 분쟁사실 및 당사자 주장 +
+ ${bbsView.EXAM_CONT2 } + +<%-- --%> + +
+
+
+ 검토 +
+ ${bbsView.EXAM_CONT3 } +
+
+
+ 조정결과 +
+ ${bbsView.EXAM_CONT4 } +
+
+
+ + + +
+ +
+
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/exam/examList.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/exam/examList.jsp new file mode 100644 index 00000000..22a1059a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/_extra/web/user/exam/examList.jsp @@ -0,0 +1,230 @@ +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> + + + + + +
+ + " /> + " /> + " /> +
+ +
+ +
    +
  • +
  • 분쟁조정 안내
  • +
  • 분쟁조정 안내
  • +
  • 분쟁조정 관련 서식
  • +
+ + +

분쟁조정 관련 서식

+

분쟁조정 신청서(및 작성예시), 위임장, 합의취하서 등 분쟁조정 관련 서식을 제공하고 있습니다. 다운로드 받아 사용하시기 바랍니다.

+ + +
+ + + + +
+ + + + + + +
+
+ + + +
+

전체 3,581건(10/400 페이지)

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호유형제목등록일시조회수
등록된 데이터가 없습니다.
+ ${xxxList.EXAM_NO} + + ${xxxList.EXAM_TYPE} + + + ${xxxList.EXAM_SUBJ} + + + ${xxxList.EXAM_REGDATE} + + + + ${xxxList.EXAM_CNT} +
+
+ + + + + + + + +
diff --git a/src/main/webapp/WEB-INF/jsp/site/case/jsp/alert/message.jsp b/src/main/webapp/WEB-INF/jsp/site/case/jsp/alert/message.jsp new file mode 100644 index 00000000..7b00e5e6 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/site/case/jsp/alert/message.jsp @@ -0,0 +1,11 @@ +<%@ page language='java' contentType='text/html; charset=UTF-8'%> +<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%> +<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%> +<%@ taglib uri='http://java.sun.com/jsp/jstl/functions' prefix='fn'%> +<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %> + +
+
+

+
+
diff --git a/src/main/webapp/WEB-INF/jsp/web/site/case/jsp/content/01010100000000000000.jsp b/src/main/webapp/WEB-INF/jsp/web/site/case/jsp/content/01010100000000000000.jsp new file mode 100644 index 00000000..f30f6089 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/site/case/jsp/content/01010100000000000000.jsp @@ -0,0 +1,180 @@ +<%@ 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'%> + + + + + 한국공정거래조정원 온라인분쟁조정시스템 > 분쟁조정 안내 > 분쟁조정 안내 > 분쟁조정 제도 + + + + + + + + + + + + + + + + + + +
+ + +
    +
  • +
  • 분쟁조정 안내
  • +
  • 분쟁조정 제도
  • +
+ + +

분쟁조정 제도

+

분쟁조정 제도에 대하여 알려드립니다.

+ +
    +
  • +
  • +
  • +
  • +
  • +
  • +
+ +
+

공정거래 분쟁조정

+
+
1. 공정거래분쟁조정협의회 설치이유
+
공정거래분쟁조정협의회는 불공정거래행위로 발생한 사업자간 분쟁을 조정하기 위하여 설치되었으며, 우리 원은 2008년부터 이를 운영하고 있습니다.
+
2. 공정거래분쟁조정협의회 구성
+
공정거래분쟁조정협의회는 교수, 법조인 등 공정거래 분야의 전문가로서 공정거래위원회 위원장이 임명 또는 위촉한 7인의 위원으로 구성되고, 위원의 임기는 3년이며 연임할 수 있습니다.
+
3. 조정의 대상
+
+ 공정거래분쟁조정협의회의 분쟁조정 대상은 사업자 간에 발생한 분쟁 중 공정거래법 제45조(불공정거래행위의 금지) 제1항을 위반한 혐의가 있는 행위로서, ① 단독의 거래거절, ② 차별적 취급, ③ 경쟁사업자 배제, ④ 부당한 고객유인, ⑤ 거래강제, ⑥ 거래상 지위의 남용, ⑦ 구속조건부거래, ⑧ 사업활동 방해 등에 해당하는 행위입니다. + + ※ 불공정거래행위 중 조정신청 제외 대상 다음 행위는 행위의 내용ㆍ성격 및 정도 등을 고려할 때 공정거래위원회에서 시정조치 또는 시정권고를 통하여 처리하는 것이 적합하므로 공정거래분쟁조정협의회의 분쟁조정신청 대상에서 제외되어 있습니다. +
- 부당한 지원 행위 +
+
+
+
+ +
+

가맹사업거래분쟁조정

+
+
1. 가맹사업거래분쟁조정협의회 설치이유
+
가맹사업거래분쟁조정협의회는 불공정거래행위로 발생한 가맹본부와 가맹사업자간 분쟁을 조정하기 위하여 설치되었으며, 우리 원은 2008년부터 이를 운영하고 있습니다.
+
2. 가맹사업거래분쟁조정협의회 구성
+
가맹사업거래분쟁조정협의회는 공익을 대표하는 위원 3명과 가맹본부의 이익을 대표하는 위원 3명, 가맹점사업자의 이익을 대표하는 위원 3명 등 모두 9명으로 구성되고, 위원은 조정원의 장이 추천하고 공정거래위원회 위원장이 임명 또는 위촉합니다. 위원의 임기는 3년이며 협의회 위원장은 공익을 대표하는 위원 중에서 공정거래위원회 위원장이 위촉합니다.
+
3. 조정의 대상
+
+ 가맹본부의 허위 과장된 정보제공, 부당한 계약해지 및 종료, 영업지역의 침해 등 가맹사업과 관련한 분쟁
+
+
+
+

하도급거래분쟁조정

+
+
1. 하도급거래분쟁조정협의회 설치이유
+
하도급거래분쟁조정협의회는 불공정거래행위로 발생한 원사업자와 수급사업자간 분쟁을 조정하기 위하여 설치되었으며, 우리 원은 2011년부터 이를 운영하고 있습니다.
+
2. 하도급거래분쟁조정협의회 구성
+
하도급거래분쟁조정협의회는 공익을 대표하는 위원 3명, 원사업자를 대표하는 위원 3명, 수급사업자를 대표하는 위원 3명 등 모두 9명으로 구성되어 있으며, 위원은 공정거래위원회 위원장이 위촉하며, 임기는 2년입니다. 협의회 위원장은 공익을 대표하는 위원 중에서 협의회가 선출합니다.
+
3. 조정의 대상
+
하도급대금 미지급, 부당감액, 어음할인료 미지급, 부당한 발주취소, 수령거부 등 하도급거래에서 발생한 분쟁
+
+
+
+

대규모유통업거래분쟁조정

+
+
1. 대규모유통업거래 분쟁조정협의회 설치이유
+
대규모유통업거래 분쟁조정협의회는 불공정거래행위로 발생한 대규모유통업자와 납품업자 등 사이의 분쟁을 조정하기 위하여 설치되었으며, 우리 원은 2012년부터 이를 운영하고 있습니다.
+
2. 대규모유통업거래 분쟁조정협의회 구성
+
대규모유통업거래 분쟁조정협의회는 공익을 대표하는 위원 3명, 대규모유통업자를 대표하는 위원 3명, 납품업자를 대표하는 위원 3명 등 모두 9명으로 구성되고, 위원 및 위원장은 공정거래위원회 위원장이 임명 또는 위촉합니다.
+
3. 조정의 대상
+
서면 계약서 미교부, 상품대금의 미지급, 판촉비용 부담의 전가, 계약기간 중 계약조건의 변경 등 대규모유통업자와 납품업자등 사이의 분쟁
+
+
+
+

약관분쟁조정

+
+
1. 약관분쟁조정협의회 설치이유
+
약관 분쟁조정협의회는 불공정약관으로 발생한 사업자와 고객(소비자기본법에 따른 소비자 제외) 사이의 분쟁을 조정하기 위하여 설치되었으며, 우리 원은 2012년부터 이를 운영하고 있습니다.
+
2. 약관분쟁조정협의회 구성
+
약관 분쟁조정협의회는 교수, 법조인 등 약관규제 및 소비자 분야의 전문가로서 공정거래위원회 위원장이 위촉하는 9인의 위원으로 구성되고, 위원의 임기는 3년이며 연임할 수 있습니다.
+
3. 조정의 대상
+
+ 고객의 해제권을 배제·제한하는 등 약관의 내용이 약관규제법 제17조를 위반한 약관 또는 이와 법률상 쟁점에 있어 공통되는 약관으로 인한 분쟁 + + ※ 조정신청 제외 대상 +
- 조정신청이 있기 전에 공정거래위원회가 조사 중인 사건 +
- 조정신청의 내용이 약관의 해석이나 그 이행을 요구하는 사건 +
- 약관의 무효판정을 요구하는 사건 +
- 해당 분쟁조정사항에 대하여 법원에 소를 제기한 사건 +
- 분쟁해결이나 피해보상에 관한 합의가 이루어진 사건 +
- 「중재법」에 따라 중재가 진행 중이거나 신청된 사건 +
- 불공정 약관으로 피해를 입은 고객이 '소비자기본법'에 따른 소비자인 사건 +
+
+
4. 집단분쟁조정 절차
+
불공정약관으로 인한 피해가 같거나 비슷한 유형으로 발생한 고객(「소비자기본법」에 따른 소비자는 제외)의 수가 20명 이상일 경우, 협의회는 효과적인 피해구제를 위하여 집단분쟁조정을 실시할 수 있습니다.
+
+
+ +
+

대리점 분쟁조정

+
+
1. 대리점분쟁조정협의회 설치이유
+
대리점분쟁조정협의회는 불공정거래행위로 발생한 공급업자와 대리점간 분쟁을 조정하기 위하여 설치되었으며, 우리 원은 2017년부터 이를 운영하고 있습니다.
+
2. 대리점분쟁조정협의회 구성
+
대리점분쟁조정협의회는 공익을 대표하는 위원 3명과 공급업자의 이익을 대표하는 위원 3명, 대리점의 이익을 대표하는 위원 3명 등 모두 9명으로 구성되고, 위원은 조정원의 장이 추천하고 공정거래위원회 위원장이 임명 또는 위촉합니다. 위원의 임기는 3년이며 협의회 위원장은 공익을 대표하는 위원 중에서 공정거래위원회 위원장이 임명 또는 위촉합니다.
+
3. 조정의 대상
+
대리점거래 계약서 미제공 구입 강제, 경제상 이익 제공 강요, 판매목표 강제, 경영활동 간섭, 주문내역의 확인요청 거부 또는 회피 등 대리점거래에서 발생한 분쟁
+
+

[분쟁조정 신청]

+
    +
  • · 대리점 분쟁조정 대상이 되는 거래 유형
  • +
  • · 대리점거래의 분쟁에 관한 사항
  • +
  • · 대리점 거래 : 공급업자와 대리점 사이에 상품 또는 용역의 재판매 또는 위탁판매를 위하여 행하여지는 거래로서 일정 기간 지속되는 계약을 체결하여 반복적으로 행하여지는 거래
  • +
  • · 공급업자 : 생산 또는 구매한 상품 또는 용역을 대리점에게 공급하는 사업자
  • +
  • · 대리점 : 공급업자로부터 상품 또는 용역을 공급받아 불특정다수의 소매업자 또는 소비자에게 재판매 또는 위탁판매 하는 사업자
  • +
  • + · 적용제외 +
      +
    • 공급업자가 중소기업자(「중소기업기본법」 제2조제1항 또는 제3항에 따른 자를 말하며, 「중소기업협동조합법」 제3조제1항에 따른 중소기업협동조합을 포함한다. 이하 같다)에 해당하는 경우
    • +
    • 대리점이 중소기업자에 해당하지 아니하는 경우
    • +
    • 공급업자가 대리점에 대하여 거래상 우월한 지위를 가지고 있다고 인정되지 아니하는 경우
    • +
    • 다음 각 호의 어느 하나에 해당하는 거래 +
        +
      • 「가맹사업거래의 공정화에 관한 법률」 제2조 제1호에서 정하는 가맹사업에 해당하는 거래
      • +
      • 「자본시장과 금융투자업에 관한 법률」 제6조 제1항에서 정하는 금융투자업에 해당하는 거래
      • +
      • 「대규모유통업에서의 거래 공정화에 관한 법률」 제2호에서 정하는 대규모유통업자와 납품업 자 등 사이의 거래
      • +
      • 그 밖에 거래의 성격 및 대리점의 보호 필요성 등을 고려하여 대리점거래에서 제외할 필요 가 있는 것으로서 대통령령으로 정하는 거래
      • +
      +
    • +
    +
  • +
  • + · 분쟁조정 대상이 되는 공급업자의 행위 +
      +
    • 대리점과 계약을 체결한 즉시 공급업자가 대리점계약서를 제공하지 않은 경우
    • +
    • 공급업자가 자기의 거래상의 지위를 부당하게 이용하여 대리점이 구입할 의사가 없는 상품 또는 용역을 구입하도록 강제하는 행위
    • +
    • 공급업자가 자기의 거래상의 지위를 부당하게 이용하여 대리점에게 자기를 위하여 금전ㆍ물품ㆍ용역, 그 밖의 경제상 이익을 제공하도록 강요하는 행위
    • +
    • 공급업자가 자기의 거래상의 지위를 부당하게 이용하여 자기가 공급하는 상품 또는 용역과 관련하여 대리점에게 거래에 관한 목표를 제시하고 이를 달성하도록 강제하는 행위
    • +
    • 공급업자가 자기의 거래상의 지위를 부당하게 이용하여 위에 해당하는 행위 외의 방법으로 대리점에게 불이익이 되도록 거래조건을 설정 또는 변경하거나 그 이행과정에서 불이익을 주는 행위
    • +
    • 공급업자가 자기의 거래상의 지위를 부당하게 이용하여 대리점의 경영활동을 간섭하는 행위
    • +
    • 공급업자가 자기의 거래상의 지위를 부당하게 이용하여 대리점이 청약 또는 구입의사를 표시한 제품, 수량 등 주문내역의 정당한 확인요청에 대하여 이를 거부 또는 회피하는 행위
    • +
    • 공급업자가 분쟁조정신청, 공정거래위원회 신고 등의 행위를 한 대리점에게 그 행위를 한 것을 이유로 거래의 정지 또는 물량의 축소, 그 밖에 불이익을 주는 행위
    • +
    +
  • +
+

[분쟁조정신청서 작성 방법 중 대리점거래 해당 유형]

+
    +
  • · 대리점거래 계약서 미제공 구입 강제, 경제상 이익 제공 강요, 판매목표 강제, 경영활동 간섭, 주문내역의 확인요청 거부 또는 회피 등 대리점거래에서 발생한 분쟁
  • +
  • · 적용제외 : 공급업자가 중소기업자에 해당하거나 대리점이 중소기업자에 해당하지 아니하는 경우, 공급업자가 대리점에 대하여 거래상 우월한 지위를 가지고 있다고 인정되지 아니하는 경우, 가맹사업ㆍ금융투자업ㆍ대규모유통업에 해당하는 거래 등은 제외
  • +
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/web/site/case/jsp/content/01010200000000000000.jsp b/src/main/webapp/WEB-INF/jsp/web/site/case/jsp/content/01010200000000000000.jsp new file mode 100644 index 00000000..9286e5c0 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/site/case/jsp/content/01010200000000000000.jsp @@ -0,0 +1,101 @@ +<%@ 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'%> + + + + + 한국공정거래조정원 온라인분쟁조정시스템 > 분쟁조정 안내 > 분쟁조정 안내 > 분쟁조정 제도 + + + + + + + + + + + + + + + + + + +
+ + +
    +
  • +
  • 분쟁조정 안내
  • +
  • 분쟁조정 안내
  • +
  • 분쟁조정 절차
  • +
+ + +

분쟁조정 절차

+

분쟁조정 절차에 대해 안내해 드립니다.

+ + 분쟁조정 단계별 절차 안내 +
+ 1. 직접신청 / 조정의뢰(공정위) 다음 2. 한국공정거래조정원 사건 접수 다음 3. 사실관계 확인 다음 4. 분쟁조정협의회 다음 4-1. 조정안제시 의결 (수락시) 조정성립 (불수락 시) 조정 불성립 4-2. 조정절차 종료 의결 - 조정 성립, 조정불성립, 종결* 다음 4-2-1. 분쟁조정 종료 다음 4-2-2 공정거래위원회 보고 및 당사자 종료사실 통지** +
    +
  • * 취하, 소제기, 각하, 조정안 미제시 등 법령 등에 의하여 조정절차를 종료한 경우
  • +
  • ** 조정이 성립되지 않은 경우, 피신청인의 관련 법률 위반 여부를 확인하고 싶은 신청인은 조정원의 통지 공문 내용에 따라 공정거래위원회에 신고서 제출
  • +
+
+ +
+
1. 신청서 접수
+
+ 우리 원은 온라인 분쟁조정시스템을 통해 조정신청을 접수합니다.
(다만 시스템 이용에 어려움이 있어 방문접수 또는 우편접수를 원하시는 경우 우리 원 대표번호(1588-1490)로 문의하여 주시기 바랍니다.) +

※ 신청서 작성 시 유의사항

+
    +
  • 양 당사자 연락처를 정확히 기재바랍니다.
  • +
  • 사안이 다양할 경우 피해금액이 큰 주장 위주로 작성해 주시기 바랍니다.
  • +
+
+
2. 양당사자 접수통지
+
+ 사건 접수 후 담당 조사관이 등기우편으로 양 당사자에게 접수사실 및 자료 요청을 공문으로 통지해 드립니다. 단, 접수과정에서 우리 원의 조정대상에 해당하지 않는 경우 조정절차가 종료될 수 있습니다. +
+
3. 자료제출
+
양당사자는 기한 내에 분쟁 관련 자료(보완서, 답변서, 일반현황표)를 제출해야 하며, 당사자가 2회 이상 자료제출 요청에 불응하면 분쟁조정 절차가 불성립 될 수 있습니다. +
(일반현황표는 양당사자의 거래관계 및 분쟁조정 대상 여부검토에 활용됩니다.)
+
4. 사실관계 조사
+
양 당사자가 제출한 자료들의 검토를 검쳐 본격적인 조정절차가 진행됩니다. 필요한 경우 당사자들에게 출석을 요구할 수 있으며, 조정절차 중 당사자가 직접 합의하여 조정이 종료될 수 있습니다. 반면 자료제출 또는 출석요구 등 조사과정에 2회 이상 참여하지 않는 경우 조정절차가 불성립 될 수 있습니다.
+
5. 협의회 개최 및 의결
+
사실관계 조사 등을 거친 모든 분쟁사건은 분쟁조정협의회에 상정되어 심의절차를 거치게 됩니다. 이 과정에서 필요한 경우 분쟁조정협의회에 분쟁당사자가 참여하여 의견을 진술하는 경우도 있으며, 분쟁조정협의회의 심의를 통해 조정절차 종료 등 여부를 최종 의결하면 사실상 조정절차가 종료됩니다. (협의회 의결 후 분쟁당사자 분들에게 종료 여부 등이 통지되며, 본 시스템 등을 통해 확인하실 수 있습니다.)
+
+ + 집단분쟁조정(약관) 및 주요 절차 안내 +
+ 약관 집단 분쟁조정 +

공정거래위원회, 고객 또는 사업자는 「약관의 규제에 따른 법률(이하, ‘약관법’이라 합니다)」 제28조에 따라, 조정이 성립된 사항과 같거나 비슷한 유형의 피해가 다수 고객에게 발생할 가능성이 높다고 판단한 경우로서, 대통령령으로 정하는 사건에 대하여는 약관분쟁조정협의회에 일괄적인 분쟁조정을 의뢰하거나 신청할 수 있습니다(약관법 제28조의2).

+
+ +
+ 1. 직접신청 / 조정의뢰(공정위) 다음 2. 분쟁조정협의회 절차개시의결 다음 3. 집단분쟁조정절차 게시공고(일간지, 홈페이지 등 14일 이상) - 추가당사자 접수 /- 대표당사자 선임 / - 당사자 제외 다음 4. 분쟁조정협의회 다음 4-1. 조정안제시 의결 (수락시) 조정성립 - 보상계획 제출 권고 (안될경우 다시 분쟁조정협의회) (불수락 시) 조정 불성립 4-2. 조정절차 종료 의결 - 조정성립, 조정불성립, 종결 - 분쟁조정 종료 - 공정거래위원회 보고 및 당사자 종료사실 통지 +
+ +
+
1. 집단분쟁조정 신청(약관법 제28조의2 제1항)
+
+ 공정거래위원회, 고객(「소비자기본법」 제2조 제1호에 따른 소비자 제외), 사업자는 약관분쟁조정협의회에 서면으로 집단분쟁조정을 의뢰 또는 신청할 수 있습니다. +
+
2. 분쟁조정협의회 개시의결 및 공고(약관법 제28조의2 제2항)
+
+ 집단분쟁조정을 의뢰받거나 신청받은 협의회는 협의회의 의결로서 집단분쟁조정 절차를 개시할 수 있습니다. 이 경우 협의회는 우리 원 홈페이지 및 일간신문에 14일 이상 그 절차의 개시를 공고합니다. +
+
3. 추가당사자 접수(약관법 제28조의2 제3항)
+
양당사자는 기한 내에 분쟁 관련 자료(보완서, 답변서, 일반현황표)를 제출해야 하며, 당사자가 2회 이상 자료제출 요청에 불응하면 분쟁조정 절차가 불성립 될 수 있습니다. +
(일반현황표는 양당사자의 거래관계 및 분쟁조정 대상 여부검토에 활용됩니다.)
+
4. 사실관계 조사
+
양 당사자가 제출한 자료들의 검토를 검쳐 본격적인 조정절차가 진행됩니다. 필요한 경우 당사자들에게 출석을 요구할 수 있으며, 조정절차 중 당사자가 직접 합의하여 조정이 종료될 수 있습니다. 반면 자료제출 또는 출석요구 등 조사과정에 2회 이상 참여하지 않는 경우 조정절차가 불성립 될 수 있습니다.
+
5. 협의회 개최 및 의결
+
사실관계 조사 등을 거친 모든 분쟁사건은 분쟁조정협의회에 상정되어 심의절차를 거치게 됩니다. 이 과정에서 필요한 경우 분쟁조정협의회에 분쟁당사자가 참여하여 의견을 진술하는 경우도 있으며, 분쟁조정협의회의 심의를 통해 조정절차 종료 등 여부를 최종 의결하면 사실상 조정절차가 종료됩니다. (협의회 의결 후 분쟁당사자 분들에게 종료 여부 등이 통지되며, 본 시스템 등을 통해 확인하실 수 있습니다.)
+
+ +
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/web/user/index/subIndex.jsp b/src/main/webapp/WEB-INF/jsp/web/user/index/subIndex.jsp new file mode 100644 index 00000000..b2328e68 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/user/index/subIndex.jsp @@ -0,0 +1,13 @@ +<%@ page contentType="text/html;charset=utf-8" %> +<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%> +<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ page import="seed.utils.SeedProperties"%> +<%@ page import="seed.utils.SeedUtils"%> +<%@ page import="java.util.Date"%> +<%@ page import="java.text.SimpleDateFormat"%> + + + + \ No newline at end of file