Merge branch 'tolag3'

This commit is contained in:
leejunho 2024-09-03 15:15:06 +09:00
commit b0ce557f37
75 changed files with 23238 additions and 109 deletions

59
pom.xml
View File

@ -342,11 +342,11 @@
<version>3.16</version>
</dependency>
<dependency>
<!--<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
</dependency>-->
<!-- 자동완성기능 gson 사용 -->
<dependency>
@ -390,11 +390,11 @@
</dependency>
<dependency>
<!--<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
</dependency>-->
<!-- OZ 스케쥴러 연동 ozsfw80 -->
<!--<dependency>
@ -446,6 +446,57 @@
<version>5.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.media/jai-core -->
<dependency>
<groupId>javax.media</groupId>
<artifactId>jai-core</artifactId>
<version>1.1.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.jcraft/jsch -->
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.44-1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/fr.opensagres.xdocreport/org.apache.poi.xwpf.converter.core -->
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.apache.poi.xwpf.converter.core</artifactId>
<version>1.0.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/fr.opensagres.xdocreport/org.apache.poi.xwpf.converter.pdf -->
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
<version>1.0.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/fr.opensagres.xdocreport/org.apache.poi.xwpf.converter.xhtml -->
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.apache.poi.xwpf.converter.xhtml</artifactId>
<version>1.0.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox-app -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-app</artifactId>
<version>1.8.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
</dependencies>
<build>

View File

@ -44,97 +44,97 @@ public class ExcelUtil {
*
* ***********************************************************************************************
*/
public static SXSSFWorkbook makeSimpleFruitExcelWorkbook(List<Object> voList, String[] header, String[] order, int[] width, String title) throws Exception {
// 시트 생성
SXSSFWorkbook workbook = new SXSSFWorkbook();
SXSSFSheet sheet = workbook.createSheet(title);
for (int i = 0; i < width.length; i++) {
// sheet.setColumnWidth(0, width[width.length - (i + 1)]);
sheet.setColumnWidth(i, width[i]);
}
int r = 2;// 줄부터 찍기
Font font = workbook.createFont();
font.setBoldweight(font.BOLDWEIGHT_BOLD);
CellStyle styleTh = workbook.createCellStyle(); // Th
styleTh.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게
styleTh.setBorderLeft(CellStyle.BORDER_THIN);
styleTh.setBorderRight(CellStyle.BORDER_THIN);
styleTh.setBorderTop(CellStyle.BORDER_THIN);
styleTh.setAlignment(CellStyle.ALIGN_CENTER); // 정렬
styleTh.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
styleTh.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
styleTh.setFont(font);
CellStyle styleTd = workbook.createCellStyle(); // Td
styleTd.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게
styleTd.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게
styleTd.setBorderLeft(CellStyle.BORDER_THIN);
styleTd.setBorderRight(CellStyle.BORDER_THIN);
styleTd.setBorderTop(CellStyle.BORDER_THIN);
styleTd.setAlignment(CellStyle.ALIGN_CENTER); // 정렬
styleTd.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
styleTd.setWrapText(true); // 자동 줄바꿈
// 헤더
Row headerRow = sheet.createRow(r);
// 해더 채움 (우측 방향으로)
Cell headerCell = null;
for (int i = 0; i < header.length; i++) {
headerCell = headerRow.createCell(i);
headerCell.setCellValue(header[i]);
headerCell.setCellStyle(styleTh);
}
// 내용 생성
Row bodyRow = null;
Cell bodyCell = null;
bodyRow = sheet.createRow(0);
bodyCell = bodyRow.createCell(0);
bodyCell.setCellValue(title);// 읽어온 데이터 표시
int c = 0;// 컬럼
for (Object vo : voList) {
bodyRow = sheet.createRow(r + 1);
bodyCell = bodyRow.createCell(0);
//bodyCell.setCellValue(r + 1); // 컬럼은 번호
PropertyDescriptor pd; // 클래스의 필드 메소드를 찾아줌. 이름을 기존에 vo.setUserId() 메소드를 통해서만 호출이 가능 했다면, PropertyDescriptor는 이름만으로 메소드
// 호출이 가능함. 클래스가 변경 되어도 동일한 작동으로 getter&setter 호출이 가능하도록 도와줌
Method[] methods = vo.getClass().getDeclaredMethods(); // 메소드들 호출함
// 배열로 이름 같으면 해당 데이터 쓰기
for (int i = 0; i < order.length; i++) {
for (Method method : methods) { // vo 내부 메소드 반복
if (method.getName().equals("get" + (order[i] == null ? "" : order[i]))) { // vo메소드 이름과 order의 이름 비교
// getter 호출 준비
String getMethodName = method.getName().substring(3); // getter의 이름 가져옴
pd = new PropertyDescriptor(getMethodName, vo.getClass());
// vo의 데이터 세팅
String cellData = (pd.getReadMethod().invoke(vo) != null ? pd.getReadMethod().invoke(vo) : "").toString();
//log.debug("CellData {}", cellData);
bodyCell = bodyRow.createCell(c++); // 데이터 순서
bodyCell.setCellValue(cellData);// 읽어온 데이터 표시
bodyCell.setCellStyle(styleTd);
}
}
}
c = 0;
r++;
}
return workbook;
}
// public static SXSSFWorkbook makeSimpleFruitExcelWorkbook(List<Object> voList, String[] header, String[] order, int[] width, String title) throws Exception {
// // 시트 생성
// SXSSFWorkbook workbook = new SXSSFWorkbook();
// SXSSFSheet sheet = workbook.createSheet(title);
//
// for (int i = 0; i < width.length; i++) {
//// sheet.setColumnWidth(0, width[width.length - (i + 1)]);
// sheet.setColumnWidth(i, width[i]);
// }
//
//
//
// int r = 2;// 줄부터 찍기
//
// Font font = workbook.createFont();
// font.setBoldweight(font.BOLDWEIGHT_BOLD);
//
// CellStyle styleTh = workbook.createCellStyle(); // Th
// styleTh.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게
// styleTh.setBorderLeft(CellStyle.BORDER_THIN);
// styleTh.setBorderRight(CellStyle.BORDER_THIN);
// styleTh.setBorderTop(CellStyle.BORDER_THIN);
// styleTh.setAlignment(CellStyle.ALIGN_CENTER); // 정렬
// styleTh.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
// styleTh.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
// styleTh.setFont(font);
//
// CellStyle styleTd = workbook.createCellStyle(); // Td
// styleTd.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게
// styleTd.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게
// styleTd.setBorderLeft(CellStyle.BORDER_THIN);
// styleTd.setBorderRight(CellStyle.BORDER_THIN);
// styleTd.setBorderTop(CellStyle.BORDER_THIN);
// styleTd.setAlignment(CellStyle.ALIGN_CENTER); // 정렬
// styleTd.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// styleTd.setWrapText(true); // 자동 줄바꿈
//
//
// // 헤더
// Row headerRow = sheet.createRow(r);
// // 해더 채움 (우측 방향으로)
// Cell headerCell = null;
// for (int i = 0; i < header.length; i++) {
// headerCell = headerRow.createCell(i);
// headerCell.setCellValue(header[i]);
// headerCell.setCellStyle(styleTh);
// }
//
// // 내용 생성
// Row bodyRow = null;
// Cell bodyCell = null;
//
//
// bodyRow = sheet.createRow(0);
// bodyCell = bodyRow.createCell(0);
// bodyCell.setCellValue(title);// 읽어온 데이터 표시
//
//
// int c = 0;// 컬럼
// for (Object vo : voList) {
// bodyRow = sheet.createRow(r + 1);
// bodyCell = bodyRow.createCell(0);
// //bodyCell.setCellValue(r + 1); // 컬럼은 번호
//
// PropertyDescriptor pd; // 클래스의 필드 메소드를 찾아줌. 이름을 기존에 vo.setUserId() 메소드를 통해서만 호출이 가능 했다면, PropertyDescriptor는 이름만으로 메소드
// // 호출이 가능함. 클래스가 변경 되어도 동일한 작동으로 getter&setter 호출이 가능하도록 도와줌
// Method[] methods = vo.getClass().getDeclaredMethods(); // 메소드들 호출함
// // 배열로 이름 같으면 해당 데이터 쓰기
//
// for (int i = 0; i < order.length; i++) {
// for (Method method : methods) { // vo 내부 메소드 반복
//
// if (method.getName().equals("get" + (order[i] == null ? "" : order[i]))) { // vo메소드 이름과 order의 이름 비교
// // getter 호출 준비
// String getMethodName = method.getName().substring(3); // getter의 이름 가져옴
// pd = new PropertyDescriptor(getMethodName, vo.getClass());
//
// // vo의 데이터 세팅
// String cellData = (pd.getReadMethod().invoke(vo) != null ? pd.getReadMethod().invoke(vo) : "").toString();
////log.debug("CellData {}", cellData);
// bodyCell = bodyRow.createCell(c++); // 데이터 순서
// bodyCell.setCellValue(cellData);// 읽어온 데이터 표시
// bodyCell.setCellStyle(styleTd);
// }
// }
// }
// c = 0;
// r++;
// }
//
// return workbook;
// }
}

View File

@ -0,0 +1,439 @@
package seed.com.gtm.counsel;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
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.RequestParam;
import seed.com.gtm.seedfile.SeedFileService;
import seed.com.gtm.util.SeedCriteria;
import seed.com.gtm.util.PageMaker;
import seed.com.user.counsel.CounselService;
import seed.utils.SeedUtils;
@Controller
@RequestMapping("/gtm/case")
public class OnlineCounselController {
@Autowired
private OnlineCounselService service;
@Autowired
private SeedFileService fileService;
@Autowired
private CounselService service2;
public void setSessionMessageRemove(HttpSession session){
session.removeAttribute("url");
session.removeAttribute("message");
session.removeAttribute("opener");
session.removeAttribute("append");
session.removeAttribute("self");
}
// /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, SeedCriteria cri){
session.setAttribute("siteIdx", "case");
//페이징 관련
paramMap.put("pageStart", cri.getPageStart());
paramMap.put("perPageNum", cri.getPerPageNum());
paramMap.put("civilType", "online");
List<Map<String,Object>> data = service.counselList(paramMap);
PageMaker pageMaker = new PageMaker();
pageMaker.setCri(cri);
pageMaker.setTotalCount(service.counselTot(paramMap));
model.addAttribute("data", data);
model.addAttribute("pageMaker", pageMaker);
return "/_extra/gtm/onlineCounsel/list";
}
@RequestMapping("/onlineCounsel/view.do")
public String counselView(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
paramMap.put("dataIdx", paramMap.get("counselSeq"));
paramMap.put("memberDept", session.getAttribute("memberDept"));
Map<String,Object> data = service.counselView(paramMap);
List<Map<String,Object>> memberList = service.memberSelect(paramMap);
model.addAttribute("data", data);
model.addAttribute("memberList", memberList);
model.addAttribute("fileList", fileService.fileList(paramMap));
return "/_extra/gtm/onlineCounsel/view";
}
@RequestMapping("/onlineCounsel/writePage.do")
public String counselWritePage(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
paramMap.put("memberDept", session.getAttribute("memberDept"));
List<Map<String,Object>> memberList = service.memberSelect(paramMap);
model.addAttribute("memberList", memberList);
return "/_extra/gtm/onlineCounsel/write";
}
@RequestMapping("/onlineCounsel/write.do")
public String counselWrite(ModelMap model,HttpServletRequest request, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map){
String applcntTel01 = SeedUtils.setReplaceNull(paramMap.get("applcntTel01"));
String applcntTel02 = SeedUtils.setReplaceNull(paramMap.get("applcntTel02"));
String applcntTel03 = SeedUtils.setReplaceNull(paramMap.get("applcntTel03"));
String applcntTel = applcntTel01 + "-" + applcntTel02 + "-" + applcntTel03;
paramMap.put("applcntTel", applcntTel);
paramMap.put("applcntCi", "");
paramMap.put("applcntDi", "");
paramMap.put("memberId", session.getAttribute("memberId"));
paramMap.put("managerNm", session.getAttribute("memberName"));
service2.onlineCounselInsert(paramMap);
paramMap.put("dataIdx", paramMap.get("seq"));
fileService.fileInsert(paramMap, request, session);
map.put("message", "common.message.reg");
map.put("url", "/gtm/case/onlineCounsel/list.do");
return "/_common/jsp/message";
}
@RequestMapping("/onlineCounsel/edit.do")
public String counselEdit(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
if( SeedUtils.setReplaceNull(paramMap.get("managerNm")).equals("") ){
paramMap.put("managerNm", session.getAttribute("memberName"));
}
if( SeedUtils.setReplaceNull(paramMap.get("managerId")).equals("") ){
paramMap.put("managerId", session.getAttribute("memberId"));
}
service.counselUpdate(paramMap);
String counselSeq = SeedUtils.setReplaceNull(paramMap.get("counselSeq"));
String page = SeedUtils.setReplaceNull(paramMap.get("page"));
String searchDate1 = SeedUtils.setReplaceNull(paramMap.get("searchDate1"));
String searchDate2 = SeedUtils.setReplaceNull(paramMap.get("searchDate2"));
String searchDate3 = SeedUtils.setReplaceNull(paramMap.get("searchDate3"));
String searchDate4 = SeedUtils.setReplaceNull(paramMap.get("searchDate4"));
String searchDate5 = SeedUtils.setReplaceNull(paramMap.get("searchDate5"));
String searchDate6 = SeedUtils.setReplaceNull(paramMap.get("searchDate6"));
String searchApp = SeedUtils.setReplaceNull(paramMap.get("searchApp"));
String searchMa = SeedUtils.setReplaceNull(paramMap.get("searchMa"));
String searchTitle = SeedUtils.setReplaceNull(paramMap.get("searchTitle"));
String searchType = SeedUtils.setReplaceNull(paramMap.get("searchType"));
String searchState = SeedUtils.setReplaceNull(paramMap.get("searchState"));
String fileFuncType = SeedUtils.setReplaceNull(paramMap.get("fileFuncType"));
this.setSessionMessageRemove(session);
map.put("message", "common.message.reg");
map.put("url", "/gtm/case/onlineCounsel/view.do?counselSeq=" + counselSeq + "&page=" + page +
"&searchDate1=" + searchDate1 + "&searchDate2=" + searchDate2 + "&searchDate3=" + searchDate3 +
"&searchDate4=" + searchDate4 + "&searchDate5=" + searchDate5 + "&searchDate6=" + searchDate6 + "&searchApp=" + searchApp + "&searchMa=" + searchMa + "&searchTitle=" + searchTitle +
"&searchType=" + searchType + "&searchState=" + searchState + "&fileFuncType=" + fileFuncType);
return "/_common/jsp/message";
}
@RequestMapping("/onlineCounsel/state.do")
public String counselState(HttpServletRequest request ,ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
String[] checkList = request.getParameterValues("okCheck");
//센터장(memberPosition : 0902000000) 승인가능 하도록
String memberPosition = SeedUtils.setReplaceNull(session.getAttribute("memberPosition"));
String siteIdx = SeedUtils.setReplaceNull(session.getAttribute("siteIdx"));
if(!"0902000000".equals(memberPosition)){
session.setAttribute("sSiteIdx", siteIdx);
session.setAttribute("message", "(message)승인 권한이 없습니다.");
session.setAttribute("self", "history");
return "/_common/jsp/message";
}
if(checkList != null && checkList.length > 0){
for(int i = 0; i < checkList.length; i++){
paramMap.put("counselSeq", checkList[i]);
service.counselUpdateState(paramMap);
}
}else{
service.counselUpdateState(paramMap);
}
/*service.counselUpdateState(paramMap);*/
String page = SeedUtils.setReplaceNull(paramMap.get("page"));
String searchDate1 = SeedUtils.setReplaceNull(paramMap.get("searchDate1"));
String searchDate2 = SeedUtils.setReplaceNull(paramMap.get("searchDate2"));
String searchDate3 = SeedUtils.setReplaceNull(paramMap.get("searchDate3"));
String searchDate4 = SeedUtils.setReplaceNull(paramMap.get("searchDate4"));
String searchApp = SeedUtils.setReplaceNull(paramMap.get("searchApp"));
String searchMa = SeedUtils.setReplaceNull(paramMap.get("searchMa"));
String searchTitle = SeedUtils.setReplaceNull(paramMap.get("searchTitle"));
String searchType = SeedUtils.setReplaceNull(paramMap.get("searchType"));
String searchState = SeedUtils.setReplaceNull(paramMap.get("searchState"));
this.setSessionMessageRemove(session);
map.put("message", "common.message.reg");
map.put("url", "/gtm/case/onlineCounsel/list.do?page=" + page +
"&searchDate1=" + searchDate1 + "&searchDate2=" + searchDate2 + "&searchDate3=" + searchDate3 +
"&searchDate4=" + searchDate4 + "&searchApp=" + searchApp + "&searchMa=" + searchMa + "&searchTitle=" + searchTitle +
"&searchType=" + searchType + "&searchState=" + searchState);
return "/_common/jsp/message";
}
@RequestMapping("/onlineCounsel/del.do")
public String counselDel(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
service.counselDelete(paramMap);
map.put("message", "common.message.del");
map.put("url", "/gtm/case/onlineCounsel/list.do");
return "/_common/jsp/message";
}
// /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, SeedCriteria cri){
session.setAttribute("siteIdx", "case");
//페이징 관련
paramMap.put("pageStart", cri.getPageStart());
paramMap.put("perPageNum", cri.getPerPageNum());
paramMap.put("civilType", "law");
List<Map<String,Object>> data = service.counselList(paramMap);
PageMaker pageMaker = new PageMaker();
pageMaker.setCri(cri);
pageMaker.setTotalCount(service.counselTot(paramMap));
model.addAttribute("data", data);
model.addAttribute("pageMaker", pageMaker);
return "/_extra/gtm/onlineCounsel/lawList";
}
@RequestMapping("/onlineCounsel/lawView.do")
public String lawCounselView(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
paramMap.put("dataIdx", paramMap.get("counselSeq"));
paramMap.put("memberDept", session.getAttribute("memberDept"));
Map<String,Object> data = service.counselView(paramMap);
List<Map<String,Object>> memberList = service.memberSelect(paramMap);
model.addAttribute("data", data);
model.addAttribute("memberList", memberList);
model.addAttribute("fileList", fileService.fileList(paramMap));
paramMap.put("fileFuncType", SeedUtils.setReplaceNull(paramMap.get("fileFuncType2")));
model.addAttribute("fileList2", fileService.fileList(paramMap));
return "/_extra/gtm/onlineCounsel/lawView";
}
@RequestMapping("/onlineCounsel/lawWritePage.do")
public String lawWritePage(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
paramMap.put("memberDept", session.getAttribute("memberDept"));
List<Map<String,Object>> memberList = service.memberSelect(paramMap);
model.addAttribute("memberList", memberList);
return "/_extra/gtm/onlineCounsel/lawWrite";
}
@RequestMapping("/onlineCounsel/lawWrite.do")
public String lawWrite(ModelMap model,HttpServletRequest request, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map){
paramMap.put("applcntCi", "");
paramMap.put("applcntDi", "");
paramMap.put("memberId", session.getAttribute("memberId"));
paramMap.put("managerNm", session.getAttribute("memberName"));
paramMap.put("memberDept", session.getAttribute("memberDept"));
service2.lawCounselInsert(paramMap);
paramMap.put("dataIdx", paramMap.get("seq"));
fileService.fileInsert(paramMap, request, session);
map.put("message", "common.message.reg");
map.put("url", "/gtm/case/onlineCounsel/lawList.do");
return "/_common/jsp/message";
}
@RequestMapping("/onlineCounsel/rawEdit.do")
public String lawCounselEdit(ModelMap model, HttpServletRequest request,HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
if( SeedUtils.setReplaceNull(paramMap.get("managerNm")).equals("") ){
paramMap.put("managerNm", session.getAttribute("memberName"));
}
if( SeedUtils.setReplaceNull(paramMap.get("managerId")).equals("") ){
paramMap.put("managerId", session.getAttribute("memberId"));
}
paramMap.put("dataIdx", paramMap.get("counselSeq"));
service.lawCounselUpdate(paramMap);
fileService.fileInsert(paramMap, request, session);
fileService.fileDel(paramMap);
String counselSeq = SeedUtils.setReplaceNull(paramMap.get("counselSeq"));
String page = SeedUtils.setReplaceNull(paramMap.get("page"));
String searchDate1 = SeedUtils.setReplaceNull(paramMap.get("searchDate1"));
String searchDate2 = SeedUtils.setReplaceNull(paramMap.get("searchDate2"));
String searchDate3 = SeedUtils.setReplaceNull(paramMap.get("searchDate3"));
String searchDate4 = SeedUtils.setReplaceNull(paramMap.get("searchDate4"));
String searchDate5 = SeedUtils.setReplaceNull(paramMap.get("searchDate5"));
String searchDate6 = SeedUtils.setReplaceNull(paramMap.get("searchDate6"));
String searchApp = SeedUtils.setReplaceNull(paramMap.get("searchApp"));
String searchMa = SeedUtils.setReplaceNull(paramMap.get("searchMa"));
String searchTitle = SeedUtils.setReplaceNull(paramMap.get("searchTitle"));
String searchType = SeedUtils.setReplaceNull(paramMap.get("searchType"));
String searchState = SeedUtils.setReplaceNull(paramMap.get("searchState"));
String fileFuncType = "law";
String fileFuncType2 = "lawCard";
this.setSessionMessageRemove(session);
map.put("message", "common.message.reg");
map.put("url", "/gtm/case/onlineCounsel/lawView.do?counselSeq=" + counselSeq + "&page=" + page +
"&searchDate1=" + searchDate1 + "&searchDate2=" + searchDate2 + "&searchDate3=" + searchDate3 +
"&searchDate4=" + searchDate4 + "&searchDate5=" + searchDate5 + "&searchDate6=" + searchDate6 + "&searchApp=" + searchApp + "&searchMa=" + searchMa + "&searchTitle=" + searchTitle +
"&searchType=" + searchType + "&searchState=" + searchState + "&fileFuncType=" + fileFuncType + "&fileFuncType2=" + fileFuncType2);
return "/_common/jsp/message";
}
@RequestMapping("/onlineCounsel/lawState.do")
public String lawCounselState(HttpServletRequest request ,ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
String[] checkList = request.getParameterValues("okCheck");
//센터장(memberPosition : 0902000000) 승인가능 하도록
String memberPosition = SeedUtils.setReplaceNull(session.getAttribute("memberPosition"));
String siteIdx = SeedUtils.setReplaceNull(session.getAttribute("siteIdx"));
if(!"0902000000".equals(memberPosition)){
session.setAttribute("sSiteIdx", siteIdx);
session.setAttribute("message", "(message)승인 권한이 없습니다.");
session.setAttribute("self", "history");
return "/_common/jsp/message";
}
if(checkList != null && checkList.length > 0){
for(int i = 0; i < checkList.length; i++){
paramMap.put("counselSeq", checkList[i]);
service.counselUpdateState(paramMap);
}
}else{
service.counselUpdateState(paramMap);
}
/*service.counselUpdateState(paramMap);*/
String page = SeedUtils.setReplaceNull(paramMap.get("page"));
String searchDate1 = SeedUtils.setReplaceNull(paramMap.get("searchDate1"));
String searchDate2 = SeedUtils.setReplaceNull(paramMap.get("searchDate2"));
String searchDate3 = SeedUtils.setReplaceNull(paramMap.get("searchDate3"));
String searchDate4 = SeedUtils.setReplaceNull(paramMap.get("searchDate4"));
String searchDate5 = SeedUtils.setReplaceNull(paramMap.get("searchDate5"));
String searchDate6 = SeedUtils.setReplaceNull(paramMap.get("searchDate6"));
String searchApp = SeedUtils.setReplaceNull(paramMap.get("searchApp"));
String searchMa = SeedUtils.setReplaceNull(paramMap.get("searchMa"));
String searchTitle = SeedUtils.setReplaceNull(paramMap.get("searchTitle"));
String searchType = SeedUtils.setReplaceNull(paramMap.get("searchType"));
String searchState = SeedUtils.setReplaceNull(paramMap.get("searchState"));
this.setSessionMessageRemove(session);
map.put("message", "common.message.reg");
map.put("url", "/gtm/case/onlineCounsel/lawList.do?page=" + page +
"&searchDate1=" + searchDate1 + "&searchDate2=" + searchDate2 + "&searchDate3=" + searchDate3 +
"&searchDate4=" + searchDate4 + "&searchDate5=" + searchDate5 + "&searchDate6=" + searchDate6 + "&searchApp=" + searchApp + "&searchMa=" + searchMa + "&searchTitle=" + searchTitle +
"&searchType=" + searchType + "&searchState=" + searchState);
return "/_common/jsp/message";
}
@RequestMapping("/onlineCounsel/lawDel.do")
public String counselLawDel(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
service.counselDelete(paramMap);
map.put("message", "common.message.del");
map.put("url", "/gtm/case/onlineCounsel/lawList.do");
return "/_common/jsp/message";
}
@RequestMapping("/onlineCounsel/civilChange.do")
public String counselCivilChange(ModelMap model, HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map, SeedCriteria cri){
if( SeedUtils.setReplaceNull(paramMap.get("managerNm")).equals("") ){
paramMap.put("managerNm", session.getAttribute("memberName"));
}
if( SeedUtils.setReplaceNull(paramMap.get("managerId")).equals("") ){
paramMap.put("managerId", session.getAttribute("memberId"));
}
service.counselCivilChange(paramMap);
String counselSeq = SeedUtils.setReplaceNull(paramMap.get("counselSeq"));
String civilType = SeedUtils.setReplaceNull(paramMap.get("civilType"));
String page = SeedUtils.setReplaceNull(paramMap.get("page"));
String searchDate1 = SeedUtils.setReplaceNull(paramMap.get("searchDate1"));
String searchDate2 = SeedUtils.setReplaceNull(paramMap.get("searchDate2"));
String searchDate3 = SeedUtils.setReplaceNull(paramMap.get("searchDate3"));
String searchDate4 = SeedUtils.setReplaceNull(paramMap.get("searchDate4"));
String searchDate5 = SeedUtils.setReplaceNull(paramMap.get("searchDate5"));
String searchDate6 = SeedUtils.setReplaceNull(paramMap.get("searchDate6"));
String searchApp = SeedUtils.setReplaceNull(paramMap.get("searchApp"));
String searchMa = SeedUtils.setReplaceNull(paramMap.get("searchMa"));
String searchTitle = SeedUtils.setReplaceNull(paramMap.get("searchTitle"));
String searchType = SeedUtils.setReplaceNull(paramMap.get("searchType"));
String searchState = SeedUtils.setReplaceNull(paramMap.get("searchState"));
this.setSessionMessageRemove(session);
map.put("message", "common.message.mod");
if(civilType.equals("online")) {
map.put("url", "/gtm/case/onlineCounsel/list.do#onlineCounsel_17");
} else {
map.put("url", "/gtm/case/onlineCounsel/lawList.do#onlineCounsel_18");
}
return "/_common/jsp/message";
}
}

View File

@ -0,0 +1,51 @@
package seed.com.gtm.counsel;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import seed.com.gtm.dao.OnlineConunselDao;
@Service
public class OnlineCounselService {
@Autowired
private OnlineConunselDao dao;
public List<Map<String, Object>> counselList(Map<String,Object> paramMap){
return dao.counselList(paramMap);
}
public int counselTot(Map<String,Object> paramMap){
return dao.counselTot(paramMap);
}
public Map<String, Object> counselView(Map<String,Object> paramMap){
return dao.counselView(paramMap);
}
public void counselUpdate(Map<String,Object> paramMap){
dao.counselUpdate(paramMap);
}
public void counselUpdateState(Map<String,Object> paramMap){
dao.counselUpdateState(paramMap);
}
public void lawCounselUpdate(Map<String,Object> paramMap){
dao.lawCounselUpdate(paramMap);
}
public List<Map<String, Object>> memberSelect(Map<String,Object> paramMap){
return dao.memberSelect(paramMap);
}
public void counselDelete(Map<String,Object> paramMap){
dao.counselDelete(paramMap);
}
public void counselCivilChange(Map<String,Object> paramMap){
dao.counselCivilChange(paramMap);
}
}

View File

@ -0,0 +1,16 @@
package seed.com.gtm.dao;
import java.util.List;
import java.util.Map;
public interface OnlineConunselDao {
public List<Map<String,Object>> counselList(Map<String,Object> paramMap);
public int counselTot(Map<String,Object> paramMap);
public Map<String,Object> counselView(Map<String,Object> paramMap);
public void counselUpdate(Map<String,Object> paramMap);
public void counselUpdateState(Map<String,Object> paramMap);
public void lawCounselUpdate(Map<String,Object> paramMap);
public List<Map<String,Object>> memberSelect(Map<String,Object> paramMap);
public void counselDelete(Map<String,Object> paramMap);
public void counselCivilChange(Map<String,Object> paramMap);
}

View File

@ -0,0 +1,60 @@
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 OnlineCounselDaoImpl implements OnlineConunselDao {
@Autowired
private SqlSession sqlSession;
@Override
public List<Map<String, Object>> counselList(Map<String,Object> paramMap) {
return sqlSession.selectList("onlineCounsel.select", paramMap);
}
@Override
public int counselTot(Map<String, Object> paramMap) {
return sqlSession.selectOne("onlineCounsel.selectTot", paramMap);
}
@Override
public Map<String, Object> counselView(Map<String, Object> paramMap) {
return sqlSession.selectOne("onlineCounsel.view", paramMap);
}
@Override
public void counselUpdate(Map<String, Object> paramMap) {
sqlSession.update("onlineCounsel.update", paramMap);
}
@Override
public void counselUpdateState(Map<String, Object> paramMap) {
sqlSession.update("onlineCounsel.updateState", paramMap);
}
@Override
public void lawCounselUpdate(Map<String, Object> paramMap) {
sqlSession.update("onlineCounsel.lawUpdate", paramMap);
}
@Override
public List<Map<String, Object>> memberSelect(Map<String, Object> paramMap) {
return sqlSession.selectList("onlineCounsel.memberSelect", paramMap);
}
@Override
public void counselDelete(Map<String, Object> paramMap) {
sqlSession.update("onlineCounsel.delete", paramMap);
}
@Override
public void counselCivilChange(Map<String, Object> paramMap) {
sqlSession.update("onlineCounsel.civilChange", paramMap);
}
}

View File

@ -0,0 +1,42 @@
package seed.com.gtm.util;
public class Criteria {
private int page;
private int perPageNum;
public Criteria(){
this.page= 1;
this.perPageNum = 10;
}
public void setPage(int page){
if(page <= 0){
this.page = 1;
return;
}
this.page = page;
}
public void setPerPageNum(int perPageNum){
if(perPageNum <= 0 || perPageNum > 100){
this.perPageNum = 10;
return;
}
this.perPageNum = perPageNum;
}
public int getPage(){
return page;
}
public int getPageStart(){
return (this.page - 1) * perPageNum;
}
public int getPerPageNum(){
return this.perPageNum;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,22 @@
package seed.com.user.counsel;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import seed.com.user.dao.CounselDao;
@Service
public class CounselService {
@Autowired
private CounselDao dao;
public void onlineCounselInsert(Map<String, Object> paramMap){
dao.onlineCounselInsert(paramMap);
}
public void lawCounselInsert(Map<String, Object> paramMap){
dao.lawCounselInsert(paramMap);
}
}

View File

@ -0,0 +1,8 @@
package seed.com.user.dao;
import java.util.Map;
public interface CounselDao {
public void onlineCounselInsert(Map<String,Object> paramMap);
public void lawCounselInsert(Map<String,Object> paramMap);
}

View File

@ -0,0 +1,27 @@
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 CounselDaoImpl implements CounselDao {
@Autowired
private SqlSession sqlSession;
@Override
public void onlineCounselInsert(Map<String, Object> paramMap) {
// TODO Auto-generated method stub
sqlSession.insert("onlineCounsel.insert", paramMap);
}
@Override
public void lawCounselInsert(Map<String, Object> paramMap) {
// TODO Auto-generated method stub
sqlSession.insert("onlineCounsel.lawInsert", paramMap);
}
}

View File

@ -0,0 +1,20 @@
package seed.common.service;
import java.util.List;
import org.springframework.web.multipart.MultipartFile;
import seed.map.T_COMMON_FILE;
public interface CommonFileService {
public T_COMMON_FILE getCommonFileForm(Integer commonFileIdx);
public List<T_COMMON_FILE> getCommonFileList(Integer funcIdx, String fileCode);
public T_COMMON_FILE setCommonFileRegProc(T_COMMON_FILE tCommonFile, MultipartFile upFile, String siteIdx, boolean fileEncryChk, Integer funcIdx, String fileCode, String rootPath);
public boolean setCommonFileDelProc(Integer commonFileIdx, String siteIdx, String rootPath);
public boolean setMultiFileRegProc(List<MultipartFile> upFiles, String siteIdx, String filePath, String rootPath);
}

View File

@ -0,0 +1,191 @@
package seed.common.service;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.CommonFileDAO;
import seed.map.T_COMMON_FILE;
import seed.utils.SeedFileUtils;
import seed.utils.SeedFtpType;
import seed.utils.SeedUtils;
@Service
public class CommonFileServiceImpl extends AbstractServiceImpl implements CommonFileService{
private Logger log = Logger.getLogger(this.getClass());
@Autowired
private CommonFileDAO commonFileDAO;
public List<T_COMMON_FILE> getCommonFileList(Integer funcIdx, String fileCode){
return commonFileDAO.getCommonFileList(funcIdx, fileCode);
}
public T_COMMON_FILE getCommonFileForm(Integer commonFileIdx){
return commonFileDAO.getCommonFileForm(commonFileIdx);
}
@Transactional
public T_COMMON_FILE setCommonFileRegProc(T_COMMON_FILE tCommonFile, MultipartFile upFile, String siteIdx, boolean fileEncryChk, Integer funcIdx, String fileCode, String rootPath){
try{
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String toDate = sdfFormat.format(new Date()).substring(0, 8);
//오늘날짜 18시 이후면 다른 폴더 삭제 DB삭제
if(Integer.parseInt(sdfFormat.format(new Date()).substring(8, 10)) >= 18){
SeedUtils.setSeedDeleteFiles(rootPath + "/" + siteIdx + "/upload/tempFiles/", toDate);
List<T_COMMON_FILE> tCommonFileList = commonFileDAO.getCommonFileList(toDate);
if(tCommonFileList != null && tCommonFileList.size() > 0){
for(int i=0; i<tCommonFileList.size(); i++){
T_COMMON_FILE tCommonFileDB = tCommonFileList.get(i);
commonFileDAO.setCommonFileDelProc(tCommonFileDB);
}
}
}
//오늘날짜로 폴더 생성(MD5로 폴더 변환하여 생성)
SeedUtils.setSeedMkDirs(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" + fileCode);
String reFileName = funcIdx + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
File makeFile = new File(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" +
fileCode + "/" + reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
upFile.transferTo(makeFile);
if(upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")+1).toLowerCase().equals("jpg") ||
upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")+1).toLowerCase().equals("jpeg") ||
upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")+1).toLowerCase().equals("bmp") ||
upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")+1).toLowerCase().equals("png")){
Thumbnails.of(
new File(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" +
fileCode + "/" + reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")))).
size(100, 50).
toFile(new File(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" +
fileCode + "/thumb_" + reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")))
);
}else if(upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")+1).toLowerCase().equals("gif")){
SeedUtils.setSeedFileCopy(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" +
fileCode + "/" + reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")),
rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" + fileCode + "/thumb_" + reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
}
tCommonFile.setCommonFileFuncIdx(funcIdx);
tCommonFile.setCommonFileCode(fileCode);
tCommonFile.setCommonFileDate(toDate);
tCommonFile.setCommonFileRegDate(new Date());
tCommonFile.setCommonFileName(upFile.getOriginalFilename());
tCommonFile.setCommonFileReName(reFileName+upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
tCommonFile.setCommonFileSize(upFile.getSize());
tCommonFile.setCommonFileType(upFile.getOriginalFilename().toLowerCase().substring(upFile.getOriginalFilename().lastIndexOf(".")+1));
tCommonFile.setCommonFileEncryption("N");
if(fileEncryChk){
//파일 암호화
SeedFileUtils.setSeedEncryptFile(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" +
fileCode + "/" + reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf(".")));
//원본 파일 삭제
makeFile.delete();
//암호화된 파일명 원본 파일명으로 변경
File encryFile = new File(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" +
fileCode + "/" + reFileName + upFile.getOriginalFilename().substring(upFile.getOriginalFilename().lastIndexOf("."))+".des");
encryFile.renameTo(makeFile);
tCommonFile.setCommonFileEncryption("Y");
}
}catch(IOException e){
log.error("CHECK ERROR:",e);
}
return commonFileDAO.setCommonFileRegProc(tCommonFile);
}
@Transactional
public boolean setCommonFileDelProc(Integer commonFileIdx, String siteIdx, String rootPath){
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String toDate = sdfFormat.format(new Date()).substring(0, 8);
T_COMMON_FILE tCommonFile = commonFileDAO.getCommonFileForm(commonFileIdx);
SeedUtils.setSeedDeleteFile(rootPath + "/" + siteIdx + "/upload/tempFiles/" + toDate + "/" +
tCommonFile.getCommonFileCode() + "/" + tCommonFile.getCommonFileReName());
return commonFileDAO.setCommonFileDelProc(tCommonFile);
}
public boolean setMultiFileRegProc(List<MultipartFile> upFiles, String siteIdx, String filePath, String rootPath){
boolean success = false;
try{
//FTP 전송
SeedFtpType seedFtpType = new SeedFtpType();
for(int f=0; f<upFiles.size(); f++){
if(filePath != null && !filePath.equals("")){
File makeFile = new File(rootPath + "/" + siteIdx + filePath + "/" + upFiles.get(f).getOriginalFilename());
upFiles.get(f).transferTo(makeFile);
//WEB 서버의 경로
seedFtpType.setDestFilePath(siteIdx + filePath);
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + siteIdx + filePath);
//WAS 파일명
seedFtpType.setFileName(upFiles.get(f).getOriginalFilename());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}else{
File makeFile = new File(rootPath + "/" + siteIdx + "/" + upFiles.get(f).getOriginalFilename());
upFiles.get(f).transferTo(makeFile);
//WEB 서버의 경로
seedFtpType.setDestFilePath(siteIdx);
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + siteIdx);
//WAS 파일명
seedFtpType.setFileName(upFiles.get(f).getOriginalFilename());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
}
success = true;
}catch(IOException e){
success = false;
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,14 @@
package seed.common.service;
import java.util.List;
import java.util.Map;
import seed.map.T_MENU_AUTH;
public interface CommonMenuAuthService {
//AdminSiteController, CommonController
public List<T_MENU_AUTH> getMenuAuthList(String siteIdx, String[] qryColumns);
//CommonController
public List<Map<Object, Object>> getMenuAuthMapList(String siteIdx, String[] qryColumns);}

View File

@ -0,0 +1,31 @@
package seed.common.service;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.MenuAuthDAO;
import seed.map.T_MENU_AUTH;
@Service
public class CommonMenuAuthServiceImpl extends AbstractServiceImpl implements CommonMenuAuthService{
@Autowired
private MenuAuthDAO menuAuthDAO;
//AdminSiteController
public List<T_MENU_AUTH> getMenuAuthList(String siteIdx, String[] qryColumns){
return menuAuthDAO.getMenuAuthList(siteIdx, qryColumns);
}
//CommonController
public List<Map<Object, Object>> getMenuAuthMapList(String siteIdx, String[] qryColumns){
return menuAuthDAO.getMenuAuthMapList(siteIdx, qryColumns);
}
}

View File

@ -0,0 +1,14 @@
package seed.common.service;
import java.util.List;
import seed.map.T_SITE_SATISFACTION;
public interface CommonSatisfactionService {
//AdminSiteController
public List<T_SITE_SATISFACTION> getCommonSatisfactionList(Integer siteMenuIdx, String[] qryColumns);
//CommonController
public boolean setCommonSatisfactionRegProc(T_SITE_SATISFACTION tSiteSatisfaction, String memberIp);
}

View File

@ -0,0 +1,36 @@
package seed.common.service;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.SiteSatisfactionDAO;
import seed.map.T_SITE_SATISFACTION;
@Service
public class CommonSatisfactionServiceImpl extends AbstractServiceImpl implements CommonSatisfactionService{
@Autowired
private SiteSatisfactionDAO siteSatisfactionDAO;
//AdminSiteController
public List<T_SITE_SATISFACTION> getCommonSatisfactionList(Integer siteMenuIdx, String[] qryColumns){
return siteSatisfactionDAO.getCommonSatisfactionList(siteMenuIdx, qryColumns);
}
//CommonController
@Transactional
public boolean setCommonSatisfactionRegProc(T_SITE_SATISFACTION tSiteSatisfaction, String memberIp){
tSiteSatisfaction.setSiteSatisfactionMemberIp(memberIp);
tSiteSatisfaction.setSiteSatisfactionRegDate(new Date());
return siteSatisfactionDAO.setCommonSatisfactionRegProc(tSiteSatisfaction);
}
}

View File

@ -0,0 +1,10 @@
package seed.common.service;
import java.util.Map;
public interface LogsService {
public void setLogsRegProc(Integer memberIdx, Integer memberModIdx, String memberIp, Map<Object, Object> memberOldMap, String logsType);
public void setLogsRegProc(String memberId, String memberName, Integer memberModIdx, String memberIp, Map<Object, Object> memberOldMap, String logsType);
}

View File

@ -0,0 +1,228 @@
package seed.common.service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.LogsDAO;
import seed.dao.MemberDAO;
import seed.map.T_LOGS;
import seed.map.T_MEMBER;
import seed.utils.SeedUtils;
@Service
public class LogsServiceImpl extends AbstractServiceImpl implements LogsService{
@Autowired
private LogsDAO logsDAO;
@Autowired
private MemberDAO memberDAO;
@Transactional
public void setLogsRegProc(Integer memberIdx, Integer memberModIdx, String memberIp, Map<Object, Object> memberOldMap, String logsType){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String getDate = simpleDateFormat.format(new Date());
ArrayList<String> logsText = new ArrayList<String>();
T_MEMBER tMember = memberDAO.getMemberForm(memberIdx);
T_MEMBER tMemberMod = memberDAO.getMemberForm(memberModIdx);
if(logsType.equals("M")){
if(!SeedUtils.setReplaceNull(tMember.getMemberId()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberId").toString()))){
logsText.add("memberId");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberName()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberName")).toString())){
logsText.add("memberName");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberPost()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberPost")).toString())){
logsText.add("memberPost");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberAddress1()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberAddress1")).toString())){
logsText.add("memberAddress1");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberAddress2()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberAddress2")).toString())){
logsText.add("memberAddress2");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberEmail1()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberEmail1")).toString()) ||
!SeedUtils.setReplaceNull(tMember.getMemberEmail2()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberEmail2")).toString())){
logsText.add("memberEmail");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberPw()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberPw")).toString())){
logsText.add("memberPw");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberDept()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberDept")).toString())){
logsText.add("memberDept");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberPosition()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberPosition")).toString())){
logsText.add("memberPosition");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberTel()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberTel")).toString())){
logsText.add("memberTel");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberPhone()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberPhone")).toString())){
logsText.add("memberPhone");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberItemA1()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemA1")).toString())){
logsText.add("memberItemA1");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberItemB2()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemB2")).toString())){
logsText.add("memberItemB2");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberItemC3()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemC3")).toString())){
logsText.add("memberItemC3");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberItemD4()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemD4")).toString())){
logsText.add("memberItemD4");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberItemE5()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemE5")).toString())){
logsText.add("memberItemE5");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberItemF6()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemF6")).toString())){
logsText.add("memberItemF6");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberItemG7()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemG7")).toString())){
logsText.add("memberItemG7");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberItemH8()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemH8")).toString())){
logsText.add("memberItemH8");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberItemI9()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemI9")).toString())){
logsText.add("memberItemI9");
}
if(!SeedUtils.setReplaceNull(tMember.getMemberItemJ10()).equals(SeedUtils.setReplaceNull(memberOldMap.get("memberItemJ10")).toString())){
logsText.add("memberItemJ10");
}
if(logsText.size() > 0){
for(int i=0; i<logsText.size(); i++){
if(!SeedUtils.setReplaceNull(logsText.get(i).toString()).equals("")){
T_LOGS tLogsDB = new T_LOGS();
tLogsDB.setMemberId(tMember.getMemberId());
tLogsDB.setMemberName(tMember.getMemberName());
tLogsDB.setLogsType("MEMBER");
tLogsDB.setLogsSubType(logsType);
tLogsDB.setLogsYYYY(getDate.substring(0, 4));
tLogsDB.setLogsMM(getDate.substring(4, 6));
tLogsDB.setLogsDD(getDate.substring(6, 8));
tLogsDB.setLogsHour(getDate.substring(8, 10));
tLogsDB.setLogsMinute(getDate.substring(10, 12));
tLogsDB.setLogsSecond(getDate.substring(12, 14));
tLogsDB.setMemberIp(memberIp);
tLogsDB.setMemberModId(tMemberMod.getMemberId());
tLogsDB.setMemberModName(tMemberMod.getMemberName());
tLogsDB.setLogsText(SeedUtils.setReplaceNull(logsText.get(i).toString()));
tLogsDB.setLogsRegDate(new Date());
logsDAO.setLogsRegProc(tLogsDB);
}
}
}
}else{
T_LOGS tLogsDB = new T_LOGS();
tLogsDB.setMemberId(tMember.getMemberId());
tLogsDB.setMemberName(tMember.getMemberName());
tLogsDB.setLogsType("MEMBER");
tLogsDB.setLogsSubType(logsType);
tLogsDB.setLogsYYYY(getDate.substring(0, 4));
tLogsDB.setLogsMM(getDate.substring(4, 6));
tLogsDB.setLogsDD(getDate.substring(6, 8));
tLogsDB.setLogsHour(getDate.substring(8, 10));
tLogsDB.setLogsMinute(getDate.substring(10, 12));
tLogsDB.setLogsSecond(getDate.substring(12, 14));
tLogsDB.setMemberIp(memberIp);
tLogsDB.setMemberModId(tMemberMod.getMemberId());
tLogsDB.setMemberModName(tMemberMod.getMemberName());
tLogsDB.setLogsRegDate(new Date());
logsDAO.setLogsRegProc(tLogsDB);
}
}
@Transactional
public void setLogsRegProc(String memberId, String memberName, Integer memberModIdx, String memberIp, Map<Object, Object> memberOldMap, String logsType){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String getDate = simpleDateFormat.format(new Date());
T_LOGS tLogsDB = new T_LOGS();
//사용자 페이지에서 회원탈퇴한 경우
if(memberModIdx.equals(0)){
tLogsDB.setMemberId(memberId);
tLogsDB.setMemberName(memberName);
tLogsDB.setLogsType("MEMBER");
tLogsDB.setLogsSubType(logsType);
tLogsDB.setLogsYYYY(getDate.substring(0, 4));
tLogsDB.setLogsMM(getDate.substring(4, 6));
tLogsDB.setLogsDD(getDate.substring(6, 8));
tLogsDB.setLogsHour(getDate.substring(8, 10));
tLogsDB.setLogsMinute(getDate.substring(10, 12));
tLogsDB.setLogsSecond(getDate.substring(12, 14));
tLogsDB.setMemberIp(memberIp);
tLogsDB.setMemberModId(memberId);
tLogsDB.setMemberModName(memberName);
tLogsDB.setLogsRegDate(new Date());
}else{
T_MEMBER tMemberMod = memberDAO.getMemberForm(memberModIdx);
tLogsDB.setMemberId(memberId);
tLogsDB.setMemberName(memberName);
tLogsDB.setLogsType("MEMBER");
tLogsDB.setLogsSubType(logsType);
tLogsDB.setLogsYYYY(getDate.substring(0, 4));
tLogsDB.setLogsMM(getDate.substring(4, 6));
tLogsDB.setLogsDD(getDate.substring(6, 8));
tLogsDB.setLogsHour(getDate.substring(8, 10));
tLogsDB.setLogsMinute(getDate.substring(10, 12));
tLogsDB.setLogsSecond(getDate.substring(12, 14));
tLogsDB.setMemberIp(memberIp);
tLogsDB.setMemberModId(tMemberMod.getMemberId());
tLogsDB.setMemberModName(tMemberMod.getMemberName());
tLogsDB.setLogsRegDate(new Date());
}
logsDAO.setLogsRegProc(tLogsDB);
}
}

View File

@ -0,0 +1,41 @@
package seed.dao;
import java.util.List;
import seed.map.T_SITE_MANAGER;
import seed.map.VIEW_MANAGER_DATA;
public interface SiteManagerDAO {
//AdminMemberService, ManagerMemberService
public List<T_SITE_MANAGER> getSiteManagerList(Integer memberIdx);
//ManagerMemberService
public List<VIEW_MANAGER_DATA> getSiteManagerList(Integer memberIdx, String[] qryColumns);
public Long getSiteManagerListCnt(String siteIdx, Integer memberIdx);
//AdminGroupsService , AdminSiteService
public Long getSiteManagerListCnt(Integer memberIdx);
//AdminSiteManagerService
public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search);
//AdminSiteManagerService
public List<T_SITE_MANAGER> getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//ManagerSiteManagerService
public List<T_SITE_MANAGER> getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns);
//AdminSiteService, AdminSiteManagerService
public T_SITE_MANAGER getSiteManagerForm(Integer siteManagerIdx);
//AdminSiteManagerService
public boolean setSiteManagerRegProc(T_SITE_MANAGER tSiteManager);
//AdminSiteService, AdminSiteManagerService
public boolean setSiteManagerModProc(T_SITE_MANAGER tSiteManager);
//AdminSiteManagerService
public boolean setSiteManagerDelProc(T_SITE_MANAGER tSiteManager);
}

View File

@ -0,0 +1,311 @@
package seed.dao;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import seed.map.T_SITE_MANAGER;
import seed.map.VIEW_MANAGER_DATA;
@Repository
public class SiteManagerDAOImpl implements SiteManagerDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_SITE_MANAGER> getSiteManagerList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
//ManagerMemberService
@SuppressWarnings("unchecked")
public List<VIEW_MANAGER_DATA> getSiteManagerList(Integer memberIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_MANAGER_DATA.class);
if(qryColumns != null && qryColumns.length > 0){
ProjectionList projectionList = Projections.projectionList();
boolean groupCheck = false;
for(int q=0; q<qryColumns.length; q++){
if(!groupCheck && qryColumns[q].indexOf("groupBy") >= 0){
groupCheck = true;
continue;
}
if(groupCheck){
if(qryColumns[q].indexOf("Cnt") >= 0){
String qryColumn = qryColumns[q].substring(0, qryColumns[q].indexOf("Cnt"));
projectionList.add(Projections.count(qryColumn).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
}else{
projectionList.add(Projections.groupProperty(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
}
}else{
projectionList.add(Projections.property(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
}
}
criteria.setProjection(projectionList);
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
}
criteria.add(Restrictions.eq("memberIdx", memberIdx));
return criteria.list();
}
@SuppressWarnings("deprecation")
public Long getSiteManagerListCnt(String siteIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteManagerStatus", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
//AdminGroupsService , AdminSiteService
public Long getSiteManagerListCnt(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
criteria.add(
Restrictions.and(
Restrictions.eq("siteManagerStatus", "U"),
Restrictions.eq("tMember.memberIdx", memberIdx)));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
//AdminSiteManagerService
@SuppressWarnings("deprecation")
public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
if(!selGroup.equals(0)){
criteria.add(Restrictions.eq("tGroups.tGroup.groupIdx", selGroup));
}
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("tMember.memberId", search, MatchMode.ANYWHERE),
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
//AdminSiteManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_SITE_MANAGER> getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
if(qryColumns != null && qryColumns.length > 0){
ProjectionList projectionList = Projections.projectionList();
boolean groupCheck = false;
for(int q=0; q<qryColumns.length; q++){
if(!groupCheck && qryColumns[q].indexOf("groupBy") >= 0){
groupCheck = true;
continue;
}
if(groupCheck){
if(qryColumns[q].indexOf("Cnt") >= 0){
String qryColumn = qryColumns[q].substring(0, qryColumns[q].indexOf("Cnt"));
projectionList.add(Projections.count(qryColumn).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
}else{
projectionList.add(Projections.groupProperty(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
}
}else{
projectionList.add(Projections.property(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
}
}
criteria.setProjection(projectionList);
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
}
criteria.setFirstResult(page);
criteria.setMaxResults(row);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
if(!selGroup.equals(0)){
criteria.add(Restrictions.eq("tGroups.tGroup.groupIdx", selGroup));
}
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("tMember.memberId", search, MatchMode.ANYWHERE),
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
if(orderColumn.equals("")){
orderColumn = "siteManagerIdx";
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
//ManagerSiteManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_SITE_MANAGER> getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tSite", "tSite", Criteria.LEFT_JOIN);
if(qryColumns != null && qryColumns.length > 0){
ProjectionList projectionList = Projections.projectionList();
boolean groupCheck = false;
for(int q=0; q<qryColumns.length; q++){
if(!groupCheck && qryColumns[q].indexOf("groupBy") >= 0){
groupCheck = true;
continue;
}
if(groupCheck){
if(qryColumns[q].indexOf("Cnt") >= 0){
String qryColumn = qryColumns[q].substring(0, qryColumns[q].indexOf("Cnt"));
projectionList.add(Projections.count(qryColumn).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
}else{
projectionList.add(Projections.groupProperty(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
}
}else{
projectionList.add(Projections.property(qryColumns[q]).as("_"+qryColumns[q].substring(qryColumns[q].lastIndexOf(".")+1)));
}
}
criteria.setProjection(projectionList);
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
}
if(!memberMergeSiteIdx.equals("")){
criteria.add(Restrictions.ne("tSite.siteIdx", memberMergeSiteIdx));
}
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
//AdminSiteService, AdminSiteManagerService
public T_SITE_MANAGER getSiteManagerForm(Integer siteManagerIdx){
return (T_SITE_MANAGER) this.sessionFactory.getCurrentSession().load(T_SITE_MANAGER.class, siteManagerIdx);
}
//AdminSiteService, AdminSiteManagerService, ManagerSiteService
public boolean setSiteManagerRegProc(T_SITE_MANAGER tSiteManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tSiteManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
//AdminSiteService, AdminSiteManagerService
public boolean setSiteManagerModProc(T_SITE_MANAGER tSiteManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tSiteManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
//AdminSiteManagerService
public boolean setSiteManagerDelProc(T_SITE_MANAGER tSiteManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tSiteManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
}

View File

@ -0,0 +1,66 @@
package seed.manager.bbs.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.web.multipart.MultipartFile;
import seed.map.T_BBS_DATA;
public interface ManagerBbsDataService {
//ManagerBbsController
public List<Map<Object, Object>> getBbsDashboardList(String siteIdx, int page, int row, ArrayList<String> qryArrayList);
//ManagerBbsController
public List<Map<Object, Object>> getBbsDataMiniList(Integer bbsSetIdx, int page, int row, String bbsSetDateOrder, ArrayList<String> qryArrayList);
//ManagerBbsController
public T_BBS_DATA getBbsDataForm(Integer bbsDataIdx);
//ManagerBbsController
public T_BBS_DATA getBbsReplyForm(Integer bbsDataGroup, Integer bbsDataFam);
//ManagerBbsController
public Map<Object, Object> getBbsDataPreForm(T_BBS_DATA tBbsData, String column, String search, String bbsDataCategory, String searchSDate, String searchEDate, String[] qryColumns);
//ManagerBbsController
public Map<Object, Object> getBbsDataNextForm(T_BBS_DATA tBbsData, String column, String search, String bbsDataCategory, String searchSDate, String searchEDate, String[] qryColumns);
//ManagerBbsController
public List<Map<Object, Object>> getBbsNoticeDataList(Integer bbsSetIdx, String column, String search, String bbsSetDateOrder, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList);
//ManagerBbsController
public Long getBbsDataListCnt(Integer bbsSetIdx, String column, String search, String bbsSetType, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList);
//ManagerBbsController
public List<Map<Object, Object>> getBbsDataList(Integer bbsSetIdx, int page, int row, String column, String search, String bbsSetDateOrder, String bbsSetType, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList);
//ManagerBbsController
public List<Map<Object, Object>> getBbsDataList(Integer bbsSetIdx, String column, String search, String bbsSetType, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList);
//ManagerBbsController
public boolean setBbsDataCopyProc(Integer bbsDataIdxOriginal, Integer bbsSetIdx, Integer memberIdx, String memberIp, Integer thumbWidth, Integer thumbHeight, String rootPath);
//ManagerBbsController
public boolean setBbsDataMoveProc(Integer bbsDataIdxOriginal, Integer bbsSetIdx);
//ManagerBbsController
public Integer setBbsDataRegProc(T_BBS_DATA tBbsData, Integer memberIdx, String memberIp, String fileCode, List<MultipartFile> upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath);
//ManagerBbsController
public Integer setBbsDataReplyProc(T_BBS_DATA tBbsData, Integer bbsFamIdx, Integer memberIdx, String memberIp, String fileCode, List<MultipartFile> upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath);
//ManagerBbsController
public String setBbsDataModProc(T_BBS_DATA tBbsData, Integer memberIdx, String memberIp, Integer[] bbsFileIdx, String fileCode, List<MultipartFile> upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath);
//ManagerBbsController
public String setBbsDataDelProc(Integer bbsDataIdx, String bbsSetTrash, String rootPath);
//ManagerBbsController
public boolean setBbsDataStatusProc(Integer bbsDataIdx, String status, String memberIp, String rootPath);
//ManagerBbsController
public void setBbsDataHitProc(Integer bbsDataIdx);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,57 @@
package seed.manager.bbs.service;
import java.util.List;
import java.util.Map;
import seed.map.T_BBS_ITEM;
public interface ManagerBbsItemService {
//ManagerBbsController
public List<Map<Object, Object>> getBbsItemMiniList(Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsController
public List<T_BBS_ITEM> getBbsItemViewOrderList(Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsController
public List<T_BBS_ITEM> getBbsItemMiniOrderList(Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsController
public List<Map<Object, Object>> getBbsItemList(Integer bbsSetIdx, String orderType, String[] qryColumns);
//ManagerBbsController
public List<T_BBS_ITEM> getBbsItemValuesList(Integer bbsSetIdx, String orderType, String[] qryColumns);
//ManagerBbsController
public List<T_BBS_ITEM> getBbsItemValuesGroupList(Integer bbsSetIdx, String bbsItemGroup, String[] qryColumns);
//ManagerBbsController
public Long getBbsItemListCnt(Integer bbsSetIdx);
//ManagerBbsController
public T_BBS_ITEM getBbsItemValueForm(Integer bbsSetIdx, String bbsItemGroup);
//ManagerBbsController
public T_BBS_ITEM getBbsItemForm(Integer bbsSetIdx, String bbsItemGroup);
//ManagerBbsController
public String setBbsItemRegProc(T_BBS_ITEM tBbsItem, Integer[] bbsItemWidth, Integer[] bbsItemHeight, String[] bbsItemValues, Integer memberIdx);
//ManagerBbsController
public boolean setBbsItemModProc(T_BBS_ITEM tBbsItem, Integer[] bbsItemWidth, Integer[] bbsItemHeight, String[] bbsItemValues, Integer[] bbsItemIdxs);
//ManagerBbsController
public boolean setBbsItemDelProc(Integer bbsSetIdx, String bbsItemGroup);
//ManagerBbsController
public boolean setBbsItemStatusProc(Integer bbsSetIdx, String bbsItemGroup, String status);
//ManagerBbsController
public boolean setBbsItemMiniOrderProc(Integer bbsSetIdx, Integer bbsItemMiniOrder, String orderType);
//ManagerBbsController
public boolean setBbsItemListOrderProc(Integer bbsSetIdx, Integer bbsItemListOrder, String orderType);
//ManagerBbsController
public boolean setBbsItemViewOrderProc(Integer bbsSetIdx, Integer bbsItemViewOrder, String orderType);
}

View File

@ -0,0 +1,749 @@
package seed.manager.bbs.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.BbsItemDAO;
import seed.map.T_BBS_ITEM;
import seed.map.T_MEMBER;
@Service
public class ManagerBbsItemServiceImpl extends AbstractServiceImpl implements ManagerBbsItemService{
@Autowired
private BbsItemDAO bbsItemDAO;
//ManagerBbsController
public List<Map<Object, Object>> getBbsItemMiniList(Integer bbsSetIdx, String[] qryColumns){
return bbsItemDAO.getBbsItemMiniList(bbsSetIdx, qryColumns);
}
//ManagerBbsController
public List<T_BBS_ITEM> getBbsItemViewOrderList(Integer bbsSetIdx, String[] qryColumns){
return bbsItemDAO.getBbsItemViewOrderList(bbsSetIdx, qryColumns);
}
//ManagerBbsController
public List<T_BBS_ITEM> getBbsItemMiniOrderList(Integer bbsSetIdx, String[] qryColumns){
return bbsItemDAO.getBbsItemMiniOrderList(bbsSetIdx, qryColumns);
}
//ManagerBbsController
public List<Map<Object, Object>> getBbsItemList(Integer bbsSetIdx, String orderType, String[] qryColumns){
return bbsItemDAO.getBbsItemList(bbsSetIdx, orderType, qryColumns);
}
//ManagerBbsController
public List<T_BBS_ITEM> getBbsItemValuesList(Integer bbsSetIdx, String orderType, String[] qryColumns){
return bbsItemDAO.getBbsItemValuesList(bbsSetIdx, orderType, qryColumns);
}
//ManagerBbsController
public List<T_BBS_ITEM> getBbsItemValuesGroupList(Integer bbsSetIdx, String bbsItemGroup, String[] qryColumns){
return bbsItemDAO.getBbsItemValuesGroupList(bbsSetIdx, bbsItemGroup, qryColumns);
}
//ManagerBbsController
public Long getBbsItemListCnt(Integer bbsSetIdx){
return bbsItemDAO.getBbsItemListCnt(bbsSetIdx);
}
//ManagerBbsController
public T_BBS_ITEM getBbsItemValueForm(Integer bbsSetIdx, String bbsItemGroup){
return bbsItemDAO.getBbsItemValueForm(bbsSetIdx, bbsItemGroup);
}
//ManagerBbsController
public T_BBS_ITEM getBbsItemForm(Integer bbsSetIdx, String bbsItemGroup){
return bbsItemDAO.getBbsItemForm(bbsSetIdx, bbsItemGroup);
}
//ManagerBbsController
@Transactional
public String setBbsItemRegProc(T_BBS_ITEM tBbsItem, Integer[] bbsItemWidth, Integer[] bbsItemHeight, String[] bbsItemValues, Integer memberIdx){
String bbsItemGroup = "";
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
String[] qryColumns = {"groupBy", "bbsItemGroup"};
List<Map<String, Object>> tBbsItemMapList = bbsItemDAO.getBbsItemGroupList(tBbsItem.gettBbsSet().getBbsSetIdx(), qryColumns);
String[] bbsItemGroups = {"bbsDataItemA1", "bbsDataItemB2", "bbsDataItemC3", "bbsDataItemD4", "bbsDataItemE5",
"bbsDataItemF6", "bbsDataItemG7", "bbsDataItemH8", "bbsDataItemI9", "bbsDataItemJ10"};
if(tBbsItemMapList.size() > 0){
for(int g=0; g<tBbsItemMapList.size(); g++){
Map<String, Object> tBbsItemMapDB = tBbsItemMapList.get(g);
if(!tBbsItemMapDB.get("_bbsItemGroup").equals(bbsItemGroups[g])){
bbsItemGroup = bbsItemGroups[g];
break;
}
}
if(bbsItemGroup.equals("")){
bbsItemGroup = bbsItemGroups[tBbsItemMapList.size()];
}
}else{
bbsItemGroup = bbsItemGroups[0];
}
Integer bbsItemMiniOrder = bbsItemDAO.getBbsItemMiniOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1;
Integer bbsItemListOrder = bbsItemDAO.getBbsItemListOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1;
Integer bbsItemViewOrder = bbsItemDAO.getBbsItemViewOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1;
if(bbsItemValues.length == 0){
tBbsItem.settMember(tMember);
tBbsItem.setBbsItemValue("");
tBbsItem.setBbsItemWidth(bbsItemWidth[0]);
if(bbsItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tBbsItem.setBbsItemHeight(bbsItemHeight[0]);
}
tBbsItem.setBbsItemGroup(bbsItemGroup);
if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){
tBbsItem.setBbsItemMiniOrder(bbsItemMiniOrder);
}
tBbsItem.setBbsItemListOrder(bbsItemListOrder);
tBbsItem.setBbsItemViewOrder(bbsItemViewOrder);
tBbsItem.setBbsItemType("A");
tBbsItem.setBbsItemStatus("U");
tBbsItem.setBbsItemCount(1);
tBbsItem.setBbsItemRegDate(new Date());
if(bbsItemDAO.setBbsItemRegProc(tBbsItem).getBbsItemIdx() == 0){
bbsItemGroup = "";
}
}else{
for(int i=0; i<bbsItemValues.length; i++){
tBbsItem.settMember(tMember);
if(bbsItemWidth.length == 1){
tBbsItem.setBbsItemWidth(bbsItemWidth[0]);
}else if(bbsItemWidth.length > 1){ //TEXT, LINK, TEXTAREA 경우에만 적용
tBbsItem.setBbsItemWidth(bbsItemWidth[i]);
}
if(bbsItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tBbsItem.setBbsItemHeight(bbsItemHeight[i]);
}
tBbsItem.setBbsItemValue(bbsItemValues[i]);
tBbsItem.setBbsItemGroup(bbsItemGroup);
if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){
tBbsItem.setBbsItemMiniOrder(bbsItemMiniOrder);
}
tBbsItem.setBbsItemListOrder(bbsItemListOrder);
tBbsItem.setBbsItemViewOrder(bbsItemViewOrder);
tBbsItem.setBbsItemType("A");
tBbsItem.setBbsItemStatus("U");
tBbsItem.setBbsItemRegDate(new Date());
if(bbsItemDAO.setBbsItemRegProc(tBbsItem).getBbsItemIdx() == 0){
bbsItemGroup = "";
break;
}
}
}
return bbsItemGroup;
}
//ManagerBbsController
@Transactional
public boolean setBbsItemModProc(T_BBS_ITEM tBbsItem, Integer[] bbsItemWidth, Integer[] bbsItemHeight, String[] bbsItemValues, Integer[] bbsItemIdxs){
boolean success = true;
Integer bbsItemMiniOrder = null;
if(bbsItemValues.length > 0 && bbsItemIdxs.length > 0){//bbsItemValues와 bbsItemIdxs의 값이 있으면 기존값 수정
for(int i=0; i<bbsItemValues.length; i++){
T_BBS_ITEM tBbsItemDB = bbsItemDAO.getBbsItemForm(bbsItemIdxs[i]);
if(i == 0){
if(tBbsItemDB.getBbsItemMiniList() != null && tBbsItemDB.getBbsItemMiniList().equals("Y")){ //기존에 미니리스트 목록 사용을 한경우
if(tBbsItem.getBbsItemMiniList() == null){//기존에 미니리스트를 사용 하다가 사용안한경우
//현재 bbsItemMiniOrder보다 bbsItemMiniOrder를 -1
bbsItemDAO.setBbsItemMiniOrderProc(tBbsItem.gettBbsSet().getBbsSetIdx(), tBbsItemDB.getBbsItemMiniOrder());
}else{
//기존의 미니리스트를 사용하고 현재도 사용한경우
bbsItemMiniOrder = tBbsItemDB.getBbsItemMiniOrder();
}
}else{ //기존에 미니리스트 목록 사용을 안한경우
if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){//기존에 미니리스트를 사용안하다가 사용한 경우
//MAX bbsItemMiniOrder를 가져옴
bbsItemMiniOrder = bbsItemDAO.getBbsItemMiniOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1;
}
}
}
tBbsItemDB.setBbsItemValue(bbsItemValues[i]);
if(bbsItemWidth.length == 1){
tBbsItemDB.setBbsItemWidth(bbsItemWidth[0]);
}else if(bbsItemWidth.length > 1){ //TEXT, LINK, TEXTAREA 경우에만 적용
tBbsItemDB.setBbsItemWidth(bbsItemWidth[i]);
}
if(bbsItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tBbsItemDB.setBbsItemHeight(bbsItemHeight[i]);
}
tBbsItemDB.setBbsItemName(tBbsItem.getBbsItemName());
tBbsItemDB.setBbsItemPattern(tBbsItem.getBbsItemPattern());
tBbsItemDB.setBbsItemWL(tBbsItem.getBbsItemWL());
tBbsItemDB.setBbsItemText(tBbsItem.getBbsItemText());
tBbsItemDB.setBbsItemEssential(tBbsItem.getBbsItemEssential());
tBbsItemDB.setBbsItemColWidth(tBbsItem.getBbsItemColWidth());
tBbsItemDB.setBbsItemCount(tBbsItem.getBbsItemCount());
if(tBbsItem.getBbsItemDataMiniLength() == null){
tBbsItemDB.setBbsItemDataMiniLength(0);
}else{
tBbsItemDB.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength());
}
if(tBbsItem.getBbsItemDataLength() == null){
tBbsItemDB.setBbsItemDataLength(0);
}else{
tBbsItemDB.setBbsItemDataLength(tBbsItem.getBbsItemDataLength());
}
tBbsItemDB.setBbsItemMiniList(tBbsItem.getBbsItemMiniList());
tBbsItemDB.setBbsItemList(tBbsItem.getBbsItemList());
tBbsItemDB.setBbsItemView(tBbsItem.getBbsItemView());
tBbsItemDB.setBbsItemLink(tBbsItem.getBbsItemLink());
tBbsItemDB.setBbsItemSearch(tBbsItem.getBbsItemSearch());
tBbsItemDB.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden());
tBbsItemDB.setBbsItemMiniOrder(bbsItemMiniOrder);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){
success = false;
break;
}
}
}else if(bbsItemValues.length > 0){//bbsItemValues에만 값이 있으면 비교하여 수정 삭제 또는 추가
T_BBS_ITEM tBbsItemDB = bbsItemDAO.getBbsItemForm(tBbsItem.getBbsItemIdx());
String[] qryColumns = null;
List<T_BBS_ITEM> tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(tBbsItemDB.gettBbsSet().getBbsSetIdx(), tBbsItemDB.getBbsItemGroup(), qryColumns);
if(tBbsItemList.size() > bbsItemValues.length){//기존의 row수가 현재보다 크면 수정 삭제
for(int i=0; i<tBbsItemList.size(); i++){
T_BBS_ITEM tBbsItemTmp = tBbsItemList.get(i);
if(i == 0){
if(tBbsItemDB.getBbsItemMiniList() != null && tBbsItemDB.getBbsItemMiniList().equals("Y")){ //기존에 미니리스트 목록 사용을 한경우
if(tBbsItem.getBbsItemMiniList() == null){//기존에 미니리스트를 사용 하다가 사용안한경우
//현재 bbsItemMiniOrder보다 bbsItemMiniOrder를 -1
bbsItemDAO.setBbsItemMiniOrderProc(tBbsItem.gettBbsSet().getBbsSetIdx(), tBbsItemDB.getBbsItemMiniOrder());
}else{
//기존의 미니리스트를 사용하고 현재도 사용한경우
bbsItemMiniOrder = tBbsItemDB.getBbsItemMiniOrder();
}
}else{ //기존에 미니리스트 목록 사용을 안한경우
if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){//기존에 미니리스트를 사용안하다가 사용한 경우
//MAX bbsItemMiniOrder를 가져옴
bbsItemMiniOrder = bbsItemDAO.getBbsItemMiniOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1;
}
}
}
if(i < bbsItemValues.length){
tBbsItemTmp.setBbsItemValue(bbsItemValues[i]);
if(bbsItemWidth.length == 1){
tBbsItemTmp.setBbsItemWidth(bbsItemWidth[0]);
}else if(bbsItemWidth.length > 1){ //TEXT, LINK, TEXTAREA 경우에만 적용
tBbsItemTmp.setBbsItemWidth(bbsItemWidth[i]);
}
if(bbsItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tBbsItemTmp.setBbsItemHeight(bbsItemHeight[i]);
}
tBbsItemTmp.setBbsItemName(tBbsItem.getBbsItemName());
tBbsItemTmp.setBbsItemPattern(tBbsItem.getBbsItemPattern());
tBbsItemTmp.setBbsItemWL(tBbsItem.getBbsItemWL());
tBbsItemTmp.setBbsItemText(tBbsItem.getBbsItemText());
tBbsItemTmp.setBbsItemEssential(tBbsItem.getBbsItemEssential());
tBbsItemTmp.setBbsItemColWidth(tBbsItem.getBbsItemColWidth());
tBbsItemTmp.setBbsItemCount(tBbsItem.getBbsItemCount());
if(tBbsItem.getBbsItemDataMiniLength() == null){
tBbsItemTmp.setBbsItemDataMiniLength(0);
}else{
tBbsItemTmp.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength());
}
if(tBbsItem.getBbsItemDataLength() == null){
tBbsItemTmp.setBbsItemDataLength(0);
}else{
tBbsItemTmp.setBbsItemDataLength(tBbsItem.getBbsItemDataLength());
}
tBbsItemTmp.setBbsItemMiniList(tBbsItem.getBbsItemMiniList());
tBbsItemTmp.setBbsItemList(tBbsItem.getBbsItemList());
tBbsItemTmp.setBbsItemView(tBbsItem.getBbsItemView());
tBbsItemTmp.setBbsItemLink(tBbsItem.getBbsItemLink());
tBbsItemTmp.setBbsItemSearch(tBbsItem.getBbsItemSearch());
tBbsItemTmp.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden());
tBbsItemTmp.setBbsItemMiniOrder(bbsItemMiniOrder);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemTmp)){
success = false;
break;
}
}else{
if(!bbsItemDAO.setBbsItemDelProc(tBbsItemTmp)){
success = false;
break;
}
}
}
}else{//기존의 row수가 현재보다 작거나 같으면 수정 추가 또는 수정
for(int i=0; i<bbsItemValues.length; i++){
if(i == 0){
if(tBbsItemDB.getBbsItemMiniList() != null && tBbsItemDB.getBbsItemMiniList().equals("Y")){ //기존에 미니리스트 목록 사용을 한경우
if(tBbsItem.getBbsItemMiniList() == null){//기존에 미니리스트를 사용 하다가 사용안한경우
//현재 bbsItemMiniOrder보다 bbsItemMiniOrder를 -1
bbsItemDAO.setBbsItemMiniOrderProc(tBbsItem.gettBbsSet().getBbsSetIdx(), tBbsItemDB.getBbsItemMiniOrder());
}else{
//기존의 미니리스트를 사용하고 현재도 사용한경우
bbsItemMiniOrder = tBbsItemDB.getBbsItemMiniOrder();
}
}else{ //기존에 미니리스트 목록 사용을 안한경우
if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){//기존에 미니리스트를 사용안하다가 사용한 경우
//MAX bbsItemMiniOrder를 가져옴
bbsItemMiniOrder = bbsItemDAO.getBbsItemMiniOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1;
}
}
}
if(i < tBbsItemList.size()){
T_BBS_ITEM tBbsItemTmp = tBbsItemList.get(i);
tBbsItemTmp.setBbsItemValue(bbsItemValues[i]);
if(bbsItemWidth.length == 1){
tBbsItemTmp.setBbsItemWidth(bbsItemWidth[0]);
}else if(bbsItemWidth.length > 1){ //TEXT, LINK, TEXTAREA 경우에만 적용
tBbsItemTmp.setBbsItemWidth(bbsItemWidth[i]);
}
if(bbsItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tBbsItemTmp.setBbsItemHeight(bbsItemHeight[i]);
}
tBbsItemTmp.setBbsItemName(tBbsItem.getBbsItemName());
tBbsItemTmp.setBbsItemPattern(tBbsItem.getBbsItemPattern());
tBbsItemTmp.setBbsItemWL(tBbsItem.getBbsItemWL());
tBbsItemTmp.setBbsItemText(tBbsItem.getBbsItemText());
tBbsItemTmp.setBbsItemEssential(tBbsItem.getBbsItemEssential());
tBbsItemTmp.setBbsItemColWidth(tBbsItem.getBbsItemColWidth());
tBbsItemTmp.setBbsItemCount(tBbsItem.getBbsItemCount());
if(tBbsItem.getBbsItemDataMiniLength() == null){
tBbsItemTmp.setBbsItemDataMiniLength(0);
}else{
tBbsItemTmp.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength());
}
if(tBbsItem.getBbsItemDataLength() == null){
tBbsItemTmp.setBbsItemDataLength(0);
}else{
tBbsItemTmp.setBbsItemDataLength(tBbsItem.getBbsItemDataLength());
}
tBbsItemTmp.setBbsItemMiniList(tBbsItem.getBbsItemMiniList());
tBbsItemTmp.setBbsItemList(tBbsItem.getBbsItemList());
tBbsItemTmp.setBbsItemView(tBbsItem.getBbsItemView());
tBbsItemTmp.setBbsItemLink(tBbsItem.getBbsItemLink());
tBbsItemTmp.setBbsItemSearch(tBbsItem.getBbsItemSearch());
tBbsItemTmp.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden());
tBbsItemTmp.setBbsItemMiniOrder(bbsItemMiniOrder);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemTmp)){
success = false;
break;
}
}else{
T_BBS_ITEM tBbsItemTmp = new T_BBS_ITEM();
tBbsItemTmp.setBbsItemValue(bbsItemValues[i]);
if(bbsItemWidth.length == 1){
tBbsItemTmp.setBbsItemWidth(bbsItemWidth[0]);
}else if(bbsItemWidth.length > 1){ //TEXT, LINK, TEXTAREA 경우에만 적용
tBbsItemTmp.setBbsItemWidth(bbsItemWidth[i]);
}
if(bbsItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tBbsItemTmp.setBbsItemHeight(bbsItemHeight[i]);
}
tBbsItemTmp.setBbsItemName(tBbsItem.getBbsItemName());
tBbsItemTmp.setBbsItemPattern(tBbsItem.getBbsItemPattern());
tBbsItemTmp.setBbsItemWL(tBbsItem.getBbsItemWL());
tBbsItemTmp.setBbsItemText(tBbsItem.getBbsItemText());
tBbsItemTmp.setBbsItemEssential(tBbsItem.getBbsItemEssential());
tBbsItemTmp.setBbsItemColWidth(tBbsItem.getBbsItemColWidth());
tBbsItemTmp.setBbsItemCount(tBbsItem.getBbsItemCount());
if(tBbsItem.getBbsItemDataMiniLength() == null){
tBbsItemTmp.setBbsItemDataMiniLength(0);
}else{
tBbsItemTmp.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength());
}
if(tBbsItem.getBbsItemDataLength() == null){
tBbsItemTmp.setBbsItemDataLength(0);
}else{
tBbsItemTmp.setBbsItemDataLength(tBbsItem.getBbsItemDataLength());
}
tBbsItemTmp.setBbsItemMiniList(tBbsItem.getBbsItemMiniList());
tBbsItemTmp.setBbsItemList(tBbsItem.getBbsItemList());
tBbsItemTmp.setBbsItemView(tBbsItem.getBbsItemView());
tBbsItemTmp.setBbsItemLink(tBbsItem.getBbsItemLink());
tBbsItemTmp.setBbsItemSearch(tBbsItem.getBbsItemSearch());
tBbsItemTmp.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden());
tBbsItemTmp.setBbsItemMiniOrder(bbsItemMiniOrder);
tBbsItemTmp.setBbsItemType(tBbsItemDB.getBbsItemType());
tBbsItemTmp.setBbsItemStatus("U");
tBbsItemTmp.settBbsSet(tBbsItemDB.gettBbsSet());
tBbsItemTmp.settMember(tBbsItemDB.gettMember());
tBbsItemTmp.setBbsItemGroup(tBbsItemDB.getBbsItemGroup());
tBbsItemTmp.setBbsItemListOrder(tBbsItemDB.getBbsItemListOrder());
tBbsItemTmp.setBbsItemViewOrder(tBbsItemDB.getBbsItemViewOrder());
tBbsItemTmp.setBbsItemRegDate(tBbsItemDB.getBbsItemRegDate());
if(bbsItemDAO.setBbsItemRegProc(tBbsItemTmp).getBbsItemIdx() == 0){
success = false;
break;
}
}
}
}
}else{
T_BBS_ITEM tBbsItemTmpDB = bbsItemDAO.getBbsItemForm(tBbsItem.getBbsItemIdx());
if(tBbsItemTmpDB.getBbsItemMiniList() != null && tBbsItemTmpDB.getBbsItemMiniList().equals("Y")){ //기존에 미니리스트 목록 사용을 한경우
if(tBbsItem.getBbsItemMiniList() == null){//기존에 미니리스트를 사용 하다가 사용안한경우
//현재 bbsItemMiniOrder보다 bbsItemMiniOrder를 -1
bbsItemDAO.setBbsItemMiniOrderProc(tBbsItem.gettBbsSet().getBbsSetIdx(), tBbsItemTmpDB.getBbsItemMiniOrder());
}else{
//기존의 미니리스트를 사용하고 현재도 사용한경우
bbsItemMiniOrder = tBbsItemTmpDB.getBbsItemMiniOrder();
}
}else{ //기존에 미니리스트 목록 사용을 안한경우
if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){//기존에 미니리스트를 사용안하다가 사용한 경우
//MAX bbsItemMiniOrder를 가져옴
bbsItemMiniOrder = bbsItemDAO.getBbsItemMiniOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1;
}
}
String[] qryColumns = null;
List<T_BBS_ITEM> tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(tBbsItemTmpDB.gettBbsSet().getBbsSetIdx(), tBbsItemTmpDB.getBbsItemGroup(), qryColumns);
if(tBbsItemList.size() > 1){ //SELECT, RADIO, CHECKBOX였다가 TEXT, LINK, TEXTAREA로 변경되었을때 추가 항목 삭제 (1개 이상일때)
for(int i=0; i<tBbsItemList.size(); i++){
T_BBS_ITEM tBbsItemDBTmp = tBbsItemList.get(i);
if(!tBbsItemTmpDB.getBbsItemIdx().equals(tBbsItemDBTmp.getBbsItemIdx())){ //넘어온 bbsItemIdx는 수정 해야하므로 삭제 하지 않음
if(!bbsItemDAO.setBbsItemDelProc(tBbsItemDBTmp)){
success = false;
break;
}
}
}
}
if(success){
T_BBS_ITEM tBbsItemDB = bbsItemDAO.getBbsItemForm(tBbsItem.getBbsItemIdx());
tBbsItemDB.setBbsItemName(tBbsItem.getBbsItemName());
tBbsItemDB.setBbsItemColWidth(tBbsItem.getBbsItemColWidth());
if(tBbsItem.getBbsItemDataMiniLength() == null){
tBbsItemDB.setBbsItemDataMiniLength(0);
}else{
tBbsItemDB.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength());
}
if(tBbsItem.getBbsItemDataLength() == null){
tBbsItemDB.setBbsItemDataLength(0);
}else{
tBbsItemDB.setBbsItemDataLength(tBbsItem.getBbsItemDataLength());
}
tBbsItemDB.setBbsItemMiniList(tBbsItem.getBbsItemMiniList());
tBbsItemDB.setBbsItemList(tBbsItem.getBbsItemList());
tBbsItemDB.setBbsItemView(tBbsItem.getBbsItemView());
tBbsItemDB.setBbsItemLink(tBbsItem.getBbsItemLink());
tBbsItemDB.setBbsItemSearch(tBbsItem.getBbsItemSearch());
tBbsItemDB.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden());
tBbsItemDB.setBbsItemMiniOrder(bbsItemMiniOrder);
//첨부파일일경우는 항목설명을 넣어준다
if(tBbsItemDB.getBbsItemPattern().equals("FILE")){
tBbsItemDB.setBbsItemText(tBbsItem.getBbsItemText());
}
if(!tBbsItemDB.getBbsItemPattern().equals("IDX") &&
!tBbsItemDB.getBbsItemPattern().equals("THUMB") &&
!tBbsItemDB.getBbsItemPattern().equals("REGDATE") &&
!tBbsItemDB.getBbsItemPattern().equals("HIT") &&
!tBbsItemDB.getBbsItemPattern().equals("FILE")){
if(tBbsItemDB.getBbsItemType().equals("A")){
tBbsItemDB.setBbsItemPattern(tBbsItem.getBbsItemPattern());
}
if(bbsItemValues.length == 0){
tBbsItemDB.setBbsItemValue("");
}
tBbsItemDB.setBbsItemText(tBbsItem.getBbsItemText());
tBbsItemDB.setBbsItemEssential(tBbsItem.getBbsItemEssential());
tBbsItemDB.setBbsItemWidth(bbsItemWidth[0]);
if(bbsItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tBbsItemDB.setBbsItemHeight(bbsItemHeight[0]);
}
tBbsItemDB.setBbsItemCount(tBbsItem.getBbsItemCount());
}
if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){
success = false;
}
}
}
return success;
}
//ManagerBbsController
@Transactional
public boolean setBbsItemDelProc(Integer bbsSetIdx, String bbsItemGroup){
boolean success = true;
String[] qryColumns = null;
List<T_BBS_ITEM> tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(bbsSetIdx, bbsItemGroup, qryColumns);
for(int d=0; d<tBbsItemList.size(); d++){
T_BBS_ITEM tBbsItemTmp = tBbsItemList.get(d);
if(d == 0){
if(bbsItemDAO.getBbsItemListCnt(tBbsItemTmp.gettBbsSet().getBbsSetIdx()) > 1){
bbsItemDAO.setBbsItemListOrderProc(tBbsItemTmp.gettBbsSet().getBbsSetIdx(), tBbsItemTmp.getBbsItemListOrder());
bbsItemDAO.setBbsItemViewOrderProc(tBbsItemTmp.gettBbsSet().getBbsSetIdx(), tBbsItemTmp.getBbsItemViewOrder());
if(tBbsItemTmp.getBbsItemMiniOrder() != null && tBbsItemTmp.getBbsItemMiniOrder() > 0){
bbsItemDAO.setBbsItemMiniOrderProc(tBbsItemTmp.gettBbsSet().getBbsSetIdx(), tBbsItemTmp.getBbsItemMiniOrder());
}
}
}
if(!bbsItemDAO.setBbsItemDelProc(tBbsItemTmp)){
success = false;
}
}
return success;
}
//ManagerBbsController
@Transactional
public boolean setBbsItemStatusProc(Integer bbsSetIdx, String bbsItemGroup, String status){
boolean success = true;
String[] qryColumns = null;
List<T_BBS_ITEM> tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(bbsSetIdx, bbsItemGroup, qryColumns);
for(int m=0; m<tBbsItemList.size(); m++){
T_BBS_ITEM tBbsItemTmp = tBbsItemList.get(m);
tBbsItemTmp.setBbsItemStatus(status);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemTmp)){
success = false;
}
}
return success;
}
//ManagerBbsController
@Transactional
public boolean setBbsItemMiniOrderProc(Integer bbsSetIdx, Integer bbsItemMiniOrder, String orderType){
boolean success = true;
Integer bbsItemMiniOrderTmp = bbsItemMiniOrder;
if(orderType.equals("up")){
bbsItemMiniOrder = bbsItemMiniOrder - 1;
}else{
bbsItemMiniOrder = bbsItemMiniOrder + 1;
}
String[] qryColumns = null;
List<T_BBS_ITEM> tBbsItemMiniOrderList = bbsItemDAO.getBbsItemMiniOrderList(bbsSetIdx, bbsItemMiniOrder, qryColumns);
List<T_BBS_ITEM> tBbsItemMiniList = bbsItemDAO.getBbsItemMiniOrderList(bbsSetIdx, bbsItemMiniOrderTmp, qryColumns);
for(int i=0; i<tBbsItemMiniOrderList.size(); i++){
T_BBS_ITEM tBbsItemDB = tBbsItemMiniOrderList.get(i);
tBbsItemDB.setBbsItemMiniOrder(bbsItemMiniOrderTmp);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){
success = false;
break;
}
}
if(success = true){
for(int i=0; i<tBbsItemMiniList.size(); i++){
T_BBS_ITEM tBbsItemDB = tBbsItemMiniList.get(i);
tBbsItemDB.setBbsItemMiniOrder(bbsItemMiniOrder);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){
success = false;
break;
}
}
}
return success;
}
//ManagerBbsController
@Transactional
public boolean setBbsItemListOrderProc(Integer bbsSetIdx, Integer bbsItemListOrder, String orderType){
boolean success = true;
Integer bbsItemListOrderTmp = bbsItemListOrder;
if(orderType.equals("up")){
bbsItemListOrder = bbsItemListOrder - 1;
}else{
bbsItemListOrder = bbsItemListOrder + 1;
}
String[] qryColumns = null;
List<T_BBS_ITEM> tBbsItemOrderList = bbsItemDAO.getBbsItemListOrderList(bbsSetIdx, bbsItemListOrder, qryColumns);
List<T_BBS_ITEM> tBbsItemList = bbsItemDAO.getBbsItemListOrderList(bbsSetIdx, bbsItemListOrderTmp, qryColumns);
for(int i=0; i<tBbsItemOrderList.size(); i++){
T_BBS_ITEM tBbsItemDB = tBbsItemOrderList.get(i);
tBbsItemDB.setBbsItemListOrder(bbsItemListOrderTmp);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){
success = false;
break;
}
}
if(success = true){
for(int i=0; i<tBbsItemList.size(); i++){
T_BBS_ITEM tBbsItemDB = tBbsItemList.get(i);
tBbsItemDB.setBbsItemListOrder(bbsItemListOrder);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){
success = false;
break;
}
}
}
return success;
}
//ManagerBbsController
@Transactional
public boolean setBbsItemViewOrderProc(Integer bbsSetIdx, Integer bbsItemViewOrder, String orderType){
boolean success = true;
Integer bbsItemViewOrderTmp = bbsItemViewOrder;
if(orderType.equals("up")){
bbsItemViewOrder = bbsItemViewOrder - 1;
}else{
bbsItemViewOrder = bbsItemViewOrder + 1;
}
String[] qryColumns = null;
List<T_BBS_ITEM> tBbsItemOrderList = bbsItemDAO.getBbsItemViewOrderList(bbsSetIdx, bbsItemViewOrder, qryColumns);
List<T_BBS_ITEM> tBbsItemList = bbsItemDAO.getBbsItemViewOrderList(bbsSetIdx, bbsItemViewOrderTmp, qryColumns);
for(int i=0; i<tBbsItemOrderList.size(); i++){
T_BBS_ITEM tBbsItemDB = tBbsItemOrderList.get(i);
tBbsItemDB.setBbsItemViewOrder(bbsItemViewOrderTmp);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){
success = false;
break;
}
}
if(success = true){
for(int i=0; i<tBbsItemList.size(); i++){
T_BBS_ITEM tBbsItemDB = tBbsItemList.get(i);
tBbsItemDB.setBbsItemViewOrder(bbsItemViewOrder);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){
success = false;
break;
}
}
}
return success;
}
}

View File

@ -0,0 +1,42 @@
package seed.manager.bbs.service;
import java.util.List;
import java.util.Map;
import seed.map.T_BBS_MANAGER;
public interface ManagerBbsManagerService {
//ManagerBbsController
public boolean getBbsManagerListGrantCnt(Integer bbsSetIdx, Integer memberIdx);
//UserBbsController
public boolean getBbsManagerListCnt(Integer bbsSetIdx, Integer memberIdx);
//CommonController
public Long getBbsManagerListCnt(Integer bbsSetIdx, Integer selGroup, String column, String search);
//ManagerBbsController
public Long getBbsManagerListCnt(String siteIdx, Integer memberIdx, String column, String search);
//CommonController
public List<T_BBS_MANAGER> getBbsManagerList(Integer bbsSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//ManagerBbsController
public List<T_BBS_MANAGER> getBbsManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerBbsController
public List<Map<Object, Object>> getBbsManagerList(String siteIdx, Integer bbsSetIdx, String[] qryColumns);
//CommonController
public boolean setBbsManagerRegProc(Integer bbsSetIdx, Integer[] idxsc);
//CommonController
public boolean setBbsManagerDelProc(Integer bbsManagerIdx);
//CommonController
public boolean setBbsManagerStatusProc(Integer bbsManagerIdx, String status);
//CommonController
public boolean setBbsManagerGrantProc(Integer bbsManagerIdx, String grant);
}

View File

@ -0,0 +1,196 @@
package seed.manager.bbs.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.BbsManagerDAO;
import seed.dao.MemberDAO;
import seed.dao.SiteManagerDAO;
import seed.map.T_BBS_MANAGER;
import seed.map.T_BBS_SET;
import seed.map.T_MEMBER;
@Service
public class ManagerBbsManagerServiceImpl extends AbstractServiceImpl implements ManagerBbsManagerService{
@Autowired
private BbsManagerDAO bbsManagerDAO;
@Autowired
private SiteManagerDAO siteManagerDAO;
@Autowired
private MemberDAO memberDAO;
//ManagerBbsController
public boolean getBbsManagerListGrantCnt(Integer bbsSetIdx, Integer memberIdx){
boolean success = false;
if(bbsManagerDAO.getBbsManagerListGrantCnt(bbsSetIdx, memberIdx) > 0){
success = true;
}
return success;
}
//UserBbsController
public boolean getBbsManagerListCnt(Integer bbsSetIdx, Integer memberIdx){
boolean success = false;
if(bbsManagerDAO.getBbsManagerListCnt(bbsSetIdx, memberIdx) > 0){
success = true;
}
return success;
}
//CommonController
public Long getBbsManagerListCnt(Integer bbsSetIdx, Integer selGroup, String column, String search){
return bbsManagerDAO.getBbsManagerListCnt(bbsSetIdx, selGroup, column, search);
}
//ManagerBbsController
public Long getBbsManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){
return bbsManagerDAO.getBbsManagerListCnt(siteIdx, memberIdx, column, search);
}
//CommonController
public List<T_BBS_MANAGER> getBbsManagerList(Integer bbsSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
return bbsManagerDAO.getBbsManagerList(bbsSetIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns);
}
//ManagerBbsController
public List<T_BBS_MANAGER> getBbsManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
return bbsManagerDAO.getBbsManagerList(siteIdx, memberIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns);
}
//ManagerBbsController
public List<Map<Object, Object>> getBbsManagerList(String siteIdx, Integer bbsSetIdx, String[] qryColumns){
return bbsManagerDAO.getBbsManagerList(siteIdx, bbsSetIdx, qryColumns);
}
//CommonController
@Transactional
public boolean setBbsManagerRegProc(Integer bbsSetIdx, Integer[] idxsc){
boolean success = false;
if(idxsc.length > 0){
for(int i=0; i<idxsc.length; i++){
if(bbsManagerDAO.getBbsManagerListCnt(bbsSetIdx, idxsc[i]) > 0){
success = true;
}else{
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(idxsc[i]);
T_BBS_SET tBbsSet = new T_BBS_SET();
tBbsSet.setBbsSetIdx(bbsSetIdx);
T_BBS_MANAGER tBbsManager = new T_BBS_MANAGER();
tBbsManager.settMember(tMember);
tBbsManager.settBbsSet(tBbsSet);
tBbsManager.setBbsManagerStatus("U");
tBbsManager.setBbsManagerGrant("S");
tBbsManager.setBbsManagerRegDate(new Date());
if(bbsManagerDAO.setBbsManagerRegProc(tBbsManager)){
success = true;
T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]);
if(!tMemberDB.getMemberGrant().equals("S")){
if(tMemberDB.getMemberGrant().equals("SM")){
tMemberDB.setMemberGrant("SM");
}else{
tMemberDB.setMemberGrant("M");
}
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
break;
}
}
}else{
success = false;
}
}
}
}
return success;
}
//CommonController
@Transactional
public boolean setBbsManagerDelProc(Integer bbsManagerIdx){
boolean success = false;
T_BBS_MANAGER tBbsManagerDB = bbsManagerDAO.getBbsManagerForm(bbsManagerIdx);
if(bbsManagerDAO.setBbsManagerDelProc(tBbsManagerDB)){
success = true;
T_MEMBER tMemberDB = memberDAO.getMemberForm(tBbsManagerDB.gettMember().getMemberIdx());
if(!tMemberDB.getMemberGrant().equals("S")){
if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){
tMemberDB.setMemberGrant("SM");
}else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){
tMemberDB.setMemberGrant("M");
}else{
tMemberDB.setMemberGrant("N");
}
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
}
}
}
return success;
}
//CommonController
@Transactional
public boolean setBbsManagerStatusProc(Integer bbsManagerIdx, String status){
T_BBS_MANAGER tBbsManagerDB = bbsManagerDAO.getBbsManagerForm(bbsManagerIdx);
tBbsManagerDB.setBbsManagerStatus(status);
return bbsManagerDAO.setBbsManagerModProc(tBbsManagerDB);
}
//CommonController
@Transactional
public boolean setBbsManagerGrantProc(Integer bbsManagerIdx, String grant){
T_BBS_MANAGER tBbsManagerDB = bbsManagerDAO.getBbsManagerForm(bbsManagerIdx);
tBbsManagerDB.setBbsManagerGrant(grant);
return bbsManagerDAO.setBbsManagerModProc(tBbsManagerDB);
}
}

View File

@ -0,0 +1,50 @@
package seed.manager.bbs.service;
import java.util.List;
import org.springframework.web.multipart.MultipartFile;
import seed.map.T_BBS_SET;
import seed.map.T_BBS_SKIN;
public interface ManagerBbsSetService {
//AdminSiteController, ManagerSiteController
public T_BBS_SET getBbsSetForm(String siteIdx, String siteMenuIdx);
//ManagerBbsController, CommonController
public T_BBS_SET getBbsSetForm(Integer bbsSetIdx);
//ManagerBbsController
public Long getBbsSetListCnt(String siteIdx, String column, String search);
//ManagerBbsController
public List<T_BBS_SET> getBbsSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerBbsController
public List<T_BBS_SET> getBbsSetList(String siteIdx, Integer bbsSetIdx, String bbsSetType, String[] qryColumns);
//ManagerBbsController
public Integer setBbsSetRegProc(T_BBS_SET tBbsSet, MultipartFile upFile, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, String rootPath);
//AdminSiteController, ManagerSiteController
public boolean setBbsSetModProc(T_BBS_SET tBbsSet);
//ManagerBbsController
public boolean setBbsSetModProc(T_BBS_SET tBbsSet, MultipartFile upFile, Integer memberIdx, boolean fileEncryChk, boolean filePreviewChk, String rootPath);
//ManagerBbsController
public boolean setBbsSetDelProc(Integer bbsSetIdx, String rootPath);
//ManagerBbsController
public boolean setBbsSetStatusProc(Integer bbsSetIdx, String status, Integer memberIdx);
//ManagerBbsController
public Long getBbsSetSkinListCnt(String siteIdx, String bbsSetType, String bbsSetSubType);
//ManagerBbsController
public List<T_BBS_SKIN> getBbsSetSkinList(String siteIdx, String bbsSetType, String bbsSetSubType, int page, int row, String[] qryColumns);
//ManagerBbsController
public boolean setBbsSetSkinProc(Integer bbsSetIdx, String bbsSkinCode, Integer memberIdx);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,42 @@
package seed.manager.formbuilder.service;
import java.util.List;
import java.util.Map;
import seed.map.T_FORMBUILDER_MANAGER;
public interface ManagerFormbuilderManagerService {
//ManagerFormbuilderController
public boolean getFormbuilderManagerListGrantCnt(Integer formbuilderSetIdx, Integer memberIdx);
//ManagerFormbuilderController
public boolean getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer memberIdx);
//CommonController
public Long getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer selGroup, String column, String search);
//CommonController
public Long getFormbuilderManagerListCnt(String siteIdx, Integer memberIdx, String column, String search);
//CommonController
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(Integer formbuilderSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//CommonController
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//AdminSiteController, ManagerSiteController
public List<Map<Object, Object>> getFormbuilderManagerList(String siteIdx, Integer formbuilderSetIdx, String[] qryColumns);
//CommonController
public boolean setFormbuilderManagerRegProc(Integer formbuilderSetIdx, Integer[] idxsc);
//CommonController
public boolean setFormbuilderManagerDelProc(Integer formbuilderManagerIdx);
//CommonController
public boolean setFormbuilderManagerStatusProc(Integer formbuilderManagerIdx, String status);
//CommonController
public boolean setFormbuilderManagerGrantProc(Integer formbuilderManagerIdx, String grant);
}

View File

@ -0,0 +1,196 @@
package seed.manager.formbuilder.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.FormbuilderManagerDAO;
import seed.dao.MemberDAO;
import seed.dao.SiteManagerDAO;
import seed.map.T_FORMBUILDER_MANAGER;
import seed.map.T_FORMBUILDER_SET;
import seed.map.T_MEMBER;
@Service
public class ManagerFormbuilderManagerServiceImpl extends AbstractServiceImpl implements ManagerFormbuilderManagerService{
@Autowired
private FormbuilderManagerDAO formbuilderManagerDAO;
@Autowired
private SiteManagerDAO siteManagerDAO;
@Autowired
private MemberDAO memberDAO;
//ManagerFormbuilderController
public boolean getFormbuilderManagerListGrantCnt(Integer formbuilderSetIdx, Integer memberIdx){
boolean success = false;
if(formbuilderManagerDAO.getFormbuilderManagerListGrantCnt(formbuilderSetIdx, memberIdx) > 0){
success = true;
}
return success;
}
//ManagerFormbuilderController
public boolean getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer memberIdx){
boolean success = false;
if(formbuilderManagerDAO.getFormbuilderManagerListCnt(formbuilderSetIdx, memberIdx) > 0){
success = true;
}
return success;
}
//CommonController
public Long getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer selGroup, String column, String search){
return formbuilderManagerDAO.getFormbuilderManagerListCnt(formbuilderSetIdx, selGroup, column, search);
}
//CommonController
public Long getFormbuilderManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){
return formbuilderManagerDAO.getFormbuilderManagerListCnt(siteIdx, memberIdx, column, search);
}
//CommonController
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(Integer formbuilderSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
return formbuilderManagerDAO.getFormbuilderManagerList(formbuilderSetIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns);
}
//CommonController
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
return formbuilderManagerDAO.getFormbuilderManagerList(siteIdx, memberIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns);
}
//AdminSiteController, ManagerSiteController
public List<Map<Object, Object>> getFormbuilderManagerList(String siteIdx, Integer formbuilderSetIdx, String[] qryColumns){
return formbuilderManagerDAO.getFormbuilderManagerList(siteIdx, formbuilderSetIdx, qryColumns);
}
//CommonController
@Transactional
public boolean setFormbuilderManagerRegProc(Integer formbuilderSetIdx, Integer[] idxsc){
boolean success = false;
if(idxsc.length > 0){
for(int i=0; i<idxsc.length; i++){
if(formbuilderManagerDAO.getFormbuilderManagerListCnt(formbuilderSetIdx, idxsc[i]) > 0){
success = true;
}else{
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(idxsc[i]);
T_FORMBUILDER_SET tFormbuilderSet = new T_FORMBUILDER_SET();
tFormbuilderSet.setFormbuilderSetIdx(formbuilderSetIdx);
T_FORMBUILDER_MANAGER tFormbuilderManager = new T_FORMBUILDER_MANAGER();
tFormbuilderManager.settMember(tMember);
tFormbuilderManager.settFormbuilderSet(tFormbuilderSet);
tFormbuilderManager.setFormbuilderManagerStatus("U");
tFormbuilderManager.setFormbuilderManagerGrant("S");
tFormbuilderManager.setFormbuilderManagerRegDate(new Date());
if(formbuilderManagerDAO.setFormbuilderManagerRegProc(tFormbuilderManager)){
success = true;
T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]);
if(!tMemberDB.getMemberGrant().equals("S")){
if(tMemberDB.getMemberGrant().equals("SM")){
tMemberDB.setMemberGrant("SM");
}else{
tMemberDB.setMemberGrant("M");
}
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
break;
}
}
}else{
success = false;
}
}
}
}
return success;
}
//CommonController
@Transactional
public boolean setFormbuilderManagerDelProc(Integer formbuilderManagerIdx){
boolean success = false;
T_FORMBUILDER_MANAGER tFormbuilderManagerDB = formbuilderManagerDAO.getFormbuilderManagerForm(formbuilderManagerIdx);
if(formbuilderManagerDAO.setFormbuilderManagerDelProc(tFormbuilderManagerDB)){
success = true;
T_MEMBER tMemberDB = memberDAO.getMemberForm(tFormbuilderManagerDB.gettMember().getMemberIdx());
if(!tMemberDB.getMemberGrant().equals("S")){
if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){
tMemberDB.setMemberGrant("SM");
}else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){
tMemberDB.setMemberGrant("M");
}else{
tMemberDB.setMemberGrant("N");
}
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
}
}
}
return success;
}
//CommonController
@Transactional
public boolean setFormbuilderManagerStatusProc(Integer formbuilderManagerIdx, String status){
T_FORMBUILDER_MANAGER tFormbuilderManagerDB = formbuilderManagerDAO.getFormbuilderManagerForm(formbuilderManagerIdx);
tFormbuilderManagerDB.setFormbuilderManagerStatus(status);
return formbuilderManagerDAO.setFormbuilderManagerModProc(tFormbuilderManagerDB);
}
//CommonController
@Transactional
public boolean setFormbuilderManagerGrantProc(Integer formbuilderManagerIdx, String grant){
T_FORMBUILDER_MANAGER tFormbuilderManagerDB = formbuilderManagerDAO.getFormbuilderManagerForm(formbuilderManagerIdx);
tFormbuilderManagerDB.setFormbuilderManagerGrant(grant);
return formbuilderManagerDAO.setFormbuilderManagerModProc(tFormbuilderManagerDB);
}
}

View File

@ -0,0 +1,50 @@
package seed.manager.formbuilder.service;
import java.util.List;
import java.util.Map;
import seed.map.T_FORMBUILDER_SET;
import seed.map.T_FORMBUILDER_SKIN;
import seed.map.VIEW_FORMBUILDER_SET;
public interface ManagerFormbuilderSetService {
//AdminSiteController, ManagerSiteController
public T_FORMBUILDER_SET getFormbuilderSetForm(String siteIdx, String siteMenuIdx);
//ManagerFormbuilderController, CommonController
public T_FORMBUILDER_SET getFormbuilderSetForm(Integer formbuilderSetIdx);
//ManagerFormbuilderController
public List<Map<Object, Object>> getFormbuilderSetMiniList(Integer formbuilderSetIdx, int page, int row, String[] qryColumns);
//ManagerFormbuilderController
public Long getFormbuilderSetListCnt(String siteIdx, String column, String search);
//ManagerFormbuilderController
public List<VIEW_FORMBUILDER_SET> getFormbuilderSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerFormbuilderController
public Integer setFormbuilderSetRegProc(T_FORMBUILDER_SET tFormbuilderSet, Integer memberIdx, String memberMerge, String memberMergeSiteIdx);
//AdminSiteController, ManagerSiteController
public boolean setFormbuilderSetModProc(T_FORMBUILDER_SET tFormbuilderSet);
//ManagerFormbuilderController
public boolean setFormbuilderSetModProc(T_FORMBUILDER_SET tFormbuilderSet, Integer memberIdx);
//ManagerFormbuilderController
public boolean setFormbuilderSetDelProc(Integer formbuilderSetIdx, String rootPath);
//ManagerFormbuilderController
public boolean setFormbuilderSetStatusProc(Integer formbuilderSetIdx, String status, Integer memberIdx);
//ManagerFormbuilderController
public Long getFormbuilderSetSkinListCnt(String siteIdx);
//ManagerFormbuilderController
public List<T_FORMBUILDER_SKIN> getFormbuilderSetSkinList(String siteIdx, int page, int row, String[] qryColumns);
//ManagerFormbuilderController
public boolean setFormbuilderSetSkinProc(Integer formbuilderSetIdx, String formbuilderSkinCode, Integer memberIdx);
}

View File

@ -0,0 +1,237 @@
package seed.manager.formbuilder.service;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.FormbuilderAuthDAO;
import seed.dao.FormbuilderDataDAO;
import seed.dao.FormbuilderSetDAO;
import seed.dao.FormbuilderSkinDAO;
import seed.dao.GroupDAO;
import seed.map.T_FORMBUILDER_AUTH;
import seed.map.T_FORMBUILDER_DATA;
import seed.map.T_FORMBUILDER_SET;
import seed.map.T_FORMBUILDER_SKIN;
import seed.map.T_GROUP;
import seed.map.T_MEMBER;
import seed.map.VIEW_FORMBUILDER_SET;
import seed.utils.SeedUtils;
@Service
public class ManagerFormbuilderSetServiceImpl extends AbstractServiceImpl implements ManagerFormbuilderSetService{
@Autowired
private FormbuilderSetDAO formbuilderSetDAO;
@Autowired
private GroupDAO groupDAO;
@Autowired
private FormbuilderAuthDAO formbuilderAuthDAO;
@Autowired
private FormbuilderDataDAO formbuilderDataDAO;
@Autowired
private FormbuilderSkinDAO formbuilderSkinDAO;
//AdminSiteController, ManagerSiteController
public T_FORMBUILDER_SET getFormbuilderSetForm(String siteIdx, String siteMenuIdx){
return formbuilderSetDAO.getFormbuilderSetForm(siteIdx, siteMenuIdx);
}
//ManagerFormbuilderController
public T_FORMBUILDER_SET getFormbuilderSetForm(Integer formbuilderSetIdx){
return formbuilderSetDAO.getFormbuilderSetForm(formbuilderSetIdx);
}
public List<Map<Object, Object>> getFormbuilderSetMiniList(Integer formbuilderSetIdx, int page, int row, String[] qryColumns){
return formbuilderSetDAO.getFormbuilderSetMiniList(formbuilderSetIdx, ((page-1) * row), row, qryColumns);
}
//ManagerFormbuilderController
public Long getFormbuilderSetListCnt(String siteIdx, String column, String search){
return formbuilderSetDAO.getFormbuilderSetListCnt(siteIdx, column, search);
}
//ManagerFormbuilderController
public List<VIEW_FORMBUILDER_SET> getFormbuilderSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
return formbuilderSetDAO.getFormbuilderSetList(siteIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns);
}
//ManagerFormbuilderController
@Transactional
public Integer setFormbuilderSetRegProc(T_FORMBUILDER_SET tFormbuilderSet, Integer memberIdx, String memberMerge, String memberMergeSiteIdx){
Integer formbuilderSetIdx = 0;
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tFormbuilderSet.settMember(tMember);
tFormbuilderSet.setFormbuilderSetSkinCode("basic");
tFormbuilderSet.setFormbuilderSetStatus("U");
tFormbuilderSet.setFormbuilderSetRegDate(new Date());
tFormbuilderSet.setFormbuilderSetModDate(new Date());
T_FORMBUILDER_SET tFormbuilderSetDB = formbuilderSetDAO.setFormbuilderSetRegProc(tFormbuilderSet);
if(tFormbuilderSetDB != null){
formbuilderSetIdx = tFormbuilderSetDB.getFormbuilderSetIdx();
//그룹 테이블의 내용을 T_FORMBUILDER_AUTH에 INSERT
String[] qryColumns = null;
List<T_GROUP> tGroupList = null;
if(memberMerge.equals("true")){
tGroupList = groupDAO.getGroupList(memberMergeSiteIdx, qryColumns);
}else{
tGroupList = groupDAO.getGroupList(tFormbuilderSet.gettSite().getSiteIdx(), qryColumns);
}
if(tGroupList != null && tGroupList.size() > 0){
for(int g=0; g<tGroupList.size(); g++){
T_GROUP tGroupDB = tGroupList.get(g);
T_FORMBUILDER_AUTH tFormbuilderAuth = new T_FORMBUILDER_AUTH();
tFormbuilderAuth.settMember(tMember);
tFormbuilderAuth.settGroup(tGroupDB);
tFormbuilderAuth.settFormbuilderSet(tFormbuilderSetDB);
tFormbuilderAuth.setFormbuilderAuthList("Y");
tFormbuilderAuth.setFormbuilderAuthWrite("Y");
tFormbuilderAuth.setFormbuilderAuthRegDate(new Date());
tFormbuilderAuth.setFormbuilderAuthModDate(new Date());
if(!formbuilderAuthDAO.setFormbuilderAuthRegProc(tFormbuilderAuth)){
formbuilderSetIdx = 0;
break;
}
}
}
}
return formbuilderSetIdx;
}
//AdminSiteController, ManagerSiteController
@Transactional
public boolean setFormbuilderSetModProc(T_FORMBUILDER_SET tFormbuilderSet){
return formbuilderSetDAO.setFormbuilderSetModProc(tFormbuilderSet);
}
//ManagerFormbuilderController
@Transactional
public boolean setFormbuilderSetModProc(T_FORMBUILDER_SET tFormbuilderSet, Integer memberIdx){
T_FORMBUILDER_SET tFormbuilderSetDB = formbuilderSetDAO.getFormbuilderSetForm(tFormbuilderSet.getFormbuilderSetIdx());
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tFormbuilderSetDB.settMember(tMember);
tFormbuilderSetDB.setFormbuilderSetName(tFormbuilderSet.getFormbuilderSetName());
tFormbuilderSetDB.setFormbuilderSetSdate(tFormbuilderSet.getFormbuilderSetSdate());
tFormbuilderSetDB.setFormbuilderSetEdate(tFormbuilderSet.getFormbuilderSetEdate());
tFormbuilderSetDB.setFormbuilderSetOverlap(tFormbuilderSet.getFormbuilderSetOverlap());
tFormbuilderSetDB.setFormbuilderSetMiniRow(tFormbuilderSet.getFormbuilderSetMiniRow());
tFormbuilderSetDB.setFormbuilderSetModDate(new Date());
tFormbuilderSetDB.setFormbuilderSetTHtml(tFormbuilderSet.getFormbuilderSetTHtml());
tFormbuilderSetDB.setFormbuilderSetFHtml(tFormbuilderSet.getFormbuilderSetFHtml());
return formbuilderSetDAO.setFormbuilderSetModProc(tFormbuilderSetDB);
}
//ManagerFormbuilderController
@Transactional
public boolean setFormbuilderSetDelProc(Integer formbuilderSetIdx, String rootPath){
T_FORMBUILDER_SET tFormbuilderSetDB = formbuilderSetDAO.getFormbuilderSetForm(formbuilderSetIdx);
if(tFormbuilderSetDB.gettFormbuilderDatas().size() > 0){
SeedUtils.setSeedDeleteFiles(rootPath + "/" + tFormbuilderSetDB.gettSite().getSiteIdx() + "/upload/formbuilder/" + tFormbuilderSetDB.getFormbuilderSetIdx(), "");
}
return formbuilderSetDAO.setFormbuilderSetDelProc(tFormbuilderSetDB);
}
//ManagerFormbuilderController
@Transactional
public boolean setFormbuilderSetStatusProc(Integer formbuilderSetIdx, String status, Integer memberIdx){
boolean success = false;
T_FORMBUILDER_SET tFormbuilderSetDB = formbuilderSetDAO.getFormbuilderSetForm(formbuilderSetIdx);
Iterator<T_FORMBUILDER_DATA> iteratorList = tFormbuilderSetDB.gettFormbuilderDatas().iterator();
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tFormbuilderSetDB.settMember(tMember);
tFormbuilderSetDB.setFormbuilderSetModDate(new Date());
tFormbuilderSetDB.setFormbuilderSetStatus(status);
if(formbuilderSetDAO.setFormbuilderSetModProc(tFormbuilderSetDB)){
success = true;
while(iteratorList.hasNext()){
T_FORMBUILDER_DATA tFormbuilderDataDB = formbuilderDataDAO.getFormbuilderDataForm(iteratorList.next().getFormbuilderDataIdx());
tFormbuilderDataDB.setFormbuilderDataStatus(status);
if(!formbuilderDataDAO.setFormbuilderDataModProc(tFormbuilderDataDB)){
success = false;
break;
}
}
}
return success;
}
//ManagerFormbuilderController
public Long getFormbuilderSetSkinListCnt(String siteIdx){
return formbuilderSkinDAO.getFormbuilderSetSkinListCnt(siteIdx);
}
//ManagerFormbuilderController
public List<T_FORMBUILDER_SKIN> getFormbuilderSetSkinList(String siteIdx, int page, int row, String[] qryColumns){
return formbuilderSkinDAO.getFormbuilderSetSkinList(siteIdx, ((page-1) * row), row, qryColumns);
}
//ManagerFormbuilderController
@Transactional
public boolean setFormbuilderSetSkinProc(Integer formbuilderSetIdx, String formbuilderSkinCode, Integer memberIdx){
T_FORMBUILDER_SET tFormbuilderSetDB = formbuilderSetDAO.getFormbuilderSetForm(formbuilderSetIdx);
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tFormbuilderSetDB.settMember(tMember);
tFormbuilderSetDB.setFormbuilderSetSkinCode(formbuilderSkinCode);
return formbuilderSetDAO.setFormbuilderSetModProc(tFormbuilderSetDB);
}
}

View File

@ -0,0 +1,35 @@
package seed.manager.group.service;
import java.util.List;
import seed.map.T_GROUP;
public interface ManagerGroupService {
//ManagerGroupController
public T_GROUP getGroupForm(Integer groupIdx);
//ManagerMemberController
public List<T_GROUP> getGroupList(String siteIdx, String[] qryColumns);
//HomeController
public String getGroupList(String siteIdx, Integer memberIdx, String memberMerge, String memberMergeSiteIdx);
//ManagerGroupController
public List<T_GROUP> getGroupList(String siteIdx, String column, String search, String[] qryColumns);
//ManagerGroupController
public Integer setGroupRegProc(T_GROUP tGroup, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, String rootPath);
//ManagerGroupController
public boolean setGroupModProc(T_GROUP tGroup, Integer memberIdx);
//ManagerGroupController
public boolean setGroupDelProc(Integer groupIdx, String memberMerge, String memberMergeSiteIdx, String rootPath);
//ManagerGroupController
public boolean setGroupStatusProc(Integer groupIdx, String status, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, String rootPath);
//ManagerGroupController
public boolean setGroupOrderProc(String siteIdx, Integer groupLevel, String orderType, Integer memberIdx, String rootPath);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,26 @@
package seed.manager.group.service;
import java.util.List;
import seed.map.T_GROUPS;
public interface ManagerGroupsService {
//ManagerGroupController
public Long getGroupsListCnt(Integer groupIdx, String column, String search);
//ManagerGroupController
public List<T_GROUPS> getGroupsList(Integer groupIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerMemberController
public List<T_GROUPS> getGroupsList(String siteIdx, Integer memberIdx, String[] qryColumns);
//ManagerGroupController
public boolean setGroupsRegProc(String siteIdx, Integer groupIdx, Integer[] idxsc);
//ManagerGroupController
public String setGroupsDelProc(Integer groupsIdx);
//ManagerGroupController
public boolean setGroupsStatusProc(Integer groupsIdx, String status);
}

View File

@ -0,0 +1,116 @@
package seed.manager.group.service;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.map.T_GROUP;
import seed.map.T_GROUPS;
import seed.map.T_MEMBER;
import seed.map.T_SITE;
import seed.dao.GroupsDAO;
@Service
public class ManagerGroupsServiceImpl extends AbstractServiceImpl implements ManagerGroupsService{
@Autowired
private GroupsDAO groupsDAO;
//ManagerGroupController
public Long getGroupsListCnt(Integer groupIdx, String column, String search){
return groupsDAO.getGroupsListCnt(groupIdx, column, search);
}
//ManagerGroupController
public List<T_GROUPS> getGroupsList(Integer groupIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
return groupsDAO.getGroupsList(groupIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns);
}
//ManagerMemberController
public List<T_GROUPS> getGroupsList(String siteIdx, Integer memberIdx, String[] qryColumns){
return groupsDAO.getGroupsList(siteIdx, memberIdx, qryColumns);
}
//ManagerGroupController
@Transactional
public boolean setGroupsRegProc(String siteIdx, Integer groupIdx, Integer[] idxsc){
boolean success = false;
if(idxsc.length > 0){
for(int i=0; i<idxsc.length; i++){
if(groupsDAO.getGroupsListCnt(siteIdx, groupIdx, idxsc[i]) > 0){
success = true;
}else{
T_SITE tSite = new T_SITE();
tSite.setSiteIdx(siteIdx);
T_GROUP tGroup = new T_GROUP();
tGroup.setGroupIdx(groupIdx);
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(idxsc[i]);
T_GROUPS tGroups = new T_GROUPS();
tGroups.settSite(tSite);
tGroups.settGroup(tGroup);
tGroups.settMember(tMember);
tGroups.setGroupsStatus("U");
tGroups.setGroupsRegDate(new Date());
if(groupsDAO.setGroupsRegProc(tGroups)){
success = true;
}else{
success = false;
break;
}
}
}
}
return success;
}
//ManagerGroupController
@Transactional
public String setGroupsDelProc(Integer groupsIdx){
String success = "";
T_GROUPS tGroupsDB = groupsDAO.getGroupsForm(groupsIdx);
//그룹이 한개만 있을경우 그룹 삭제는 불가능(회원은 적어도 한개의 그룹에 속해야함)
if(groupsDAO.getGroupsListCnt(tGroupsDB.gettMember().getMemberIdx()) <= 1){
success = "N";
}else{
if(groupsDAO.setGroupsDelProc(tGroupsDB)){
success = "Y";
}
}
return success;
}
//ManagerGroupController
@Transactional
public boolean setGroupsStatusProc(Integer groupsIdx, String status){
T_GROUPS tGroupsDB = groupsDAO.getGroupsForm(groupsIdx);
tGroupsDB.setGroupsStatus(status);
return groupsDAO.setGroupsModProc(tGroupsDB);
}
}

View File

@ -0,0 +1,655 @@
package seed.manager.group.web;
import java.io.IOException;
import java.util.List;
import java.util.Map;
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.validation.BindingResult;
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 seed.manager.group.service.ManagerGroupService;
import seed.manager.group.service.ManagerGroupsService;
import seed.manager.member.service.ManagerMemberService;
import seed.manager.site.service.ManagerSiteManagerService;
import seed.map.T_GROUP;
import seed.utils.InterceptorCheck;
import seed.utils.Paging;
import seed.utils.SeedUtils;
@Controller
public class ManagerGroupController {
private Logger log = Logger.getLogger(this.getClass());
@Autowired
private ManagerGroupService managerGroupService;
@Autowired
private ManagerGroupsService managerGroupsService;
@Autowired
private ManagerSiteManagerService managerSiteManagerService;
@Autowired
private ManagerMemberService managerMemberService;
@Value("#{config['root.path']}")
private String rootPath;
@Value("#{config['member.merge']}")
private String memberMerge;
@Value("#{config['member.merge.siteIdx']}")
private String memberMergeSiteIdx;
public void getSeedLicense(HttpServletResponse httpServletResponse){
if(SeedUtils.setReplaceNull(InterceptorCheck.getLicenseKey()).equals("")){
try {
httpServletResponse.sendRedirect("/common/seed.do");
} catch (IOException ex) {
log.error("CHECK ERROR:",ex);
}
}
}
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");
}
public void setPaging(@ModelAttribute("paging") Paging paging){
if(paging != null){
if(paging.getPage() == null){paging.setPage(1);}
if(paging.getRow() == null){paging.setRow(10);}
if(paging.getPagec() == null){paging.setPagec(1);}
if(paging.getRowc() == null){paging.setRowc(10);}
}
}
@RequestMapping(value = "/gtm/{siteIdx}/groupList.do")
public ModelAndView getGroupList(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@RequestParam(value="column", defaultValue="", required=false) String column,
@RequestParam(value="search", defaultValue="", required=false) String search){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
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 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");
}
String[] qryColumns = {"groupBy", "tGroupss.groupsIdxCnt", "groupIdx", "groupName", "groupType", "groupName", "groupLevel", "groupRegDate", "groupStatus", "tMember.memberId", "tMember.memberName"};
List<T_GROUP> tGroupList = managerGroupService.getGroupList(siteIdx, column, search, qryColumns);
map.put("groupList", tGroupList);
map.put("groupListCnt", tGroupList.size());
map.put("column", column);
map.put("search", search);
map.put("memberAuth", memberAuth);
return new ModelAndView("/manager/group/groupList");
}
@RequestMapping(value = "/gtm/{siteIdx}/groupForm.do")
public ModelAndView getGroupForm(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
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 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");
}
map.put("memberAuth", memberAuth);
return new ModelAndView("/manager/group/groupForm");
}
@RequestMapping(value = "/gtm/{siteIdx}/groupEdit/{groupIdx}.do", method=RequestMethod.GET)
public ModelAndView getGroupEdit(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@PathVariable(value="groupIdx") Integer groupIdx,
@RequestParam(value="column", defaultValue="", required=false) String column,
@RequestParam(value="search", defaultValue="", required=false) String search){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
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 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");
}
map.put("column", column);
map.put("search", search);
map.put("tGroupDB", managerGroupService.getGroupForm(groupIdx));
map.put("memberAuth", memberAuth);
return new ModelAndView("/manager/group/groupEdit");
}
@RequestMapping(value = "/gtm/proc/{siteIdx}/groupRegProc.do", method=RequestMethod.POST)
public ModelAndView setGroupRegProc(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@ModelAttribute("T_GROUP") T_GROUP tGroup,
BindingResult bindingResult){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
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 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");
}
Integer groupIdx = managerGroupService.setGroupRegProc(tGroup, memberIdx, memberMerge, memberMergeSiteIdx, rootPath);
if(groupIdx > 0){
map.put("url", "/gtm/"+siteIdx+"/groupList.do");
map.put("message", "common.message.reg");
}else{
map.put("url", "/gtm/"+siteIdx+"/groupForm.do");
map.put("message", "common.message.error.reg");
}
return new ModelAndView("/_common/jsp/message");
}
@RequestMapping(value = "/gtm/proc/{siteIdx}/groupModProc.do", method=RequestMethod.POST)
public ModelAndView setGroupModProc(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@ModelAttribute("T_GROUP") T_GROUP tGroup,
@RequestParam(value="column", defaultValue="", required=false) String column,
@RequestParam(value="search", defaultValue="", required=false) String search,
BindingResult bindingResult){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
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 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");
}
if(managerGroupService.setGroupModProc(tGroup, memberIdx)){
map.put("message", "common.message.mod");
}else{
map.put("message", "common.message.error.mod");
}
map.put("url", "/gtm/"+siteIdx+"/groupEdit/"+tGroup.getGroupIdx()+".do?"+
"column="+column+"&"+
"search="+search);
return new ModelAndView("/_common/jsp/message");
}
@RequestMapping(value = "/gtm/proc/{siteIdx}/groupDelProc/{groupIdx}.do", method=RequestMethod.GET)
public ModelAndView setGroupDelProc(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@PathVariable(value="groupIdx") Integer groupIdx,
@RequestParam(value="column", defaultValue="", required=false) String column,
@RequestParam(value="search", defaultValue="", required=false) String search){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
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 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");
}
if(managerGroupService.setGroupDelProc(groupIdx, memberMerge, memberMergeSiteIdx, rootPath)){
map.put("message", "common.message.del");
}else{
map.put("message", "common.message.error.del");
}
map.put("url", "/gtm/"+siteIdx+"/groupList.do?"+
"column="+column+"&"+
"search="+search);
return new ModelAndView("/_common/jsp/message");
}
@RequestMapping(value = "/gtm/proc/{siteIdx}/groupStatusProc.do", method=RequestMethod.POST)
public ModelAndView setGroupStatusProc(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@RequestParam(value="column", defaultValue="", required=false) String column,
@RequestParam(value="search", defaultValue="", required=false) String search,
@RequestParam(value="idxs", required=true) Integer[] idxs,
@RequestParam(value="selStatus", required=true) String selStatus){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
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 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");
}
boolean success = false;
if(idxs.length > 0){
for(int i=0; i<idxs.length; i++){
if(managerGroupService.setGroupStatusProc(idxs[i], selStatus, memberIdx, memberMerge, memberMergeSiteIdx, rootPath)){
success = true;
}else{
success = false;
break;
}
}
}
if(success){
map.put("message", "common.message.status");
}else{
map.put("message", "common.message.error.status");
}
map.put("url", "/gtm/"+siteIdx+"/groupList.do?"+
"column="+column+"&"+
"search="+search);
return new ModelAndView("/_common/jsp/message");
}
@RequestMapping(value = "/gtm/proc/{siteIdx}/groupOrderProc/{groupLevel}.do", method=RequestMethod.GET)
public ModelAndView setGroupOrderProc(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@PathVariable(value="groupLevel") Integer groupLevel,
@RequestParam(value="column", defaultValue="", required=false) String column,
@RequestParam(value="search", defaultValue="", required=false) String search,
@RequestParam(value="orderType", required=true) String orderType){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
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 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");
}
if(managerGroupService.setGroupOrderProc(siteIdx, groupLevel, orderType, memberIdx, rootPath)){
map.put("message", "common.message.level");
}else{
map.put("message", "common.message.error.level");
}
map.put("url", "/gtm/"+siteIdx+"/groupList.do?"+
"column="+column+"&"+
"search="+search);
return new ModelAndView("/_common/jsp/message");
}
@RequestMapping(value = "/gtm/{siteIdx}/{groupIdx}/groupsList.do")
public ModelAndView getGroupsList(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@PathVariable(value="groupIdx") Integer groupIdx,
@ModelAttribute("paging") Paging paging,
@RequestParam(value="orderColumn", defaultValue="groupsIdx", required=false) String orderColumn,
@RequestParam(value="order", defaultValue="DESC", required=false) String order,
@RequestParam(value="column", defaultValue="", required=false) String column,
@RequestParam(value="search", defaultValue="", required=false) String search,
@RequestParam(value="orderColumnc", defaultValue="memberIdx", required=false) String orderColumnc,
@RequestParam(value="orderc", defaultValue="DESC", required=false) String orderc,
@RequestParam(value="selGroup", defaultValue="0", required=false) Integer selGroup,
@RequestParam(value="columnc", defaultValue="", required=false) String columnc,
@RequestParam(value="searchc", defaultValue="", required=false) String searchc){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
setPaging(paging);
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 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");
}
map.put("groupList", managerGroupService.getGroupList(siteIdx, new String[] {"groupIdx", "groupName", "groupLevel"}));
String[] qryColumnsg = {"groupsIdx", "tGroup.groupName", "groupsRegDate", "groupsStatus", "tMember.memberId", "tMember.memberName", "tMember.memberDept", "tMember.memberPosition"};
paging.setCount(managerGroupsService.getGroupsListCnt(groupIdx, column, search));
map.put("groupsList", managerGroupsService.getGroupsList(groupIdx, paging.getPage(), paging.getRow(), orderColumn, order, column, search, qryColumnsg));
map.put("groupsListCnt", paging.getCount());
String[] qryColumnsm = {"groupBy", "memberIdx", "memberId", "memberName", "memberRegDate", "memberGrant", "memberStatus", "memberDept", "memberPosition"};
paging.setCountc(managerMemberService.getMemberListCnt(siteIdx, selGroup, columnc, searchc));
map.put("memberList", managerMemberService.getMemberList(siteIdx, paging.getPagec(), paging.getRowc(), orderColumnc, orderc, selGroup, columnc, searchc, qryColumnsm));
map.put("memberListCnt", paging.getCountc());
map.put("page", paging.getPage());
map.put("row", paging.getRow());
map.put("pages", paging.getPages());
map.put("blocks", paging.getBlocks());
map.put("block", paging.getBlock());
map.put("fPage", paging.getfPage());
map.put("lPage", paging.getlPage());
map.put("orderColumn", orderColumn);
map.put("order", order);
map.put("column", column);
map.put("search", search);
map.put("pagec", paging.getPagec());
map.put("rowc", paging.getRowc());
map.put("pagesc", paging.getPagesc());
map.put("blocksc", paging.getBlocksc());
map.put("blockc", paging.getBlockc());
map.put("fPagec", paging.getfPagec());
map.put("lPagec", paging.getlPagec());
map.put("orderColumnc", orderColumnc);
map.put("orderc", orderc);
map.put("selGroup", selGroup);
map.put("columnc", columnc);
map.put("searchc", searchc);
map.put("memberAuth", memberAuth);
return new ModelAndView("/manager/group/groupsList");
}
@RequestMapping(value = "/gtm/proc/{siteIdx}/{groupIdx}/groupsDelProc/{groupsIdx}.do", method=RequestMethod.GET)
public ModelAndView setGroupsDelProc(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@PathVariable(value="groupIdx") Integer groupIdx,
@PathVariable(value="groupsIdx") Integer groupsIdx,
@ModelAttribute("paging") Paging paging,
@RequestParam(value="orderColumn", defaultValue="groupsIdx", required=false) String orderColumn,
@RequestParam(value="order", defaultValue="DESC", required=false) String order,
@RequestParam(value="column", defaultValue="", required=false) String column,
@RequestParam(value="search", defaultValue="", required=false) String search,
@RequestParam(value="orderColumnc", defaultValue="memberIdx", required=false) String orderColumnc,
@RequestParam(value="orderc", defaultValue="DESC", required=false) String orderc,
@RequestParam(value="selGroup", defaultValue="0", required=false) Integer selGroup,
@RequestParam(value="columnc", defaultValue="", required=false) String columnc,
@RequestParam(value="searchc", defaultValue="", required=false) String searchc){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
setPaging(paging);
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 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");
}
String success = managerGroupsService.setGroupsDelProc(groupsIdx);
if(success.equals("Y")){
map.put("message", "common.message.del");
}else if(success.equals("N")){
map.put("message", "common.message.error.groups");
}else{
map.put("message", "common.message.error.del");
}
map.put("url", "/gtm/"+siteIdx+"/"+groupIdx+"/groupsList.do?"+
"page="+paging.getPage()+"&"+
"row="+paging.getRow()+"&"+
"orderColumn="+orderColumn+"&"+
"order="+order+"&"+
"column="+column+"&"+
"search="+search+"&"+
"pagec="+paging.getPagec()+"&"+
"rowc="+paging.getRowc()+"&"+
"orderColumnc="+orderColumnc+"&"+
"orderc="+orderc+"&"+
"selGroup="+selGroup+"&"+
"columnc="+columnc+"&"+
"searchc="+searchc);
return new ModelAndView("/_common/jsp/message");
}
@RequestMapping(value = "/gtm/proc/{siteIdx}/{groupIdx}/groupsStatusProc.do", method=RequestMethod.POST)
public ModelAndView setGroupsStatusProc(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@PathVariable(value="groupIdx") Integer groupIdx,
@ModelAttribute("paging") Paging paging,
@RequestParam(value="orderColumn", defaultValue="groupsIdx", required=false) String orderColumn,
@RequestParam(value="order", defaultValue="DESC", required=false) String order,
@RequestParam(value="column", defaultValue="", required=false) String column,
@RequestParam(value="search", defaultValue="", required=false) String search,
@RequestParam(value="orderColumnc", defaultValue="memberIdx", required=false) String orderColumnc,
@RequestParam(value="orderc", defaultValue="DESC", required=false) String orderc,
@RequestParam(value="selGroup", defaultValue="0", required=false) Integer selGroup,
@RequestParam(value="columnc", defaultValue="", required=false) String columnc,
@RequestParam(value="searchc", defaultValue="", required=false) String searchc,
@RequestParam(value="idxs", required=true) Integer[] idxs,
@RequestParam(value="selStatus", required=true) String selStatus){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
setPaging(paging);
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 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");
}
boolean success = false;
if(idxs.length > 0){
for(int i=0; i<idxs.length; i++){
if(managerGroupsService.setGroupsStatusProc(idxs[i], selStatus)){
success = true;
}else{
success = false;
break;
}
}
}
if(success){
map.put("message", "common.message.status");
}else{
map.put("message", "common.message.error.status");
}
map.put("url", "/gtm/"+siteIdx+"/"+groupIdx+"/groupsList.do?"+
"page="+paging.getPage()+"&"+
"row="+paging.getRow()+"&"+
"orderColumn="+orderColumn+"&"+
"order="+order+"&"+
"column="+column+"&"+
"search="+search+"&"+
"pagec="+paging.getPagec()+"&"+
"rowc="+paging.getRowc()+"&"+
"orderColumnc="+orderColumnc+"&"+
"orderc="+orderc+"&"+
"selGroup="+selGroup+"&"+
"columnc="+columnc+"&"+
"searchc="+searchc);
return new ModelAndView("/_common/jsp/message");
}
@RequestMapping(value = "/gtm/proc/{siteIdx}/{groupIdx}/groupsRegProc.do", method=RequestMethod.POST)
public ModelAndView setGroupsRegProc(HttpServletResponse httpServletResponse, HttpSession session, Map<String, Object> map,
@PathVariable(value="siteIdx") String siteIdx,
@PathVariable(value="groupIdx") Integer groupIdx,
@ModelAttribute("paging") Paging paging,
@RequestParam(value="idxsc", required=true) Integer[] idxsc,
@RequestParam(value="orderColumn", defaultValue="groupsIdx", required=false) String orderColumn,
@RequestParam(value="order", defaultValue="DESC", required=false) String order,
@RequestParam(value="column", defaultValue="", required=false) String column,
@RequestParam(value="search", defaultValue="", required=false) String search,
@RequestParam(value="orderColumnc", defaultValue="memberIdx", required=false) String orderColumnc,
@RequestParam(value="orderc", defaultValue="DESC", required=false) String orderc,
@RequestParam(value="selGroup", defaultValue="0", required=false) Integer selGroup,
@RequestParam(value="columnc", defaultValue="", required=false) String columnc,
@RequestParam(value="searchc", defaultValue="", required=false) String searchc){
setSessionMessageRemove(session);
getSeedLicense(httpServletResponse);
setPaging(paging);
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 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");
}
if(managerGroupsService.setGroupsRegProc(siteIdx, groupIdx, idxsc)){
map.put("message", "common.message.reg");
}else{
map.put("message", "common.message.error.reg");
}
map.put("url", "/gtm/"+siteIdx+"/"+groupIdx+"/groupsList.do?"+
"page="+paging.getPage()+"&"+
"row="+paging.getRow()+"&"+
"orderColumn="+orderColumn+"&"+
"order="+order+"&"+
"column="+column+"&"+
"search="+search+"&"+
"pagec="+paging.getPagec()+"&"+
"rowc="+paging.getRowc()+"&"+
"orderColumnc="+orderColumnc+"&"+
"orderc="+orderc+"&"+
"selGroup="+selGroup+"&"+
"columnc="+columnc+"&"+
"searchc="+searchc);
return new ModelAndView("/_common/jsp/message");
}
}

View File

@ -0,0 +1,39 @@
package seed.manager.member.service;
import java.util.List;
import java.util.Map;
import seed.map.T_MEMBER_ITEM;
public interface ManagerMemberItemService {
//ManagerMemberController
public List<Map<Object, Object>> getMemberItemList(String siteIdx, String[] qryColumns);
//ManagerMemberController
public List<T_MEMBER_ITEM> getMemberItemValuesList(String siteIdx, String memberItemGroup, String[] qryColumns);
//ManagerMemberController
public List<T_MEMBER_ITEM> getMemberItemValuesList(String siteIdx, String[] qryColumns);
//ManagerMemberController
public Long getMemberItemListCnt(String siteIdx);
//ManagerMemberController
public T_MEMBER_ITEM getMemberItemForm(String siteIdx, String memberItemGroup);
//ManagerMemberController
public String setMemberItemRegProc(T_MEMBER_ITEM tMemberItem, Integer[] memberItemWidth, Integer[] memberItemHeight, String[] memberItemValues, Integer memberIdx);
//ManagerMemberController
public boolean setMemberItemModProc(T_MEMBER_ITEM tMemberItem, Integer[] memberItemWidth, Integer[] memberItemHeight, String[] memberItemValues, Integer[] memberItemIdxs);
//ManagerMemberController
public boolean setMemberItemDelProc(String siteIdx, String memberItemGroup);
//ManagerMemberController
public boolean setMemberItemStatusProc(String siteIdx, String memberItemGroup, String status);
//ManagerMemberController
public boolean setMemberItemOrderProc(String siteIdx, Integer memberItemOrder, String orderType);
}

View File

@ -0,0 +1,418 @@
package seed.manager.member.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.MemberItemDAO;
import seed.map.T_MEMBER;
import seed.map.T_MEMBER_ITEM;
@Service
public class ManagerMemberItemServiceImpl extends AbstractServiceImpl implements ManagerMemberItemService{
@Autowired
private MemberItemDAO memberItemDAO;
//ManagerMemberController
public List<Map<Object, Object>> getMemberItemList(String siteIdx, String[] qryColumns){
return memberItemDAO.getMemberItemList(siteIdx, qryColumns);
}
//ManagerMemberController
public List<T_MEMBER_ITEM> getMemberItemValuesList(String siteIdx, String memberItemGroup, String[] qryColumns){
return memberItemDAO.getMemberItemValuesList(siteIdx, memberItemGroup, qryColumns);
}
//ManagerMemberController
public List<T_MEMBER_ITEM> getMemberItemValuesList(String siteIdx, String[] qryColumns){
return memberItemDAO.getMemberItemValuesList(siteIdx, qryColumns);
}
//ManagerMemberController
public Long getMemberItemListCnt(String siteIdx){
return memberItemDAO.getMemberItemListCnt(siteIdx);
}
//ManagerMemberController
public T_MEMBER_ITEM getMemberItemForm(String siteIdx, String memberItemGroup){
return memberItemDAO.getMemberItemForm(siteIdx, memberItemGroup);
}
//ManagerMemberController
@Transactional
public String setMemberItemRegProc(T_MEMBER_ITEM tMemberItem, Integer[] memberItemWidth, Integer[] memberItemHeight, String[] memberItemValues, Integer memberIdx){
String memberItemGroup = "";
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
String[] qryColumns = {"groupBy", "memberItemGroup"};
List<Map<String, Object>> tMemberItemMapList = memberItemDAO.getMemberItemGroupList(tMemberItem.gettSite().getSiteIdx(), qryColumns);
String[] memberItemGroups = {"memberItemA1", "memberItemB2", "memberItemC3", "memberItemD4", "memberItemE5",
"memberItemF6", "memberItemG7", "memberItemH8", "memberItemI9", "memberItemJ10"};
if(tMemberItemMapList.size() > 0){
for(int g=0; g<tMemberItemMapList.size(); g++){
Map<String, Object> tMemberItemMapDB = tMemberItemMapList.get(g);
if(!tMemberItemMapDB.get("_memberItemGroup").equals(memberItemGroups[g])){
memberItemGroup = memberItemGroups[g];
break;
}
}
if(memberItemGroup.equals("")){
memberItemGroup = memberItemGroups[tMemberItemMapList.size()];
}
}else{
memberItemGroup = memberItemGroups[0];
}
Integer memberItemOrder = memberItemDAO.getMemberItemOrderFormCnt(tMemberItem.gettSite().getSiteIdx())+1;
if(memberItemValues.length == 0){
tMemberItem.settMember(tMember);
tMemberItem.setMemberItemValue("");
tMemberItem.setMemberItemWidth(memberItemWidth[0]);
if(memberItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tMemberItem.setMemberItemHeight(memberItemHeight[0]);
}
tMemberItem.setMemberItemGroup(memberItemGroup);
tMemberItem.setMemberItemOrder(memberItemOrder);
tMemberItem.setMemberItemStatus("U");
tMemberItem.setMemberItemCount(1);
tMemberItem.setMemberItemRegDate(new Date());
if(memberItemDAO.setMemberItemRegProc(tMemberItem).getMemberItemIdx() == 0){
memberItemGroup = "";
}
}else{
for(int i=0; i<memberItemValues.length; i++){
tMemberItem.settMember(tMember);
if(memberItemWidth.length == 1){
tMemberItem.setMemberItemWidth(memberItemWidth[0]);
}else if(memberItemWidth.length > 1){ //TEXT, TEXTAREA 경우에만 적용
tMemberItem.setMemberItemWidth(memberItemWidth[i]);
}
if(memberItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tMemberItem.setMemberItemHeight(memberItemHeight[i]);
}
tMemberItem.setMemberItemValue(memberItemValues[i]);
tMemberItem.setMemberItemGroup(memberItemGroup);
tMemberItem.setMemberItemOrder(memberItemOrder);
tMemberItem.setMemberItemStatus("U");
tMemberItem.setMemberItemRegDate(new Date());
if(memberItemDAO.setMemberItemRegProc(tMemberItem).getMemberItemIdx() == 0){
memberItemGroup = "";
break;
}
}
}
return memberItemGroup;
}
//ManagerMemberController
@Transactional
public boolean setMemberItemModProc(T_MEMBER_ITEM tMemberItem, Integer[] memberItemWidth, Integer[] memberItemHeight, String[] memberItemValues, Integer[] memberItemIdxs){
boolean success = true;
if(memberItemValues.length > 0 && memberItemIdxs.length > 0){//memberItemValues와 memberItemIdxs의 값이 있으면 기존값 수정
for(int i=0; i<memberItemValues.length; i++){
T_MEMBER_ITEM tMemberItemDB = memberItemDAO.getMemberItemForm(memberItemIdxs[i]);
tMemberItemDB.setMemberItemValue(memberItemValues[i]);
if(memberItemWidth.length == 1){
tMemberItemDB.setMemberItemWidth(memberItemWidth[0]);
}else if(memberItemWidth.length > 1){ //TEXT, TEXTAREA 경우에만 적용
tMemberItemDB.setMemberItemWidth(memberItemWidth[i]);
}
if(memberItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tMemberItemDB.setMemberItemHeight(memberItemHeight[i]);
}
tMemberItemDB.setMemberItemName(tMemberItem.getMemberItemName());
tMemberItemDB.setMemberItemPattern(tMemberItem.getMemberItemPattern());
tMemberItemDB.setMemberItemText(tMemberItem.getMemberItemText());
tMemberItemDB.setMemberItemEssential(tMemberItem.getMemberItemEssential());
tMemberItemDB.setMemberItemCount(tMemberItem.getMemberItemCount());
if(!memberItemDAO.setMemberItemModProc(tMemberItemDB)){
success = false;
break;
}
}
}else if(memberItemValues.length > 0){//memberItemValues에만 값이 있으면 비교하여 수정 삭제 또는 추가
T_MEMBER_ITEM tMemberItemDB = memberItemDAO.getMemberItemForm(tMemberItem.getMemberItemIdx());
String[] qryColumns = null;
List<T_MEMBER_ITEM> tMemberItemList = memberItemDAO.getMemberItemValuesList(tMemberItemDB.gettSite().getSiteIdx(), tMemberItemDB.getMemberItemGroup(), qryColumns);
if(tMemberItemList.size() > memberItemValues.length){//기존의 row수가 현재보다 크면 수정 삭제
for(int i=0; i<tMemberItemList.size(); i++){
T_MEMBER_ITEM tMemberItemtMp = tMemberItemList.get(i);
if(i < memberItemValues.length){
tMemberItemtMp.setMemberItemValue(memberItemValues[i]);
if(memberItemWidth.length == 1){
tMemberItemtMp.setMemberItemWidth(memberItemWidth[0]);
}else if(memberItemWidth.length > 1){ //TEXT, TEXTAREA 경우에만 적용
tMemberItemtMp.setMemberItemWidth(memberItemWidth[i]);
}
if(memberItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tMemberItemtMp.setMemberItemHeight(memberItemHeight[i]);
}
tMemberItemtMp.setMemberItemName(tMemberItem.getMemberItemName());
tMemberItemtMp.setMemberItemPattern(tMemberItem.getMemberItemPattern());
tMemberItemtMp.setMemberItemText(tMemberItem.getMemberItemText());
tMemberItemtMp.setMemberItemEssential(tMemberItem.getMemberItemEssential());
tMemberItemtMp.setMemberItemCount(tMemberItem.getMemberItemCount());
if(!memberItemDAO.setMemberItemModProc(tMemberItemtMp)){
success = false;
break;
}
}else{
if(!memberItemDAO.setMemberItemDelProc(tMemberItemtMp)){
success = false;
break;
}
}
}
}else{//기존의 row수가 현재보다 작거나 같으면 수정 추가 또는 수정
for(int i=0; i<memberItemValues.length; i++){
if(i < tMemberItemList.size()){
T_MEMBER_ITEM tMemberItemtMp = tMemberItemList.get(i);
tMemberItemtMp.setMemberItemValue(memberItemValues[i]);
if(memberItemWidth.length == 1){
tMemberItemtMp.setMemberItemWidth(memberItemWidth[0]);
}else if(memberItemWidth.length > 1){ //TEXT, TEXTAREA 경우에만 적용
tMemberItemtMp.setMemberItemWidth(memberItemWidth[i]);
}
if(memberItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tMemberItemtMp.setMemberItemHeight(memberItemHeight[i]);
}
tMemberItemtMp.setMemberItemName(tMemberItem.getMemberItemName());
tMemberItemtMp.setMemberItemPattern(tMemberItem.getMemberItemPattern());
tMemberItemtMp.setMemberItemText(tMemberItem.getMemberItemText());
tMemberItemtMp.setMemberItemEssential(tMemberItem.getMemberItemEssential());
tMemberItemtMp.setMemberItemCount(tMemberItem.getMemberItemCount());
if(!memberItemDAO.setMemberItemModProc(tMemberItemtMp)){
success = false;
break;
}
}else{
T_MEMBER_ITEM tMemberItemtMp = new T_MEMBER_ITEM();
tMemberItemtMp.setMemberItemValue(memberItemValues[i]);
if(memberItemWidth.length == 1){
tMemberItemtMp.setMemberItemWidth(memberItemWidth[0]);
}else if(memberItemWidth.length > 1){ //TEXT, TEXTAREA 경우에만 적용
tMemberItemtMp.setMemberItemWidth(memberItemWidth[i]);
}
if(memberItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tMemberItemtMp.setMemberItemHeight(memberItemHeight[i]);
}
tMemberItemtMp.setMemberItemName(tMemberItem.getMemberItemName());
tMemberItemtMp.setMemberItemPattern(tMemberItem.getMemberItemPattern());
tMemberItemtMp.setMemberItemText(tMemberItem.getMemberItemText());
tMemberItemtMp.setMemberItemEssential(tMemberItem.getMemberItemEssential());
tMemberItemtMp.setMemberItemCount(tMemberItem.getMemberItemCount());
tMemberItemtMp.setMemberItemStatus("U");
tMemberItemtMp.settSite(tMemberItemDB.gettSite());
tMemberItemtMp.settMember(tMemberItemDB.gettMember());
tMemberItemtMp.setMemberItemGroup(tMemberItemDB.getMemberItemGroup());
tMemberItemtMp.setMemberItemOrder(tMemberItemDB.getMemberItemOrder());
tMemberItemtMp.setMemberItemRegDate(tMemberItemDB.getMemberItemRegDate());
if(memberItemDAO.setMemberItemRegProc(tMemberItemtMp).getMemberItemIdx() == 0){
success = false;
break;
}
}
}
}
}else{
T_MEMBER_ITEM tMemberItemDB = memberItemDAO.getMemberItemForm(tMemberItem.getMemberItemIdx());
String[] qryColumns = null;
List<T_MEMBER_ITEM> tMemberItemList = memberItemDAO.getMemberItemValuesList(tMemberItemDB.gettSite().getSiteIdx(), tMemberItemDB.getMemberItemGroup(), qryColumns);
if(tMemberItemList.size() > 1){ //SELECT, RADIO, CHECKBOX였다가 TEXT, TEXTAREA로 변경되었을때 추가 항목 삭제 (1개 이상일때)
for(int i=0; i<tMemberItemList.size(); i++){
T_MEMBER_ITEM tMemberItemDBtMp = tMemberItemList.get(i);
if(!tMemberItemDB.getMemberItemIdx().equals(tMemberItemDBtMp.getMemberItemIdx())){ //넘어온 memberItemIdx는 수정 해야하므로 삭제 하지 않음
if(!memberItemDAO.setMemberItemDelProc(tMemberItemDBtMp)){
success = false;
break;
}
}
}
}
if(success){
tMemberItemDB.setMemberItemName(tMemberItem.getMemberItemName());
tMemberItemDB.setMemberItemText(tMemberItem.getMemberItemText());
tMemberItemDB.setMemberItemEssential(tMemberItem.getMemberItemEssential());
tMemberItemDB.setMemberItemWidth(memberItemWidth[0]);
if(memberItemHeight.length > 0){ //TEXTAREA 경우에만 적용
tMemberItemDB.setMemberItemHeight(memberItemHeight[0]);
}
tMemberItemDB.setMemberItemCount(tMemberItem.getMemberItemCount());
}
if(!memberItemDAO.setMemberItemModProc(tMemberItemDB)){
success = false;
}
}
return success;
}
//ManagerMemberController
@Transactional
public boolean setMemberItemDelProc(String siteIdx, String memberItemGroup){
boolean success = true;
String[] qryColumns = null;
List<T_MEMBER_ITEM> tMemberItemList = memberItemDAO.getMemberItemValuesList(siteIdx, memberItemGroup, qryColumns);
for(int d=0; d<tMemberItemList.size(); d++){
T_MEMBER_ITEM tMemberItemtMp = tMemberItemList.get(d);
if(d == 0){
if(memberItemDAO.getMemberItemListCnt(tMemberItemtMp.gettSite().getSiteIdx()) > 1){
memberItemDAO.setMemberItemOrderProc(tMemberItemtMp.gettSite().getSiteIdx(), tMemberItemtMp.getMemberItemOrder());
}
}
if(!memberItemDAO.setMemberItemDelProc(tMemberItemtMp)){
success = false;
}
}
return success;
}
//ManagerMemberController
@Transactional
public boolean setMemberItemStatusProc(String siteIdx, String memberItemGroup, String status){
boolean success = true;
String[] qryColumns = null;
List<T_MEMBER_ITEM> tMemberItemList = memberItemDAO.getMemberItemValuesList(siteIdx, memberItemGroup, qryColumns);
for(int m=0; m<tMemberItemList.size(); m++){
T_MEMBER_ITEM tMemberItemtMp = tMemberItemList.get(m);
tMemberItemtMp.setMemberItemStatus(status);
if(!memberItemDAO.setMemberItemModProc(tMemberItemtMp)){
success = false;
}
}
return success;
}
//ManagerMemberController
@Transactional
public boolean setMemberItemOrderProc(String siteIdx, Integer memberItemOrder, String orderType){
boolean success = true;
Integer memberItemOrdertMp = memberItemOrder;
if(orderType.equals("up")){
memberItemOrder = memberItemOrder - 1;
}else{
memberItemOrder = memberItemOrder + 1;
}
String[] qryColumns = null;
List<T_MEMBER_ITEM> tMemberItemOrderList = memberItemDAO.getMemberItemOrderList(siteIdx, memberItemOrder, qryColumns);
List<T_MEMBER_ITEM> tMemberItemList = memberItemDAO.getMemberItemOrderList(siteIdx, memberItemOrdertMp, qryColumns);
for(int i=0; i<tMemberItemOrderList.size(); i++){
T_MEMBER_ITEM tMemberItemDB = tMemberItemOrderList.get(i);
tMemberItemDB.setMemberItemOrder(memberItemOrdertMp);
if(!memberItemDAO.setMemberItemModProc(tMemberItemDB)){
success = false;
break;
}
}
if(success = true){
for(int i=0; i<tMemberItemList.size(); i++){
T_MEMBER_ITEM tMemberItemDB = tMemberItemList.get(i);
tMemberItemDB.setMemberItemOrder(memberItemOrder);
if(!memberItemDAO.setMemberItemModProc(tMemberItemDB)){
success = false;
break;
}
}
}
return success;
}
}

View File

@ -0,0 +1,42 @@
package seed.manager.member.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import seed.map.T_GROUP;
import seed.map.T_MEMBER;
import seed.map.T_SITE;
public interface ManagerMemberService {
//ManagerMemberController, ManagerBbsController, ManagerGroupController, ManagerSiteController, ManagerBannerController
public T_MEMBER getMemberForm(Integer memberIdx);
//HomeController
public Map<Object, Object> getMemberMapForm(Integer memberIdx, String[] qryColumns);
//ManagerMemberController
public Long getMemberFormCnt(String memberId);
//ManagerMemberController
public Long getMemberListCnt(String siteIdx, Integer selGroup, String column, String search);
//ManagerMemberController
public List<T_MEMBER> getMemberList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//CommonController
public List<T_MEMBER> getMemberList(ArrayList<Integer> arrayListMemberIdx);
//ManagerMemberController
public Integer setMemberRegProc(T_MEMBER tMember, T_SITE tSite, T_GROUP tGroup, String memberAuto);
//ManagerMemberController
public boolean setMemberModProc(T_MEMBER tMember);
//ManagerMemberController
public boolean setMemberDelProc(String siteIdx, Integer memberIdx, String memberOut);
//ManagerMemberController
public boolean setMemberStatusProc(Integer memberIdx, String status);
}

View File

@ -0,0 +1,908 @@
package seed.manager.member.service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.BannerDataDAO;
import seed.dao.BannerManagerDAO;
import seed.dao.BannerSetDAO;
import seed.dao.BbsAuthDAO;
import seed.dao.BbsCommentDAO;
import seed.dao.BbsDataDAO;
import seed.dao.BbsItemDAO;
import seed.dao.BbsManagerDAO;
import seed.dao.BbsSetDAO;
import seed.dao.BbsSkinDAO;
import seed.dao.CommonMessageDAO;
import seed.dao.FormbuilderAuthDAO;
import seed.dao.FormbuilderItemDAO;
import seed.dao.FormbuilderManagerDAO;
import seed.dao.FormbuilderSetDAO;
import seed.dao.FormbuilderSkinDAO;
import seed.dao.GroupsDAO;
import seed.dao.MemberDAO;
import seed.dao.MenuAuthDAO;
import seed.dao.PopupDataDAO;
import seed.dao.PopupManagerDAO;
import seed.dao.PopupSetDAO;
import seed.dao.QuickDataDAO;
import seed.dao.QuickManagerDAO;
import seed.dao.QuickSetDAO;
import seed.dao.SiteDAO;
import seed.dao.SiteManagerDAO;
import seed.dao.SiteMenuDAO;
import seed.dao.SiteMenuManagerDAO;
import seed.dao.SurveyAuthDAO;
import seed.dao.SurveyItemDAO;
import seed.dao.SurveyManagerDAO;
import seed.dao.SurveySetDAO;
import seed.dao.SurveySkinDAO;
import seed.dao.VisualDataDAO;
import seed.dao.VisualManagerDAO;
import seed.dao.VisualSetDAO;
import seed.map.T_BANNER_DATA;
import seed.map.T_BANNER_MANAGER;
import seed.map.T_BANNER_SET;
import seed.map.T_BBS_AUTH;
import seed.map.T_BBS_COMMENT;
import seed.map.T_BBS_DATA;
import seed.map.T_BBS_ITEM;
import seed.map.T_BBS_MANAGER;
import seed.map.T_BBS_SET;
import seed.map.T_BBS_SKIN;
import seed.map.T_FORMBUILDER_AUTH;
import seed.map.T_FORMBUILDER_ITEM;
import seed.map.T_FORMBUILDER_MANAGER;
import seed.map.T_FORMBUILDER_SET;
import seed.map.T_FORMBUILDER_SKIN;
import seed.map.T_GROUP;
import seed.map.T_GROUPS;
import seed.map.T_MEMBER;
import seed.map.T_MENU_AUTH;
import seed.map.T_MESSAGE;
import seed.map.T_POPUP_DATA;
import seed.map.T_POPUP_MANAGER;
import seed.map.T_POPUP_SET;
import seed.map.T_QUICK_DATA;
import seed.map.T_QUICK_MANAGER;
import seed.map.T_QUICK_SET;
import seed.map.T_SITE;
import seed.map.T_SITE_MANAGER;
import seed.map.T_SITE_MENU;
import seed.map.T_SITE_MENU_MANAGER;
import seed.map.T_SURVEY_AUTH;
import seed.map.T_SURVEY_ITEM;
import seed.map.T_SURVEY_MANAGER;
import seed.map.T_SURVEY_SET;
import seed.map.T_SURVEY_SKIN;
import seed.map.T_VISUAL_DATA;
import seed.map.T_VISUAL_MANAGER;
import seed.map.T_VISUAL_SET;
import seed.utils.SeedUtils;
@Service
public class ManagerMemberServiceImpl extends AbstractServiceImpl implements ManagerMemberService{
@Autowired
private MemberDAO memberDAO;
@Autowired
private SiteDAO siteDAO;
@Autowired
private SiteMenuDAO siteMenuDAO;
@Autowired
private BbsSetDAO bbsSetDAO;
@Autowired
private FormbuilderSetDAO formbuilderSetDAO;
@Autowired
private SurveySetDAO surveySetDAO;
@Autowired
private BannerSetDAO bannerSetDAO;
@Autowired
private PopupSetDAO popupSetDAO;
@Autowired
private QuickSetDAO quickSetDAO;
@Autowired
private VisualSetDAO visualSetDAO;
@Autowired
private GroupsDAO groupsDAO;
@Autowired
private BbsDataDAO bbsDataDAO;
@Autowired
private CommonMessageDAO commonMessageDAO;
@Autowired
private SiteManagerDAO siteManagerDAO;
@Autowired
private SiteMenuManagerDAO siteMenuManagerDAO;
@Autowired
private BbsManagerDAO bbsManagerDAO;
@Autowired
private FormbuilderManagerDAO formbuilderManagerDAO;
@Autowired
private SurveyManagerDAO surveyManagerDAO;
@Autowired
private BannerManagerDAO bannerManagerDAO;
@Autowired
private PopupManagerDAO popupManagerDAO;
@Autowired
private VisualManagerDAO visualManagerDAO;
@Autowired
private QuickManagerDAO quickManagerDAO;
@Autowired
private BbsSkinDAO bbsSkinDAO;
@Autowired
private BbsAuthDAO bbsAuthDAO;
@Autowired
private BbsItemDAO bbsItemDAO;
@Autowired
private BbsCommentDAO bbsCommentDAO;
@Autowired
private FormbuilderSkinDAO formbuilderSkinDAO;
@Autowired
private FormbuilderAuthDAO formbuilderAuthDAO;
@Autowired
private FormbuilderItemDAO formbuilderItemDAO;
@Autowired
private SurveySkinDAO surveySkinDAO;
@Autowired
private SurveyAuthDAO surveyAuthDAO;
@Autowired
private SurveyItemDAO surveyItemDAO;
@Autowired
private MenuAuthDAO menuAuthDAO;
@Autowired
private BannerDataDAO bannerDataDAO;
@Autowired
private PopupDataDAO popupDataDAO;
@Autowired
private VisualDataDAO visualDataDAO;
@Autowired
private QuickDataDAO quickDataDAO;
//ManagerMemberController, ManagerBbsController, ManagerGroupController, ManagerSiteController
public T_MEMBER getMemberForm(Integer memberIdx){
return memberDAO.getMemberForm(memberIdx);
}
//HomeController
public Map<Object, Object> getMemberMapForm(Integer memberIdx, String[] qryColumns){
return memberDAO.getMemberMapForm(memberIdx, qryColumns);
}
//ManagerMemberController
public Long getMemberFormCnt(String memberId){
return memberDAO.getMemberFormCnt(memberId);
}
//ManagerMemberController
public Long getMemberListCnt(String siteIdx, Integer selGroup, String column, String search){
return memberDAO.getMemberListCnt(siteIdx, selGroup, column, search);
}
//ManagerMemberController
public List<T_MEMBER> getMemberList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
return memberDAO.getMemberList(siteIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns);
}
//CommonController
public List<T_MEMBER> getMemberList(ArrayList<Integer> arrayListMemberIdx){
return memberDAO.getMemberList(arrayListMemberIdx);
}
//ManagerMemberController
@Transactional
public Integer setMemberRegProc(T_MEMBER tMember, T_SITE tSite, T_GROUP tGroup, String memberAuto){
Integer memberIdx = 0;
String strCode = SeedUtils.getSeedMD5Code(tMember.getMemberPw());
tMember.setMemberPw(SeedUtils.getSeedSHA256Code(strCode));
tMember.setMemberGrant("N");
if(memberAuto.equals("true")){
tMember.setMemberStatus("U");
}else if(memberAuto.equals("false")){
tMember.setMemberStatus("S");
}
tMember.setMemberCode(strCode);
tMember.setMemberRegDate(new Date());
tMember.setMemberModDate(new Date());
T_MEMBER tMemberDB = memberDAO.setMemberRegProc(tMember);
if(tMemberDB != null){
memberIdx = tMemberDB.getMemberIdx();
T_GROUPS tGroups = new T_GROUPS();
tGroups.settSite(tSite);
tGroups.settGroup(tGroup);
tGroups.settMember(tMemberDB);
tGroups.setGroupsStatus("U");
tGroups.setGroupsRegDate(new Date());
if(!groupsDAO.setGroupsRegProc(tGroups)){
memberIdx = 0;
}
}
return memberIdx;
}
//ManagerMemberController
@Transactional
public boolean setMemberModProc(T_MEMBER tMember){
T_MEMBER tMemberDB = memberDAO.getMemberForm(tMember.getMemberIdx());
if(!tMember.getMemberPw().equals("")){
String strCode = SeedUtils.getSeedMD5Code(tMember.getMemberPw());
tMemberDB.setMemberPw(SeedUtils.getSeedSHA256Code(strCode));
tMemberDB.setMemberCode(strCode);
}
tMemberDB.setMemberOldPwChk("Y");
tMemberDB.setMemberId(tMember.getMemberId());
tMemberDB.setMemberName(tMember.getMemberName());
tMemberDB.setMemberEmail1(tMember.getMemberEmail1());
tMemberDB.setMemberEmail2(tMember.getMemberEmail2());
tMemberDB.setMemberModDate(new Date());
tMemberDB.setMemberPost(tMember.getMemberPost());
tMemberDB.setMemberAddress1(tMember.getMemberAddress1());
tMemberDB.setMemberAddress2(tMember.getMemberAddress2());
tMemberDB.setMemberDept(tMember.getMemberDept());
tMemberDB.setMemberPosition(tMember.getMemberPosition());
tMemberDB.setMemberTel(tMember.getMemberTel());
tMemberDB.setMemberPhone(tMember.getMemberPhone());
tMemberDB.setMemberItemA1(tMember.getMemberItemA1());
tMemberDB.setMemberItemB2(tMember.getMemberItemB2());
tMemberDB.setMemberItemC3(tMember.getMemberItemC3());
tMemberDB.setMemberItemD4(tMember.getMemberItemD4());
tMemberDB.setMemberItemE5(tMember.getMemberItemE5());
tMemberDB.setMemberItemF6(tMember.getMemberItemF6());
tMemberDB.setMemberItemG7(tMember.getMemberItemG7());
tMemberDB.setMemberItemH8(tMember.getMemberItemH8());
tMemberDB.setMemberItemI9(tMember.getMemberItemI9());
tMemberDB.setMemberItemJ10(tMember.getMemberItemJ10());
return memberDAO.setMemberModProc(tMemberDB);
}
//ManagerMemberController
@Transactional
public boolean setMemberDelProc(String siteIdx, Integer memberIdx, String memberFlag){
boolean success = false;
List<T_GROUPS> groupsList = groupsDAO.getGroupsList(memberIdx);
if(groupsList.size() > 0){
for(int g=0; g<groupsList.size(); g++){
T_GROUPS tGroups = groupsList.get(g);
if(!groupsDAO.setGroupsDelProc(tGroups)){
success = false;
break;
}else{
success = true;
}
}
}else{
success = true;
}
if(success){
T_MEMBER tMemberDB = memberDAO.getMemberForm(memberIdx);
if(memberFlag.equals("false")){
String memberGrant = tMemberDB.getMemberGrant();
//쪽지 리스트
List<T_MESSAGE> messageList = commonMessageDAO.getMessageList(memberIdx);
//게시글 리스트
List<T_BBS_DATA> bbsDataList = bbsDataDAO.getBbsDataList(memberIdx);
//쪽지 삭제
if(messageList.size() > 0){
for(int i=0; i<messageList.size(); i++){
T_MESSAGE tMessageDB = messageList.get(i);
if(!commonMessageDAO.setMessageDelProc(tMessageDB)){
success = false;
}
}
}
if(memberGrant.equals("N")){ //일반 사용자
//게시글 삭제
if(bbsDataList.size() > 0){
for(int i=0; i<bbsDataList.size(); i++){
T_BBS_DATA tBbsDataDB = bbsDataList.get(i);
if(!bbsDataDAO.setBbsDataDelProc(tBbsDataDB)){
success = false;
}
}
}
}else{ //관리자
//슈퍼관리자 MEMBER_IDX = 1
T_MEMBER tMemberSDB = memberDAO.getMemberForm(1);
/***************************** 사이트 관련 *****************************/
//사이트
List<T_SITE> siteList = siteDAO.getSiteList(memberIdx);
if(siteList.size() > 0){
for(int i=0; i<siteList.size(); i++){
T_SITE tSiteDB = siteList.get(i);
tSiteDB.settMember(tMemberSDB);
if(!siteDAO.setSiteModProc(tSiteDB)){
success = false;
}
}
}
//사이트 관리자 리스트
List<T_SITE_MANAGER> siteManagerList = siteManagerDAO.getSiteManagerList(memberIdx);
//사이트 관리자 삭제
if(siteManagerList.size() > 0){
for(int i=0; i<siteManagerList.size(); i++){
T_SITE_MANAGER tSiteManagerDB = siteManagerList.get(i);
if(!siteManagerDAO.setSiteManagerDelProc(tSiteManagerDB)){
success = false;
}
}
}
//사이트 메뉴 작성자 리스트
List<T_SITE_MENU> siteMenuList = siteMenuDAO.getSiteMenuList(memberIdx);
if(siteMenuList.size() > 0){
for(int i=0; i<siteMenuList.size(); i++){
T_SITE_MENU tSiteMenuDB = siteMenuList.get(i);
tSiteMenuDB.settMember(tMemberSDB);
if(!siteMenuDAO.setSiteMenuModProc(tSiteMenuDB)){
success = false;
}
}
}
//사이트 메뉴 관리자 리스트
List<T_SITE_MENU_MANAGER> siteMenuManagerList = siteMenuManagerDAO.getSiteMenuManagerList(memberIdx);
//사이트 메뉴 관리자 삭제
if(siteMenuManagerList.size() > 0){
for(int i=0; i<siteMenuManagerList.size(); i++){
T_SITE_MENU_MANAGER tSiteMenuManagerDB = siteMenuManagerList.get(i);
if(!siteMenuManagerDAO.setSiteMenuManagerDelProc(tSiteMenuManagerDB)){
success = false;
}
}
}
/***************************** 사이트 관련 *****************************/
/***************************** 게시판 관련 *****************************/
//게시글 MEMBER_IDX 변경
if(bbsDataList.size() > 0){
for(int i=0; i<bbsDataList.size(); i++){
T_BBS_DATA tBbsDataDB = bbsDataList.get(i);
tBbsDataDB.settMember(tMemberSDB);
if(!bbsDataDAO.setBbsDataModProc(tBbsDataDB)){
success = false;
}
}
}
//게시판 스킨
List<T_BBS_SKIN> bbsSkinList = bbsSkinDAO.getBbsSkinList(memberIdx);
if(bbsSkinList.size() > 0){
for(int i=0; i<bbsSkinList.size(); i++){
T_BBS_SKIN tBbsSkinDB = bbsSkinList.get(i);
tBbsSkinDB.settMember(tMemberSDB);
if(!bbsSkinDAO.setBbsSkinModProc(tBbsSkinDB)){
success = false;
}
}
}
//게시판 기능 리스트
List<T_BBS_SET> bbsSetList = bbsSetDAO.getBbsSetList(memberIdx);
if(bbsSetList.size() > 0){
for(int i=0; i<bbsSetList.size(); i++){
T_BBS_SET tBbsSetDB = bbsSetList.get(i);
tBbsSetDB.settMember(tMemberSDB);
if(!bbsSetDAO.setBbsSetModProc(tBbsSetDB)){
success = false;
}
}
}
//게시판 관리자 리스트
List<T_BBS_MANAGER> bbsManagerList = bbsManagerDAO.getBbsManagerList(memberIdx);
//게시판 관리자 삭제
if(bbsManagerList.size() > 0){
for(int i=0; i<bbsManagerList.size(); i++){
T_BBS_MANAGER tBbsManagerDB = bbsManagerList.get(i);
if(!bbsManagerDAO.setBbsManagerDelProc(tBbsManagerDB)){
success = false;
}
}
}
//게시판 권한 리스트
List<T_BBS_AUTH> bbsAuthList = bbsAuthDAO.getBbsAuthList(memberIdx);
if(bbsAuthList.size() > 0){
for(int i=0; i<bbsAuthList.size(); i++){
T_BBS_AUTH tBbsAuthDB = bbsAuthList.get(i);
tBbsAuthDB.settMember(tMemberSDB);
if(!bbsAuthDAO.setBbsAuthModProc(tBbsAuthDB)){
success = false;
}
}
}
//게시판 항목 리스트
List<T_BBS_ITEM> bbsItemList = bbsItemDAO.getBbsItemAllList(memberIdx);
if(bbsItemList.size() > 0){
for(int i=0; i<bbsItemList.size(); i++){
T_BBS_ITEM tBbsItemDB = bbsItemList.get(i);
tBbsItemDB.settMember(tMemberSDB);
if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){
success = false;
}
}
}
//게시판 코멘트 리스트
List<T_BBS_COMMENT> bbsCommentList = bbsCommentDAO.getBbsCommentList(memberIdx);
if(bbsCommentList.size() > 0){
for(int i=0; i<bbsCommentList.size(); i++){
T_BBS_COMMENT tBbsCommentDB = bbsCommentList.get(i);
tBbsCommentDB.settMember(tMemberSDB);
if(!bbsCommentDAO.setBbsCommentModProc(tBbsCommentDB)){
success = false;
}
}
}
/***************************** 게시판 관련 *****************************/
/***************************** 폼빌더 관련 *****************************/
//폼빌더 스킨
List<T_FORMBUILDER_SKIN> formbuilderSkinList = formbuilderSkinDAO.getFormbuilderSkinList(memberIdx);
if(formbuilderSkinList.size() > 0){
for(int i=0; i<formbuilderSkinList.size(); i++){
T_FORMBUILDER_SKIN tFormbuilderSkinDB = formbuilderSkinList.get(i);
tFormbuilderSkinDB.settMember(tMemberSDB);
if(!formbuilderSkinDAO.setFormbuilderSkinModProc(tFormbuilderSkinDB)){
success = false;
}
}
}
//폼빌더 기능 리스트
List<T_FORMBUILDER_SET> formbuilderSetList = formbuilderSetDAO.getFormbuilderSetList(memberIdx);
if(formbuilderSetList.size() > 0){
for(int i=0; i<formbuilderSetList.size(); i++){
T_FORMBUILDER_SET tFormbuilderSetDB = formbuilderSetList.get(i);
tFormbuilderSetDB.settMember(tMemberSDB);
if(!formbuilderSetDAO.setFormbuilderSetModProc(tFormbuilderSetDB)){
success = false;
}
}
}
//폼빌더 관리자 리스트
List<T_FORMBUILDER_MANAGER> formbuilderManagerList = formbuilderManagerDAO.getFormbuilderManagerList(memberIdx);
//폼빌더 관리자 삭제
if(formbuilderManagerList.size() > 0){
for(int i=0; i<formbuilderManagerList.size(); i++){
T_FORMBUILDER_MANAGER tFormbuilderManagerDB = formbuilderManagerList.get(i);
if(!formbuilderManagerDAO.setFormbuilderManagerDelProc(tFormbuilderManagerDB)){
success = false;
}
}
}
//폼빌더 권한 리스트
List<T_FORMBUILDER_AUTH> formbuilderAuthList = formbuilderAuthDAO.getFormbuilderAuthList(memberIdx);
if(formbuilderAuthList.size() > 0){
for(int i=0; i<formbuilderAuthList.size(); i++){
T_FORMBUILDER_AUTH tFormbuilderAuthDB = formbuilderAuthList.get(i);
tFormbuilderAuthDB.settMember(tMemberSDB);
if(!formbuilderAuthDAO.setFormbuilderAuthModProc(tFormbuilderAuthDB)){
success = false;
}
}
}
//폼빌더 항목 리스트
List<T_FORMBUILDER_ITEM> formbuilderItemList = formbuilderItemDAO.getFormbuilderItemAllList(memberIdx);
if(formbuilderItemList.size() > 0){
for(int i=0; i<formbuilderItemList.size(); i++){
T_FORMBUILDER_ITEM tFormbuilderItemDB = formbuilderItemList.get(i);
tFormbuilderItemDB.settMember(tMemberSDB);
if(!formbuilderItemDAO.setFormbuilderItemModProc(tFormbuilderItemDB)){
success = false;
}
}
}
/***************************** 폼빌더 관련 *****************************/
/***************************** 설문 관련 *****************************/
//설문 스킨
List<T_SURVEY_SKIN> surveySkinList = surveySkinDAO.getSurveySkinList(memberIdx);
if(surveySkinList.size() > 0){
for(int i=0; i<surveySkinList.size(); i++){
T_SURVEY_SKIN tSurveySkinDB = surveySkinList.get(i);
tSurveySkinDB.settMember(tMemberSDB);
if(!surveySkinDAO.setSurveySkinModProc(tSurveySkinDB)){
success = false;
}
}
}
//설문 기능 리스트
List<T_SURVEY_SET> surveySetList = surveySetDAO.getSurveySetList(memberIdx);
if(surveySetList.size() > 0){
for(int i=0; i<surveySetList.size(); i++){
T_SURVEY_SET tSurveySetDB = surveySetList.get(i);
tSurveySetDB.settMember(tMemberSDB);
if(!surveySetDAO.setSurveySetModProc(tSurveySetDB)){
success = false;
}
}
}
//설문 관리자 리스트
List<T_SURVEY_MANAGER> surveyManagerList = surveyManagerDAO.getSurveyManagerList(memberIdx);
//설문 관리자 삭제
if(surveyManagerList.size() > 0){
for(int i=0; i<surveyManagerList.size(); i++){
T_SURVEY_MANAGER tSurveyManagerDB = surveyManagerList.get(i);
if(!surveyManagerDAO.setSurveyManagerDelProc(tSurveyManagerDB)){
success = false;
}
}
}
//설문 권한 리스트
List<T_SURVEY_AUTH> surveyAuthList = surveyAuthDAO.getSurveyAuthList(memberIdx);
if(surveyAuthList.size() > 0){
for(int i=0; i<surveyAuthList.size(); i++){
T_SURVEY_AUTH tSurveyAuthDB = surveyAuthList.get(i);
tSurveyAuthDB.settMember(tMemberSDB);
if(!surveyAuthDAO.setSurveyAuthModProc(tSurveyAuthDB)){
success = false;
}
}
}
//설문 항목 리스트
List<T_SURVEY_ITEM> surveyItemList = surveyItemDAO.getSurveyItemAllList(memberIdx);
if(surveyItemList.size() > 0){
for(int i=0; i<surveyItemList.size(); i++){
T_SURVEY_ITEM tSurveyItemDB = surveyItemList.get(i);
tSurveyItemDB.settMember(tMemberSDB);
if(!surveyItemDAO.setSurveyItemModProc(tSurveyItemDB)){
success = false;
}
}
}
/***************************** 설문 관련 *****************************/
/***************************** 메뉴 권한 관련 *****************************/
//메뉴 권한 리스트
List<T_MENU_AUTH> menuAuthList = menuAuthDAO.getMenuAuthList(memberIdx);
if(menuAuthList.size() > 0){
for(int i=0; i<menuAuthList.size(); i++){
T_MENU_AUTH tMenuAuthDB = menuAuthList.get(i);
tMenuAuthDB.settMember(tMemberSDB);
if(!menuAuthDAO.setMenuAuthModProc(tMenuAuthDB)){
success = false;
}
}
}
/***************************** 메뉴 권한 관련 *****************************/
/***************************** 배너 관련 *****************************/
//배너 기능 리스트
List<T_BANNER_SET> bannerSetList = bannerSetDAO.getBannerSetList(memberIdx);
if(bannerSetList.size() > 0){
for(int i=0; i<bannerSetList.size(); i++){
T_BANNER_SET tBannerSetDB = bannerSetList.get(i);
tBannerSetDB.settMember(tMemberSDB);
if(!bannerSetDAO.setBannerSetModProc(tBannerSetDB)){
success = false;
}
}
}
//배너 관리자 리스트
List<T_BANNER_MANAGER> bannerManagerList = bannerManagerDAO.getBannerManagerList(memberIdx);
//배너 관리자 삭제
if(bannerManagerList.size() > 0){
for(int i=0; i<bannerManagerList.size(); i++){
T_BANNER_MANAGER tBannerManagerDB = bannerManagerList.get(i);
if(!bannerManagerDAO.setBannerManagerDelProc(tBannerManagerDB)){
success = false;
}
}
}
//배너 리스트
List<T_BANNER_DATA> bannerDataList = bannerDataDAO.getBannerDataAllList(memberIdx);
if(bannerDataList.size() > 0){
for(int i=0; i<bannerDataList.size(); i++){
T_BANNER_DATA tBannerDataDB = bannerDataList.get(i);
tBannerDataDB.settMember(tMemberSDB);
if(!bannerDataDAO.setBannerDataModProc(tBannerDataDB)){
success = false;
}
}
}
/***************************** 배너 관련 *****************************/
/***************************** 팝업 관련 *****************************/
//팝업 기능 리스트
List<T_POPUP_SET> popupSetList = popupSetDAO.getPopupSetList(memberIdx);
if(popupSetList.size() > 0){
for(int i=0; i<popupSetList.size(); i++){
T_POPUP_SET tPopupSetDB = popupSetList.get(i);
tPopupSetDB.settMember(tMemberSDB);
if(!popupSetDAO.setPopupSetModProc(tPopupSetDB)){
success = false;
}
}
}
//팝업 관리자 리스트
List<T_POPUP_MANAGER> popupManagerList = popupManagerDAO.getPopupManagerList(memberIdx);
//팝업 관리자 삭제
if(popupManagerList.size() > 0){
for(int i=0; i<popupManagerList.size(); i++){
T_POPUP_MANAGER tPopupManagerDB = popupManagerList.get(i);
if(!popupManagerDAO.setPopupManagerDelProc(tPopupManagerDB)){
success = false;
}
}
}
//팝업 리스트
List<T_POPUP_DATA> popupDataList = popupDataDAO.getPopupDataAllList(memberIdx);
if(popupDataList.size() > 0){
for(int i=0; i<popupDataList.size(); i++){
T_POPUP_DATA tPopupDataDB = popupDataList.get(i);
tPopupDataDB.settMember(tMemberSDB);
if(!popupDataDAO.setPopupDataModProc(tPopupDataDB)){
success = false;
}
}
}
/***************************** 팝업 관련 *****************************/
/***************************** 비주얼 관련 *****************************/
//비주얼 기능 리스트
List<T_VISUAL_SET> visualSetList = visualSetDAO.getVisualSetList(memberIdx);
if(visualSetList.size() > 0){
for(int i=0; i<visualSetList.size(); i++){
T_VISUAL_SET tVisualSetDB = visualSetList.get(i);
tVisualSetDB.settMember(tMemberSDB);
if(!visualSetDAO.setVisualSetModProc(tVisualSetDB)){
success = false;
}
}
}
//비주얼 관리자 리스트
List<T_VISUAL_MANAGER> visualManagerList = visualManagerDAO.getVisualManagerList(memberIdx);
//비주얼 관리자 삭제
if(visualManagerList.size() > 0){
for(int i=0; i<visualManagerList.size(); i++){
T_VISUAL_MANAGER tVisualManagerDB = visualManagerList.get(i);
if(!visualManagerDAO.setVisualManagerDelProc(tVisualManagerDB)){
success = false;
}
}
}
//비주얼 리스트
List<T_VISUAL_DATA> visualDataList = visualDataDAO.getVisualDataAllList(memberIdx);
if(visualDataList.size() > 0){
for(int i=0; i<visualDataList.size(); i++){
T_VISUAL_DATA tVisualDataDB = visualDataList.get(i);
tVisualDataDB.settMember(tMemberSDB);
if(!visualDataDAO.setVisualDataModProc(tVisualDataDB)){
success = false;
}
}
}
/***************************** 비주얼 관련 *****************************/
/***************************** 퀵 관련 *****************************/
// 기능 리스트
List<T_QUICK_SET> quickSetList = quickSetDAO.getQuickSetList(memberIdx);
if(quickSetList.size() > 0){
for(int i=0; i<quickSetList.size(); i++){
T_QUICK_SET tQuickSetDB = quickSetList.get(i);
tQuickSetDB.settMember(tMemberSDB);
if(!quickSetDAO.setQuickSetModProc(tQuickSetDB)){
success = false;
}
}
}
// 관리자 리스트
List<T_QUICK_MANAGER> quickManagerList = quickManagerDAO.getQuickManagerList(memberIdx);
// 관리자 삭제
if(quickManagerList.size() > 0){
for(int i=0; i<quickManagerList.size(); i++){
T_QUICK_MANAGER tQuickManagerDB = quickManagerList.get(i);
if(!quickManagerDAO.setQuickManagerDelProc(tQuickManagerDB)){
success = false;
}
}
}
// 리스트
List<T_QUICK_DATA> quickDataList = quickDataDAO.getQuickDataAllList(memberIdx);
if(quickDataList.size() > 0){
for(int i=0; i<quickDataList.size(); i++){
T_QUICK_DATA tQuickDataDB = quickDataList.get(i);
tQuickDataDB.settMember(tMemberSDB);
if(!quickDataDAO.setQuickDataModProc(tQuickDataDB)){
success = false;
}
}
}
/***************************** 퀵 관련 *****************************/
}
if(!memberDAO.setMemberDelProc(tMemberDB)){
success = false;
}
}else{
tMemberDB.setMemberId(" ");
tMemberDB.setMemberCode(" ");
tMemberDB.setMemberEmail1(" ");
tMemberDB.setMemberEmail2(" ");
tMemberDB.setMemberGrant(" ");
tMemberDB.setMemberPost(" ");
tMemberDB.setMemberAddress1(" ");
tMemberDB.setMemberAddress2(" ");
tMemberDB.setMemberDept(" ");
tMemberDB.setMemberPosition(" ");
tMemberDB.setMemberTel(" ");
tMemberDB.setMemberPhone(" ");
tMemberDB.setMemberItemA1(" ");
tMemberDB.setMemberItemB2(" ");
tMemberDB.setMemberItemC3(" ");
tMemberDB.setMemberItemD4(" ");
tMemberDB.setMemberItemE5(" ");
tMemberDB.setMemberItemF6(" ");
tMemberDB.setMemberItemG7(" ");
tMemberDB.setMemberItemH8(" ");
tMemberDB.setMemberItemI9(" ");
tMemberDB.setMemberItemJ10(" ");
tMemberDB.setMemberLockNum(0);
tMemberDB.setMemberPost(" ");
tMemberDB.setMemberPw(" ");
tMemberDB.setMemberStatus("Z");
tMemberDB.setMemberModDate(new Date());
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
}
}
}
return success;
}
//ManagerMemberController
@Transactional
public boolean setMemberStatusProc(Integer memberIdx, String status){
T_MEMBER tMemberDB = memberDAO.getMemberForm(memberIdx);
tMemberDB.setMemberStatus(status);
tMemberDB.setMemberModDate(new Date());
return memberDAO.setMemberModProc(tMemberDB);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,34 @@
package seed.manager.site.service;
import java.util.List;
import seed.map.T_SITE_MANAGER;
import seed.map.VIEW_MANAGER_DATA;
public interface ManagerSiteManagerService {
//ManagerLoginController
public List<T_SITE_MANAGER> getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns);
//ManagerELoginController
public List<VIEW_MANAGER_DATA> getSiteManagerList(Integer memberIdx, String[] qryColumns);
public boolean getSiteManagerListCnt(String siteIdx, Integer memberIdx);
public boolean getSiteManagerListCnt(Integer memberIdx);
//CommonController
public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search);
//CommonController
public List<T_SITE_MANAGER> getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//CommonController
public boolean setSiteManagerRegProc(String siteIdx, Integer[] idxsc);
//CommonController
public boolean setSiteManagerDelProc(Integer siteManagerIdx);
//CommonController
public boolean setSiteManagerStatusProc(Integer siteManagerIdx, String status);
}

View File

@ -0,0 +1,167 @@
package seed.manager.site.service;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.MemberDAO;
import seed.dao.SiteManagerDAO;
import seed.map.T_MEMBER;
import seed.map.T_SITE;
import seed.map.T_SITE_MANAGER;
import seed.map.VIEW_MANAGER_DATA;
@Service
public class ManagerSiteManagerServiceImpl extends AbstractServiceImpl implements ManagerSiteManagerService{
@Autowired
private SiteManagerDAO siteManagerDAO;
@Autowired
private MemberDAO memberDAO;
//ManagerLoginController
public List<T_SITE_MANAGER> getSiteManagerList(String memberMergeSiteIdx, Integer memberIdx, String[] qryColumns){
return siteManagerDAO.getSiteManagerList(memberMergeSiteIdx, memberIdx, qryColumns);
}
//ManagerELoginController
public List<VIEW_MANAGER_DATA> getSiteManagerList(Integer memberIdx, String[] qryColumns){
return siteManagerDAO.getSiteManagerList(memberIdx, qryColumns);
}
public boolean getSiteManagerListCnt(String siteIdx, Integer memberIdx){
boolean success = false;
if(siteManagerDAO.getSiteManagerListCnt(siteIdx, memberIdx) > 0){
success = true;
}
return success;
}
public boolean getSiteManagerListCnt(Integer memberIdx){
boolean success = false;
if(siteManagerDAO.getSiteManagerListCnt(memberIdx) > 0){
success = true;
}
return success;
}
//CommonController
public Long getSiteManagerListCnt(String siteIdx, Integer selGroup, String column, String search){
return siteManagerDAO.getSiteManagerListCnt(siteIdx, selGroup, column, search);
}
//CommonController
public List<T_SITE_MANAGER> getSiteManagerList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
return siteManagerDAO.getSiteManagerList(siteIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns);
}
//CommonController
@Transactional
public boolean setSiteManagerRegProc(String siteIdx, Integer[] idxsc){
boolean success = false;
if(idxsc.length > 0){
for(int i=0; i<idxsc.length; i++){
if(siteManagerDAO.getSiteManagerListCnt(siteIdx, idxsc[i]) > 0){
success = true;
}else{
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(idxsc[i]);
T_SITE tSite = new T_SITE();
tSite.setSiteIdx(siteIdx);
T_SITE_MANAGER tSiteManager = new T_SITE_MANAGER();
tSiteManager.settMember(tMember);
tSiteManager.settSite(tSite);
tSiteManager.setSiteManagerStatus("U");
tSiteManager.setSiteManagerRegDate(new Date());
if(siteManagerDAO.setSiteManagerRegProc(tSiteManager)){
success = true;
T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]);
if(!tMemberDB.getMemberGrant().equals("S")){
tMemberDB.setMemberGrant("SM");
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
break;
}
}
}else{
success = false;
}
}
}
}
return success;
}
//CommonController
@Transactional
public boolean setSiteManagerDelProc(Integer siteManagerIdx){
boolean success = false;
T_SITE_MANAGER tSiteManagerDB = siteManagerDAO.getSiteManagerForm(siteManagerIdx);
if(siteManagerDAO.setSiteManagerDelProc(tSiteManagerDB)){
success = true;
T_MEMBER tMemberDB = memberDAO.getMemberForm(tSiteManagerDB.gettMember().getMemberIdx());
if(!tMemberDB.getMemberGrant().equals("S")){
if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){
tMemberDB.setMemberGrant("SM");
}else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){
tMemberDB.setMemberGrant("M");
}else{
tMemberDB.setMemberGrant("N");
}
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
}
}
}
return success;
}
//CommonController
@Transactional
public boolean setSiteManagerStatusProc(Integer siteManagerIdx, String status){
T_SITE_MANAGER tSiteManagerDB = siteManagerDAO.getSiteManagerForm(siteManagerIdx);
tSiteManagerDB.setSiteManagerStatus(status);
return siteManagerDAO.setSiteManagerModProc(tSiteManagerDB);
}
}

View File

@ -0,0 +1,14 @@
package seed.manager.site.service;
import java.util.List;
import seed.map.T_SITE_MENU_AUTH;
public interface ManagerSiteMenuAuthService {
//ManagerSiteController
public List<T_SITE_MENU_AUTH> getSiteMenuAuthList(Integer siteMenuIdx, String[] qryColumns);
//HomeController
public boolean getSiteMenuAuthChk(Integer siteMenuIdx, Integer memberIdx);
}

View File

@ -0,0 +1,45 @@
package seed.manager.site.service;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.SiteMenuAuthDAO;
import seed.map.T_SITE_MENU_AUTH;
import seed.utils.SeedUtils;
@Service
public class ManagerSiteMenuAuthServiceImpl extends AbstractServiceImpl implements ManagerSiteMenuAuthService{
@Autowired
private SiteMenuAuthDAO siteMenuAuthDAO;
//ManagerSiteController
public List<T_SITE_MENU_AUTH> getSiteMenuAuthList(Integer siteMenuIdx, String[] qryColumns){
return siteMenuAuthDAO.getSiteMenuAuthList(siteMenuIdx, qryColumns);
}
//HomeController
public boolean getSiteMenuAuthChk(Integer siteMenuIdx, Integer memberIdx){
boolean success = false;
List<Map<Object, Object>> tSiteMenuAuthList = siteMenuAuthDAO.getSiteMenuAuthMapList(siteMenuIdx, memberIdx, new String[] {"siteMenuAuth"});
for(int a=0; a<tSiteMenuAuthList.size(); a++){
Map<Object, Object> tSiteMenuAuthDB = tSiteMenuAuthList.get(a);
if(SeedUtils.setReplaceNull(tSiteMenuAuthDB.get("_siteMenuAuth")).equals("Y")){
success = true;
break;
}
}
return success;
}
}

View File

@ -0,0 +1,10 @@
package seed.manager.site.service;
import java.util.List;
import seed.map.T_SITE_MENU_HISTORY;
public interface ManagerSiteMenuHistoryService {
public List<T_SITE_MENU_HISTORY> getSiteMenuHistoryDList(String siteIdx, String type, String siteMenuIdxs);
}

View File

@ -0,0 +1,23 @@
package seed.manager.site.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.SiteMenuHistoryDAO;
import seed.map.T_SITE_MENU_HISTORY;
@Service
public class ManagerSiteMenuHistoryServiceImpl extends AbstractServiceImpl implements ManagerSiteMenuHistoryService{
@Autowired
private SiteMenuHistoryDAO siteMenuHistoryDAO;
public List<T_SITE_MENU_HISTORY> getSiteMenuHistoryDList(String siteIdx, String type, String siteMenuIdxs){
return siteMenuHistoryDAO.getSiteMenuHistoryDList(siteIdx, type, siteMenuIdxs);
}
}

View File

@ -0,0 +1,40 @@
package seed.manager.site.service;
import java.util.List;
import java.util.Map;
import seed.map.T_SITE_MENU_MANAGER;
import seed.map.VIEW_SITE_MENU_MANAGER;
public interface ManagerSiteMenuManagerService {
//HomeController
public boolean getSiteMenuManagerListCnt(Integer siteMenuIdx, Integer memberIdx);
//CommonController
public Long getSiteMenuManagerListCnt(String siteIdx, Integer memberIdx);
//CommonController
public Long getSiteMenuManagerListCnt(Integer siteMenuIdx, Integer selGroup, String column, String search);
//CommonController
public List<T_SITE_MENU_MANAGER> getSiteMenuManagerList(Integer siteMenuIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//ManagerSiteController
public List<VIEW_SITE_MENU_MANAGER> getSiteMenuManagerList(String siteIdx, Integer memberIdx, String column, String search, String[] qryColumns);
//ManagerSiteController
public List<Map<Object, Object>> getSiteMenuManagerList(String siteIdx, Integer memberIdx, String[] qryColumns);
//CommonController
public List<Map<Object, Object>> getSiteMenuManagerMapList(Integer siteMenuIdx, String[] qryColumns);
//CommonController
public boolean setSiteMenuManagerRegProc(Integer siteMenuIdx, Integer[] idxsc);
//CommonController
public boolean setSiteMenuManagerDelProc(Integer siteMenuManagerIdx);
//CommonController
public boolean setSiteMenuManagerStatusProc(Integer siteMenuManagerIdx, String status);
}

View File

@ -0,0 +1,180 @@
package seed.manager.site.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.MemberDAO;
import seed.dao.SiteManagerDAO;
import seed.dao.SiteMenuManagerDAO;
import seed.map.T_MEMBER;
import seed.map.T_SITE_MENU;
import seed.map.T_SITE_MENU_MANAGER;
import seed.map.VIEW_SITE_MENU_MANAGER;
@Service
public class ManagerSiteMenuManagerServiceImpl extends AbstractServiceImpl implements ManagerSiteMenuManagerService{
@Autowired
private SiteMenuManagerDAO siteMenuManagerDAO;
@Autowired
private SiteManagerDAO siteManagerDAO;
@Autowired
private MemberDAO memberDAO;
//HomeController
public boolean getSiteMenuManagerListCnt(Integer siteMenuIdx, Integer memberIdx){
boolean success = false;
if(siteMenuManagerDAO.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx) > 0){
success = true;
}
return success;
}
//CommonController
public Long getSiteMenuManagerListCnt(String siteIdx, Integer memberIdx){
return siteMenuManagerDAO.getSiteMenuManagerListCnt(siteIdx, memberIdx);
}
//CommonController
public Long getSiteMenuManagerListCnt(Integer siteMenuIdx, Integer selGroup, String column, String search){
return siteMenuManagerDAO.getSiteMenuManagerListCnt(siteMenuIdx, selGroup, column, search);
}
//CommonController
public List<T_SITE_MENU_MANAGER> getSiteMenuManagerList(Integer siteMenuIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
return siteMenuManagerDAO.getSiteMenuManagerList(siteMenuIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns);
}
//ManagerSiteController
public List<VIEW_SITE_MENU_MANAGER> getSiteMenuManagerList(String siteIdx, Integer memberIdx, String column, String search, String[] qryColumns){
return siteMenuManagerDAO.getSiteMenuManagerList(siteIdx, memberIdx, column, search, qryColumns);
}
//ManagerSiteController
public List<Map<Object, Object>> getSiteMenuManagerList(String siteIdx, Integer memberIdx, String[] qryColumns){
return siteMenuManagerDAO.getSiteMenuManagerList(siteIdx, memberIdx, qryColumns);
}
//CommonController
public List<Map<Object, Object>> getSiteMenuManagerMapList(Integer siteMenuIdx, String[] qryColumns){
return siteMenuManagerDAO.getSiteMenuManagerMapList(siteMenuIdx, qryColumns);
}
//CommonController
@Transactional
public boolean setSiteMenuManagerRegProc(Integer siteMenuIdx, Integer[] idxsc){
boolean success = false;
if(idxsc.length > 0){
for(int i=0; i<idxsc.length; i++){
if(siteMenuManagerDAO.getSiteMenuManagerListCnt(siteMenuIdx, idxsc[i]) > 0){
success = true;
}else{
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(idxsc[i]);
T_SITE_MENU tSiteMenu = new T_SITE_MENU();
tSiteMenu.setSiteMenuIdx(siteMenuIdx);
T_SITE_MENU_MANAGER tSiteMenuManager = new T_SITE_MENU_MANAGER();
tSiteMenuManager.settMember(tMember);
tSiteMenuManager.settSiteMenu(tSiteMenu);
tSiteMenuManager.setSiteMenuManagerStatus("U");
tSiteMenuManager.setSiteMenuManagerRegDate(new Date());
if(siteMenuManagerDAO.setSiteMenuManagerRegProc(tSiteMenuManager)){
success = true;
T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]);
if(!tMemberDB.getMemberGrant().equals("S")){
if(tMemberDB.getMemberGrant().equals("SM")){
tMemberDB.setMemberGrant("SM");
}else{
tMemberDB.setMemberGrant("M");
}
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
break;
}
}
}else{
success = false;
}
}
}
}
return success;
}
//CommonController
@Transactional
public boolean setSiteMenuManagerDelProc(Integer siteMenuManagerIdx){
boolean success = false;
T_SITE_MENU_MANAGER tSiteMenuManagerDB = siteMenuManagerDAO.getSiteMenuManagerForm(siteMenuManagerIdx);
if(siteMenuManagerDAO.setSiteMenuManagerDelProc(tSiteMenuManagerDB)){
success = true;
T_MEMBER tMemberDB = memberDAO.getMemberForm(tSiteMenuManagerDB.gettMember().getMemberIdx());
if(!tMemberDB.getMemberGrant().equals("S")){
if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){
tMemberDB.setMemberGrant("SM");
}else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){
tMemberDB.setMemberGrant("M");
}else{
tMemberDB.setMemberGrant("N");
}
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
}
}
}
return success;
}
//CommonController
@Transactional
public boolean setSiteMenuManagerStatusProc(Integer siteMenuManagerIdx, String status){
T_SITE_MENU_MANAGER tSiteMenuManagerDB = siteMenuManagerDAO.getSiteMenuManagerForm(siteMenuManagerIdx);
tSiteMenuManagerDB.setSiteMenuManagerStatus(status);
return siteMenuManagerDAO.setSiteMenuManagerModProc(tSiteMenuManagerDB);
}
}

View File

@ -0,0 +1,91 @@
package seed.manager.site.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.web.multipart.MultipartFile;
import seed.map.T_SITE_MENU;
import seed.map.VIEW_SITE_MENU;
public interface ManagerSiteMenuService {
//ManagerSiteController
public Map<Object, Object> getSiteMenuLoginForm(String siteIdx, String[] qryColumns);
//ManagerSiteController
public String getSiteMenuTop(String siteIdx, String siteMenuType, String rootPath);
//ManagerSiteController
public String getSiteMenuSub(String siteIdx, String siteMenuType, String siteMenuPath, String rootPath);
//ManagerSiteController
public String getSiteMenuCss(String siteIdx, String siteMenuType, String rootPath);
//ManagerSiteController
public String getSiteMenuJs(String siteIdx, String siteMenuType, String rootPath);
//ManagerSiteController
public String getFileAttribute(String siteIdx, String rootPath, String dirPath, String fileName);
//ManagerSiteController
public String getSiteLayOutHtml(String siteIdx, String siteLayOutType, String siteLayOutPosition, String rootPath);
//ManagerSiteController
public ArrayList<String> getSiteMenuNavigationList(String siteIdx, Integer siteMenuIdx);
//CommonController
public List<Map<Object, Object>> getSiteMenuTabNavigationList(String siteIdx, Integer siteMenuIdx, String siteMenuIdxs, Integer siteMenuDepth);
//ManagerSiteController
public String getSiteMenuParentName(String siteIdx, String siteMenuParentIdx, String Type);
//ManagerSiteController
public List<VIEW_SITE_MENU> getSiteMenuList(String siteIdx, String column, String search, String[] qryColumns);
//ManagerSiteController
public List<Map<Object,Object>> getSiteMenuChargeList(String siteIdx, String column, String search, String[] qryColumns);
//ManagerSmartController
public List<T_SITE_MENU> getSiteMenuSmartList(String siteIdx, String type, String[] qryColumns);
//ManagerSiteController
public String getSiteMenuSubTitleForm(String siteIdx, String siteMenuIdx1);
//ManagerSiteController
public T_SITE_MENU getSiteMenuForm(Integer siteMenuIdx);
//HomeController
public Map<Object, Object> getSiteMenuMapForm(Integer siteMenuIdx, String[] qryColumns);
//CommonController
public Integer getSiteMenuForm(String siteIdx);
//ManagerSiteController
public Integer setSiteMenuRegProc(T_SITE_MENU tSiteMenu, MultipartFile upIconFile, Integer memberIdx, String memberGrant, String memberMerge, String memberMergeSiteIdx, String rootPath);
//ManagerSiteController
public String setSiteMenuModProc(T_SITE_MENU tSiteMenu, MultipartFile upIconFile, Integer[] siteMenuAuthIdxs, Integer[] siteMenuAuths, Integer memberIdx, String rootPath);
//ManagerSiteController
public boolean setSiteMenuDelProc(Integer siteMenuIdx, Integer memberIdx, String memberId, String rootPath);
//ManagerSiteController
public boolean setSiteMenuStatusProc(Integer siteMenuIdx, String status, String rootPath, Integer memberIdx);
//ManagerSiteController
public boolean setSiteMenuOrderProc(String siteIdx, Integer siteMenuIdx, String orderType, Integer memberIdx, String rootPath);
//ManagerSiteController
public boolean setSiteLayOutSetHtmlModProc(String siteIdx, String siteLayOutType, String siteLayOutPosition, String siteLayOutHtml, String rootPath);
//ManagerSiteController
public boolean getSiteMenuExcel(String siteIdx, String rootPath, String toDate, String fileCode, String fileNameDate);
//ManagerSiteController
public boolean setSiteMenuExcelChkProc(String siteIdx, String rootPath, Integer memberIdx, String memberMerge, String memberMergeSiteIdx, MultipartFile upFile);
//ManagerSiteController
public boolean setMultiFileAttributeProc(String rootPath, String filePath, String fileName, String fileAttribute);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
package seed.manager.site.service;
import java.util.List;
import java.util.Map;
import seed.map.T_SITE;
public interface ManagerSiteService {
//managerSiteController
public T_SITE getSiteForm(String siteIdx);
//managerSiteController
public Map<Object, Object> getSiteForm(String siteIdx, String[] qryColumns);
//managerLoginService
public List<T_SITE> getSiteList(String memberMergeSiteIdx, String[] qryColumns);
//managerSiteController
public boolean setSiteModProc(T_SITE tSite, Integer memberIdx, String rootPath);
//managerSiteController
public boolean setSiteDelProc(String siteIdx, Integer memberIdx, String memberId, String rootPath);
}

View File

@ -0,0 +1,940 @@
package seed.manager.site.service;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.MemberDAO;
import seed.dao.SiteDAO;
import seed.dao.SiteMenuAuthDAO;
import seed.dao.SiteMenuDAO;
import seed.dao.SiteMenuHistoryDAO;
import seed.map.T_GROUPS;
import seed.map.T_MEMBER;
import seed.map.T_SITE;
import seed.map.T_SITE_MENU;
import seed.map.T_SITE_MENU_AUTH;
import seed.map.T_SITE_MENU_HISTORY;
import seed.utils.SeedFtpType;
import seed.utils.SeedUtils;
@Service
public class ManagerSiteServiceImpl extends AbstractServiceImpl implements ManagerSiteService{
private Logger log = Logger.getLogger(this.getClass());
@Autowired
private SiteDAO siteDAO;
@Autowired
private SiteMenuHistoryDAO siteMenuHistoryDAO;
@Autowired
private SiteMenuDAO siteMenuDAO;
@Autowired
private SiteMenuAuthDAO siteMenuAuthDAO;
@Autowired
private MemberDAO memberDAO;
//managerSiteController
public T_SITE getSiteForm(String siteIdx){
return siteDAO.getSiteForm(siteIdx);
}
//managerSiteController
public Map<Object, Object> getSiteForm(String siteIdx, String[] qryColumns){
return siteDAO.getSiteMapForm(siteIdx, qryColumns);
}
//managerLoginService
public List<T_SITE> getSiteList(String memberMergeSiteIdx, String[] qryColumns){
return siteDAO.getSiteList(memberMergeSiteIdx, qryColumns);
}
//managerSiteController
@Transactional
public boolean setSiteModProc(T_SITE tSite, Integer memberIdx, String rootPath){
boolean success = false;
T_SITE tSiteDB = siteDAO.getSiteForm(tSite.getSiteIdx());
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tSiteDB.settMember(tMember);
tSiteDB.setSiteModDate(new Date());
tSiteDB.setSiteName(tSite.getSiteName());
tSiteDB.setSiteMemberIp(tSite.getSiteMemberIp());
tSiteDB.setSiteMenuTopDepth(tSite.getSiteMenuTopDepth());
tSiteDB.setSiteMenuSubSDepth(tSite.getSiteMenuSubSDepth());
tSiteDB.setSiteMenuSubEDepth(tSite.getSiteMenuSubEDepth());
tSiteDB.setSiteActiveMenuWidth(tSite.getSiteActiveMenuWidth());
if(!SeedUtils.setReplaceNull(tSite.getSiteService()).equals("Y")){
tSiteDB.setSiteService("N");
tSiteDB.setSiteServiceSdate("");
tSiteDB.setSiteServiceEdate("");
}else{
tSiteDB.setSiteService(tSite.getSiteService());
tSiteDB.setSiteServiceSdate(tSite.getSiteServiceSdate());
tSiteDB.setSiteServiceEdate(tSite.getSiteServiceEdate());
}
if(siteDAO.setSiteModProc(tSiteDB)){
success = true;
//모든 메뉴 생성
if(!setSiteMenuAllCompile(tSiteDB.getSiteIdx(), rootPath)){
success = false;
}
}
return success;
}
//managerSiteController
@Transactional
public boolean setSiteDelProc(String siteIdx, Integer smemberIdx, String smemberId, String rootPath){
boolean success = false;
T_SITE tSiteDB = siteDAO.getSiteForm(siteIdx);
Iterator<T_GROUPS> iteratorList = tSiteDB.gettGroupss().iterator();
if(siteDAO.setSiteDelProc(tSiteDB)){
success = true;
while(iteratorList.hasNext()){
Integer memberIdx = iteratorList.next().gettMember().getMemberIdx();
T_MEMBER tMemberDB = memberDAO.getMemberForm(memberIdx);
if(!tMemberDB.getMemberGrant().equals("S")){ //슈퍼 관리자가아닐때만 작업
if(!memberDAO.setMemberDelProc(tMemberDB)){
success=false;
break;
}
}
}
File getSiteFile = new File(rootPath + "/" + tSiteDB.getSiteIdx());
if(getSiteFile.exists()){
Date getDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String setSiteBakPath = rootPath + "/site_bak/";
File getSitePathDir = new File(setSiteBakPath);
if(!getSitePathDir.exists()){
SeedUtils.setSeedMkDirs(setSiteBakPath);
}
File setSiteBakFile = new File(setSiteBakPath + tSiteDB.getSiteIdx() + "_bak_" + dateFormat.format(getDate) + "_" + smemberIdx + "_" + smemberId);
getSiteFile.renameTo(setSiteBakFile);
}
}
return success;
}
public synchronized boolean setSiteMenuAllCompile(String siteIdx, String rootPath){
boolean success = false;
try{
SeedFtpType seedFtpType = new SeedFtpType();
boolean fileChk = false;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String getDate = simpleDateFormat.format(new Date());
Integer depth = 0;
String siteMenuName = "";
String siteMenuHtml = "";
String siteMenuLink = "";
String siteMenuLinkTarget = "";
String tabMenuHtml = "";
ArrayList<String> siteMenuIdx1s = new ArrayList<String>();
T_SITE tSiteDB = siteDAO.getSiteForm(siteIdx);
//상단메뉴 저장
String menuTopPathMain = rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top";
String menuTopPathSub = rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top";
SeedUtils.setSeedMkDirs(menuTopPathMain);
SeedUtils.setSeedMkDirs(menuTopPathSub);
File menuTopMakeMainFile = new File(menuTopPathMain + "/menu_main.html");
File menuTopMakeSubFile = new File(menuTopPathSub + "/menu_sub.html");
if(menuTopMakeMainFile.exists() && menuTopMakeSubFile.exists()){ //파일이 있는 경우 파일 menu_bak으로 파일명 변경
File menuTopFileMainBak = new File(menuTopPathMain + "/menu_main_"+getDate+".html");
menuTopMakeMainFile.renameTo(menuTopFileMainBak); //menu.html을 menu_bak.html로 파일명 변경
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath("menu_main.html");
//WAS 파일명
seedFtpType.setFileName("menu_main_"+getDate+".html");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("modFile");
seedFtpType.setSeedFtp();
File menuTopFileSubBak = new File(menuTopPathSub + "/menu_sub_"+getDate+".html");
menuTopMakeSubFile.renameTo(menuTopFileSubBak); //menu.html을 menu_bak.html로 파일명 변경
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath("menu_sub.html");
//WAS 파일명
seedFtpType.setFileName("menu_sub_"+getDate+".html");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("modFile");
seedFtpType.setSeedFtp();
//T_SITE_MENU_HISTORY 저장
T_SITE_MENU_HISTORY tSiteMenuHistoryMain = new T_SITE_MENU_HISTORY();
tSiteMenuHistoryMain.settSite(tSiteDB);
tSiteMenuHistoryMain.setSiteMenuHistoryType("top");
tSiteMenuHistoryMain.setSiteMenuHistoryFile("menu_main_"+getDate+".html");
tSiteMenuHistoryMain.setSiteMenuHistoryRegDate(new Date());
siteMenuHistoryDAO.setSiteMenuHistoryRegProc(tSiteMenuHistoryMain);
List<T_SITE_MENU_HISTORY> siteMenuMainHisotryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "top", "menu_main");
if(siteMenuMainHisotryList != null && siteMenuMainHisotryList.size() > 10){ //10개 초과시 파일 삭제
T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuMainHisotryList.get(0);
File bakFile = new File(menuTopPathMain+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile());
if(bakFile.exists()){
bakFile.delete();
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
}
siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB);
}
//T_SITE_MENU_HISTORY 저장
T_SITE_MENU_HISTORY tSiteMenuHistorySub = new T_SITE_MENU_HISTORY();
tSiteMenuHistorySub.settSite(tSiteDB);
tSiteMenuHistorySub.setSiteMenuHistoryType("top");
tSiteMenuHistorySub.setSiteMenuHistoryFile("menu_sub_"+getDate+".html");
tSiteMenuHistorySub.setSiteMenuHistoryRegDate(new Date());
siteMenuHistoryDAO.setSiteMenuHistoryRegProc(tSiteMenuHistorySub);
List<T_SITE_MENU_HISTORY> siteMenuSubHisotryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "top", "menu_sub");
if(siteMenuSubHisotryList != null && siteMenuSubHisotryList.size() > 10){ //10개 초과시 파일 삭제
T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuSubHisotryList.get(0);
File bakFile = new File(menuTopPathSub+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile());
if(bakFile.exists()){
bakFile.delete();
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
}
siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB);
}
}
Integer siteMenuParentDepth = 0;
String[] qryColumnsm = null;
List<T_SITE_MENU> siteMenuTopList = siteMenuDAO.getSiteMenuTopList(tSiteDB.getSiteIdx(), tSiteDB.getSiteMenuTopDepth(), qryColumnsm);
if(siteMenuTopList.size() > 0){
fileChk = true;
FileOutputStream htmlFileOutputStream = null;
OutputStreamWriter htmlOutputStreamWriter = null;
BufferedWriter htmlWriter = null;
FileOutputStream jspFileOutputStream = null;
OutputStreamWriter jspOutputStreamWriter = null;
BufferedWriter jspWriter = null;
try{
htmlFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.html");
htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8");
htmlWriter = new BufferedWriter(htmlOutputStreamWriter);
jspFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.jsp");
jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8");
jspWriter = new BufferedWriter(jspOutputStreamWriter);
jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>");
jspWriter.write("\n");
jspWriter.write("\n");
boolean statusChk = false;
Integer[] tempDepth = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for(int x=0; x<siteMenuTopList.size(); x++){
siteMenuHtml = "";
siteMenuLink = "";
siteMenuLinkTarget = "";
tabMenuHtml = "";
T_SITE_MENU tSiteMenuTmp = siteMenuTopList.get(x);
//서브 메뉴 생성해 주기 위해 배열에 담아둠
if(tSiteMenuTmp.getSiteMenuDepth().equals(1)){
siteMenuIdx1s.add(tSiteMenuTmp.getSiteMenuIdx1());
//해당 메뉴가 U상태가 아닐때는 해당 하위메뉴도 컴파일 하지 않는다.
if(tSiteMenuTmp.getSiteMenuStatus().equals("U")){
statusChk = true;
}else{
statusChk = false;
}
}
if(!statusChk){
continue;
}
//해당 메뉴가 U상태가 아닐때는 메뉴 컴파일을 하지 않는다.
if(!tSiteMenuTmp.getSiteMenuStatus().equals("U")){
continue;
}
depth = tSiteMenuTmp.getSiteMenuDepth();
siteMenuName = tSiteMenuTmp.getSiteMenuName();
//메뉴 권한설정
List<T_SITE_MENU_AUTH> siteMenuAuthList = siteMenuAuthDAO.getSiteMenuAuthList(tSiteMenuTmp.getSiteMenuIdx());
String siteMenuAuth = "";
for(int m=0; m<siteMenuAuthList.size(); m++){
T_SITE_MENU_AUTH tSiteMenuAuthDB = siteMenuAuthList.get(m);
siteMenuAuth += tSiteMenuAuthDB.getSiteMenuAuth() + ",";
}
if(siteMenuAuth.equals("")){
siteMenuAuth = " ";
}
siteMenuAuth = "data-auth='"+SeedUtils.setReplaceNull(tSiteMenuTmp.getSiteMenuAuth(), "N")+","+siteMenuAuth.substring(0, siteMenuAuth.length()-1)+"'";
if(tSiteMenuTmp.getSiteMenuNameType().equals("I")){
siteMenuName = "<img src='/site/"+tSiteDB.getSiteIdx()+"/images/menu/topMenu_"+tSiteMenuTmp.getSiteMenuIdxs()+"_off.gif' alt='"+siteMenuName+"' />";
}
if(tSiteMenuTmp.getSiteMenuType().equals("H")){
siteMenuLink = "<a href='/"+tSiteDB.getSiteIdx()+"/subIndex/"+tSiteMenuTmp.getSiteMenuIdx()+".do' title='"+tSiteMenuTmp.getSiteMenuName()+"'" +
" data-url='/"+tSiteDB.getSiteIdx()+"/subIndex/"+tSiteMenuTmp.getSiteMenuIdx()+".do' " +
" data-seed='"+tSiteDB.getSiteIdx()+"_"+tSiteMenuTmp.getSiteMenuIdxs()+"' " + siteMenuAuth +
" >"+siteMenuName+"</a>" + "\n";
}else{
if(tSiteMenuTmp.getSiteMenuLink().equals("B")){
siteMenuLinkTarget = "target='_blank' title='"+siteMenuName+" <s:message code=\"common.message.blank\"/> <s:message code=\"common.message.blank.go\"/>' ";
}else{
siteMenuLinkTarget = "title='"+tSiteMenuTmp.getSiteMenuName()+" '";
}
siteMenuLink = "<a href='"+tSiteMenuTmp.getSiteMenuLinkUrl()+"' "+siteMenuLinkTarget+
" data-url='"+tSiteMenuTmp.getSiteMenuLinkUrl()+"' " +
" data-seed='"+tSiteDB.getSiteIdx()+"_"+tSiteMenuTmp.getSiteMenuIdxs()+"' " + siteMenuAuth +
" >"+siteMenuName+"</a>" + "\n";
}
tempDepth[depth-1]++;
for(int d=0; d<depth; d++){
tabMenuHtml += " ";
}
if(siteMenuParentDepth < depth){
siteMenuHtml = tabMenuHtml + "<ul class='gnbDp-"+depth+"'>" + "\n";
siteMenuHtml += tabMenuHtml + " <li class='gnbDp-"+depth+"-"+tempDepth[depth-1]+"'>" + siteMenuLink;
}else if(siteMenuParentDepth == depth){
siteMenuHtml = tabMenuHtml + " </li>" + "\n";
siteMenuHtml += tabMenuHtml + " <li class='gnbDp-"+depth+"-"+tempDepth[depth-1]+"'>" + siteMenuLink;
}else if(siteMenuParentDepth > depth){
siteMenuHtml = "";
for(int j=0; j<(siteMenuParentDepth - depth); j++){
String tabMenuHtmlTemp = "";
for(int d=0; d<(siteMenuParentDepth-j); d++){
tabMenuHtmlTemp += " ";
}
siteMenuHtml += tabMenuHtmlTemp + " </li>" + "\n";
siteMenuHtml += tabMenuHtmlTemp + "</ul>" + "\n";
}
siteMenuHtml += tabMenuHtml + " </li>" + "\n";
siteMenuHtml += tabMenuHtml + " <li class='gnbDp-"+depth+"-"+tempDepth[depth-1]+"'>" + siteMenuLink;
}
htmlWriter.write(siteMenuHtml);
jspWriter.write(siteMenuHtml);
siteMenuParentDepth = depth;
}
siteMenuHtml = "";
tabMenuHtml = "";
for(int d=0; d<depth; d++){
tabMenuHtml += " ";
}
for(int m=0; m<(depth-1); m++){
siteMenuHtml += tabMenuHtml + " </li>" + "\n";
siteMenuHtml += tabMenuHtml + "</ul>" + "\n";
}
siteMenuHtml += " </li>" + "\n";
siteMenuHtml += " </ul>";
htmlWriter.write(siteMenuHtml);
htmlWriter.flush();
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 파일명
seedFtpType.setFileName("menu_main.html");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
jspWriter.write(siteMenuHtml);
jspWriter.flush();
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 파일명
seedFtpType.setFileName("menu_main.jsp");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}catch(FileNotFoundException e){
log.error("CHECK ERROR:",e);
}catch(IOException e){
log.error("CHECK ERROR:",e);
}finally{
if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
File file = new File(menuTopPathMain + "/menu_main.jsp");
if(file.exists()){
file.setLastModified(new Date().getTime());
}
if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.html", menuTopPathSub + "/menu_sub.html");
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top");
//WAS 파일명
seedFtpType.setFileName("menu_sub.html");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.jsp", menuTopPathSub + "/menu_sub.jsp");
File file = new File(menuTopPathSub + "/menu_sub.jsp");
if(file.exists()){
file.setLastModified(new Date().getTime());
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/top");
//WAS 파일명
seedFtpType.setFileName("menu_sub.jsp");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
if(!fileChk){
menuTopMakeMainFile.createNewFile();
menuTopMakeSubFile.createNewFile();
FileOutputStream jspFileOutputStream = null;
OutputStreamWriter jspOutputStreamWriter = null;
BufferedWriter jspWriter = null;
try{
jspFileOutputStream = new FileOutputStream(menuTopPathMain + "/menu_main.jsp");
jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8");
jspWriter = new BufferedWriter(jspOutputStreamWriter);
jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>");
jspWriter.write("\n");
jspWriter.write("\n");
jspWriter.flush();
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 파일명
seedFtpType.setFileName("menu_main.jsp");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}catch(FileNotFoundException e){
log.error("CHECK ERROR:",e);
}catch(IOException e){
log.error("CHECK ERROR:",e);
}finally{
if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
File file = new File(menuTopPathMain + "/menu_main.jsp");
if(file.exists()){
file.setLastModified(new Date().getTime());
}
if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.html", menuTopPathSub + "/menu_sub.html");
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 파일명
seedFtpType.setFileName("menu_sub.html");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
SeedUtils.setSeedFileCopy(menuTopPathMain + "/menu_main.jsp", menuTopPathSub + "/menu_sub.jsp");
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/main/menu/top");
//WAS 파일명
seedFtpType.setFileName("menu_sub.jsp");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
fileChk = false;
//서브메뉴 저장
if(siteMenuIdx1s.size() > 0){
for(int i=0; i<siteMenuIdx1s.size(); i++){
fileChk = false;
String menuSubPathSub = rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i);
SeedUtils.setSeedMkDirs(menuSubPathSub);
File menuSubMakeSubFile = new File(menuSubPathSub + "/menu_sub.html");
//서브 메뉴 저장
if(menuSubMakeSubFile.exists()){ //파일이 있는 경우 파일 menu_bak으로 파일명 변경
File menuSubFileSubBak = new File(menuSubPathSub + "/menu_sub_"+getDate+".html");
menuSubMakeSubFile.renameTo(menuSubFileSubBak); //menu.html을 menu_bak.html로 파일명 변경
//T_SITE_MENU_HISTORY 저장
T_SITE_MENU_HISTORY tSiteMenuHistorySub = new T_SITE_MENU_HISTORY();
tSiteMenuHistorySub.settSite(tSiteDB);
tSiteMenuHistorySub.setSiteMenuHistoryType("sub/"+siteMenuIdx1s.get(i));
tSiteMenuHistorySub.setSiteMenuHistoryFile("menu_sub_"+getDate+".html");
tSiteMenuHistorySub.setSiteMenuHistoryRegDate(new Date());
siteMenuHistoryDAO.setSiteMenuHistoryRegProc(tSiteMenuHistorySub);
List<T_SITE_MENU_HISTORY> siteMenuHistoryList = siteMenuHistoryDAO.getSiteMenuHistoryList(tSiteDB.getSiteIdx(), "sub/"+siteMenuIdx1s.get(i), "menu_sub");
if(siteMenuHistoryList != null && siteMenuHistoryList.size() > 10){ //10개 초과시 파일 삭제
T_SITE_MENU_HISTORY tSiteMenuHistoryDB = siteMenuHistoryList.get(0);
File bakFile = new File(menuSubPathSub+"/"+tSiteMenuHistoryDB.getSiteMenuHistoryFile());
if(bakFile.exists()){
bakFile.delete();
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i));
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName(tSiteMenuHistoryDB.getSiteMenuHistoryFile());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
}
siteMenuHistoryDAO.setSiteMenuHistoryDelProc(tSiteMenuHistoryDB);
}
}
siteMenuParentDepth = 0;
qryColumnsm = null;
List<T_SITE_MENU> siteMenuSubList = siteMenuDAO.getSiteMenuSubList(tSiteDB.getSiteIdx(), tSiteDB.getSiteMenuSubSDepth(), tSiteDB.getSiteMenuSubEDepth(), siteMenuIdx1s.get(i), qryColumnsm);
if(siteMenuSubList.size() > 0){
fileChk = true;
FileOutputStream htmlFileOutputStream = null;
OutputStreamWriter htmlOutputStreamWriter = null;
BufferedWriter htmlWriter = null;
FileOutputStream jspFileOutputStream = null;
OutputStreamWriter jspOutputStreamWriter = null;
BufferedWriter jspWriter = null;
try{
htmlFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.html");
htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8");
htmlWriter = new BufferedWriter(htmlOutputStreamWriter);
jspFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.jsp");
jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8");
jspWriter = new BufferedWriter(jspOutputStreamWriter);
jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>");
jspWriter.write("\n");
jspWriter.write("\n");
Integer[] tempDepth = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for(int x=0; x<siteMenuSubList.size(); x++){
siteMenuHtml = "";
siteMenuLink = "";
siteMenuLinkTarget = "";
tabMenuHtml = "";
T_SITE_MENU tSiteMenuTmp = siteMenuSubList.get(x);
depth = tSiteMenuTmp.getSiteMenuDepth();
siteMenuName = tSiteMenuTmp.getSiteMenuName();
//메뉴 권한설정
List<T_SITE_MENU_AUTH> siteMenuAuthList = siteMenuAuthDAO.getSiteMenuAuthList(tSiteMenuTmp.getSiteMenuIdx());
String siteMenuAuth = "";
for(int m=0; m<siteMenuAuthList.size(); m++){
T_SITE_MENU_AUTH tSiteMenuAuthDB = siteMenuAuthList.get(m);
siteMenuAuth += tSiteMenuAuthDB.getSiteMenuAuth() + ",";
}
if(siteMenuAuth.equals("")){
siteMenuAuth = " ";
}
siteMenuAuth = "data-auth='"+SeedUtils.setReplaceNull(tSiteMenuTmp.getSiteMenuAuth(), "N")+","+siteMenuAuth.substring(0, siteMenuAuth.length()-1)+"'";
if(tSiteMenuTmp.getSiteMenuNameType().equals("I")){
siteMenuName = "<img src='/site/"+tSiteDB.getSiteIdx()+"/images/menu/subMenu_"+tSiteMenuTmp.getSiteMenuIdxs()+"_off.gif' alt='"+siteMenuName+"' />";
}
if(tSiteMenuTmp.getSiteMenuType().equals("H")){
siteMenuLink = "<a href='/"+tSiteDB.getSiteIdx()+"/subIndex/"+tSiteMenuTmp.getSiteMenuIdx()+".do' title='"+tSiteMenuTmp.getSiteMenuName()+"'" +
" data-url='/"+tSiteDB.getSiteIdx()+"/subIndex/"+tSiteMenuTmp.getSiteMenuIdx()+".do' " +
" data-seed='"+tSiteDB.getSiteIdx()+"_"+tSiteMenuTmp.getSiteMenuIdxs()+"' " + siteMenuAuth +
" >"+siteMenuName+"</a>" + "\n";
}else{
if(tSiteMenuTmp.getSiteMenuLink().equals("B")){
siteMenuLinkTarget = "target='_blank' title='"+siteMenuName+" <s:message code=\"common.message.blank\"/> <s:message code=\"common.message.blank.go\"/>' ";
}else{
siteMenuLinkTarget = "title='"+tSiteMenuTmp.getSiteMenuName()+" '";
}
siteMenuLink = "<a href='"+tSiteMenuTmp.getSiteMenuLinkUrl()+"' "+siteMenuLinkTarget+
" data-url='"+tSiteMenuTmp.getSiteMenuLinkUrl()+"' " +
" data-seed='"+tSiteDB.getSiteIdx()+"_"+tSiteMenuTmp.getSiteMenuIdxs()+"' " + siteMenuAuth +
" >"+siteMenuName+"</a>" + "\n";
}
tempDepth[depth-1]++;
for(int d=0; d<depth-1; d++){
tabMenuHtml += " ";
}
if(siteMenuParentDepth < depth){
if((depth-1) == 1){
siteMenuHtml = tabMenuHtml + "<ul class='subMDp-"+(depth-1)+" subPos-"+tSiteMenuTmp.getSiteMenuIdx1()+"'>" + "\n";
}else{
siteMenuHtml = tabMenuHtml + "<ul class='subMDp-"+(depth-1)+"'>" + "\n";
}
siteMenuHtml += tabMenuHtml + " <li class='subMDp-"+(depth-1)+"-"+tempDepth[depth-1]+"'>" + siteMenuLink;
}else if(siteMenuParentDepth == depth){
siteMenuHtml = tabMenuHtml + " </li>" + "\n";
siteMenuHtml += tabMenuHtml + " <li class='subMDp-"+(depth-1)+"-"+tempDepth[depth-1]+"'>" + siteMenuLink;
}else if(siteMenuParentDepth > depth){
siteMenuHtml = "";
for(int j=0; j<(siteMenuParentDepth - depth); j++){
String tabMenuHtmlTemp = "";
for(int d=0; d<(siteMenuParentDepth-j); d++){
tabMenuHtmlTemp += " ";
}
siteMenuHtml += tabMenuHtmlTemp + " </li>" + "\n";
siteMenuHtml += tabMenuHtmlTemp + "</ul>" + "\n";
}
siteMenuHtml += tabMenuHtml + " </li>" + "\n";
siteMenuHtml += tabMenuHtml + " <li class='subMDp-"+(depth-1)+"-"+tempDepth[depth-1]+"'>" + siteMenuLink;
}
htmlWriter.write(siteMenuHtml);
jspWriter.write(siteMenuHtml);
siteMenuParentDepth = depth;
}
siteMenuHtml = "";
for(int m=0; m<(depth-2); m++){
tabMenuHtml = "";
for(int d=0; d<(depth-1-m); d++){
tabMenuHtml += " ";
}
siteMenuHtml += tabMenuHtml + " </li>" + "\n";
siteMenuHtml += tabMenuHtml + "</ul>" + "\n";
}
siteMenuHtml += " </li>" + "\n";
siteMenuHtml += " </ul>";
htmlWriter.write(siteMenuHtml);
htmlWriter.flush();
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i));
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i));
//WAS 파일명
seedFtpType.setFileName("menu_sub.html");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
jspWriter.write(siteMenuHtml);
jspWriter.flush();
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i));
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i));
//WAS 파일명
seedFtpType.setFileName("menu_sub.jsp");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}catch(FileNotFoundException e){
log.error("CHECK ERROR:",e);
}catch(IOException e){
log.error("CHECK ERROR:",e);
}finally{
if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
File file = new File(menuSubPathSub + "/menu_sub.jsp");
if(file.exists()){
file.setLastModified(new Date().getTime());
}
if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
if(!fileChk){
menuSubMakeSubFile.createNewFile();
FileOutputStream jspFileOutputStream = null;
OutputStreamWriter jspOutputStreamWriter = null;
BufferedWriter jspWriter = null;
try{
jspFileOutputStream = new FileOutputStream(menuSubPathSub + "/menu_sub.jsp");
jspOutputStreamWriter = new OutputStreamWriter(jspFileOutputStream, "UTF-8");
jspWriter = new BufferedWriter(jspOutputStreamWriter);
jspWriter.write("<%@ page language='java' contentType='text/html; charset=UTF-8'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags' prefix='s'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%>");
jspWriter.write("\n");
jspWriter.write("<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %>");
jspWriter.write("\n");
jspWriter.write("\n");
jspWriter.flush();
//WEB 서버의 경로
seedFtpType.setDestFilePath(tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i));
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tSiteDB.getSiteIdx()+"/jsp/sub/menu/sub/"+siteMenuIdx1s.get(i));
//WAS 파일명
seedFtpType.setFileName("menu_sub.jsp");
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}catch(FileNotFoundException e){
log.error("CHECK ERROR:",e);
}catch(IOException e){
log.error("CHECK ERROR:",e);
}finally{
if(jspWriter!=null){try{jspWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
File file = new File(menuSubPathSub + "/menu_sub.jsp");
if(file.exists()){
file.setLastModified(new Date().getTime());
}
if(jspOutputStreamWriter!=null){try{jspOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(jspFileOutputStream!=null){try{jspFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
}
}
success = true;
}catch(IOException ex){
success = false;
log.error("CHECK ERROR:",ex);
}
return success;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,42 @@
package seed.manager.survey.service;
import java.util.List;
import java.util.Map;
import seed.map.T_SURVEY_MANAGER;
public interface ManagerSurveyManagerService {
//ManagerSurveyController
public boolean getSurveyManagerListGrantCnt(Integer surveySetIdx, Integer memberIdx);
//ManagerSurveyController
public boolean getSurveyManagerListCnt(Integer surveySetIdx, Integer memberIdx);
//CommonController
public Long getSurveyManagerListCnt(Integer surveySetIdx, Integer selGroup, String column, String search);
//CommonController
public Long getSurveyManagerListCnt(String siteIdx, Integer memberIdx, String column, String search);
//CommonController
public List<T_SURVEY_MANAGER> getSurveyManagerList(Integer surveySetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//CommonController
public List<T_SURVEY_MANAGER> getSurveyManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//AdminSiteController, ManagerSiteController
public List<Map<Object, Object>> getSurveyManagerList(String siteIdx, Integer surveySetIdx, String[] qryColumns);
//ManagerSurveyController
public boolean setSurveyManagerRegProc(Integer surveySetIdx, Integer[] idxsc);
//CommonController
public boolean setSurveyManagerDelProc(Integer surveyManagerIdx);
//CommonController
public boolean setSurveyManagerStatusProc(Integer surveyManagerIdx, String status);
//CommonController
public boolean setSurveyManagerGrantProc(Integer surveyManagerIdx, String grant);
}

View File

@ -0,0 +1,196 @@
package seed.manager.survey.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.MemberDAO;
import seed.dao.SiteManagerDAO;
import seed.dao.SurveyManagerDAO;
import seed.map.T_MEMBER;
import seed.map.T_SURVEY_MANAGER;
import seed.map.T_SURVEY_SET;
@Service
public class ManagerSurveyManagerServiceImpl extends AbstractServiceImpl implements ManagerSurveyManagerService{
@Autowired
private SurveyManagerDAO surveyManagerDAO;
@Autowired
private SiteManagerDAO siteManagerDAO;
@Autowired
private MemberDAO memberDAO;
//ManagerSurveyController
public boolean getSurveyManagerListGrantCnt(Integer surveySetIdx, Integer memberIdx){
boolean success = false;
if(surveyManagerDAO.getSurveyManagerListGrantCnt(surveySetIdx, memberIdx) > 0){
success = true;
}
return success;
}
//ManagerSurveyController
public boolean getSurveyManagerListCnt(Integer surveySetIdx, Integer memberIdx){
boolean success = false;
if(surveyManagerDAO.getSurveyManagerListCnt(surveySetIdx, memberIdx) > 0){
success = true;
}
return success;
}
//CommonController
public Long getSurveyManagerListCnt(Integer surveySetIdx, Integer selGroup, String column, String search){
return surveyManagerDAO.getSurveyManagerListCnt(surveySetIdx, selGroup, column, search);
}
//CommonController
public Long getSurveyManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){
return surveyManagerDAO.getSurveyManagerListCnt(siteIdx, memberIdx, column, search);
}
//CommonController
public List<T_SURVEY_MANAGER> getSurveyManagerList(Integer surveySetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
return surveyManagerDAO.getSurveyManagerList(surveySetIdx, ((page-1) * row), row, orderColumn, order, selGroup, column, search, qryColumns);
}
//CommonController
public List<T_SURVEY_MANAGER> getSurveyManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
return surveyManagerDAO.getSurveyManagerList(siteIdx, memberIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns);
}
//AdminSiteController, ManagerSiteController
public List<Map<Object, Object>> getSurveyManagerList(String siteIdx, Integer surveySetIdx, String[] qryColumns){
return surveyManagerDAO.getSurveyManagerList(siteIdx, surveySetIdx, qryColumns);
}
//CommonController
@Transactional
public boolean setSurveyManagerRegProc(Integer surveySetIdx, Integer[] idxsc){
boolean success = false;
if(idxsc.length > 0){
for(int i=0; i<idxsc.length; i++){
if(surveyManagerDAO.getSurveyManagerListCnt(surveySetIdx, idxsc[i]) > 0){
success = true;
}else{
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(idxsc[i]);
T_SURVEY_SET tSurveySet = new T_SURVEY_SET();
tSurveySet.setSurveySetIdx(surveySetIdx);
T_SURVEY_MANAGER tSurveyManager = new T_SURVEY_MANAGER();
tSurveyManager.settMember(tMember);
tSurveyManager.settSurveySet(tSurveySet);
tSurveyManager.setSurveyManagerStatus("U");
tSurveyManager.setSurveyManagerGrant("S");
tSurveyManager.setSurveyManagerRegDate(new Date());
if(surveyManagerDAO.setSurveyManagerRegProc(tSurveyManager)){
success = true;
T_MEMBER tMemberDB = memberDAO.getMemberForm(idxsc[i]);
if(!tMemberDB.getMemberGrant().equals("S")){
if(tMemberDB.getMemberGrant().equals("SM")){
tMemberDB.setMemberGrant("SM");
}else{
tMemberDB.setMemberGrant("M");
}
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
break;
}
}
}else{
success = false;
}
}
}
}
return success;
}
//CommonController
@Transactional
public boolean setSurveyManagerDelProc(Integer surveyManagerIdx){
boolean success = false;
T_SURVEY_MANAGER tSurveyManagerDB = surveyManagerDAO.getSurveyManagerForm(surveyManagerIdx);
if(surveyManagerDAO.setSurveyManagerDelProc(tSurveyManagerDB)){
success = true;
T_MEMBER tMemberDB = memberDAO.getMemberForm(tSurveyManagerDB.gettMember().getMemberIdx());
if(!tMemberDB.getMemberGrant().equals("S")){
if(siteManagerDAO.getSiteManagerListCnt(tMemberDB.getMemberIdx()) > 0){
tMemberDB.setMemberGrant("SM");
}else if((tMemberDB.getMemberGrant().equals("SM") || tMemberDB.getMemberGrant().equals("M"))){
tMemberDB.setMemberGrant("M");
}else{
tMemberDB.setMemberGrant("N");
}
if(!memberDAO.setMemberModProc(tMemberDB)){
success = false;
}
}
}
return success;
}
//CommonController
@Transactional
public boolean setSurveyManagerStatusProc(Integer surveyManagerIdx, String status){
T_SURVEY_MANAGER tSurveyManagerDB = surveyManagerDAO.getSurveyManagerForm(surveyManagerIdx);
tSurveyManagerDB.setSurveyManagerStatus(status);
return surveyManagerDAO.setSurveyManagerModProc(tSurveyManagerDB);
}
//CommonController
@Transactional
public boolean setSurveyManagerGrantProc(Integer surveyManagerIdx, String grant){
T_SURVEY_MANAGER tSurveyManagerDB = surveyManagerDAO.getSurveyManagerForm(surveyManagerIdx);
tSurveyManagerDB.setSurveyManagerGrant(grant);
return surveyManagerDAO.setSurveyManagerModProc(tSurveyManagerDB);
}
}

View File

@ -0,0 +1,50 @@
package seed.manager.survey.service;
import java.util.List;
import java.util.Map;
import seed.map.T_SURVEY_SET;
import seed.map.T_SURVEY_SKIN;
import seed.map.VIEW_SURVEY_SET;
public interface ManagerSurveySetService {
//AdminSiteController, ManagerSiteController
public T_SURVEY_SET getSurveySetForm(String siteIdx, String siteMenuIdx);
//ManagerSurveyController, CommonController
public T_SURVEY_SET getSurveySetForm(Integer surveySetIdx);
//ManagerSurveyController
public List<Map<Object, Object>> getSurveySetMiniList(Integer surveySetIdx, int page, int row, String[] qryColumns);
//ManagerSurveyController
public Long getSurveySetListCnt(String siteIdx, String column, String search);
//ManagerSurveyController
public List<VIEW_SURVEY_SET> getSurveySetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerSurveyController
public Integer setSurveySetRegProc(T_SURVEY_SET tSurveySet, Integer memberIdx, String memberMerge, String memberMergeSiteIdx);
//AdminSiteController, ManagerSiteController
public boolean setSurveySetModProc(T_SURVEY_SET tSurveySet);
//ManagerSurveyController
public boolean setSurveySetModProc(T_SURVEY_SET tSurveySet, Integer memberIdx);
//ManagerSurveyController
public boolean setSurveySetDelProc(Integer surveySetIdx, String rootPath);
//ManagerSurveyController
public boolean setSurveySetStatusProc(Integer surveySetIdx, String status, Integer memberIdx);
//ManagerSurveyController
public Long getSurveySetSkinListCnt(String siteIdx);
//ManagerSurveyController
public List<T_SURVEY_SKIN> getSurveySetSkinList(String siteIdx, int page, int row, String[] qryColumns);
//ManagerSurveyController
public boolean setSurveySetSkinProc(Integer surveySetIdx, String surveySkinCode, Integer memberIdx);
}

View File

@ -0,0 +1,212 @@
package seed.manager.survey.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.SurveyAuthDAO;
import seed.dao.SurveySetDAO;
import seed.dao.GroupDAO;
import seed.dao.SurveySkinDAO;
import seed.map.T_GROUP;
import seed.map.T_MEMBER;
import seed.map.T_SURVEY_AUTH;
import seed.map.T_SURVEY_SET;
import seed.map.T_SURVEY_SKIN;
import seed.map.VIEW_SURVEY_SET;
import seed.utils.SeedUtils;
@Service
public class ManagerSurveySetServiceImpl extends AbstractServiceImpl implements ManagerSurveySetService{
@Autowired
private SurveySetDAO surveySetDAO;
@Autowired
private GroupDAO groupDAO;
@Autowired
private SurveyAuthDAO surveyAuthDAO;
@Autowired
private SurveySkinDAO surveySkinDAO;
//AdminSiteController, ManagerSiteController
public T_SURVEY_SET getSurveySetForm(String siteIdx, String siteMenuIdx){
return surveySetDAO.getSurveySetForm(siteIdx, siteMenuIdx);
}
//ManagerSurveyController
public T_SURVEY_SET getSurveySetForm(Integer surveySetIdx){
return surveySetDAO.getSurveySetForm(surveySetIdx);
}
public List<Map<Object, Object>> getSurveySetMiniList(Integer surveySetIdx, int page, int row, String[] qryColumns){
return surveySetDAO.getSurveySetMiniList(surveySetIdx, ((page-1) * row), row, qryColumns);
}
//ManagerSurveyController
public Long getSurveySetListCnt(String siteIdx, String column, String search){
return surveySetDAO.getSurveySetListCnt(siteIdx, column, search);
}
//ManagerSurveyController
public List<VIEW_SURVEY_SET> getSurveySetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
return surveySetDAO.getSurveySetList(siteIdx, ((page-1) * row), row, orderColumn, order, column, search, qryColumns);
}
//ManagerSurveyController
@Transactional
public Integer setSurveySetRegProc(T_SURVEY_SET tSurveySet, Integer memberIdx, String memberMerge, String memberMergeSiteIdx){
Integer surveySetIdx = 0;
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tSurveySet.settMember(tMember);
tSurveySet.setSurveySetSkinCode("basic");
tSurveySet.setSurveySetStatus("U");
tSurveySet.setSurveySetRegDate(new Date());
tSurveySet.setSurveySetModDate(new Date());
T_SURVEY_SET tSurveySetDB = surveySetDAO.setSurveySetRegProc(tSurveySet);
if(tSurveySetDB != null){
surveySetIdx = tSurveySetDB.getSurveySetIdx();
//그룹 테이블의 내용을 T_SURVEY_AUTH에 INSERT
String[] qryColumns = null;
List<T_GROUP> tGroupList = null;
if(memberMerge.equals("true")){
tGroupList = groupDAO.getGroupList(memberMergeSiteIdx, qryColumns);
}else{
tGroupList = groupDAO.getGroupList(tSurveySet.gettSite().getSiteIdx(), qryColumns);
}
if(tGroupList != null && tGroupList.size() > 0){
for(int g=0; g<tGroupList.size(); g++){
T_GROUP tGroupDB = tGroupList.get(g);
T_SURVEY_AUTH tSurveyAuth = new T_SURVEY_AUTH();
tSurveyAuth.settMember(tMember);
tSurveyAuth.settGroup(tGroupDB);
tSurveyAuth.settSurveySet(tSurveySetDB);
tSurveyAuth.setSurveyAuthList("Y");
tSurveyAuth.setSurveyAuthWrite("Y");
tSurveyAuth.setSurveyAuthResult("Y");
tSurveyAuth.setSurveyAuthRegDate(new Date());
tSurveyAuth.setSurveyAuthModDate(new Date());
if(!surveyAuthDAO.setSurveyAuthRegProc(tSurveyAuth)){
surveySetIdx = 0;
break;
}
}
}
}
return surveySetIdx;
}
//AdminSiteController, ManagerSiteController
@Transactional
public boolean setSurveySetModProc(T_SURVEY_SET tSurveySet){
return surveySetDAO.setSurveySetModProc(tSurveySet);
}
//ManagerSurveyController
@Transactional
public boolean setSurveySetModProc(T_SURVEY_SET tSurveySet, Integer memberIdx){
T_SURVEY_SET tSurveySetDB = surveySetDAO.getSurveySetForm(tSurveySet.getSurveySetIdx());
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tSurveySetDB.settMember(tMember);
tSurveySetDB.setSurveySetName(tSurveySet.getSurveySetName());
tSurveySetDB.setSurveySetSdate(tSurveySet.getSurveySetSdate());
tSurveySetDB.setSurveySetEdate(tSurveySet.getSurveySetEdate());
tSurveySetDB.setSurveySetOverlap(tSurveySet.getSurveySetOverlap());
tSurveySetDB.setSurveySetMiniRow(tSurveySet.getSurveySetMiniRow());
tSurveySetDB.setSurveySetModDate(new Date());
tSurveySetDB.setSurveySetTHtml(tSurveySet.getSurveySetTHtml());
tSurveySetDB.setSurveySetFHtml(tSurveySet.getSurveySetFHtml());
return surveySetDAO.setSurveySetModProc(tSurveySetDB);
}
//ManagerSurveyController
@Transactional
public boolean setSurveySetDelProc(Integer surveySetIdx, String rootPath){
T_SURVEY_SET tSurveySetDB = surveySetDAO.getSurveySetForm(surveySetIdx);
if(tSurveySetDB.gettSurveyDatas().size() > 0){
SeedUtils.setSeedDeleteFiles(rootPath + "/" + tSurveySetDB.gettSite().getSiteIdx() + "/upload/survey/" + tSurveySetDB.getSurveySetIdx(), "");
}
return surveySetDAO.setSurveySetDelProc(tSurveySetDB);
}
//ManagerSurveyController
@Transactional
public boolean setSurveySetStatusProc(Integer surveySetIdx, String status, Integer memberIdx){
T_SURVEY_SET tSurveySetDB = surveySetDAO.getSurveySetForm(surveySetIdx);
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tSurveySetDB.settMember(tMember);
tSurveySetDB.setSurveySetModDate(new Date());
tSurveySetDB.setSurveySetStatus(status);
return surveySetDAO.setSurveySetModProc(tSurveySetDB);
}
//ManagersurveyController
public Long getSurveySetSkinListCnt(String siteIdx){
return surveySkinDAO.getSurveySetSkinListCnt(siteIdx);
}
//ManagersurveyController
public List<T_SURVEY_SKIN> getSurveySetSkinList(String siteIdx, int page, int row, String[] qryColumns){
return surveySkinDAO.getSurveySetSkinList(siteIdx, ((page-1) * row), row, qryColumns);
}
//ManagersurveyController
@Transactional
public boolean setSurveySetSkinProc(Integer surveySetIdx, String surveySkinCode, Integer memberIdx){
T_SURVEY_SET tSurveySetDB = surveySetDAO.getSurveySetForm(surveySetIdx);
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tSurveySetDB.settMember(tMember);
tSurveySetDB.setSurveySetSkinCode(surveySkinCode);
return surveySetDAO.setSurveySetModProc(tSurveySetDB);
}
}

View File

@ -0,0 +1,357 @@
package seed.utils;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
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.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import seed.dao.FirewallDAO;
public class InterceptorCheck extends HandlerInterceptorAdapter{
private Logger log = Logger.getLogger(this.getClass());
@Autowired
private FirewallDAO firewallDAO;
@Value("#{config['server.host.name']}")
private String serverHostName;
@Value("#{config['server.host.ip']}")
private String serverHostIp;
@Value("#{config['seed.key']}")
private String seedKey;
@Value("#{config['root.url']}")
private String rootUrl;
@Value("#{config['seed.key.date']}")
private String seedKeyDate;
private static String licenseKey = "seed";
public static String getLicenseKey() {
return licenseKey;
}
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");
}
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler) {
HttpSession session = httpServletRequest.getSession();
session.removeAttribute("url");
session.removeAttribute("message");
session.removeAttribute("opener");
session.removeAttribute("append");
session.removeAttribute("self");
/*try{
boolean hostNameChk = false;
boolean hostIpChk = false;
StandardPBEStringEncryptor pbeEnc = new StandardPBEStringEncryptor();
pbeEnc.setPassword(InterceptorCheck.getLicenseKey());
if(!pbeEnc.decrypt(seedKeyDate).equals("*")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date getDate = new Date();
Date seedKeyDateChk = sdf.parse(pbeEnc.decrypt(seedKeyDate));
if(Integer.parseInt(sdf.format(getDate)) > Integer.parseInt(sdf.format(seedKeyDateChk))){
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("seedKeyDate Error");
httpServletResponse.sendRedirect("/common/message.do");
return false;
}
}
String seedKeys[] = seedKey.split(",");
String rootUrls[] = rootUrl.split(",");
if(seedKeys.length != rootUrls.length){
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("seedKeys.length Error, rootUrls.length Error");
httpServletResponse.sendRedirect("/common/message.do");
return false;
}
for(int i=0; i<seedKeys.length; i++){
if(!pbeEnc.decrypt(seedKeys[i]).equals(rootUrls[i])){
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("seedKeys Error");
httpServletResponse.sendRedirect("/common/message.do");
return false;
}
}
String hostName = "";
String hostIp = "";
InetAddress ip;
try{
ip = InetAddress.getLocalHost();
hostName = ip.getHostName();
hostIp = ip.getHostAddress();
}catch (UnknownHostException ex) {
log.error("CHECK ERROR:",ex);
}catch (Exception ex) {
log.error("CHECK ERROR:",ex);
}
String serverHostNames[] = serverHostName.split(",");
String serverHostIps[] = serverHostIp.split(",");
if(serverHostNames.length != serverHostIps.length){
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("serverHostNames.length Error, serverHostIps.length Error");
httpServletResponse.sendRedirect("/common/message.do");
return false;
}
for(int i=0; i<serverHostNames.length; i++){
if(hostName.replaceAll(" ", "").equals(pbeEnc.decrypt(serverHostNames[i].replaceAll(" ", "")))){
hostNameChk = true;
break;
}
}
for(int i=0; i<serverHostIps.length; i++){
if(hostIp.replaceAll(" ", "").equals(pbeEnc.decrypt(serverHostIps[i].replaceAll(" ", "")))){
hostIpChk = true;
break;
}
}
if(!hostNameChk || !hostIpChk){
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("hostName Error : " + hostNameChk + ", hostIp Error : " + hostIpChk);
httpServletResponse.sendRedirect("/common/message.do");
return false;
}
}catch (Exception e) {
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("CHECK ERROR:",e);
try {
httpServletResponse.sendRedirect("/common/message.do");
} catch (IOException ex) {
log.error("CHECK ERROR:",ex);
}
return false;
}*/
// boolean firewallChk = false;
//테스트를 위한 수정_이준호_240704!!!!!!!!!!!!!!!!
// boolean firewallChk = true;
//
// System.out.println("tset");
// log.info("testsetset");
//
// List<Map<Object, Object>> firewallList = firewallDAO.getFirewallList();
//
// httpServletRequest.getHeader("WL-Proxy-Client-IP");
//
// String memberIp = httpServletRequest.getRemoteAddr();
//
// for(int i=0; i<firewallList.size(); i++){
//
// Map<Object, Object> tFirewallDB = firewallList.get(i);
//
// if(memberIp.indexOf(":") > 0){
//
// if(tFirewallDB.get("_firewallAClass").equals("*") && tFirewallDB.get("_firewallBClass").equals("*") && tFirewallDB.get("_firewallCClass").equals("*")
// && tFirewallDB.get("_firewallDClass").equals("*") && tFirewallDB.get("_firewallEClass").equals("*") && tFirewallDB.get("_firewallFClass").equals("*")
// && tFirewallDB.get("_firewallGClass").equals("*") && tFirewallDB.get("_firewallHClass").equals("*")){
// firewallChk = true;
// break;
// }
//
// String[] memberIps = memberIp.split(":");
//
// if((memberIps[0].equals(tFirewallDB.get("_firewallAClass")) || tFirewallDB.get("_firewallAClass").equals("*")) &&
// (memberIps[1].equals(tFirewallDB.get("_firewallBClass")) || tFirewallDB.get("_firewallBClass").equals("*")) &&
// (memberIps[2].equals(tFirewallDB.get("_firewallCClass")) || tFirewallDB.get("_firewallCClass").equals("*")) &&
// (memberIps[3].equals(tFirewallDB.get("_firewallDClass")) || tFirewallDB.get("_firewallDClass").equals("*")) &&
// (memberIps[4].equals(tFirewallDB.get("_firewallEClass")) || tFirewallDB.get("_firewallEClass").equals("*")) &&
// (memberIps[5].equals(tFirewallDB.get("_firewallFClass")) || tFirewallDB.get("_firewallFClass").equals("*")) &&
// (memberIps[6].equals(tFirewallDB.get("_firewallGClass")) || tFirewallDB.get("_firewallGClass").equals("*")) &&
// (memberIps[7].equals(tFirewallDB.get("_firewallHClass")) || tFirewallDB.get("_firewallHClass").equals("*"))){
//
// firewallChk = true;
// }
//
// }else{
//
// if(tFirewallDB.get("_firewallAClass").equals("*") && tFirewallDB.get("_firewallBClass").equals("*") && tFirewallDB.get("_firewallCClass").equals("*")){
// firewallChk = true;
// break;
// }
//
// String[] memberIps = memberIp.split("\\.");
//
// if((memberIps[0].equals(tFirewallDB.get("_firewallAClass")) || tFirewallDB.get("_firewallAClass").equals("*")) &&
// (memberIps[1].equals(tFirewallDB.get("_firewallBClass")) || tFirewallDB.get("_firewallBClass").equals("*")) &&
// (memberIps[2].equals(tFirewallDB.get("_firewallCClass")) || tFirewallDB.get("_firewallCClass").equals("*"))){
//
// firewallChk = true;
// }
// }
// }
//
//// if(!firewallChk){
////
//// setSessionRemove(session);
//// session.setAttribute("url", "/common/firewall.do");
//// session.setAttribute("message", "(message)현재 접속한 아이피("+memberIp+")는 접근하실수 없습니다.");
////
//// try {
//// httpServletResponse.sendRedirect("/common/message.do");
//// } catch (IOException ex) {
//// log.error("CHECK ERROR:",ex);
//// }
////
//// return false;
//// }
//
// boolean sessionChk = false;
//
// String[] urlChecks = {"/gta/login.do", "/gta/proc/loginProc.do", "/gta/proc/logoutProc.do",
// "/gtu/login.do", "/gtu/proc/loginProc.do", "/gtu/proc/logoutProc.do",
// "/gtm/login.do", "/gtm/proc/loginProc.do", "/gtm/proc/logoutProc.do",
// "/gte/login.do", "/gte/proc/loginProc.do", "/gte/proc/logoutProc.do",
// "Page.do", "PageProc.do"};
//
// for(int i=0; i<urlChecks.length; i++){
// if(httpServletRequest.getRequestURI().indexOf(urlChecks[i]) > -1){
// sessionChk = true;
// break;
// }
// }
//
// if(!sessionChk){
//
// Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
// String memberGrant = (String)SeedUtils.setReplaceNull(session.getAttribute("memberGrant"),"N");
//
// if(memberIdx == 0 || (!memberGrant.equals("S") && !memberGrant.equals("U") && !memberGrant.equals("SM") && !memberGrant.equals("M"))){
//
// setSessionRemove(session);
// if(httpServletRequest.getRequestURI().indexOf("/gta/") >= 0){
// session.setAttribute("url", "/gta/login.do");
// }else if(httpServletRequest.getRequestURI().indexOf("/gtu/") >= 0){
// session.setAttribute("url", "/gtu/login.do");
// }else if(httpServletRequest.getRequestURI().indexOf("/gtm/") >= 0){
// session.setAttribute("url", "/gtm/login.do");
// }else if(httpServletRequest.getRequestURI().indexOf("/gte/") >= 0){
// session.setAttribute("url", "/gte/login.do");
// }
//
// session.setAttribute("message", "common.message.no.login");
//
// try {
// httpServletResponse.sendRedirect("/common/message.do");
// } catch (IOException ex) {
// log.error("CHECK ERROR:",ex);
// }
//
// return false;
// }
// }
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler, ModelAndView modelAndView) {
//log.error("postHandle : " + request.getRequestURI());
/*
log.error("request : " + request);
log.error("response : " + response);
log.error("handler : " + handler);
log.error("modelAndView : " + modelAndView);
*/
//log.error("check postHandle");
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler, Exception ex) {
//log.error("afterCompletion : " + request.getRequestURI());
/*
log.error("request : " + request);
log.error("response : " + response);
log.error("handler : " + handler);
*/
//log.error("check afterCompletion");
}
}

View File

@ -0,0 +1,190 @@
package seed.utils;
public class Paging {
protected Integer page;
protected Integer row;
protected Long count;
protected Integer pages;
protected Integer blocks;
protected Integer block;
protected Integer fPage;
protected Integer lPage;
protected Integer pagec;
protected Integer rowc;
protected Long countc;
protected Integer pagesc;
protected Integer blocksc;
protected Integer blockc;
protected Integer fPagec;
protected Integer lPagec;
public Long getCount() {
return count;
}
public void setCount(Long count) {
if(page == null || page < 0){
page = 1;
}
if(row == null || row < 0){
row = 10;
}
this.count = count;
pages = (count == 0) ? 1 : (int) ((count - 1) / row) + 1;
blocks = (int) Math.ceil(1.0 * pages / 10.0);
block = (int) Math.ceil(1.0 * page / 10.0);
fPage = (block - 1) * 10 + 1;
lPage = block * 10;
if (lPage > pages)
lPage = pages;
if(page > pages){
page = pages;
}
}
public Long getCountc() {
return countc;
}
public void setCountc(Long countc) {
if(pagec == null || pagec < 0){
pagec = 1;
}
if(rowc == null || rowc < 0){
rowc = 10;
}
this.countc = countc;
pagesc = (countc == 0) ? 1 : (int) ((countc - 1) / rowc) + 1;
blocksc = (int) Math.ceil(1.0 * pagesc / 10.0);
blockc = (int) Math.ceil(1.0 * pagec / 10.0);
fPagec = (blockc - 1) * 10 + 1;
lPagec = blockc * 10;
if (lPagec > pagesc)
lPagec = pagesc;
if(pagec > pagesc){
pagec = pagesc;
}
}
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getRow() {
return row;
}
public void setRow(Integer row) {
this.row = row;
}
public Integer getPages() {
return pages;
}
public void setPages(Integer pages) {
this.pages = pages;
}
public Integer getBlocks() {
return blocks;
}
public void setBlocks(Integer blocks) {
this.blocks = blocks;
}
public Integer getBlock() {
return block;
}
public void setBlock(Integer block) {
this.block = block;
}
public Integer getfPage() {
return fPage;
}
public void setfPage(Integer fPage) {
this.fPage = fPage;
}
public Integer getlPage() {
return lPage;
}
public void setlPage(Integer lPage) {
this.lPage = lPage;
}
public Integer getPagec() {
return pagec;
}
public void setPagec(Integer pagec) {
this.pagec = pagec;
}
public Integer getRowc() {
return rowc;
}
public void setRowc(Integer rowc) {
this.rowc = rowc;
}
public Integer getPagesc() {
return pagesc;
}
public void setPagesc(Integer pagesc) {
this.pagesc = pagesc;
}
public Integer getBlocksc() {
return blocksc;
}
public void setBlocksc(Integer blocksc) {
this.blocksc = blocksc;
}
public Integer getBlockc() {
return blockc;
}
public void setBlockc(Integer blockc) {
this.blockc = blockc;
}
public Integer getfPagec() {
return fPagec;
}
public void setfPagec(Integer fPagec) {
this.fPagec = fPagec;
}
public Integer getlPagec() {
return lPagec;
}
public void setlPagec(Integer lPagec) {
this.lPagec = lPagec;
}
}

View File

@ -0,0 +1,162 @@
package seed.utils;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.hwpf.usermodel.Picture;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class SeedCvtDOCToHtml {
private Logger log = Logger.getLogger(this.getClass());
// public static void main(String args[]){
//
// String filePath = "F:/javaConvert/test/test.doc";
// String output = "F:/javaConvert/test/img/";
//
// new SeedCvtDOCToHtml().convert(filePath, output);
// }
public void convert(String filePath, String output) {
boolean success = false;
if(filePath.endsWith(".doc")) {
File file = new File(filePath);
if (file.exists()) {
POIFSFileSystem fs = null;
FileOutputStream fileOutputStream = null;
OutputStreamWriter outputStreamWriter = null;
BufferedWriter bufferedWriter = null;
try {
fs = new POIFSFileSystem(new FileInputStream(filePath));
HWPFDocument hwpfDocument = new HWPFDocument(fs);
WordToHtmlConverter wordToHtmlConverter = new img(
DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
wordToHtmlConverter.processDocument(hwpfDocument);
StringWriter stringWriter = new StringWriter();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
transformer.setOutputProperty(OutputKeys.METHOD, "html");
transformer.transform(
new DOMSource(wordToHtmlConverter.getDocument()),
new StreamResult(stringWriter));
fileOutputStream = new FileOutputStream(output + getFileName(filePath) + ".jsp");
outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>");
bufferedWriter.write("\n");
bufferedWriter.write(stringWriter.toString());
bufferedWriter.flush();
success = true;
} catch (TransformerConfigurationException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (TransformerFactoryConfigurationError e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (TransformerException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (ParserConfigurationException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (FactoryConfigurationError e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (FileNotFoundException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (UnsupportedEncodingException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (IllegalArgumentException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (IOException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (Exception e) {
log.error("CHECK ERROR:",e);
success = false;
} finally{
if(bufferedWriter!=null){try{bufferedWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(outputStreamWriter!=null){try{outputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
if(!success){
SeedUtils.setSeedDeleteFiles(output, "");
}
}
}
public class img extends WordToHtmlConverter {
public img(Document document) {
super(document);
}
@Override
protected void processImageWithoutPicturesManager(Element currentBlock,
boolean inlined, Picture picture){
Element imgNode = currentBlock.getOwnerDocument().createElement("img");
StringBuilder sb = new StringBuilder();
sb.append(Base64.encodeBase64String(picture.getRawContent()));
sb.insert(0, "data:"+picture.getMimeType()+";base64,");
imgNode.setAttribute("src", sb.toString());
currentBlock.appendChild(imgNode);
}
}
private static String getFileName(String filePath){
int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\");
return filePath.substring( sep + 1 , filePath.lastIndexOf("."));
}
}

View File

@ -0,0 +1,137 @@
package seed.utils;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import org.apache.log4j.Logger;
import org.apache.poi.xwpf.converter.core.FileImageExtractor;
import org.apache.poi.xwpf.converter.core.FileURIResolver;
import org.apache.poi.xwpf.converter.core.XWPFConverterException;
import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
public class SeedCvtDOCXToHtml {
private Logger log = Logger.getLogger(this.getClass());
// public static void main(String args[]) {
//
// String rootPath = "F:/javaConvert";
// String filePath = "test/test.docx";
// String output = "F:/javaConvert/test/img/";
//
// new SeedCvtDOCXToHtml().convert(rootPath, filePath, output);
// }
public synchronized void convert(String rootPath, String filePath, String output) {
boolean success = false;
if(filePath.endsWith(".docx")) {
File file = new File(rootPath + "/" + filePath);
if (file.exists()) {
FileInputStream fileInputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
FileOutputStream fileOutputStream = null;
OutputStreamWriter outputStreamWriter = null;
BufferedWriter bufferedWriter = null;
try{
StringBuffer fileHtml = new StringBuffer();
InputStream in = new FileInputStream(file);
XWPFDocument document = new XWPFDocument(in);
XHTMLOptions options = XHTMLOptions.create();
File imageFolder = new File(output + getFileName(filePath) + "/img");
options.setExtractor( new FileImageExtractor(imageFolder));
options.URIResolver( new FileURIResolver(imageFolder));
fileOutputStream = new FileOutputStream(new File(output + getFileName(filePath) + "_org_.jsp"));
XHTMLConverter.getInstance().convert(document, fileOutputStream, options);
//이미지 경로때문에 파일 읽어서 다시 쓰기 해야함(서버경로에서 해당 파일 경로로 변경)
File tmpFile = new File(output + getFileName(filePath) + "_org_.jsp");
if(tmpFile.exists()){
fileInputStream = new FileInputStream(output + getFileName(filePath) + "_org_.jsp");
inputStreamReader = new InputStreamReader(fileInputStream, "EUC-KR");
bufferedReader = new BufferedReader(inputStreamReader);
String fileBuffer = "";
while((fileBuffer = bufferedReader.readLine()) != null){
fileHtml.append(fileBuffer);
fileHtml.append("\n");
}
fileOutputStream = new FileOutputStream(output + getFileName(filePath) + ".jsp");
outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>");
bufferedWriter.write("\n");
bufferedWriter.write(fileHtml.toString().replaceAll("\\\\", "/").replaceAll(output, "/site/"+filePath.substring(0, filePath.lastIndexOf("/"))+"/"+getFileName(filePath)+"/convert/"));
bufferedWriter.flush();
success = true;
}
} catch (FileNotFoundException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (UnsupportedEncodingException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (XWPFConverterException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (IOException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (Exception e) {
log.error("CHECK ERROR:",e);
success = false;
} finally{
if(bufferedReader!=null){try{bufferedReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(inputStreamReader!=null){try{inputStreamReader.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(bufferedWriter!=null){try{bufferedWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(outputStreamWriter!=null){try{outputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
if(!success){
SeedUtils.setSeedDeleteFiles(output, "");
}else{
SeedUtils.setSeedDeleteFile(output + getFileName(filePath) + "_org_.jsp");
}
}
}
private static String getFileName(String filePath){
int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\");
return filePath.substring( sep + 1 , filePath.lastIndexOf("."));
}
}

View File

@ -0,0 +1,148 @@
package seed.utils;
import java.awt.image.BufferedImage;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.log4j.Logger;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
public class SeedCvtPDFToImg {
private Logger log = Logger.getLogger(this.getClass());
// public static void main(String[] args) {
//
// String rootPath = "F:/javaConvert";
// String filePath = "test/test.pdf";
// String output = "F:/javaConvert/test/img/";
//
// new SeedCvtPDFToImg().convert(rootPath, filePath, output);
// }
@SuppressWarnings("unchecked")
public void convert(String rootPath, String filePath, String output) {
boolean success = false;
if(filePath.endsWith(".pdf")) {
File file = new File(rootPath + "/" + filePath);
if (file.exists()) {
FileOutputStream fileOutputStream = null;
FileOutputStream htmlFileOutputStream = null;
OutputStreamWriter htmlOutputStreamWriter = null;
BufferedWriter htmlWriter = null;
try {
PDDocument document = PDDocument.load(rootPath + "/" + filePath);
List<PDPage> list = document.getDocumentCatalog().getAllPages();
if(list.size() > 0){
SeedUtils.setSeedMkDirs(output);
}
//html파일 작성
htmlFileOutputStream = new FileOutputStream(output + "/" + getFileName(filePath) + ".jsp");
htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8");
htmlWriter = new BufferedWriter(htmlOutputStreamWriter);
htmlWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>");
htmlWriter.write("\n");
htmlWriter.write("<!doctype html>");
htmlWriter.write("\n");
htmlWriter.write("<!--[if lt IE 7 ]><html class=\"ie ie6\" lang=\"ko\"><![endif]-->");
htmlWriter.write("\n");
htmlWriter.write("<!--[if IE 7 ]><html class=\"ie ie7\" lang=\"ko\"><![endif]-->");
htmlWriter.write("\n");
htmlWriter.write("<!--[if IE 8 ]><html class=\"ie ie8\" lang=\"ko\"><![endif]-->");
htmlWriter.write("\n");
htmlWriter.write("<!--[if (gte IE 9)|!(IE)]><!--><html lang=\"ko\"><!--<![endif]--> ");
htmlWriter.write("\n");
htmlWriter.write(" <head>");
htmlWriter.write("\n");
htmlWriter.write(" <meta charset=\"utf-8\">");
htmlWriter.write("\n");
htmlWriter.write(" <meta name=\"robots\" content=\"noindex\">");
htmlWriter.write("\n");
htmlWriter.write(" <!--[if IE]>");
htmlWriter.write("\n");
htmlWriter.write(" <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">");
htmlWriter.write("\n");
htmlWriter.write(" <![endif]-->");
htmlWriter.write("\n");
htmlWriter.write(" <title>미리보기 페이지</title>");
htmlWriter.write("\n");
htmlWriter.write(" <!-- js -->");
htmlWriter.write("\n");
htmlWriter.write(" <!--[if lte IE 9]>");
htmlWriter.write("\n");
htmlWriter.write(" <script src=\"/js/html5.js\"></script>");
htmlWriter.write("\n");
htmlWriter.write(" <![endif]-->");
htmlWriter.write("\n");
htmlWriter.write(" </head>");
htmlWriter.write("\n");
htmlWriter.write(" <body>");
htmlWriter.write("\n");
for(int i=0; i<list.size(); i++){
PDPage page = list.get(i);
BufferedImage img = page.convertToImage();
fileOutputStream = new FileOutputStream(output + getFileName(filePath) + "_" + (i + 1) + ".jpg");
ImageIO.write(img, "jpg", fileOutputStream);
htmlWriter.write(" <img src='/site/"+filePath.substring(0, filePath.lastIndexOf("/"))+"/"+getFileName(filePath)+"/convert/" + getFileName(filePath) + "_" + (i + 1) + ".jpg' alt='" + getFileName(filePath) + "_" + (i + 1) + "' />");
htmlWriter.write("\n");
}
htmlWriter.write(" </body>");
htmlWriter.write("\n");
htmlWriter.write("</html>");
htmlWriter.write("\n");
htmlWriter.flush();
document.close();
success = true;
} catch (FileNotFoundException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (IOException e) {
log.error("CHECK ERROR:",e);
success = false;
}finally{
if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
if(!success){
SeedUtils.setSeedDeleteFiles(output, "");
}
}
}
private static String getFileName(String filePath){
int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\");
return filePath.substring( sep + 1 , filePath.lastIndexOf("."));
}
}

View File

@ -0,0 +1,164 @@
package seed.utils;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import javax.imageio.ImageIO;
import org.apache.log4j.Logger;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
public class SeedCvtPPTToImg {
private Logger log = Logger.getLogger(this.getClass());
// public static void main(String[] args) {
//
// String rootPath = "F:/javaConvert";
// String filePath = "test/test.ppt";
// String output = "F:/javaConvert/test/img/";
//
// new SeedCvtPPTToImg().convert(rootPath, filePath, output);
// }
public void convert(String rootPath, String filePath, String output) {
boolean success = false;
if(filePath.endsWith(".ppt")) {
File file = new File(rootPath + "/" + filePath);
if (file.exists()) {
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
FileOutputStream htmlFileOutputStream = null;
OutputStreamWriter htmlOutputStreamWriter = null;
BufferedWriter htmlWriter = null;
try {
fileInputStream = new FileInputStream(file);
SlideShow ppt = new SlideShow(fileInputStream);
double zoom = 2; // magnify it by 2
AffineTransform at = new AffineTransform();
at.setToScale(zoom, zoom);
Dimension pgsize = ppt.getPageSize();
Slide[] slide = ppt.getSlides();
if(slide.length > 0){
SeedUtils.setSeedMkDirs(output);
}
//html?Œ???‘??
htmlFileOutputStream = new FileOutputStream(output + "/" + getFileName(filePath) + ".jsp");
htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8");
htmlWriter = new BufferedWriter(htmlOutputStreamWriter);
htmlWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>");
htmlWriter.write("\n");
htmlWriter.write("<!doctype html>");
htmlWriter.write("\n");
htmlWriter.write("<!--[if lt IE 7 ]><html class=\"ie ie6\" lang=\"ko\"><![endif]-->");
htmlWriter.write("\n");
htmlWriter.write("<!--[if IE 7 ]><html class=\"ie ie7\" lang=\"ko\"><![endif]-->");
htmlWriter.write("\n");
htmlWriter.write("<!--[if IE 8 ]><html class=\"ie ie8\" lang=\"ko\"><![endif]-->");
htmlWriter.write("\n");
htmlWriter.write("<!--[if (gte IE 9)|!(IE)]><!--><html lang=\"ko\"><!--<![endif]--> ");
htmlWriter.write("\n");
htmlWriter.write(" <head>");
htmlWriter.write("\n");
htmlWriter.write(" <meta charset=\"utf-8\">");
htmlWriter.write("\n");
htmlWriter.write(" <meta name=\"robots\" content=\"noindex\">");
htmlWriter.write("\n");
htmlWriter.write(" <!--[if IE]>");
htmlWriter.write("\n");
htmlWriter.write(" <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">");
htmlWriter.write("\n");
htmlWriter.write(" <![endif]-->");
htmlWriter.write("\n");
htmlWriter.write(" <title>誘몃━蹂닿린 ?˜?댁?</title>");
htmlWriter.write("\n");
htmlWriter.write(" <!-- js -->");
htmlWriter.write("\n");
htmlWriter.write(" <!--[if lte IE 9]>");
htmlWriter.write("\n");
htmlWriter.write(" <script src=\"/js/html5.js\"></script>");
htmlWriter.write("\n");
htmlWriter.write(" <![endif]-->");
htmlWriter.write("\n");
htmlWriter.write(" </head>");
htmlWriter.write("\n");
htmlWriter.write(" <body>");
htmlWriter.write("\n");
for (int i = 0; i < slide.length; i++) {
BufferedImage img = new BufferedImage((int)Math.ceil(pgsize.width*zoom), (int)Math.ceil(pgsize.height*zoom), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setTransform(at);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
fileOutputStream = new FileOutputStream(output + getFileName(filePath) + "_" + (i + 1) + ".jpg");
ImageIO.write(img, "jpg", fileOutputStream);
htmlWriter.write(" <img src='/site/"+filePath.substring(0, filePath.lastIndexOf("/"))+"/"+getFileName(filePath)+"/convert/" + getFileName(filePath) + "_" + (i + 1) + ".jpg' alt='" + getFileName(filePath) + "_" + (i + 1) + "' />");
htmlWriter.write("\n");
}
htmlWriter.write(" </body>");
htmlWriter.write("\n");
htmlWriter.write("</html>");
htmlWriter.write("\n");
htmlWriter.flush();
success = true;
} catch (FileNotFoundException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (IOException e) {
log.error("CHECK ERROR:",e);
success = false;
}finally{
if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
if(!success){
SeedUtils.setSeedDeleteFiles(output, "");
}
}
}
private static String getFileName(String filePath){
int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\");
return filePath.substring( sep + 1 , filePath.lastIndexOf("."));
}
}

View File

@ -0,0 +1,164 @@
package seed.utils;
import java.awt.Dimension;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import org.apache.log4j.Logger;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
public class SeedCvtPPTXToImg {
private Logger log = Logger.getLogger(this.getClass());
// public static void main(String[] args) {
//
// String rootPath = "F:/javaConvert";
// String filePath = "test/test.pptx";
// String output = "F:/javaConvert/test/img/";
//
// new SeedCvtPPTXToImg().convert(rootPath, filePath, output);
// }
public void convert(String rootPath, String filePath, String output) {
boolean success = false;
if(filePath.endsWith(".pptx")) {
File file = new File(rootPath + "/" + filePath);
if (file.exists()) {
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
FileOutputStream htmlFileOutputStream = null;
OutputStreamWriter htmlOutputStreamWriter = null;
BufferedWriter htmlWriter = null;
try {
fileInputStream = new FileInputStream(file);
XMLSlideShow ppt = new XMLSlideShow(fileInputStream);
double zoom = 2; // magnify it by 2
AffineTransform at = new AffineTransform();
at.setToScale(zoom, zoom);
Dimension pgsize = ppt.getPageSize();
XSLFSlide[] slide = ppt.getSlides();
if(slide.length > 0){
SeedUtils.setSeedMkDirs(output);
}
//html?Œ???‘??
htmlFileOutputStream = new FileOutputStream(output + "/" + getFileName(filePath) + ".jsp");
htmlOutputStreamWriter = new OutputStreamWriter(htmlFileOutputStream, "UTF-8");
htmlWriter = new BufferedWriter(htmlOutputStreamWriter);
htmlWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>");
htmlWriter.write("\n");
htmlWriter.write("<!doctype html>");
htmlWriter.write("\n");
htmlWriter.write("<!--[if lt IE 7 ]><html class=\"ie ie6\" lang=\"ko\"><![endif]-->");
htmlWriter.write("\n");
htmlWriter.write("<!--[if IE 7 ]><html class=\"ie ie7\" lang=\"ko\"><![endif]-->");
htmlWriter.write("\n");
htmlWriter.write("<!--[if IE 8 ]><html class=\"ie ie8\" lang=\"ko\"><![endif]-->");
htmlWriter.write("\n");
htmlWriter.write("<!--[if (gte IE 9)|!(IE)]><!--><html lang=\"ko\"><!--<![endif]--> ");
htmlWriter.write("\n");
htmlWriter.write(" <head>");
htmlWriter.write("\n");
htmlWriter.write(" <meta charset=\"utf-8\">");
htmlWriter.write("\n");
htmlWriter.write(" <meta name=\"robots\" content=\"noindex\">");
htmlWriter.write("\n");
htmlWriter.write(" <!--[if IE]>");
htmlWriter.write("\n");
htmlWriter.write(" <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">");
htmlWriter.write("\n");
htmlWriter.write(" <![endif]-->");
htmlWriter.write("\n");
htmlWriter.write(" <title>誘몃━蹂닿린 ?˜?댁?</title>");
htmlWriter.write("\n");
htmlWriter.write(" <!-- js -->");
htmlWriter.write("\n");
htmlWriter.write(" <!--[if lte IE 9]>");
htmlWriter.write("\n");
htmlWriter.write(" <script src=\"/js/html5.js\"></script>");
htmlWriter.write("\n");
htmlWriter.write(" <![endif]-->");
htmlWriter.write("\n");
htmlWriter.write(" </head>");
htmlWriter.write("\n");
htmlWriter.write(" <body>");
htmlWriter.write("\n");
for (int i = 0; i < slide.length; i++) {
BufferedImage img = new BufferedImage((int)Math.ceil(pgsize.width*zoom), (int)Math.ceil(pgsize.height*zoom), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setTransform(at);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
fileOutputStream = new FileOutputStream(output + getFileName(filePath) + "_" + (i + 1) + ".jpg");
ImageIO.write(img, "jpg", fileOutputStream);
htmlWriter.write(" <img src='/site/"+filePath.substring(0, filePath.lastIndexOf("/"))+"/"+getFileName(filePath)+"/convert/" + getFileName(filePath) + "_" + (i + 1) + ".jpg' alt='" + getFileName(filePath) + "_" + (i + 1) + "' />");
htmlWriter.write("\n");
}
htmlWriter.write(" </body>");
htmlWriter.write("\n");
htmlWriter.write("</html>");
htmlWriter.write("\n");
htmlWriter.flush();
success = true;
} catch (FileNotFoundException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (IOException e) {
log.error("CHECK ERROR:",e);
success = false;
}finally{
if(fileInputStream!=null){try{fileInputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlWriter!=null){try{htmlWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlOutputStreamWriter!=null){try{htmlOutputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(htmlFileOutputStream!=null){try{htmlFileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
if(!success){
SeedUtils.setSeedDeleteFiles(output, "");
}
}
}
private static String getFileName(String filePath){
int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\");
return filePath.substring( sep + 1 , filePath.lastIndexOf("."));
}
}

View File

@ -0,0 +1,139 @@
package seed.utils;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.converter.ExcelToHtmlConverter;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class SeedCvtXLSToHtml {
private Logger log = Logger.getLogger(this.getClass());
// public static void main(String args[]){
//
// String filePath = "F:/javaConvert/test/test.xls";
// String output = "F:/javaConvert/test/img/";
//
// new SeedCvtXLSToHtml().convert(filePath, output);
// }
public void convert(String filePath, String output) {
boolean success = false;
if(filePath.endsWith(".xls")) {
File file = new File(filePath);
if (file.exists()) {
POIFSFileSystem fs = null;
FileOutputStream fileOutputStream = null;
OutputStreamWriter outputStreamWriter = null;
BufferedWriter bufferedWriter = null;
try {
fs = new POIFSFileSystem(new FileInputStream(filePath));
HSSFWorkbook hSSFWorkbook = new HSSFWorkbook(fs);
ExcelToHtmlConverter excelToHtmlConverter = new ExcelToHtmlConverter(
DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
excelToHtmlConverter.processWorkbook(hSSFWorkbook);
StringWriter stringWriter = new StringWriter();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
transformer.setOutputProperty(OutputKeys.METHOD, "html");
transformer.transform(
new DOMSource(excelToHtmlConverter.getDocument()),
new StreamResult(stringWriter));
fileOutputStream = new FileOutputStream(output + getFileName(filePath) + ".jsp");
outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>");
bufferedWriter.write("\n");
bufferedWriter.write(stringWriter.toString());
bufferedWriter.flush();
success = true;
} catch (TransformerConfigurationException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (TransformerFactoryConfigurationError e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (TransformerException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (ParserConfigurationException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (FactoryConfigurationError e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (FileNotFoundException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (UnsupportedEncodingException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (IllegalArgumentException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (IOException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (Exception e) {
log.error("CHECK ERROR:",e);
success = false;
} finally{
if(bufferedWriter!=null){try{bufferedWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(outputStreamWriter!=null){try{outputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
if(!success){
SeedUtils.setSeedDeleteFiles(output, "");
}
}
}
private static String getFileName(String filePath){
int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\");
return filePath.substring( sep + 1 , filePath.lastIndexOf("."));
}
}

View File

@ -0,0 +1,396 @@
package seed.utils;
import com.sun.org.apache.xml.internal.serializer.OutputPropertiesFactory;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.math.BigDecimal;
import java.math.MathContext;
import java.util.Iterator;
import java.util.List;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.log4j.Logger;
import org.apache.poi.hwpf.converter.HtmlDocumentFacade;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class SeedCvtXLSXToHtml {
private Logger log = Logger.getLogger(this.getClass());
// public static void main(String[] args) {
//
// String filePath = "F:/javaConvert/test/test.xlsx";
// String output = "F:/javaConvert/test/img/";
//
// new SeedCvtXLSXToHtml().convert(filePath, output);
// }
public void convert(String filePath, String output) {
boolean success = false;
if(filePath.endsWith(".xlsx")) {
File file = new File(filePath);
if (file.exists()) {
StringBuilder css = new StringBuilder();
try{
OPCPackage op = OPCPackage.open(filePath);
XSSFWorkbook x = new XSSFWorkbook(op);
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
HtmlDocumentFacade htmlDocumentFacade = new HtmlDocumentFacade(document);
Element window = htmlDocumentFacade.createBlock();
window.setAttribute("id", "window");
Element page = htmlDocumentFacade.createBlock();
page.setAttribute("id", "page");
window.appendChild(page);
htmlDocumentFacade.getBody().appendChild(window);
Integer sheetNum = x.getNumberOfSheets();
for (int i = 0; i < sheetNum; i++) {
XSSFSheet sheet = x.getSheet(x.getSheetName(i));
String sheetName = x.getSheetName(i);
{
Element title = htmlDocumentFacade.createHeader2();
title.setTextContent(sheetName);
page.appendChild(title);
}
processSheet(htmlDocumentFacade, page, sheet, "_" + i + "_");
}
htmlDocumentFacade.updateStylesheet();
Element style = (Element) htmlDocumentFacade.getDocument().getElementsByTagName("style").item(0);
style.setTextContent(css.append(style.getTextContent()).toString());
saveAsHtml(output + getFileName(filePath) + ".jsp", htmlDocumentFacade.getDocument());
success = true;
} catch (IOException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (InvalidFormatException e) {
log.error("CHECK ERROR:",e);
success = false;
} catch (ParserConfigurationException e) {
log.error("CHECK ERROR:",e);
success = false;
}
}
if(!success){
SeedUtils.setSeedDeleteFiles(output, "");
}
}
}
private static String getFileName(String filePath){
int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\");
return filePath.substring( sep + 1 , filePath.lastIndexOf("."));
}
private void processSheet(HtmlDocumentFacade htmlDocumentFacade, Element container, XSSFSheet sheet, String sID) {
StringBuilder css = new StringBuilder();
Element table = htmlDocumentFacade.createTable();
int sIndex = sheet.getWorkbook().getSheetIndex(sheet);
String sId = "sheet_".concat(String.valueOf(sIndex));
table.setAttribute("id", sId);
table.setAttribute("border", "1");
table.setAttribute("cellpadding", "2");
table.setAttribute("cellspacing", "0");
table.setAttribute("style", "border-collapse: collapse;");
if (sheet.getDefaultRowHeightInPoints() > 0) {
css.append("#").append(sId).append(" tr{height:").append(sheet.getDefaultRowHeightInPoints() / 28.34).append("cm}\n");
}
if (sheet.getDefaultColumnWidth() > 0) {
css.append("#").append(sId).append(" td{width:").append(sheet.getDefaultColumnWidth() * 0.21).append("cm}\n");
}
generateColumns(htmlDocumentFacade, sheet, table);
final short col_num = get_col_max(sheet);
final int row_num = sheet.getLastRowNum() + 1;
for (int i = 0; i < row_num; i++) {
Row row = sheet.getRow(i);
processRow(htmlDocumentFacade, table, (XSSFRow) row, sheet, col_num, sID, i);
}
container.appendChild(table);
}
private short get_col_max(XSSFSheet sheet) {
short ans = -1;
//rows
Iterator<Row> rows = sheet.iterator();
while (rows.hasNext()) {
Row row = rows.next();
if (row instanceof XSSFRow) {
short c = (short) (row.getLastCellNum());
if (ans < c) {
ans = c;
}
}
}
return ans;
}
@SuppressWarnings("deprecation")
private void generateColumns(HtmlDocumentFacade htmlDocumentFacade, XSSFSheet sheet, Element table) {
List<CTCols> colsList = sheet.getCTWorksheet().getColsList();
MathContext mc = new MathContext(3);
for (CTCols cols : colsList) {
long oldLevel = 1;
for (CTCol col : cols.getColArray()) {
while (true) {
if (oldLevel == col.getMin()) {
break;
}
Element column = htmlDocumentFacade.createTableColumn();
// htmlDocumentFacade.addStyleClass(column, "col", "width:2cm;");
column.setAttribute("style", "width:2cm;");
table.appendChild(column);
oldLevel++;
}
Element column = htmlDocumentFacade.createTableColumn();
String width = new BigDecimal(sheet.getColumnWidth(Long.bitCount(oldLevel)) / 1440.0, mc).toString();
column.setAttribute("style", "width:".concat(width).concat("cm;"));
table.appendChild(column);
oldLevel++;
}
}
}
private void processRow(HtmlDocumentFacade htmlDocumentFacade, Element table, XSSFRow row, XSSFSheet sheet, final int col_num, String sID, int pos_row) {
Element tr = htmlDocumentFacade.createTableRow();
if (!(row instanceof XSSFRow)) {
for (int pos_col = 0; pos_col < col_num; pos_col++) {
processCell(htmlDocumentFacade, tr, null, sID, pos_col, pos_row); // empty line
}
} else {
//if (row.isFormatted()) {}
if (row.getCTRow().getCustomHeight()) {
tr.setAttribute("style", "height:".concat(String.valueOf(row.getHeightInPoints())).concat("pt;"));
}
for (int pos_col = 0; pos_col < col_num; pos_col++) {
Cell cell = row.getCell(pos_col);
if (cell instanceof XSSFCell) {
processCell(htmlDocumentFacade, tr, (XSSFCell) cell, sID, pos_col, pos_row);
} else {
processCell(htmlDocumentFacade, tr, null, sID, pos_col, pos_row);
}
}
}
table.appendChild(tr);
}
private void processCell(HtmlDocumentFacade htmlDocumentFacade, Element tr, XSSFCell cell, String sID, int pos_col, int pos_row) {
int cols = 1;
int rows = 1;
if (cell != null) {
if (cell != null) {
int num = cell.getSheet().getNumMergedRegions();
for (int i = 0; i < num; i++) {
CellRangeAddress c = cell.getSheet().getMergedRegion(i);
int x0 = c.getFirstColumn();
int x1 = c.getLastColumn();
int y0 = c.getFirstRow();
int y1 = c.getLastRow();
if (x0 == pos_col && y0 == pos_row) {
cols = c.getLastColumn() - c.getFirstColumn() + 1;
rows = c.getLastRow() - c.getFirstRow() + 1;
} else if ((x0 <= pos_col) && (pos_col <= x1) && (y0 <= pos_row) && (pos_row <= y1)) {
return;
}
}
}
}
Element td = htmlDocumentFacade.createTableCell();
if (cols > 1) {
td.setAttribute("colspan", "" + cols);
}
if (rows > 1) {
td.setAttribute("rowspan", "" + rows);
}
Object value;
if (cell == null) {
td.setTextContent("\u00a0");
} else {
switch (cell.getCellType()) {
case Cell.CELL_TYPE_BLANK:
value = "\u00a0";
break;
case Cell.CELL_TYPE_NUMERIC:
value = cell.getNumericCellValue();
break;
case Cell.CELL_TYPE_BOOLEAN:
value = cell.getBooleanCellValue();
break;
case Cell.CELL_TYPE_FORMULA:
value = cell.getNumericCellValue();
break;
default:
value = cell.getRichStringCellValue();
break;
}
if (value instanceof XSSFRichTextString) {
processCellStyle(htmlDocumentFacade, td, cell.getCellStyle(), (XSSFRichTextString) value, sID);
td.setTextContent(SeedUtils.setReplaceNull(value));
} else {
processCellStyle(htmlDocumentFacade, td, cell.getCellStyle(), null, sID);
td.setTextContent(SeedUtils.setReplaceNull(value));
}
}
tr.appendChild(td);
}
private void processCellStyle(HtmlDocumentFacade htmlDocumentFacade, Element td, XSSFCellStyle style, XSSFRichTextString rts, String sID) {
StringBuilder sb = new StringBuilder();
if (rts != null) {
XSSFFont font = rts.getFontOfFormattingRun(1);
if (font != null) {
sb.append("font-family:").append(font.getFontName()).append(";");
sb.append("font-size:").append(font.getFontHeightInPoints()).append("pt;");
if (font.getXSSFColor() != null) {
String color = font.getXSSFColor().getARGBHex().substring(2);
sb.append("color:#").append(color).append(";");
}
if (font.getItalic()) {
sb.append("font-style:italic;");
}
if (font.getBold()) {
sb.append("font-weight:").append(font.getBoldweight()).append(";");
}
if (font.getStrikeout()) {
sb.append("text-decoration:underline;");
}
}
}
if (style.getAlignment() != 1) {
switch (style.getAlignment()) {
case 2:
sb.append("text-align:").append("center;");
break;
case 3:
sb.append("text-align:").append("right;");
break;
}
}
if (style.getBorderBottom() != 0) {
sb.append("border-bottom:solid; ").append(style.getBorderBottom()).append("px;");
}
if (style.getBorderLeft() != 0) {
sb.append("border-left:solid; ").append(style.getBorderLeft()).append("px;");
}
if (style.getBorderTop() != 0) {
sb.append("border-top:solid; ").append(style.getBorderTop()).append("px;");
}
if (style.getBorderRight() != 0) {
sb.append("border-right:solid; ").append(style.getBorderRight()).append("px;");
}
if (style.getFillBackgroundXSSFColor() != null) {
sb.append("background:#fcc;");
}
htmlDocumentFacade.addStyleClass(td, "td" + sID, sb.toString());
}
private void saveAsHtml(String output, org.w3c.dom.Document document) {
FileOutputStream fos = null;
try{
File folder = new File(getFilePath(output));
if (!folder.canRead()) {
folder.mkdirs();
}
fos = new FileOutputStream(output);
DOMSource domSource = new DOMSource(document);
StreamResult result = new StreamResult(new StringWriter());
TransformerFactory tf = TransformerFactory.newInstance();
Transformer serializer = tf.newTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
serializer.setOutputProperty(OutputPropertiesFactory.S_KEY_INDENT_AMOUNT, "2");
serializer.setOutputProperty(OutputKeys.METHOD, "html");
serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
serializer.transform(domSource, result);
String s = "<!doctype html>\n" + result.getWriter().toString();
OutputStreamWriter out = new OutputStreamWriter(fos, "UTF-8");
out.write("<%@ page contentType=\"text/html;charset=utf-8\" %>");
out.write("\n");
out.write(s);
out.close();
} catch (FileNotFoundException e) {
log.error("CHECK ERROR:",e);
} catch (TransformerException e) {
log.error("CHECK ERROR:",e);
} catch (IllegalArgumentException e) {
log.error("CHECK ERROR:",e);
} catch (IOException e) {
log.error("CHECK ERROR:",e);
} catch (Exception e) {
log.error("CHECK ERROR:",e);
} finally{
if(fos!=null){try{fos.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
public String getFilePath(String fileFullPath) {
int sep = fileFullPath.lastIndexOf("\\") == -1 ? fileFullPath.lastIndexOf("/") : fileFullPath.lastIndexOf("\\");
return fileFullPath.substring(0, sep + 1);
}
}

View File

@ -0,0 +1,244 @@
package seed.utils;
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import java.util.Random;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.PBEParameterSpec;
import javax.imageio.ImageIO;
import org.apache.log4j.Logger;
public class SeedFileUtils {
private static Logger log = Logger.getLogger(SeedFileUtils.class);
private static final String password = "seedFile";
public static void setSeedEncryptFile(String infile) {
FileInputStream inFile = null;
FileOutputStream outFile = null;
try{
inFile = new FileInputStream(infile);
outFile = new FileOutputStream(infile + ".des");
// Use PBEKeySpec to create a key based on a password.
// The password is passed as a character array
PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray());
SecretKeyFactory keyFactory =
SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey passwordKey = keyFactory.generateSecret(keySpec);
// PBE = hashing + symmetric encryption. A 64 bit random
// number (the salt) is added to the password and hashed
// using a Message Digest Algorithm (MD5 in this example.).
// The number of times the password is hashed is determined
// by the interation count. Adding a random number and
// hashing multiple times enlarges the key space.
byte[] salt = new byte[8];
Random rnd = new Random();
rnd.nextBytes(salt);
int iterations = 100;
//Create the parameter spec for this salt and interation count
PBEParameterSpec parameterSpec = new PBEParameterSpec(salt, iterations);
// Create the cipher and initialize it for encryption.
Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
cipher.init(Cipher.ENCRYPT_MODE, passwordKey, parameterSpec);
// Need to write the salt to the (encrypted) file. The
// salt is needed when reconstructing the key for decryption.
outFile.write(salt);
// Read the file and encrypt its bytes.
byte[] input = new byte[64];
int bytesRead;
while ((bytesRead = inFile.read(input)) != -1)
{
byte[] output = cipher.update(input, 0, bytesRead);
if (output != null) outFile.write(output);
}
byte[] output = cipher.doFinal();
if (output != null) outFile.write(output);
inFile.close();
outFile.flush();
outFile.close();
} catch (InvalidKeySpecException e) {
log.error("CHECK ERROR:",e);
} catch (IllegalBlockSizeException e) {
log.error("CHECK ERROR:",e);
} catch (BadPaddingException e) {
log.error("CHECK ERROR:",e);
} catch (NoSuchAlgorithmException e) {
log.error("CHECK ERROR:",e);
} catch (NoSuchPaddingException e) {
log.error("CHECK ERROR:",e);
} catch (InvalidKeyException e) {
log.error("CHECK ERROR:",e);
} catch (InvalidAlgorithmParameterException e) {
log.error("CHECK ERROR:",e);
} catch(FileNotFoundException e){
log.error("CHECK ERROR:",e);
} catch(IOException e){
log.error("CHECK ERROR:",e);
} finally{
if(inFile!=null){try{inFile.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(outFile!=null){try{outFile.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
public static void getSeedDecryptFile(String infile) {
FileInputStream inFile = null;
FileOutputStream outFile = null;
try{
inFile = new FileInputStream(infile);
outFile = new FileOutputStream(infile + ".dcr");
PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray());
SecretKeyFactory keyFactory =
SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey passwordKey = keyFactory.generateSecret(keySpec);
// Read in the previouly stored salt and set the iteration count.
byte[] salt = new byte[8];
inFile.read(salt);
int iterations = 100;
PBEParameterSpec parameterSpec = new PBEParameterSpec(salt, iterations);
// Create the cipher and initialize it for decryption.
Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
cipher.init(Cipher.DECRYPT_MODE, passwordKey, parameterSpec);
byte[] input = new byte[64];
int bytesRead;
while ((bytesRead = inFile.read(input)) != -1)
{
byte[] output = cipher.update(input, 0, bytesRead);
if (output != null)
outFile.write(output);
}
byte[] output = cipher.doFinal();
if (output != null)
outFile.write(output);
inFile.close();
outFile.flush();
outFile.close();
} catch (InvalidKeySpecException e) {
log.error("CHECK ERROR:",e);
} catch (IllegalBlockSizeException e) {
log.error("CHECK ERROR:",e);
} catch (BadPaddingException e) {
log.error("CHECK ERROR:",e);
} catch (NoSuchAlgorithmException e) {
log.error("CHECK ERROR:",e);
} catch (NoSuchPaddingException e) {
log.error("CHECK ERROR:",e);
} catch (InvalidKeyException e) {
log.error("CHECK ERROR:",e);
} catch (InvalidAlgorithmParameterException e) {
log.error("CHECK ERROR:",e);
} catch(FileNotFoundException e){
log.error("CHECK ERROR:",e);
} catch(IOException e){
log.error("CHECK ERROR:",e);
} finally{
if(inFile!=null){try{inFile.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
if(outFile!=null){try{outFile.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
}
}
public static void setWaterMarkImg(String orgImg, String markImg){
float alpha = 1;
FileOutputStream out = null;
try{
// org image file
File file = new File(orgImg);
// watermark image file
File markFile = new File(markImg);
if(file.exists() && markFile.exists()) {
Image src = ImageIO.read(file);
if(src != null){
int width = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = image.createGraphics();
graphics2D.drawImage(src, 0, 0, width, height, null);
Image mark_img = ImageIO.read(markFile);
if(mark_img != null){
int mark_img_width = mark_img.getWidth(null);
int mark_img_height = mark_img.getHeight(null);
graphics2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));
// 우측 하단에 워터마크 표시
graphics2D.drawImage(mark_img, (width / 2) - (mark_img_width / 2), (height / 2) - (mark_img_height / 2), mark_img_width, mark_img_height, null);
graphics2D.dispose();
out = new FileOutputStream(orgImg);
// JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
// encoder.encode(image);
}
}
}
} catch (Exception e){
log.error(e);
}finally{
if(out!=null){try{out.close();}catch(IOException e){log.error(e);}}
}
}
}

View File

@ -0,0 +1,114 @@
package seed.utils;
public class SeedFtpType {
private String destFilePath;
private String srcFilePath;
private String fileName;
private String ftpType;
public void setSeedFtp(){
SeedProperties seedProperties = new SeedProperties();
seedProperties.configPropertiesInit();
if(seedProperties.getConfigProperties().getProperty("ftp.type").toLowerCase().equals("ftp") ||
seedProperties.getConfigProperties().getProperty("ftp.type").toLowerCase().equals("sftp")){
String[] ftpServers = seedProperties.getConfigProperties().getProperty("ftp.server").split(",");
String[] ftpPorts = seedProperties.getConfigProperties().getProperty("ftp.port").split(",");
String[] ftpIds = seedProperties.getConfigProperties().getProperty("ftp.id").split(",");
String[] ftpPws = seedProperties.getConfigProperties().getProperty("ftp.pw").split(",");
String[] ftpPaths = seedProperties.getConfigProperties().getProperty("ftp.path").split(",");
if(seedProperties.getConfigProperties().getProperty("ftp.type").toLowerCase().equals("ftp")){
SeedFtpUtil seedFtpUtil = new SeedFtpUtil();
if(ftpServers.length > 1){
for(int i=0; i<ftpServers.length; i++){
seedFtpUtil.setFtpServer(ftpServers[i]);
seedFtpUtil.setFtpPort(Integer.parseInt(ftpPorts[i]));
seedFtpUtil.setFtpId(ftpIds[i]);
seedFtpUtil.setFtpPw(ftpPws[i]);
seedFtpUtil.setFtpFilepath(ftpPaths[i]);
seedFtpUtil.setFtpFileSync(destFilePath, srcFilePath, fileName, ftpType);
}
}else{
seedFtpUtil.setFtpServer(seedProperties.getConfigProperties().getProperty("ftp.server"));
seedFtpUtil.setFtpPort(Integer.parseInt(seedProperties.getConfigProperties().getProperty("ftp.port")));
seedFtpUtil.setFtpId(seedProperties.getConfigProperties().getProperty("ftp.id"));
seedFtpUtil.setFtpPw(seedProperties.getConfigProperties().getProperty("ftp.pw"));
seedFtpUtil.setFtpFilepath(seedProperties.getConfigProperties().getProperty("ftp.path"));
seedFtpUtil.setFtpFileSync(destFilePath, srcFilePath, fileName, ftpType);
}
}else if(seedProperties.getConfigProperties().getProperty("ftp.type").toLowerCase().equals("sftp")){
SeedSftpUtil seedSftpUtil = new SeedSftpUtil();
if(ftpServers.length > 1){
for(int i=0; i<ftpServers.length; i++){
seedSftpUtil.setFtpServer(ftpServers[i]);
seedSftpUtil.setFtpPort(Integer.parseInt(ftpPorts[i]));
seedSftpUtil.setFtpId(ftpIds[i]);
seedSftpUtil.setFtpPw(ftpPws[i]);
seedSftpUtil.setFtpFilepath(ftpPaths[i]);
seedSftpUtil.setFtpFileSync(destFilePath, srcFilePath, fileName, ftpType);
}
}else{
seedSftpUtil.setFtpServer(seedProperties.getConfigProperties().getProperty("ftp.server"));
seedSftpUtil.setFtpPort(Integer.parseInt(seedProperties.getConfigProperties().getProperty("ftp.port")));
seedSftpUtil.setFtpId(seedProperties.getConfigProperties().getProperty("ftp.id"));
seedSftpUtil.setFtpPw(seedProperties.getConfigProperties().getProperty("ftp.pw"));
seedSftpUtil.setFtpFilepath(seedProperties.getConfigProperties().getProperty("ftp.path"));
seedSftpUtil.setFtpFileSync(destFilePath, srcFilePath, fileName, ftpType);
}
}
}
}
public String getSrcFilePath() {
return srcFilePath;
}
public void setSrcFilePath(String srcFilePath) {
this.srcFilePath = srcFilePath;
}
public String getDestFilePath() {
return destFilePath;
}
public void setDestFilePath(String destFilePath) {
this.destFilePath = destFilePath;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFtpType() {
return ftpType;
}
public void setFtpType(String ftpType) {
this.ftpType = ftpType;
}
}

View File

@ -0,0 +1,377 @@
package seed.utils;
import java.io.*;
import org.apache.log4j.Logger;
import com.oroinc.net.ftp.*;
public class SeedFtpUtil {
private Logger log = Logger.getLogger(this.getClass());
private FTPClient ftpClient = null;
private String ftpServer = "127.0.0.1";
private int ftpPort = 21;
private String ftpId = "";
private String ftpPw = "";
private String ftpFilepath = "";
/**
* ftp를 이용한 파일 업로드 작업을 하는 메소드
* 전달받은 파일 경로와 로컬의 파일경로 파일명에 해당하는 파일을 가지고 서버에 이동하는 작업을 진행함
* destFilePath는 마지막 / 빼고 전달 해줘야 한다. ex> /filedepth1/filedepth2/fileDirectory
* 문제 발생시 파일 업로드 실패 라는 문구와 경로 파일명을 출력 한다.
* @param String destFilePath 서버 경로
* @param String destFilePath 로컬 파일 경로
* @param String fileName 파일명
* */
public boolean setFtpFileSync(String destFilePath, String srcFilePath, String fileName, String ftpType){
boolean success = false;
String printMessage = "FTP 업로드 작업에 실패 했습니다.";
try{
success = setFtpLogin();
if(success){
if(ftpType.equals("regFile")){
setFtpMkDirs(ftpFilepath+"/"+destFilePath);
success = setFtpCd("/"+ftpFilepath+"/"+destFilePath);
if(success){
success = setFtpFileUpload(srcFilePath+"/", fileName);
}else{
printMessage = "경로이동 실패";
}
}else if(ftpType.equals("regFiles")){
setFtpMkDirs(ftpFilepath+"/"+destFilePath);
success = setFtpCd("/"+ftpFilepath+"/"+destFilePath);
if(success){
success = setFtpFileUploads(srcFilePath);
}else{
printMessage = "경로이동 실패";
}
}else if(ftpType.equals("delFile")){
success = setFtpCd(ftpFilepath+"/"+destFilePath);
if(success){
success = setFtpFileDelete(fileName);
if(!success){
printMessage = "FTP 파일 삭제에 실패하였습니다.";
}
}else{
printMessage = "경로이동 실패";
}
}else if(ftpType.equals("modFile")){
setFtpMkDirs(ftpFilepath+"/"+destFilePath);
success = setFtpCd(ftpFilepath+"/"+destFilePath);
if(success){
success = setFtpFileMove(srcFilePath, destFilePath);
if(!success){
printMessage = "FTP 파일 이동이 실패하였습니다.";
}
}else{
printMessage = "경로이동 실패";
}
}
}else{
printMessage = "ftp로그인 실패";
}
if(!success){
System.out.println("####################################");
System.out.println("####################################");
System.out.println("########"+printMessage+"############");
System.out.println("####################################");
System.out.println("####################################");
System.out.println("srcFilePath: "+srcFilePath);
System.out.println("fileName: "+fileName);
}
setLoginOut();
}catch(IOException e){
log.error("IGNORE:",e);
}finally{
if(ftpClient!=null)setDisconnection();
}
return success;
}
public boolean setFtpLogin() {
ftpClient = new FTPClient();
boolean success = false;
try{
setFtpConnect();
success = ftpClient.login(ftpId, ftpPw);
}catch (IOException ioe){
log.error("IGNORE:",ioe);
}
return success;
}
public boolean setFtpConnect() {
boolean success = false;
try{
ftpClient.connect(ftpServer, ftpPort);
// 연결 시도후, 성공했는지 응답 코드 확인
int code = ftpClient.getReplyCode();
FTPReply.isPositiveCompletion(code);
if(!FTPReply.isPositiveCompletion(code)) {
ftpClient.disconnect();
System.err.println("서버로부터 연결을 거부당했습니다");
success = false;
}else{
success = true;
}
}catch (IOException ioe){
log.error("IGNORE:",ioe);
if(ftpClient.isConnected()){
try{
ftpClient.disconnect();
}catch(IOException f){
System.out.println("FTP접속에 실패 했습니다.");
}
}
success = false;
}
return success;
}
public boolean setFtpMkDirs(String path) {
boolean success = false;
try {
String[] paths = path.split("/");
if(paths.length > 0){
for(int p=1; p<paths.length; p++){
if(!setFtpCd(paths[p])){
ftpClient.makeDirectory(paths[p]);
setFtpCd(paths[p]);
success = true;
}
}
}
}catch (IOException ioe){
log.error("IGNORE:",ioe);
}
return success;
}
public boolean setFtpCd(String path) {
boolean success = false;
try{
success = ftpClient.changeWorkingDirectory(path);
}catch (IOException ioe){
log.error("IGNORE:",ioe);
}
return success;
}
public boolean setFtpFileUpload(String path, String fileName) {
boolean success = false;
FileInputStream fis = null;
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
fileName= SeedUtils.setFilePathReplaceAll(fileName);
path= SeedUtils.setFilePathReplaceAll(path);
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
try{
File uploadFile = new File(path+fileName);
if(uploadFile.exists()){
fis = new FileInputStream(uploadFile);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
success = ftpClient.storeFile(uploadFile.getName(), fis);
}else{
System.out.println("해당 위치에 파일이 없습니다." + uploadFile.getPath());
success = false;
}
}catch(IOException ex){
log.error("IGNORE:",ex);
}finally{
if (fis != null) try{fis.close();}catch(IOException ex){}
}
return success;
}
public boolean setFtpFileUploads(String path) throws IOException {
boolean success = false;
FileInputStream fis = null;
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
path= SeedUtils.setFilePathReplaceAll(path);
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
try {
File file = new File(path);
String[] fileNameList = file.list();
if(fileNameList != null && fileNameList.length > 0){
for(int i = 0; i < fileNameList.length; i++) {
File uploadFile = new File(path+"/"+fileNameList[i]);
if(!uploadFile.isDirectory()){
fis = new FileInputStream(uploadFile);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
success = ftpClient.storeFile(uploadFile.getName(), fis);
}
}
}
}catch(IOException ex) {
log.error("IGNORE:",ex);
} finally {
if (fis != null) try{fis.close();}catch(IOException ex){}
}
return success;
}
public boolean setFtpFileDelete(String fileName){
boolean success = false;
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
fileName= SeedUtils.setFilePathReplaceAll(fileName);
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
try{
success = ftpClient.deleteFile(fileName);
}catch(IOException ex){
log.error("IGNORE:",ex);
}
return success;
}
public boolean setFtpFileMove(String srcFilePath, String fileName){
boolean success = false;
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
fileName= SeedUtils.setFilePathReplaceAll(fileName);
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
try{
ftpClient.rename(srcFilePath, fileName);
success = true;
}catch(IOException ex){
log.error("IGNORE:",ex);
}
return success;
}
public void setLoginOut() {
try{
ftpClient.logout();
}catch (IOException ioe){
log.error("IGNORE:",ioe);
}
}
public void setDisconnection() {
try{
ftpClient.disconnect();
}catch (IOException ioe){
log.error("IGNORE:",ioe);
}
}
public FTPClient getFtpClient() {
return ftpClient;
}
public void setFtpClient(FTPClient ftpClient) {
this.ftpClient = ftpClient;
}
public String getFtpServer() {
return ftpServer;
}
public void setFtpServer(String ftpServer) {
this.ftpServer = ftpServer;
}
public int getFtpPort() {
return ftpPort;
}
public void setFtpPort(int ftpPort) {
this.ftpPort = ftpPort;
}
public String getFtpId() {
return ftpId;
}
public void setFtpId(String ftpId) {
this.ftpId = ftpId;
}
public String getFtpPw() {
return ftpPw;
}
public void setFtpPw(String ftpPw) {
this.ftpPw = ftpPw;
}
public String getFtpFilepath() {
return ftpFilepath;
}
public void setFtpFilepath(String ftpFilepath) {
this.ftpFilepath = ftpFilepath;
}
}

View File

@ -0,0 +1,376 @@
package seed.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.SocketException;
import org.apache.log4j.Logger;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
public class SeedSftpUtil {
private Logger log = Logger.getLogger(this.getClass());
private Session ftpSession = null;
private Channel ftpChannel = null;
private ChannelSftp ftpChannelSftp = null;
private String ftpServer = "127.0.0.1";
private int ftpPort = 22;
private String ftpId = "";
private String ftpPw = "";
private String ftpFilepath = "";
/**
* sftp를 이용한 파일 업로드 작업을 하는 메소드
* 전달받은 파일 경로와 로컬의 파일경로 파일명에 해당하는 파일을 가지고 서버에 이동하는 작업을 진행함
* destFilePath는 마지막 / 빼고 전달 해줘야 한다. ex> /filedepth1/filedepth2/fileDirectory
* 문제 발생시 파일 업로드 실패 라는 문구와 경로 파일명을 출력 한다.
* @param String destFilePath 서버 경로
* @param String destFilePath 로컬 파일 경로
* @param String fileName 파일명
* */
public boolean setFtpFileSync(String destFilePath, String srcFilePath, String fileName, String ftpType){
boolean success = false;
String printMessage = "FTP 업로드 작업에 실패 했습니다.";
try{
success = setFtpLogin();
if(success){
if(ftpType.equals("regFile")){
setFtpMkDirs(ftpFilepath+"/"+destFilePath);
success = setFtpCd("/"+ftpFilepath+"/"+destFilePath);
if(success){
success = setFtpFileUpload(srcFilePath+"/", fileName);
}else{
printMessage = "경로이동 실패";
}
}else if(ftpType.equals("regFiles")){
setFtpMkDirs(ftpFilepath+"/"+destFilePath);
success = setFtpCd("/"+ftpFilepath+"/"+destFilePath);
if(success){
success = setFtpFileUploads(srcFilePath);
}else{
printMessage = "경로이동 실패";
}
}else if(ftpType.equals("delFile")){
success = setFtpCd(ftpFilepath+"/"+destFilePath);
if(success){
success = setFtpFileDelete(fileName);
if(!success){
printMessage = "FTP 파일 삭제에 실패하였습니다.";
}
}else{
printMessage = "경로이동 실패";
}
}else if(ftpType.equals("modFile")){
setFtpMkDirs(ftpFilepath+"/"+destFilePath);
success = setFtpCd(ftpFilepath+"/"+destFilePath);
if(success){
success = setFtpFileMove(srcFilePath, destFilePath);
if(!success){
printMessage = "FTP 파일 이동이 실패하였습니다.";
}
}else{
printMessage = "경로이동 실패";
}
}
}else{
printMessage = "ftp로그인 실패";
}
if(!success){
System.out.println("####################################");
System.out.println("####################################");
System.out.println("########"+printMessage+"############");
System.out.println("####################################");
System.out.println("####################################");
System.out.println("destFilePath: "+ftpFilepath+"/"+destFilePath);
System.out.println("fileName: "+fileName);
}
}catch(IOException e){
log.error("IGNORE:",e);
}finally{
if(ftpChannelSftp!=null)setFtpDisconnection();
}
return success;
}
public boolean setFtpLogin() {
boolean success = false;
JSch jsch = new JSch();
try{
ftpSession = jsch.getSession(ftpId, ftpServer, ftpPort);
ftpSession.setPassword(ftpPw);
java.util.Properties config = new java.util.Properties();
//rsa key 강제로 저장하는 옵션
//no로 안하는 경우 UnknownHostKey에러 발생 될수 있음
config.put("StrictHostKeyChecking", "no");
ftpSession.setConfig(config);
ftpSession.connect();
ftpChannel = ftpSession.openChannel("sftp");
ftpChannel.connect();
success = true;
}catch (JSchException e){
log.error("IGNORE:",e);
}
ftpChannelSftp = (ChannelSftp) ftpChannel;
return success;
}
public boolean setFtpMkDirs(String path) {
boolean success = false;
try{
String[] paths = path.split("/");
if(paths.length > 0){
for(int p=1; p<paths.length; p++){
if(!setFtpCd(paths[p])){
ftpChannelSftp.mkdir(paths[p]);
setFtpCd(paths[p]);
success = true;
}
}
}
}catch (SftpException ioe){
log.error("IGNORE:",ioe);
}
return success;
}
public boolean setFtpCd(String dir){
boolean success = true;
try{
ftpChannelSftp.cd(dir);
}catch(SftpException e){
log.error("IGNORE:",e);
success = false;
}
return success;
}
public boolean setFtpFileUpload(String path, String fileName) throws SocketException, IOException {
boolean success = false;
FileInputStream in = null;
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
fileName= SeedUtils.setFilePathReplaceAll(fileName);
path= SeedUtils.setFilePathReplaceAll(path);
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
try{
File uploadFile = new File(path+fileName);
if(uploadFile.exists()){
in = new FileInputStream(uploadFile);
ftpChannelSftp.put(in, fileName);
success = true;
}else{
System.out.println("해당 위치에 파일이 없습니다." + uploadFile.getPath());
success = false;
}
}catch (SftpException e){
success = false;
log.error("IGNORE:",e);
}catch (FileNotFoundException e){
success = false;
log.error("IGNORE:",e);
}finally{
if(in!=null)try {in.close();} catch (IOException e) {log.error("IGNORE:",e);}
}
return success;
}
public boolean setFtpFileUploads(String path) {
boolean success = false;
FileInputStream in = null;
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
path= SeedUtils.setFilePathReplaceAll(path);
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
try{
File file = new File(path);
String[] fileNameList = file.list();
if(fileNameList != null && fileNameList.length > 0){
for(int i = 0; i < fileNameList.length; i++) {
File uploadFile = new File(path+"/"+fileNameList[i]);
in = new FileInputStream(uploadFile);
ftpChannelSftp.put(in, fileNameList[i]);
success = true;
}
}
}catch (SftpException e){
success = false;
log.error("IGNORE:",e);
}catch (FileNotFoundException e){
success = false;
log.error("IGNORE:",e);
}catch (Exception e){
success = false;
log.error("IGNORE:",e);
}finally{
if(in!=null)try {in.close();} catch (IOException e) {log.error("IGNORE:",e);}
}
return success;
}
public boolean setFtpFileDelete(String fileName){
boolean success = false;
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
fileName= SeedUtils.setFilePathReplaceAll(fileName);
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
try{
ftpChannelSftp.rm(fileName);
success = true;
}catch(SftpException ex){
log.error("IGNORE:",ex);
}
return success;
}
public boolean setFtpFileMove(String srcFilePath, String fileName){
boolean success = false;
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
fileName= SeedUtils.setFilePathReplaceAll(fileName);
//*** 시큐어코딩 디렉토리 경로조작 ****************************//
try{
ftpChannelSftp.rename(srcFilePath, fileName);
success = true;
}catch(SftpException ex){
log.error("IGNORE:",ex);
}
return success;
}
public void setFtpDisconnection() {
ftpChannelSftp.quit();
if(ftpSession!=null){ftpSession.disconnect();}
}
public Session getFtpSession() {
return ftpSession;
}
public void setFtpSession(Session ftpSession) {
this.ftpSession = ftpSession;
}
public Channel getFtpChannel() {
return ftpChannel;
}
public void setFtpChannel(Channel ftpChannel) {
this.ftpChannel = ftpChannel;
}
public ChannelSftp getFtpChannelSftp() {
return ftpChannelSftp;
}
public void setFtpChannelSftp(ChannelSftp ftpChannelSftp) {
this.ftpChannelSftp = ftpChannelSftp;
}
public String getFtpServer() {
return ftpServer;
}
public void setFtpServer(String ftpServer) {
this.ftpServer = ftpServer;
}
public int getFtpPort() {
return ftpPort;
}
public void setFtpPort(int ftpPort) {
this.ftpPort = ftpPort;
}
public String getFtpId() {
return ftpId;
}
public void setFtpId(String ftpId) {
this.ftpId = ftpId;
}
public String getFtpPw() {
return ftpPw;
}
public void setFtpPw(String ftpPw) {
this.ftpPw = ftpPw;
}
public String getFtpFilepath() {
return ftpFilepath;
}
public void setFtpFilepath(String ftpFilepath) {
this.ftpFilepath = ftpFilepath;
}
}

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<jeus-web-dd xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
<context-path>/ebt</context-path>
<auto-reload>
<enable-reload>true</enable-reload>
<check-on-demand>true</check-on-demand>
</auto-reload>
</jeus-web-dd>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">
<context-root>/ebt</context-root>
</weblogic-web-app>