2024-09-12 14:43 관리자 게시판 작업

This commit is contained in:
myname 2024-09-12 14:43:35 +09:00
parent cfbac74f1a
commit 0444c90d8b
22 changed files with 1243 additions and 21 deletions

View File

@ -36,7 +36,7 @@ import seed.com.gtm.util.JSPUtil;
import seed.com.gtm.util.Nanum;
import seed.com.gtm.util.Nice;
import seed.com.gtm.util.PageMaker;
import seed.com.gtm.util.Criteria;
import seed.com.gtm.util.SeedCriteria;
import seed.utils.ApplicationProperty;
import seed.utils.SeedUtils;
@ -67,7 +67,7 @@ public class BaseController {
@RequestMapping(value = "/gtm/case/{pageFolder}/{pageName}/{pageAction}.do")
public ModelAndView getManagerPage(HttpServletRequest request,
HttpSession session, Map<String, Object> map,
Criteria cri,
SeedCriteria cri,
@PathVariable(value="pageFolder") String pageFolder,
@PathVariable(value="pageName") String pageName,
@PathVariable(value="pageAction") String pageAction

View File

@ -14,9 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import seed.com.gtm.util.Criteria;
import seed.com.gtm.seedfile.SeedFileService;
import seed.com.gtm.util.PageMaker;
import seed.com.gtm.util.SeedCriteria;
@Controller
@RequestMapping("/gtm/case")
@ -62,7 +62,7 @@ public class CaseBoardController {
// /gtm/case/board/form/list.do
@RequestMapping("/board/{boardIdx}/list.do")
public String boardList(ModelMap model, HttpSession session, Criteria cri,@RequestParam Map<String,Object> paramMap, @PathVariable(value="boardIdx") String boardIdx){
public String boardList(ModelMap model, HttpSession session, SeedCriteria cri,@RequestParam Map<String,Object> paramMap, @PathVariable(value="boardIdx") String boardIdx){
//로그인페이지로 튕겨나가지 않게 우선은 임시방편
session.setAttribute("siteIdx", "case");

View File

@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import seed.com.gtm.seedfile.SeedFileService;
import seed.com.gtm.util.Criteria;
import seed.com.gtm.util.PageMaker;
import seed.com.gtm.util.SeedCriteria;
import seed.com.user.counsel.CounselService;
import seed.utils.SeedUtils;
@ -40,7 +41,7 @@ public class OnlineCounselController {
// /gtm/case/onlineCounsel/list.do
@RequestMapping("/onlineCounsel/list.do")
public String counselList(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, Criteria cri){
public String counselList(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
session.setAttribute("siteIdx", "case");
//페이징 관련
paramMap.put("pageStart", cri.getPageStart());
@ -218,7 +219,7 @@ public class OnlineCounselController {
// /gtm/case/onlineCounsel/lawList.do
@RequestMapping("/onlineCounsel/lawList.do")
public String lawCounselList(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, Criteria cri){
public String lawCounselList(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
session.setAttribute("siteIdx", "case");
//페이징 관련
paramMap.put("pageStart", cri.getPageStart());

View File

@ -0,0 +1,17 @@
package seed.com.gtm.dao;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.RequestParam;
public interface NewsLetterDao {
public List<Map<String,Object>> newsList(@RequestParam Map<String,Object> paramMap);
public int listCnt(Map<String, Object> paramMap);
public void newsLetterDel(Map<String, Object> paramMap);
public void newsLetterDel2(Map<String, Object> paramMap);
}

View File

@ -0,0 +1,39 @@
package seed.com.gtm.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class NewsLetterDaoImpl implements NewsLetterDao {
@Autowired
private SqlSession sqlSession;
@Override
public List<Map<String, Object>> newsList(Map<String, Object> paramMap) {
List<Map<String, Object>> r = sqlSession.selectList("newsletter.selectList", paramMap);
System.out.println("daoImpl :: "+r.toString());
return r;
}
@Override
public int listCnt(Map<String, Object> paramMap) {
return sqlSession.selectOne("newsletter.selectCnt",paramMap);
}
@Override
public void newsLetterDel(Map<String, Object> paramMap) {
sqlSession.update("newsletter.delete", paramMap);
}
@Override
public void newsLetterDel2(Map<String, Object> paramMap) {
sqlSession.delete("newsletter.delete2", paramMap);
}
}

View File

@ -15,8 +15,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import seed.com.gtm.seedfile.SeedFileService;
import seed.com.gtm.util.Criteria;
import seed.com.gtm.util.PageMaker;
import seed.com.gtm.util.SeedCriteria;
import seed.utils.SeedDbUtilsSupport;
@Controller
@ -40,7 +40,7 @@ public class ExamBoardController {
public String examWrite(ModelMap model, @RequestParam Map<String,Object> paramMap, @PathVariable(value="boardIdx") String boardIdx){
model.addAttribute("boardIdx", boardIdx);
return "/_extra/gtm/exam/write";
return "/seed/_extra/gtm/exam/write";
}
@RequestMapping(value="/exam/{boardIdx}/write.do", method=RequestMethod.POST)
@ -65,7 +65,7 @@ public class ExamBoardController {
}
@RequestMapping("exam/{boardIdx}/list.do")
public String examList(ModelMap model, HttpSession session, Criteria cri,@RequestParam Map<String,Object> paramMap, @PathVariable(value="boardIdx") String boardIdx){
public String examList(ModelMap model, HttpSession session, SeedCriteria cri,@RequestParam Map<String,Object> paramMap, @PathVariable(value="boardIdx") String boardIdx){
//로그인페이지로 튕겨나가지 않게 우선은 임시방편
session.setAttribute("siteIdx", "case");

View File

@ -14,8 +14,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import seed.com.gtm.util.Criteria;
import seed.com.gtm.util.PageMaker;
import seed.com.gtm.util.SeedCriteria;
@Controller
@RequestMapping("/gtm/case")
@ -59,7 +59,7 @@ public class faqBoardController {
}
@RequestMapping("/faqBbs/list.do")
public String faqBbsList(HttpSession session, ModelMap model, @RequestParam Map<String,Object> paramMap, Criteria cri){
public String faqBbsList(HttpSession session, ModelMap model, @RequestParam Map<String,Object> paramMap, SeedCriteria cri){
//로그인페이지로 튕겨나가지 않게 우선은 임시방편
session.setAttribute("siteIdx", "case");

View File

@ -0,0 +1,108 @@
package seed.com.gtm.news;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
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.bind.annotation.ResponseBody;
import seed.com.gtm.util.PageMaker;
import seed.com.gtm.util.SeedCriteria;
@Controller
@RequestMapping("/gtm/case")
public class NewsLetterController {
@Autowired
private NewsLetterService service;
// /gtm/case/news/write.do
@RequestMapping(value="/news/write.do", method=RequestMethod.GET)
public String memberWrite(){
return "/_extra/gtm/news/write";
}
@RequestMapping(value="/news/write.do", method=RequestMethod.POST)
public String memberWrite(HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map){
return "/_common/jsp/message";
}
@RequestMapping("/news/idCheck.do")
public @ResponseBody Map<String,Object> idDuplCheck(@RequestParam Map<String,Object> paramMap){
return paramMap;
}
@RequestMapping("/news/list.do")
public String newsList(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, SeedCriteria cri){
System.out.println("paramMap :: "+paramMap.toString());
session.setAttribute("siteIdx", "case");
paramMap.put("memberId", session.getAttribute("memberId"));
paramMap.put("memberDept", session.getAttribute("memberDept"));
paramMap.put("pageStart", cri.getPageStart());
paramMap.put("perPageNum", cri.getPerPageNum());
PageMaker pageMaker = new PageMaker();
pageMaker.setCri(cri);
pageMaker.setTotalCount(service.listCnt(paramMap));
List<Map<String, Object>> newsList = service.newsList(paramMap);
model.addAttribute("newsList", newsList);
model.addAttribute("pageMaker", pageMaker);
model.addAttribute("param", paramMap);
return "/seed/_extra/gtm/news/list";
}
@RequestMapping(value="/news/edit.do", method=RequestMethod.GET)
public String memberEdit(ModelMap model,@RequestParam Map<String,Object> paramMap){
return "/_extra/gtm/news/edit";
}
@RequestMapping(value="/news/edit.do", method=RequestMethod.POST)
public String memberUpdate (ModelMap model,@RequestParam Map<String,Object> paramMap, Map<String, Object> map){
return "/_common/jsp/message";
}
@RequestMapping("/news/del.do")
public String newsLetterDel(@RequestParam Map<String,Object> paramMap, Map<String, Object> map){
service.newsLetterDel(paramMap);
map.put("message", "(message)해제되었습니다.");
map.put("url", "/gtm/case/news/list.do");
return "/_common/jsp/message";
}
@RequestMapping("/news/del2.do")
public String newsLetterDel2(@RequestParam Map<String,Object> paramMap, Map<String, Object> map){
service.newsLetterDel2(paramMap);
map.put("message", "(message)삭제되었습니다.");
map.put("url", "/gtm/case/news/list.do");
return "/_common/jsp/message";
}
@RequestMapping("/news/excelDownload.do")
public String excelDownload (@RequestParam HashMap<String, Object> paramMap, ModelMap model) throws Exception{
model.addAttribute("excelResult",paramMap);
return "/commn/excelDownload";
}
}

View File

@ -0,0 +1,32 @@
package seed.com.gtm.news;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import seed.com.gtm.dao.NewsLetterDao;
@Service
public class NewsLetterService {
@Autowired
private NewsLetterDao dao;
public List<Map<String, Object>> newsList(Map<String, Object> paramMap) {
return dao.newsList(paramMap);
}
public int listCnt(@RequestParam Map<String,Object> paramMap){
return dao.listCnt(paramMap);
}
public void newsLetterDel(Map<String, Object> paramMap) {
dao.newsLetterDel(paramMap);
}
public void newsLetterDel2(Map<String, Object> paramMap) {
dao.newsLetterDel2(paramMap);
}
}

View File

@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import seed.com.gtm.seedfile.SeedFileService;
import seed.com.gtm.util.PageMaker;
import seed.com.gtm.util.Criteria;
import seed.com.gtm.util.SeedCriteria;
@Controller
@RequestMapping("/gtm/sample")
@ -124,7 +124,7 @@ public class SampleController {
//목록화면
@RequestMapping("/board/{boardIdx}/list.do")
public String boardList(ModelMap model, HttpSession session, Criteria cri,@RequestParam Map<String,Object> paramMap, @PathVariable(value="boardIdx") String boardIdx){
public String boardList(ModelMap model, HttpSession session, SeedCriteria cri,@RequestParam Map<String,Object> paramMap, @PathVariable(value="boardIdx") String boardIdx){
//로그인페이지로 튕겨나가지 않게 우선은 임시방편
session.setAttribute("siteIdx", "case");

View File

@ -15,8 +15,8 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import seed.com.gtm.seedfile.SeedFileService;
import seed.com.gtm.util.Criteria;
import seed.com.gtm.util.PageMaker;
import seed.com.gtm.util.SeedCriteria;
import seed.utils.SeedUtils;
@Controller
@ -109,7 +109,7 @@ public class TrublchargermngController {
// /gtm/case/trublchargermng/list.do
@RequestMapping("/trublchargermng/list.do")
public String joinList(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Criteria cri){
public String joinList(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, SeedCriteria cri){
session.setAttribute("siteIdx", "case");

View File

@ -8,9 +8,9 @@ public class PageMaker {
private boolean next;
private int displayPageNum = 10;
private Criteria cri;
private SeedCriteria cri;
public void setCri(Criteria cri){
public void setCri(SeedCriteria cri){
this.cri = cri;
}
@ -60,7 +60,7 @@ public class PageMaker {
return displayPageNum;
}
public Criteria getCri(){
public SeedCriteria getCri(){
return cri;
}
}

View File

@ -0,0 +1,9 @@
package seed.com.user.dao;
import java.util.Map;
public interface NewsDao {
public int newsInsert(Map<String, Object> paramMap);
public int newsDelete(Map<String, Object> paramMap);
public int newsDuplication(Map<String, Object> paramMap);
}

View File

@ -0,0 +1,30 @@
package seed.com.user.dao;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class NewsDaoImpl implements NewsDao {
@Autowired
private SqlSession sqlSession;
@Override
public int newsInsert(Map<String, Object> paramMap) {
return sqlSession.insert("news.insert", paramMap);
}
@Override
public int newsDelete(Map<String, Object> paramMap) {
return sqlSession.insert("news.update", paramMap);
}
@Override
public int newsDuplication(Map<String, Object> paramMap) {
return sqlSession.selectOne("news.selectDuplication", paramMap);
}
}

View File

@ -0,0 +1,540 @@
package seed.com.user.news;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.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 seed.com.gtm.util.SeedCriteria;
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.SeedUtils;
@Controller
public class NewsController {
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 NewsService newsService;
@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");
}
///user/news/case/01/322/write.do
@RequestMapping(value="/user/news/{siteIdx}/01/{siteMenuIdx}/write.do", method=RequestMethod.GET)
public ModelAndView onlineCounselWrite(ModelMap map, HttpSession session, @RequestParam Map<String,Object> paramMap,
@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");
}
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));
/*----권한체크 종료----*/
return new ModelAndView("/_extra/user/news/write");
}
// /user/news/case/01/322/regReq.do
@RequestMapping(value="/user/news/{siteIdx}/01/{siteMenuIdx}/regReq.do", method=RequestMethod.POST)
public ModelAndView regReq(ModelMap map, HttpSession session, HttpServletRequest req, HttpServletResponse res, @RequestParam Map<String,Object> paramMap, SeedCriteria cri,
@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");
}
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));
/*----권한체크 종료----*/
//여기서부터 작업할거
String ip = req.getHeader("X-FORWARDED-FOR");
if(ip == null)
ip = req.getRemoteAddr();
paramMap.put("clientEmail", paramMap.get("clientEmail1")+"@"+paramMap.get("hidEmail2"));
paramMap.put("clientIp", ip);
paramMap.put("agreeCheck", (paramMap.get("agreeCheck")=="true"?'Y':'N'));
// 뉴스레터 중복확인
int dupRs = newsService.newsDuplication(paramMap);
if(dupRs > 1){
map.put("siteIdx", "case");
map.put("url", "/user/news/case/01/"+siteMenuIdx+"/write.do");
map.put("message", "user.survey.message.no.overlap");
map.put("opener", "");
map.put("append", "");
map.put("self", "");
return new ModelAndView("/_common/jsp/umessage");
}
// 뉴스레터 추가
int rs = newsService.newsInsert(paramMap);
map.put("siteIdx", "case");
map.put("url", "/user/news/case/01/"+siteMenuIdx+"/write.do");
if(rs==1){
map.put("message", "common.message.reg");
}
else{
map.put("message", "common.message.error.reg");
}
map.put("opener", "");
map.put("append", "");
map.put("self", "");
return new ModelAndView("/_common/jsp/umessage");
}
// /user/news/case/01/322/delReq.do
@RequestMapping(value="/user/news/{siteIdx}/01/{siteMenuIdx}/delReq.do", method=RequestMethod.POST)
public ModelAndView delReq(ModelMap map, HttpSession session, HttpServletRequest req, HttpServletResponse res, @RequestParam Map<String,Object> paramMap, SeedCriteria cri,
@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");
}
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));
/*----권한체크 종료----*/
//여기서부터 작업할거
String ip = req.getHeader("X-FORWARDED-FOR");
if(ip == null)
ip = req.getRemoteAddr();
paramMap.put("clientEmail", paramMap.get("clientEmail1")+"@"+paramMap.get("hidEmail2"));
paramMap.put("clientIp", ip);
// 뉴스레터 제거
int rs = newsService.newsDelete(paramMap);
map.put("siteIdx", "case");
map.put("url", "/user/news/case/01/"+siteMenuIdx+"/write.do");
if(rs>0){
map.put("message", "common.message.del");
}
else if(rs == 0){
map.put("message","common.message.no.history");
}
else{
map.put("message", "common.message.error.del");
}
map.put("opener", "");
map.put("append", "");
map.put("self", "");
return new ModelAndView("/_common/jsp/umessage");
}
}

View File

@ -0,0 +1,29 @@
package seed.com.user.news;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import seed.com.user.dao.NewsDao;
@Service
public class NewsService {
@Autowired
private NewsDao dao;
public int newsInsert(Map<String, Object> paramMap){
return dao.newsInsert(paramMap);
}
public int newsDelete(Map<String, Object> paramMap){
return dao.newsDelete(paramMap);
}
public int newsDuplication(Map<String, Object> paramMap) {
return dao.newsDuplication(paramMap);
}
}

View File

@ -19,6 +19,7 @@ import org.springframework.web.servlet.ModelAndView;
import seed.manager.member.service.ManagerMemberService;
import seed.manager.site.service.ManagerSiteManagerService;
import seed.manager.skin.service.ManagerSiteSkinService;
import seed.utils.FairnetUtils;
import seed.utils.InterceptorCheck;
import seed.utils.SeedUtils;
@ -493,8 +494,11 @@ public class ManagerSiteSkinController {
, HttpSession p_session
, Map<String, Object> p_map
) {
boolean b_ret = true;
b_ret = FairnetUtils.hasAuth(p_memberIdx, p_memberGrant, p_memberAuth, p_session, p_map);
//기존 권한 관리 부분을 주석 처리함 - 필요시 사용할것
/*
try {

View File

@ -28,6 +28,7 @@ import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import seed.manager.member.service.ManagerMemberService;
import seed.manager.site.service.ManagerSiteManagerService;
import seed.manager.visual.service.ManagerVisualDataService;
import seed.manager.visual.service.ManagerVisualManagerService;
@ -35,12 +36,11 @@ import seed.manager.visual.service.ManagerVisualRelationDataService;
import seed.manager.visual.service.ManagerVisualRelationIconService;
import seed.manager.visual.service.ManagerVisualRelationSetService;
import seed.manager.visual.service.ManagerVisualSetService;
import seed.manager.member.service.ManagerMemberService;
import seed.map.T_VISUAL_DATA;
import seed.map.T_VISUAL_MANAGER;
import seed.map.T_VISUAL_RELATION_DATA;
import seed.map.T_VISUAL_RELATION_SET;
import seed.map.T_VISUAL_RELATION_ICON;
import seed.map.T_VISUAL_RELATION_SET;
import seed.map.T_VISUAL_SET;
import seed.utils.InterceptorCheck;
import seed.utils.Paging;
@ -607,12 +607,14 @@ public class ManagerVisualController {
String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N");
boolean memberAuth = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx);
/*
if(memberIdx == 0 || (!memberGrant.equals("S") && !memberAuth)){
setSessionRemove(session);
map.put("url", "/gtm/login.do");
map.put("message", "common.message.no.grant");
return new ModelAndView("/_common/jsp/message");
}
*/
Iterator<String> iteratorfileNames = multipartHttpServletRequest.getFileNames();

View File

@ -0,0 +1,39 @@
package seed.utils;
import java.util.Map;
import javax.servlet.http.HttpSession;
public class FairnetUtils {
//private static Logger log = Logger.getLogger(FairnetUtils.class);
public static boolean hasAuth(
int p_memberIdx
, String p_memberGrant
, boolean p_memberAuth
, HttpSession p_session
, Map<String, Object> p_map
) {
boolean b_ret = true;
//기존 권한 관리 부분을 주석 처리함 - 필요시 사용할것
/*
try {
if(p_memberIdx == 0 || (!p_memberGrant.equals("S") && !p_memberAuth)){
setSessionRemove(p_session);
p_map.put("url", "/gtm/login.do");
p_map.put("url", "/uat/uia/EgovLoginUsr.do");
p_map.put("message", "common.message.no.grant");
//return new ModelAndView("/_common/jsp/message");
b_ret = false;
}
}catch(Exception ex) {
ex.printStackTrace();
}
*/
return b_ret;
}
}

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="newsletter">
<select id="selectList" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT *
FROM (
SELECT ROW_.*, ROWNUM AS RNUM
FROM (
SELECT SEQ_NO
,CLIENT_NAME
,CLIENT_EMAIL
,CLIENT_IP
,CLIENT_CHECK
,TO_CHAR(CLIENT_DATE,'YYYY-MM-DD HH:mm:SS') AS CLIENT_DATE
FROM C_NEWSLETTER
WHERE 1=1
<if test='searchValue != null and searchValue != ""'>
<choose>
<when test='searchValue == "Y"'>AND CLIENT_CHECK = #{searchValue}</when>
<when test='searchValue == "N"'>AND CLIENT_CHECK = #{searchValue}</when>
</choose>
</if>
<if test='dateSt neq null and dateSt neq ""'>
AND TO_CHAR(CLIENT_DATE, 'YYYY-MM-DD HH24:MI:SS') BETWEEN CONCAT(#{dateSt},' 00:00:00')
<if test='dateEnd eq null or dateEnd eq ""'>
AND TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test='dateEnd neq null and dateEnd neq ""'>
AND CONCAT(#{dateEnd},' 24:00:00')
</if>
</if>
ORDER BY SEQ_NO DESC
) ROW_
)
WHERE RNUM > #{pageStart} AND #{perPageNum} >= ROWNUM
</select>
<select id="selectCnt" parameterType="java.util.HashMap" resultType="int">
SELECT COUNT(*)
FROM C_NEWSLETTER
WHERE 1=1
<if test='searchValue != null and searchValue != ""'>
<choose>
<when test='searchValue == "Y"'>AND CLIENT_CHECK = #{searchValue}</when>
<when test='searchValue == "N"'>AND CLIENT_CHECK = #{searchValue}</when>
</choose>
</if>
<if test='dateSt neq null and dateSt neq ""'>
AND TO_CHAR(CLIENT_DATE, 'YYYY-MM-DD HH24:MI:SS') BETWEEN CONCAT(#{dateSt},' 00:00:00') AND
<if test='dateEnd eq null or dateEnd eq ""'>
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test='dateEnd neq null and dateEnd neq ""'>
CONCAT(#{dateEnd},' 24:00:00')
</if>
</if>
</select>
<delete id="delete" parameterType="java.util.HashMap">
UPDATE C_NEWSLETTER
SET CLIENT_CHECK = 'N'
WHERE SEQ_NO = #{newsSeq}
</delete>
<delete id="delete2" parameterType="java.util.HashMap">
DELETE FROM C_NEWSLETTER
WHERE SEQ_NO = #{newsSeq}
</delete>
</mapper>

View File

@ -0,0 +1,299 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!doctype html>
<html lang="ko">
<head>
<title>정보 관리</title>
<link href='/css/space.css' rel='stylesheet' type='text/css'/>
<link href='/css/seed.contents.css' rel='stylesheet' type='text/css'/>
<link href='/css/seed.mediaquery.css' rel='styleGsheet' type='text/css'/>
<link href='/site/ntcc/css/gtmCustom.css' rel='stylesheet' type='text/css'/>
<script src="/editor/webnote.js"></script>
</head>
<body>
<div class="page-title-wrap clear">
<div class="page-title-inner">
<h3 class="page-title">뉴스레터 관리</h3>
<div class="sch-content-wrap clear" style="margin-left: 20px">
<button type="button" class="btn-page-sch" title="검색 완료 버튼" onclick="clipCall('news');">엑셀다운로드</button>
</div>
<div class="tooltipBox type01">
<button type="button" class="page-tip">페이지안내</button>
<div class="tooltipText">
<p>뉴스레터 관리를 할 수 있는 리스트 페이지 입니다.</p>
</div>
</div>
</div>
<form:form name="searchFrm" id="searchFrm" action="" method="post">
<input type="hidden" id="crfNm" name="crfNm" value="">
<input type="hidden" id="CLIPDATA_SEARCHVALUE" name="CLIPDATA_SEARCHVALUE" value="">
<input type="hidden" id="CLIPDATA_DATEST" name="CLIPDATA_DATEST" value="">
<input type="hidden" id="CLIPDATA_DATEEND" name="CLIPDATA_DATEEND" value="">
<div class="sch-content-wrap clear">
<input type="hidden" name="page" id="page" value="${pageMaker.cri.page}">
<input type="hidden" name="newsSeq" id="newsSeq" value="">
<fieldset>
<select name="searchType" id="searchType" class="sch-select" title="자료유형 선택">
<option value="A" <c:if test="${param.searchType == 'A'}">selected="selected"</c:if>>전체</option>
<option value="Y" <c:if test="${param.searchType == 'Y'}">selected="selected"</c:if>>신청</option>
<option value="N" <c:if test="${param.searchType == 'N'}">selected="selected"</c:if>>해제</option>
</select>
<input type="hidden" id="_searchValue" name="searchValue" value="${param.searchType}">
<button type="button" class="btn-page-sch" title="검색 완료 버튼" onclick="goPage('search', '')">검색</button>
</fieldset>
</div>
<div style="float: right; margin-right: 10px;">
<input type="text" id="dateSt" name="dateSt" value="${param.dateSt }"> ~ <input type="text" id="dateEnd" name="dateEnd" value="${param.dateEnd }">
</div>
</form:form>
</div>
<div class="form-wrap">
<div class="table-layout br-none">
<table>
<caption>뉴스레터 관리 테이블입니다.</caption>
<colgroup>
<col class="item-mobile-hidden" style="width:5%">
<col class="title">
<col class="item-mobile-hidden" style="width:10%">
</colgroup>
<thead>
<tr>
<th scope="col" class="item-mobile-hidden">번호</th>
<th scope="col">신청인명</th>
<th scope="col">이메일</th>
<th scope="col" class="item-mobile-hidden">IP</th>
<th scope="col">상태</th>
<th scope="col" class="item-mobile-hidden">등록일</th>
<th scope="col">관리</th>
</tr>
</thead>
<tbody>
<c:forEach items="${newsList}" var="list" varStatus="status">
<tr>
<td>${(pageMaker.totalCount - ((pageMaker.cri.page-1)*pageMaker.cri.perPageNum)) - status.index}</td>
<td>${list.CLIENT_NAME}</td>
<td>${list.CLIENT_EMAIL}</td>
<td>${list.CLIENT_IP}</td>
<c:if test="${list.CLIENT_CHECK eq 'Y' }"><td>신청</td></c:if>
<c:if test="${list.CLIENT_CHECK eq 'N' }"><td>해제</td></c:if>
<td>${list.CLIENT_DATE}</td>
<td>
<c:choose>
<c:when test="${list.CLIENT_CHECK eq 'Y' }">
<div class="change-state-area" style="padding: 0 0;margin-top: 2px;display: inline-block;">
<button type="button" class="btn-change-state" onclick="goPage('del','${list.SEQ_NO}')" >해제</button>
</div>
</c:when>
<c:otherwise>
<div class="change-state-area" style="padding: 0 0;margin-top: 2px;display: inline-block;">
<button type="button" class="btn-change-state" onclick="goPage('del2','${list.SEQ_NO}')" >삭제</button>
</div>
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<c:if test="${newsDept == '1020000000' }">
<div class="change-state-area" style="overflow: hidden;">
<div align="right">
<button type="button" onclick="goPage('write', '')" class="btn-change-state" style="background-color: #5e66ab;">추가</button>
</div>
</div>
</c:if>
</div>
<!-- 페이징 -->
<div class="pagination-container">
<div class="pagination-inner clear">
<div class='pagination-control prev clear'>
<a class='first-btn' href="javascript:goPage('paging', '1')" title="첫페이지"></a>
<c:choose>
<c:when test="${pageMaker.prev}">
<a class='prev-btn' href="javascript:goPage('paging', '${pageMaker.cri.page - 1}')" title="이전페이지"><img src="/img/common/list_navi2.gif" alt="이전 목록으로 이동" /></a>
</c:when>
<c:otherwise>
<a class='prev-btn' href="javascript:goPage('paging', '${pageMaker.cri.page}')" title="이전페이지"><img src="/img/common/list_navi2.gif" alt="이전 목록으로 이동" /></a>
</c:otherwise>
</c:choose>
</div>
<ul class='pagination clear'>
<c:forEach begin="${pageMaker.startPage}" end="${pageMaker.endPage }" var="idx">
<c:choose>
<c:when test="${idx == pageMaker.cri.page }">
<li><a class='on' href="javascript:goPage('paging', '${idx}')" title="현재페이지">${idx}</a></li>
</c:when>
<c:otherwise>
<li><a href="javascript:goPage('paging', '${idx}')" title="${idx}페이지">${idx}</a></li>
</c:otherwise>
</c:choose>
</c:forEach>
</ul>
<div class='pagination-control next clear'>
<c:choose>
<c:when test="${pageMaker.next}">
<a class='next-btn' href="javascript:goPage('paging', '${pageMaker.cri.page + 1}')" title="다음페이지"><img src="/img/common/list_navi3.gif" alt="다음 목록으로 이동" /></a>
</c:when>
<c:otherwise>
<a class='next-btn' href="javascript:goPage('paging', '${pageMaker.cri.page}')" title="다음페이지"><img src="/img/common/list_navi3.gif" alt="다음 목록으로 이동" /></a>
</c:otherwise>
</c:choose>
<a class='last-btn' href="javascript:goPage('paging', '${pageMaker.endPage}')" title="마지막페이지"><img src="/img/common/list_navi4.gif" alt="마지막 목록으로 이동" /></a>
</div>
</div>
</div>
<!-- 페이징 END -->
<script type="text/javascript">
$(document).ready(function(){
var page = '${pageMaker.cri.page}';
if(page.length != 0){
$("#page").val(page);
}
//jQuery DatePicker Option
var dateOption = {
showOn: "button",
buttonImage: "/img/icon_calendar.gif",
buttonImageOnly: true,
dateFormat: 'yy-mm-dd',
showMonthAfterYear:true,
buttonText: "달력",
monthNames: ['년 1월','년 2월','년 3월','년 4월','년 5월','년 6월','년 7월','년 8월','년 9월','년 10월','년 11월','년 12월'],
dayNamesMin: ['일', '월', '화', '수', '목', '금', '토'],
changeMonth: true,
changeYear: true,
gotoCurrent: false,
showButtonPanel:true,
yearRange:'-100:+10'
,maxDate : '+0d'
//오늘을 기준으로 지난 날만 선택하려면 minDate를 maxDate로 변경, 전체 선택하려면 minDate나 maxDate 삭제
};
//시작일
jQuery("#dateSt, #dateEnd").datepicker(dateOption);
//종료일
//jQuery("#Dateend").datepicker(dateOption);
/*
제작자 : 최병기
제작일 : 2013.01.25
시작일 종료일 검증
시작일의 ID 맨 뒤에 st를 붙인다.
종료일의 ID 맨 뒤에 end를 붙인다.
단, ID는 동일하게 설정하고 뒤에 st, end를 붙이면 된다.
*/
jQuery('input').change(function(){
if(this.type == 'text'){
var startid = "";
var endid = "";
var startval = "";
var endval = "";
var id = "";
startid = this.id.substring(this.id.length-2);
endid = this.id.substring(this.id.length-3);
if(startid != "" && startid == 'St'){
var id = this.id.substring(this.id.length-2, -this.id.length);
//시작일 값
startval = jQuery(this).val();
//종료일값
endval = jQuery("#"+id+"End").val();
if(endval != ""){
startval = startval.replace(/-/gi, "").replace(/ /gi, "").replace(/:/gi, "");
endval = endval.replace(/-/gi, "").replace(/ /gi, "").replace(/:/gi, "");
if(startval > endval){
alert("종료일이 시작일보다 앞섭니다. 다시 선택해 주세요.");
jQuery(this).val("");
}
}
}else if(endid != "" && endid == 'End'){
var id = this.id.substring(this.id.length-3, -this.id.length);
//시작일 값
startval = jQuery("#"+id+"St").val();
endval = jQuery(this).val();
if(endval != ""){
startval = startval.replace(/-/gi, "").replace(/ /gi, "").replace(/:/gi, "");
endval = endval.replace(/-/gi, "").replace(/ /gi, "").replace(/:/gi, "");
if(startval > endval){
alert("종료일이 시작일보다 앞섭니다. 다시 선택해 주세요.");
jQuery(this).val("");
}
}
}
}
});
$("#searchType").change(function(){
$("#_searchValue").val($(this).val());
});
});
//클립리포트 호출
function clipCall(crfNm){
$("#crfNm").val(crfNm);
$("#CLIPDATA_SEARCHVALUE").val($("#_searchValue").val());
$("#CLIPDATA_DATEST").val($("#dateSt").val());
$("#CLIPDATA_DATEEND").val($("#dateEnd").val());
var f = document.searchFrm;
f.target = "blank";
f.action = "/clip/ClipReport4/ClipReportViewer/ClipReport4.do";
f.submit();
f.target = "_self";
}
function goPage(type, param){
if(type == 'write'){
$("#searchFrm").attr("action","/gtm/case/join/write.do");
$("#searchFrm").submit();
}else if(type == 'search'){
$("#page").val("1");
$("#searchFrm").attr("action","/gtm/case/news/list.do");
$("#searchFrm").submit();
}else if(type == 'edit'){
$("#searchFrm").attr("action","/gtm/case/join/edit.do");
$("#newsSeq").val(param);
$("#searchFrm").submit();
}else if(type == 'del'){
if(confirm("해제하시겠습니까?")){
$("#searchFrm").attr("action","/gtm/case/news/del.do");
$("#newsSeq").val(param);
$("#searchFrm").submit();
}
}else if(type == 'del2'){
if(confirm("영구삭제하시겠습니까? 복구할 수 없습니다.")){
$("#searchFrm").attr("action","/gtm/case/news/del2.do");
$("#newsSeq").val(param);
$("#searchFrm").submit();
}
}else if(type == 'paging'){
$("#page").val(param);
$("#searchFrm").attr("action","/gtm/case/news/list.do");
$("#searchFrm").submit();
}else if(type == 'excel'){
alert("준비중입니다.");
return false;
$("#page").val(param);
$("#searchFrm").attr("action","/gtm/case/news/excelDownload.do");
$("#searchFrm").submit();
}
}
</script>
</body>
</html>

View File

@ -20,7 +20,8 @@
<html>
<head>
<meta http-equiv="Content-Language" content="ko">
<link href="<c:url value='/'/>css/jstree/themes/default/style.min.css" rel="stylesheet" type="text/css">
<%-- <link href="<c:url value='/'/>css/jstree/themes/default/style.min.css" rel="stylesheet" type="text/css"> --%>
<link href="<c:url value='/'/>css/style.min.css" rel="stylesheet" type="text/css">
<style>
.jstree_orgChart {
overflow: auto;