이준호 분쟁조정시스템 커밋

- hibernate 연동
 - 권한관리 개발중
This commit is contained in:
leejunho 2024-08-13 12:16:43 +09:00
parent e6202b11f5
commit 495238e333
265 changed files with 42139 additions and 3478 deletions

Binary file not shown.

177
pom.xml
View File

@ -87,13 +87,6 @@
<dependencies>
<!-- Solr -->
<!-- <dependency> -->
<!-- <groupId>org.apache.httpcomponents</groupId> -->
<!-- <artifactId>httpclient</artifactId> -->
<!-- <version>4.3.1</version> -->
<!-- </dependency> -->
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
@ -202,40 +195,6 @@
<version>5.1.31</version>
</dependency>
<!-- oracle 10g driver -->
<!-- <dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>14</version>
</dependency> -->
<!-- altibase driver -->
<!--
<dependency>
<groupId>altibase</groupId>
<artifactId>altibase-jdbc-driver</artifactId>
<version>5.1.3.18</version>
</dependency>
-->
<!-- tibero driver -->
<!--
<dependency>
<groupId>com.tmax.tibero</groupId>
<artifactId>tibero-jdbc</artifactId>
<version>3.0</version>
</dependency>
-->
<!-- inipay 가상계좌 -->
<dependency>
<groupId>INIPay</groupId>
<artifactId>INIPay</artifactId>
<version>1.3</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/INIpaySample_v1.3.jar</systemPath>
</dependency>
<!-- cubrid driver -->
<!-- https://mvnrepository.com/artifact/cubrid/cubrid-jdbc -->
<dependency>
@ -262,24 +221,6 @@
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/orai18n.jar</systemPath>
</dependency>
<!-- PG API와의 연계를 도와주는 라이브러리의 jar 파일 -->
<dependency>
<groupId>com.epapyrus.pdf</groupId>
<artifactId>pdf-gateway-client-api-http</artifactId>
<version>10.11.0.10-RELEASE</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/pdf-gateway-client-api-http-10.11.2.1-SNAPSHOT-with-libs.jar</systemPath>
</dependency>
<!-- SSO 연동 BandiSSOClient_oauth_1.5_v9 -->
<dependency>
<groupId>BandiSSOClient</groupId>
<artifactId>BandiSSOClient</artifactId>
<version>9</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/BandiSSOClient_oauth_1.5_v9.jar</systemPath>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
@ -400,84 +341,6 @@
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/simplecaptcha-1.2.1_exp.jar</systemPath>
</dependency>
<!-- sci 평가 siren24. 본인인증 -->
<dependency>
<groupId>sciSecuPCC</groupId>
<artifactId>sciSecuPCC</artifactId>
<version>2</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/sciSecuPCC.jar</systemPath>
</dependency>
<dependency>
<groupId>sciSecuPIN_v3</groupId>
<artifactId>sciSecuPIN_v3</artifactId>
<version>2</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/sciSecuIPIN_v3.jar</systemPath>
</dependency>
<!-- magicline 공동인증서 시작 -->
<dependency>
<groupId>jcaos</groupId>
<artifactId>jcaos</artifactId>
<version>1</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/jcaos-1.4.8.0.jar</systemPath>
</dependency>
<dependency>
<groupId>magice2e</groupId>
<artifactId>magice2e</artifactId>
<version>1</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/magice2e_1.0.1.6.jar</systemPath>
</dependency>
<dependency>
<groupId>MagicJCrypto</groupId>
<artifactId>MagicJCrypto</artifactId>
<version>2</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/MagicJCrypto-v2.0.0.0.jar</systemPath>
</dependency>
<dependency>
<groupId>magicdb_japi</groupId>
<artifactId>magicdb_japi</artifactId>
<version>1</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/magicdb_japi.jar</systemPath>
</dependency>
<dependency>
<groupId>magicline-e2e</groupId>
<artifactId>magicline-e2e</artifactId>
<version>4</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/magicline-e2e-4.0.0.0.jar</systemPath>
</dependency>
<dependency>
<groupId>ml4web_server</groupId>
<artifactId>ml4web_server</artifactId>
<version>4</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ml4web_server_4.5.0.7.jar</systemPath>
</dependency>
<!-- magicline 공동인증서 종료 -->
<!-- NiceID 본인인증 -->
<dependency>
<groupId>NiceID</groupId>
<artifactId>NiceID</artifactId>
<version>1</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/NiceID.jar</systemPath>
</dependency>
<!-- 디아모 모듈 -->
<dependency>
<groupId>damo</groupId>
@ -508,13 +371,6 @@
<version>1.0</version>
</dependency>
<!-- eGov 호환성 인증을 위한 패키지명 변경 작업하고, was 에러가 발생하여 추가함. -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>4.1.0.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
@ -542,13 +398,6 @@
<version>3.16</version>
</dependency>
<!-- <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
<scope>provided</scope>
</dependency> -->
<!-- 자동완성기능 gson 사용 -->
<dependency>
<groupId>com.google.code.gson</groupId>
@ -556,7 +405,6 @@
<version>2.8.1</version>
</dependency>
<!-- ITN 홈페이지 메일전송(네이버 SMTP 사용) -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
@ -569,16 +417,7 @@
<artifactId>guava</artifactId>
<version>30.0-jre</version>
</dependency>
<!-- html parse -->
<!--<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.0</version>
</dependency> -->
<!-- crpyto -->
<dependency>
<groupId>egovframework.rte</groupId>
@ -629,6 +468,22 @@
<artifactId>joda-time</artifactId>
<version>2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.8.Final</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>

View File

@ -1,125 +0,0 @@
package kcc.com.uss.ion.cert.web;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.CertUtil;
import kcc.let.utl.sim.service.EgovFileScrty;
@Controller
public class CertController {
//인증서 데이터 분석
@Resource(name = "certUtil")
private CertUtil certUtil;
private static final Logger logger = LoggerFactory.getLogger(CertController.class);
/////////////////////////////////////////////////////////////////////////////////////////
//
//
// USER
//
//
/**
* 인증서 결과 확인 페이지
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value= {
"/web/kccadr/cert/ExtractCertDataAjax.do"
})
public ModelAndView ExtractCertDataAjax(
HttpServletRequest request
, ModelAndView modelAndView, HttpSession session
) throws Exception {
//json 알림
modelAndView.setViewName("jsonView");
//SSOLoginVO 세션에서 membSeq 정보 취득
SsoLoginVO ssoLoginVO = (SsoLoginVO)session.getAttribute("SSOLoginVO");
if(ssoLoginVO == null) {
modelAndView.addObject("fail", "result");
modelAndView.addObject("로그인후 진행해 주세요.", "message");
return modelAndView;
}
String membSeq = ssoLoginVO.getMembSeq();
String sn = "";
//분석 결과 받기
Map<String, Object> retMap = null;
//System.out.println(retMap.toString());
//System.out.println(retMap.toString());
//1.서명 검증 결과값 - 0만 정상 나머지는 오류
String s_result = "";
//2.성공시 SN 번호 - SerialNumber
String s_SN = "";
//3.오류시 문구
String s_message = "";
try {
//0.분석 결과 받기
retMap = certUtil.certCheckAfterPopup(request);
//1.서명 검증 결과값 - 0만 정상 나머지는 오류
s_result = retMap.get("iResult").toString();
//2.성공시 SN 번호
s_SN = retMap.get("SN").toString();
//3.오류시 문구
s_message = retMap.get("sResult").toString();
sn = EgovFileScrty.encryptPassword(s_SN,membSeq);
}catch(Exception ex) {
System.out.println("Exception Occured!!!");
}
modelAndView.addObject("result", s_result);
modelAndView.addObject("SN", sn);
modelAndView.addObject("message", s_message);
return modelAndView;
}
/////////////////////////////////////////////////////////////////////////////////////////
//
//
// ADMIN
//
//
/////////////////////////////////////////////////////////
//
// private
//
//
}

View File

@ -1,7 +1,6 @@
package kcc.let.cop.bbs.web;
import java.io.OutputStream;
import java.security.SecureRandom;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@ -48,11 +47,6 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import org.springframework.web.servlet.support.RequestContextUtils;
import org.springmodules.validation.commons.DefaultBeanValidator;
import com.penta.scpdb.ScpDbAgent;
import com.sci.v2.pcc.secu.SciSecuManager;
import com.sci.v2.pcc.secu.hmac.SciHmac;
import NiceID.Check.CPClient;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
@ -1351,29 +1345,6 @@ public class EgovBBSManageController {
return "/web/cop/bbs/EgovNoticeList";
}
/*nice체크 오프너로 이용*/
@RequestMapping("/web/cop/bbs/niceCheckAjax.do")
public String niceCheckWeb(HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
@ModelAttribute("searchVO") BoardVO boardVO,
ModelMap model , HttpSession session
) throws Exception {
String niceMessage = niceCheck(request, session, boardVO).getNiceMessage();
System.out.println("niceMessage --- " + niceMessage) ;
if("".equals(niceMessage)) { //정상의 경우 세션 생성 오프너 close
UserVO tempVO = new UserVO();
tempVO.setMblDn(damoEnc(boardVO.getMblDn(), request)); //DI암호화
tempVO.setName(boardVO.getNiceNm());
request.getSession().setAttribute("userVO", tempVO);
}
return "web/cop/selfauth/niceCheckAjax";
}
/**
* (사용자)게시물 등록을 위한 등록페이지로 이동한다.(묻고답하기)
*
@ -1733,20 +1704,6 @@ public class EgovBBSManageController {
}
}
}
if(!"T".equals(bdVO.getSecretAt())){
if(!passChk){
if("".equals(boardVO.getPassword())) {
model.addAttribute("passChk", "01"); //패스워드 필요
return modelAndView;
}else {
//패스워드 복구화
if(!damoDec(bdVO.getPassword(), request).equals(boardVO.getPassword())) {
model.addAttribute("passChk", "02"); //패스워드가 틀림
return modelAndView;
}
}
}
}
}
}
@ -2119,159 +2076,6 @@ public class EgovBBSManageController {
@Value("#{globalSettings['Globals.selfauth.srvNo']}")
private String SELFAUTH_SRV_NO;
/**
* (사용자)본인인증 요청
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/selfauth/selfauth.do")
public String selfauth(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
//java.util.Random ran = new Random();
SecureRandom ran = new SecureRandom();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
String certGb = "H";
String addVar = "";
String reqNum = day + randomStr; // //reqNum은 최대 40byte 까지 사용 가능
String certDate=day;
String exVar = "0000000000000000"; // 복호화용 임시필드
request.getSession().setAttribute("reqNum", reqNum); // 결과값 복호화시 필요
//01. 암호화 모듈 선언
SciSecuManager seed = new SciSecuManager();
//02. 1차 암호화
String encStr = "";
String reqInfo = SELFAUTH_SITE_ID+"^"+SELFAUTH_SRV_NO+"^"+reqNum+"^"+certDate+"^"+certGb+"^"+addVar+"^"+exVar; // 데이터 암호화
encStr = seed.getEncPublic(reqInfo);
//03. 위변조 검증 생성
String hmacMsg = SciHmac.HMacEncriptPublic(encStr);
//03. 2차 암호화
reqInfo = seed.getEncPublic(encStr + "^" + hmacMsg + "^" + "0000000000000000"); //2차암호화
request.getSession().setAttribute("reqInfo", reqInfo); // 본인확인 요청 정보
request.getSession().setAttribute("SITE_URL", SITE_URL); // 사이트 URL
return "web/cop/selfauth/selfauth";
}
/**
* (사용자)본인인증 결과 리턴
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/selfauth/resultSeed.do")
public String resultSeed(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
String retInfo = request.getParameter("retInfo").trim();
String cookiereqNum = (String)request.getSession().getAttribute("reqNum");
//복화화용 변수
String encPara = "";
String encMsg = "";
String msgChk = "N";
// 1. 암호화 모듈 (jar) Loading
SciSecuManager sciSecuMg = new SciSecuManager();
//쿠키에서 생성한 값을 Key로 생성 한다.
retInfo = sciSecuMg.getDec(retInfo, cookiereqNum);
// 2.1차 파싱---------------------------------------------------------------
String[] aRetInfo1 = retInfo.split("\\^");
encPara = aRetInfo1[0]; //암호화된 통합 파라미터
encMsg = aRetInfo1[1]; //암호화된 통합 파라미터의 Hash값
String encMsg2 = sciSecuMg.getMsg(encPara);
// 3./변조 검증 ---------------------------------------------------------------
if(encMsg2.equals(encMsg)) msgChk="Y";
if(msgChk.equals("N")) {
// 비정상 접근 처리
}
retInfo = sciSecuMg.getDec(encPara, cookiereqNum);
String[] aRetInfo = retInfo.split("\\^");
String name = aRetInfo[0]; //성명
// String birYMD = aRetInfo[1]; //생년월일
// String sex = aRetInfo[2]; //성별
// String fgnGbn = aRetInfo[3]; //내외국인 구분값
String di = aRetInfo[4]; //DI
// String ci1 = aRetInfo[5]; //CI
// String ci2 = aRetInfo[6]; //CI
// String civersion = aRetInfo[7]; //CI Version
// String reqNum = aRetInfo[8]; // 본인확인 요청번호
// String result = aRetInfo[9]; // 본인확인결과 (Y/N)
// String certGb = aRetInfo[10]; // 인증수단
// String cellNo = aRetInfo[11]; // 핸드폰 번호
// String cellCorp = aRetInfo[12]; // 이동통신사
// String certDate = aRetInfo[13]; // 검증시간
// String addVar = aRetInfo[14];
// 사용자 세션생성
UserVO userVO = new UserVO();
userVO.setName(name);
userVO.setMblDn(di);
request.getSession().setAttribute("userVO", userVO);
String url = (String)request.getSession().getAttribute("url");
BoardVO searchVO = (BoardVO)request.getSession().getAttribute("searchVO");
model.addAttribute("searchVO", searchVO);
model.addAttribute("url", url);
return "web/cop/selfauth/resultSeed";
}
/**
* (사용자)본인인증 결과 리턴 Sample
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/bbs/pccPopSeed.do")
public String pccPopSeed(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
return "web/cop/selfauth/pcc_V3_popup_seed";
}
/**
* (사용자)본인인증 결과 Sample
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/cop/bbs/pccResult.do")
public String pccResult(HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes)throws Exception {
return "web/cop/selfauth/pcc_V3_result_seed";
}
/**
* 게시판 공통코드
* @param model
@ -3806,180 +3610,4 @@ public class EgovBBSManageController {
}
return day ;
}
public BoardVO niceCheck(HttpServletRequest request, HttpSession session, BoardVO boardVO) {
CPClient niceCheck = new CPClient();
String sEncodeData = requestReplace(request.getParameter("EncodeData"), "encodeData");
String sSiteCode = "BS933"; // NICE로부터 부여받은 사이트 코드
String sSitePassword = "2CU5kY9wpppk"; // NICE로부터 부여받은 사이트 패스워드
String sCipherTime = ""; // 복호화한 시간
String sRequestNumber = ""; // 요청 번호
String sResponseNumber = ""; // 인증 고유번호
String sAuthType = ""; // 인증 수단
String sName = ""; // 성명
String sDupInfo = ""; // 중복가입 확인값 (DI_64 byte)
String sConnInfo = ""; // 연계정보 확인값 (CI_88 byte)
String sBirthDate = ""; // 생년월일(YYYYMMDD)
String sGender = ""; // 성별
String sNationalInfo = ""; // /외국인정보 (개발가이드 참조)
String sMobileNo = ""; // 휴대폰번호
String sMobileCo = ""; // 통신사
String sMessage = "";
String sPlainData = "";
int iReturn = niceCheck.fnDecode(sSiteCode, sSitePassword, sEncodeData);
if( iReturn == 0 )
{
sPlainData = niceCheck.getPlainData();
sCipherTime = niceCheck.getCipherDateTime();
// 데이타를 추출합니다.
java.util.HashMap mapresult = niceCheck.fnParse(sPlainData);
sRequestNumber = (String)mapresult.get("REQ_SEQ");
sResponseNumber = (String)mapresult.get("RES_SEQ");
sAuthType = (String)mapresult.get("AUTH_TYPE");
sName = (String)mapresult.get("NAME");
//sName = (String)mapresult.get("UTF8_NAME"); //charset utf8 사용시 주석 해제 사용
sBirthDate = (String)mapresult.get("BIRTHDATE");
sGender = (String)mapresult.get("GENDER");
sNationalInfo = (String)mapresult.get("NATIONALINFO");
sDupInfo = (String)mapresult.get("DI");
sConnInfo = (String)mapresult.get("CI");
sMobileNo = (String)mapresult.get("MOBILE_NO");
sMobileCo = (String)mapresult.get("MOBILE_CO");
String session_sRequestNumber = (String)session.getAttribute("REQ_SEQ");
if(!sRequestNumber.equals(session_sRequestNumber))
{
sMessage = "세션값 불일치 오류입니다.";
sResponseNumber = "";
sAuthType = "";
}
}
else if( iReturn == -1)
{
sMessage = "복호화 시스템 오류입니다.";
}
else if( iReturn == -4)
{
sMessage = "복호화 처리 오류입니다.";
}
else if( iReturn == -5)
{
sMessage = "복호화 해쉬 오류입니다.";
}
else if( iReturn == -6)
{
sMessage = "복호화 데이터 오류입니다.";
}
else if( iReturn == -9)
{
sMessage = "입력 데이터 오류입니다.";
}
else if( iReturn == -12)
{
sMessage = "사이트 패스워드 오류입니다.";
}
else
{
sMessage = "알수 없는 에러 입니다. iReturn : " + iReturn;
}
try {
boardVO.setNiceMessage(sMessage);
boardVO.setNiceNm(sName);
boardVO.setMblDn(sDupInfo);
}catch(Exception e) {
System.out.println("niceCheck Exception Error");
}
return boardVO;
}
//나이스 인증
public String requestReplace (String paramValue, String gubun) {
String result = "";
if (paramValue != null) {
paramValue = paramValue.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
paramValue = paramValue.replaceAll("\\*", "");
paramValue = paramValue.replaceAll("\\?", "");
paramValue = paramValue.replaceAll("\\[", "");
paramValue = paramValue.replaceAll("\\{", "");
paramValue = paramValue.replaceAll("\\(", "");
paramValue = paramValue.replaceAll("\\)", "");
paramValue = paramValue.replaceAll("\\^", "");
paramValue = paramValue.replaceAll("\\$", "");
paramValue = paramValue.replaceAll("'", "");
paramValue = paramValue.replaceAll("@", "");
paramValue = paramValue.replaceAll("%", "");
paramValue = paramValue.replaceAll(";", "");
paramValue = paramValue.replaceAll(":", "");
paramValue = paramValue.replaceAll("-", "");
paramValue = paramValue.replaceAll("#", "");
paramValue = paramValue.replaceAll("--", "");
paramValue = paramValue.replaceAll("-", "");
paramValue = paramValue.replaceAll(",", "");
if(gubun != "encodeData"){
paramValue = paramValue.replaceAll("\\+", "");
paramValue = paramValue.replaceAll("/", "");
paramValue = paramValue.replaceAll("=", "");
}
result = paramValue;
}
return result;
}
public String damoDec(String strEnc, HttpServletRequest request) {
//DI 복구화
System.out.println("-----damoDec---request.getRequestURL().toString()-----------" + request.getRequestURL().toString()+"-----") ;
String iniFilePath = "/usr/local/tomcat/damo/scpdb_agent.ini"; //실서버
if(request.getRequestURL().toString().contains("test.kofons.or.kr")){ //로컬
iniFilePath = "C:\\damo\\scpdb_agent.ini";
}else if(request.getRequestURL().toString().contains("119.193.215.98")) { //테스트
iniFilePath = "/usr/local/tomcat_kofons/damo/scpdb_agent.ini";
}
System.out.println("iniFilePath --" + iniFilePath + "---");
ScpDbAgent agt = new ScpDbAgent();
String strDec = "";
try {
strDec = agt.ScpDecB64( iniFilePath, "KEY1", strEnc);
}catch(Exception e) {
System.out.println("damoDec Exception Error");
}
return strDec ;
}
public String damoEnc(String strDec, HttpServletRequest request) {
//DI 암호화
System.out.println("-----damoEnc---request.getRequestURL().toString()-----------" + request.getRequestURL().toString()+"-----") ;
String iniFilePath = "/usr/local/tomcat/damo/scpdb_agent.ini"; //실서버
if(request.getRequestURL().toString().contains("test.kofons.or.kr")){ //로컬
iniFilePath = "C:\\damo\\scpdb_agent.ini";
}else if(request.getRequestURL().toString().contains("119.193.215.98")) { //테스트
iniFilePath = "/usr/local/tomcat_kofons/damo/scpdb_agent.ini";
}
System.out.println("iniFilePath --" + iniFilePath + "---");
ScpDbAgent agt = new ScpDbAgent();
String strEnc = "";
try {
strEnc = agt.ScpEncB64( iniFilePath, "KEY1", strDec);
}catch(Exception e) {
System.out.println("damoEnc Exception Error");
}
return strEnc ;
}
}

View File

@ -49,7 +49,6 @@ import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import org.springframework.web.servlet.support.RequestContextUtils;
import com.bandi.oauth.BandiSSOAgent;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@ -61,7 +60,6 @@ import kcc.com.cmm.EgovMessageSource;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.captcha.CaptchaUtil;
import kcc.com.cmm.spring.data.util.ProfileUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.cmm.util.WebUtil;
import kcc.let.sym.log.clg.service.EgovLoginLogService;
import kcc.let.sym.log.clg.service.LoginLog;
@ -1527,10 +1525,10 @@ public class EgovLoginController {
|| !"USRCNFRM_00000002542".equals(ssoLoginVO.getMembId()) || !"USRCNFRM_00000002541".equals(ssoLoginVO.getMembId()) || !"USRCNFRM_00000002540".equals(ssoLoginVO.getMembId())
|| !"USRCNFRM_00000002533".equals(ssoLoginVO.getMembId())) {
/*BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);*/
BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope());
// sso 로그아웃
agent.logout(ssoLoginVO.getAccess_token(), client_ip);
// BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope());
//
// // sso 로그아웃
// agent.logout(ssoLoginVO.getAccess_token(), client_ip);
}
}
}

View File

@ -1,7 +1,6 @@
package kcc.let.uat.uia.web;
import java.io.IOException;
import java.util.HashMap;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
@ -9,74 +8,10 @@ import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
import org.springframework.stereotype.Component;
import com.bandi.oauth.BandiSSOAgent;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import kcc.com.cmm.LoginVO;
import kcc.let.uat.uia.service.SsoLoginVO;
/*public class SSOValid {
// agent 관련 설정
private static String ssoUri = "https://devsso.copyright.or.kr/oauth2/token.do"; // 개발서버 URL
private static String clientId = "해당 시스템의 클라이언트 아이디";
private static String clientId = "30354835c3684ff79e7fb1bfd3a768f6";
private static String clientSecret = "해당 시스템의 클라이언트 시크릿";
private static String clientSecret = "1ueil5ee05wr0t1gjy1ppt212";
private static String scope = "http://sso.copyright.or.kr"; // 고정
public static void main(String[] args) throws Exception {
// SSO 로그인 연계 "BandiSSOAgent 생성" 참조
BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);
// 사용자 접속 ip
String client_ip = "127.0.0.1";
// 세션에서 취득한 제어 토큰
String access_token = "95i90zzd57dqvefxx37732fjifkwm00k7piajty0iwq7a....";
//==================================
// SSO 유효성 검증 (Intercepter에서 매번 실행)
//==================================
// SSO 로그인 연계 "tokenValid 함수 요청" "tokenValid 함수 결과" 참조
sso 연동 tokenValid 예제
System.out.println("------------------------인터셉터 test입니다---------------------------");
HashMap<String, String> tokenValid = agent.tokenValid(access_token, client_ip);
전자조정 intercepter에 포함될 내용
// ssoLoginVO = (SsoLoginVO)session.getAttribute("SsoLoginVO");
// HashMap<String, String> tokenValid = agent.tokenValid(ssoLoginVO.getAccess_token, client_ip);
if(tokenValid.get("error").equals("0000") == false) {
// 토큰이 유효하지 않는 경우
// 세션 로그아웃 처리
}
//==================================
// SSO 로그 아웃
//==================================
// SSO 로그인 연계 "logout 함수요청" 참조
agent.logout(access_token, client_ip);
// 세션 로그아웃
}
}*/
@Component
public class SSOValid implements Filter {
@ -125,89 +60,6 @@ public class SSOValid implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 사용자 접속 ip
// agent.getLocalServerIp(request);
String client_ip = "127.0.0.1";
//filter에서 세션을 받아오기위해 ServletRequest -> HttpServletRequest 형변환
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
//현재 세션 정보 받아오기
HttpSession session = req.getSession();
//SsoLoginVO 세션 정보 취득
SsoLoginVO ssoLoginVO = new SsoLoginVO();
ssoLoginVO = (SsoLoginVO)session.getAttribute("SSOLoginVO");
try {
if(ssoLoginVO != null) {
if("N".equals(ssoLoginVO.getOtherUser())){
//LoginVO 세션 정보 취득
// LoginVO loginVO = new LoginVO();
// loginVO = (LoginVO)session.getAttribute("LoginVO");
//SSO 로그인 연계 BandiSSOAgent 생성
BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);
HashMap<String, String> tokenValid = agent.tokenValid(ssoLoginVO.getAccess_token(), client_ip);
if(tokenValid.get("error").equals("0000")) {
// if(loginVO == null) {
// HttpServletResponse httpServletResponse = (HttpServletResponse) response;
// httpServletResponse.sendRedirect("/web/user/login/actionSecurityLogin.do");
// }
}else {
//SSO 로그아웃 요청
agent.logout(ssoLoginVO.getAccess_token(), client_ip);
if(session.getAttribute("SSOLoginVO") != null) {
session.removeAttribute("SSOLoginVO");
}
/*Spring Security 로그아웃*/
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (auth != null) {
new SecurityContextLogoutHandler().logout(req, resp, auth);
}
//LoginVO 세션 remove
if(session.getAttribute("LoginVO") != null) {
session.removeAttribute("LoginVO");
}
session.setAttribute("SsoLogout", "Y");
}
}
}else {
//LoginVO 세션 정보 취득
LoginVO loginVO = new LoginVO();
loginVO = (LoginVO)session.getAttribute("LoginVO");
if(loginVO != null) {
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
if(! ("ROLE_ADMIN".equals(user.getAuthority())
|| "ROLE_ADR_ADMIN".equals(user.getAuthority()) )
){
/*Spring Security 로그아웃*/
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (auth != null) {
new SecurityContextLogoutHandler().logout(req, resp, auth);
}
//LoginVO 세션 remove
if(session.getAttribute("LoginVO") != null) {
session.removeAttribute("LoginVO");
}
session.setAttribute("SsoLogout", "Y");
}
}
}
}catch(Exception e) {
System.out.println("Exception Occured!!!");
}
chain.doFilter(request, response);
}

View File

@ -1,22 +1,11 @@
package kcc.let.uat.uia.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.bandi.oauth.BandiSSOAgent;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
public class SsoLogin {
@ -37,121 +26,7 @@ public class SsoLogin {
private static String type = "1";
public static String SsoLogin(String Id, String Password, HttpServletRequest request) throws Exception {
SsoAgentInfo ssoagentinfo = new SsoAgentInfo();
// SSO 로그인 연계 "BandiSSOAgent 생성" 참조
/*BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);*/
BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope());
// 사용자 접속 ip
// agent.getLocalServerIp(request);
String client_ip = "127.0.0.1";
// https://devoneid.copyright.or.kr 에서 가입함 ID/PW 입력
/*String user_id = "itn0801@gmail.com";*/ //itntest123$
String user_id = Id;
String user_pwd = Password;
SsoLoginVO ssoLoginVO = new SsoLoginVO();
// SSO 로그인 연계 "accessToken 함수 요청" "accessToken 함수 결과" 참조
HashMap<String, String> login = agent.accessToken(user_id, user_pwd, client_ip, type);
/*에러코드*/
String error = login.get("error");
/*에러 메시지*/
String error_message = login.get("error_message");
/*에러 콘솔 로거*/
LOGGER.debug("error : ", error);
LOGGER.debug("error_message : ", error_message);
// try {
if(login.get("error").equals("0000") || login.get("error").equals("VL-3130")) {
String access_token = login.get("access_token");
String refresh_token = login.get("refresh_token");
/*쿠키유지시간*/
String expires_in = login.get("expires_in");
// userInfo의 type은 무조건 1을 입력한다.
// SSO 로그인 연계 "userInfo 함수 요청" "userInfo 함수 결과" 참조
HashMap<String, String> userInfo = agent.userInfo(access_token, client_ip, type);
//법인회원 정보 처리
if(userInfo.get("corpUserInfo") != null) {
List<Map<String, String>> info = new Gson().fromJson(String.valueOf(userInfo.get("corpUserInfo")),
new TypeToken<List<Map<String, Object>>>(){}.getType());
for (Map<String, String> userInfo2 : info) {
userInfo.put("compAddr", userInfo2.get("compAddr"));
userInfo.put("mangCelnum", userInfo2.get("mangCelnum"));
userInfo.put("membEmail", userInfo2.get("membEmail"));
userInfo.put("membType", userInfo2.get("membType"));
userInfo.put("membDivis", userInfo2.get("membDivis"));
userInfo.put("compZipcd", userInfo2.get("compZipcd"));
userInfo.put("compDetAddr", userInfo2.get("compDetAddr"));
userInfo.put("membBuisnRegnum", userInfo2.get("membBuisnRegnum"));
userInfo.put("membCorpnum", userInfo2.get("membCorpnum"));
userInfo.put("mangName", userInfo2.get("mangName"));
}
}
userInfo.remove("corpUserInfo");
//map -> vo 매칭
ObjectMapper test = new ObjectMapper();
ssoLoginVO = test.convertValue(userInfo, SsoLoginVO.class);
//통합회원 SSO연동 유효성 체크를 위한 토큰값 set
ssoLoginVO.setAccess_token(access_token);
ssoLoginVO.setRefresh_token(refresh_token);
if(userInfo.get("error").equals("0000")) {
// "userInfo 함수 결과" 필드를 기준으로 맵핑
/*Object[] keys = (Object[]) userInfo.keySet().toArray();
for(int i=0;i<userInfo.size();i++) {
System.out.println("["+keys[i]+"] "+userInfo.get(keys[i]));
}*/
// 세션에 access_token, refresh_token 저장
// 통합회원 연동시 유효성 검증을 위해 필요
/*SsoLoginVO생성 해서 SsoLoginVo를 세션에 저장*/
/* 컨트롤러에 미리 선언 -> HttpServletRequest request*/
HttpSession session = request.getSession();
session.setMaxInactiveInterval(Integer.parseInt(expires_in));
//SSOLoginVO세션 생성
ssoLoginVO.setOtherUser("N");
session.setAttribute("SSOLoginVO", ssoLoginVO);
// **중요(필요시)
// 연동 완료시 저장한 개별사이트의 통함회원 아이디와 SSO로그인시 취득한 통합회원 아이디가 다른경우에는 개별사이트의 통합회원 아이디를 SSO로그인시 취득한 통합외원 아이디로 갱신 필요
return "sucess";
} else {
// 사용자 정보 조회 오류
System.out.println("[getUserInfo error] "+userInfo.get("error"));
System.out.println("[getUserInfo error_message] "+userInfo.get("error_message"));
return "fail";
}
} else {
// 로그인 실패
// 사용자 정보 조회 오류
System.out.println("[login error] "+login.get("error"));
System.out.println("[login error_message] "+login.get("error_message"));
return "fail";
}
// } catch (Exception e) {
// e.getStackTrace();
// throw new BaseException("시퀀스관리 조회 오류") ;
// }
// return "sucess";
return "";
}
}

View File

@ -1,22 +1,11 @@
package kcc.let.uat.uia.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.bandi.oauth.BandiSSOAgent;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
public class SsoTokenLogin {
@ -37,99 +26,7 @@ public class SsoTokenLogin {
private static String type = "1";
public static String SsoTokenLogin(String access_token, String refresh_token, HttpServletRequest request) throws Exception {
SsoAgentInfo ssoagentinfo = new SsoAgentInfo();
// SSO 로그인 연계 "BandiSSOAgent 생성" 참조
/*BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);*/
BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope());
// 사용자 접속 ip
// agent.getLocalServerIp(request);
String client_ip = "127.0.0.1";
SsoLoginVO ssoLoginVO = new SsoLoginVO();
// try {
HashMap<String, String> tokenValid = agent.tokenValid(access_token, client_ip);
if(tokenValid.get("error").equals("0000")) {
/*쿠키유지시간*/
// String expires_in = login.get("expires_in");
// userInfo의 type은 무조건 1을 입력한다.
// SSO 로그인 연계 "userInfo 함수 요청" "userInfo 함수 결과" 참조
HashMap<String, String> userInfo = agent.userInfo(access_token, client_ip, type);
//법인회원 정보 처리
if(userInfo.get("corpUserInfo") != null) {
List<Map<String, String>> info = new Gson().fromJson(String.valueOf(userInfo.get("corpUserInfo")),
new TypeToken<List<Map<String, Object>>>(){}.getType());
for (Map<String, String> userInfo2 : info) {
userInfo.put("compAddr", userInfo2.get("compAddr"));
userInfo.put("mangCelnum", userInfo2.get("mangCelnum"));
userInfo.put("membEmail", userInfo2.get("membEmail"));
userInfo.put("membType", userInfo2.get("membType"));
userInfo.put("membDivis", userInfo2.get("membDivis"));
userInfo.put("compZipcd", userInfo2.get("compZipcd"));
userInfo.put("compDetAddr", userInfo2.get("compDetAddr"));
userInfo.put("membBuisnRegnum", userInfo2.get("membBuisnRegnum"));
userInfo.put("membCorpnum", userInfo2.get("membCorpnum"));
userInfo.put("mangName", userInfo2.get("mangName"));
}
}
userInfo.remove("corpUserInfo");
//map -> vo 매칭
ObjectMapper test = new ObjectMapper();
ssoLoginVO = test.convertValue(userInfo, SsoLoginVO.class);
//통합회원 SSO연동 유효성 체크를 위한 토큰값 set
ssoLoginVO.setAccess_token(access_token);
ssoLoginVO.setRefresh_token(refresh_token);
if(userInfo.get("error").equals("0000")) {
// "userInfo 함수 결과" 필드를 기준으로 맵핑
Object[] keys = (Object[]) userInfo.keySet().toArray();
for(int i=0;i<userInfo.size();i++) {
System.out.println("["+keys+"] "+userInfo.get(keys[i]));
}
// 세션에 access_token, refresh_token 저장
// 통합회원 연동시 유효성 검증을 위해 필요
/*SsoLoginVO생성 해서 SsoLoginVo를 세션에 저장*/
/* 컨트롤러에 미리 선언 -> HttpServletRequest request*/
HttpSession session = request.getSession();
session.setMaxInactiveInterval(Integer.parseInt("7200"));
//SSOLoginVO세션 생성
ssoLoginVO.setOtherUser("N");
session.setAttribute("SSOLoginVO", ssoLoginVO);
// **중요(필요시)
// 연동 완료시 저장한 개별사이트의 통함회원 아이디와 SSO로그인시 취득한 통합회원 아이디가 다른경우에는 개별사이트의 통합회원 아이디를 SSO로그인시 취득한 통합외원 아이디로 갱신 필요
return "sucess";
} else {
// 사용자 정보 조회 오류
System.out.println("[getUserInfo error] "+userInfo.get("error"));
System.out.println("[getUserInfo error_message] "+userInfo.get("error_message"));
return "fail";
}
} else {
// 로그인 실패
// 사용자 정보 조회 오류
// System.out.println("[login error] "+login.get("error"));
// System.out.println("[login error_message] "+login.get("error_message"));
return "fail";
}
// } catch (Exception e) {
// System.out.println("Exception Error");
// }
// return "sucess";
return "";
}
}

View File

@ -1,276 +0,0 @@
package kcc.let.utl.fcc.service;
import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.dreamsecurity.JCAOSProvider;
import com.dreamsecurity.jcaos.x509.X509Certificate;
import com.dreamsecurity.magicline.JCaosCheckCert;
/**
*
* egov crypto 대한 Util 클래스
* @author 사업기술본부 조용준(ITN)
* @since 2021.07.16
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2021.07.16 조용준 최초 생성 *
*
* </pre>
*/
@Component("certUtil")
public class CertUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(CertUtil.class);
/** 암호화서비스 */
/*
@Resource(name = "egovEnvCryptoService")
EgovEnvCryptoService cryptoService;
@Resource(name = "egovEnvPasswordEncoderService")
EgovPasswordEncoder egovPasswordEncoder;
*/
/**
* 인증서 서버 결과값 처리
*
* @param certCheckAfterPopup
*
*/
public Map<String, Object> certCheckAfterPopup (
HttpServletRequest request
) throws Exception{
return this.p_certCheckAfterPopup(request);
}
///////////////////////////////////////////////////////////
//
// private
//
//
/**
* 인증서 서버 결과값 처리
*
* @param certCheckAfterPopup
*
*/
private Map<String, Object> p_certCheckAfterPopup (
HttpServletRequest request
) throws Exception{
LOGGER.debug("CertUtil.p_certCheckAfterPopup()");
Map<String, Object> retMap = new HashMap<String, Object>();
// 서명 검증 셈플
// 클라이언트에서 받은 서명 데이타를 검증
String sResult = "";
String sSignData = null;
String vidRandom = null;
JCaosCheckCert jcaosCheck = null;
//String sIDN = null;
//String sSourceText = null;
//String textCheck = "";
//String sPolicy = "";
//String sidentifyData = "";
// 서명 데이타를 가져옴
// 셈플에서는 서명 값을 Post Data SignData 넣어서 보낸다고 간주 코딩 한다
sSignData = request.getParameter("signedData");
try {
sSignData = URLDecoder.decode(sSignData, "utf-8");
} catch (UnsupportedEncodingException e1) {
System.out.println("UnsupportedEncodingException Occured!!!");
}
vidRandom = request.getParameter("vidRandom");
try {
vidRandom = URLDecoder.decode(vidRandom, "utf-8");
} catch (UnsupportedEncodingException e1) {
System.out.println("UnsupportedEncodingException Occured!!!");
}
String idn = request.getParameter("idn");
sResult = sResult+"- SignData ["+sSignData+"]<br>\n"+"- VIDData ["+vidRandom+"]<br>\n";
// 서명 데이타가 있을때 서명 검증
if (sSignData != null && sSignData.length() > 0){
try{
// API 초기화 (한번만 실행)
JCAOSProvider.installProvider(false);
// 라이센스 경로 설정
//com.dreamsecurity.jcaos.Environment.setLicensePath("C:/Tomcat 5.5/webapps/MagicLine4/WEB-INF/lib");
jcaosCheck = new JCaosCheckCert();
// 서버가 알고 잇는 주민등록 번호를 등록한다
jcaosCheck.setVIDRandom(idn, vidRandom);
sResult = sResult+"<br>\n- 인증서 검증 시작<br>\n";
// 서명 검증
// 검증후 원문이 리턴됨
int iResult = jcaosCheck.checkCert(sSignData);
/*
- JCaosCheckCert.checkCert 에러코드는 하기와 같습니다.
JCaosCheckCert.STAT_OK // 성공
JCaosCheckCert.STAT_ERR_WRONGCERT // 정상적인 인증서가 아님
JCaosCheckCert.STAT_ERR_ETC // 기타 오류
JCaosCheckCert.STAT_ERR_VerifyException // 서명 검증 실패
JCaosCheckCert.STAT_ERR_CertificateNotYetValidException // 인증서 유효기간 검증 오류
JCaosCheckCert.STAT_ERR_CertificateExpiredException // 인증서 만료
JCaosCheckCert.STAT_ERR_ObtainCertPathException // 인증서 경로 구축 실패
JCaosCheckCert.STAT_ERR_BuildCertPathException // 인증서 경로 구축 실패
JCaosCheckCert.STAT_ERR_TrustRootException // 신뢰할수 없는 최상위 인증서
JCaosCheckCert.STAT_ERR_ValidateCertPathException // 인증서 경로 검증 실패
JCaosCheckCert.STAT_ERR_RevokedCertException // 폐지된 인증서
JCaosCheckCert.STAT_ERR_RevocationCheckException // CRL 검증 실패
JCaosCheckCert.STAT_ERR_NotExistSignerCertException // 서명자 인증서 누락
JCaosCheckCert.STAT_ERR_IOException // IOException
JCaosCheckCert.STAT_ERR_FileNotFoundException // FileNotFoundException
JCaosCheckCert.STAT_ERR_NoSuchAlgorithmException // NoSuchAlgorithmException
JCaosCheckCert.STAT_ERR_NoSuchProviderException // NoSuchProviderException
JCaosCheckCert.STAT_ERR_ParsingException // ParsingException
JCaosCheckCert.STAT_ERR_IdentifyException // 본인확인 실패
*/
if (iResult != 0){
// 오류 발생시 오류를 구분
String sCertResult = null;
switch(iResult){
case JCaosCheckCert.STAT_ERR_WRONGCERT : // 정상적인 인증서가 아님
sCertResult = "서명에 사용된 인증서가 정상적인 인증서가 아닙니다.";
break;
case JCaosCheckCert.STAT_ERR_RevocationCheckException : // CRL 검증 실패
case JCaosCheckCert.STAT_ERR_NotExistSignerCertException : // 서명자 인증서 누락
case JCaosCheckCert.STAT_ERR_IOException : // IOException
case JCaosCheckCert.STAT_ERR_FileNotFoundException : // FileNotFoundException
case JCaosCheckCert.STAT_ERR_ETC : // 기타 오류
case JCaosCheckCert.STAT_ERR_BuildCertPathException : // 인증서 경로 구축 실패
case JCaosCheckCert.STAT_ERR_ObtainCertPathException : // 인증서 경로 구축 실패
case JCaosCheckCert.STAT_ERR_ValidateCertPathException : // 인증서 경로 검증 실패
case JCaosCheckCert.STAT_ERR_TrustRootException : // 신뢰할수 없는 최상위 인증서
sCertResult = "서명 인증서 검증 오류 ["+iResult+"].";
break;
case JCaosCheckCert.STAT_ERR_VerifyException : // 서명 검증 실패
sCertResult = "서명 검증 실패";
break;
case JCaosCheckCert.STAT_ERR_CertificateNotYetValidException : // 인증서 유효기간 검증 오류
sCertResult = "서명 인증서 유효기간 검증 오류";
break;
case JCaosCheckCert.STAT_ERR_CertificateExpiredException : // 인증서 만료
sCertResult = "만료된 인증서 ";
break;
case JCaosCheckCert.STAT_ERR_RevokedCertException : // 폐지된 인증서
sCertResult = "폐지된 인증서";
break;
default:
sCertResult = "기타오류 ["+iResult+"]";
break;
}
sResult = "<br>\n- "+sCertResult+" \n[" + jcaosCheck.getLastErr() +"]<br>\n\n";
// 오류 발생시 오류를 구분
//retval - 1
retMap.put("SN", "");
retMap.put("sResult", sCertResult);
}else{
// 서명 검증에 성공
sResult = sResult+ "- 인증서 검증 성공<br>\n";
// 서명에 사용된 인증서를 가져온다
X509Certificate cert = jcaosCheck.getUserCert();
String signerDN = cert.getSubjectDN().getName(); // 인증서 DN
BigInteger serialNumber = cert.getSerialNumber(); // 인증서 시리얼
// 본인확인
switch (jcaosCheck.getVIDCheck()){
case JCaosCheckCert.STAT_VID_NOTCHECK:
sResult = sResult+"- 본인 확인 하지 않음<br>\n";
break;
case JCaosCheckCert.STAT_VID_CHECK_OK:
sResult = sResult+"- 본인 확인 성공<br>\n";
break;
case JCaosCheckCert.STAT_VID_CHECK_FAIL:
sResult = sResult+"- 본인 확인 실패<br>\n";
break;
}
// 화면 출력값 생성
sResult = sResult+ "<br>\n- 사용자 DN ["+signerDN+"]<br>\n"+"<br>\n";
sResult = sResult+ "- 발급자 DN ["+cert.getIssuerDN().getName()+"]<br>\n"+"<br>\n";
sResult = sResult+ "- 인증서 SN ["+cert.getSerialNumber().toString(16)+"]<br>\n"+"<br>\n";
sResult = sResult+ "- 인증서 정책 ["+cert.getCertificatePolicies().getPolicyIdentifier(0)+"]<br>\n"+"<br>\n";
sResult = sResult+ "- 인증서 serialNumber ["+serialNumber+"]<br>\n"+"<br>\n";
//성공시 SN 번호 키값 전송
//retval - 2
retMap.put("SN", cert.getSerialNumber().toString(16));
retMap.put("sResult", "");
}
// 서명 검증
// 검증후 원문이 리턴됨
//retval - 3
retMap.put("iResult", iResult);
}catch(Exception e){
// 인증서 검증중 오류가 경우
// 처리를 편하게 하기 위해
// 상용중에는 사용자의 인증서의 유효성의 문제가 잇는 경우가 대부분 입니다.
//e.printStackTrace();
sResult = "서명 검증에 실패 하였습니다.\n [" + e.getMessage()+"]\");";
// 서명 검증 실패
//retval - 4
retMap.put("iResult", "001");
retMap.put("SN", "");
retMap.put("sResult", sResult);
System.out.println("Exception Occured!!!");
}
} else
{
sResult=" - 서명 데이타가 존재하지 않습니다..<br>\n";
// 서명 검증 실패
//retval - 5
retMap.put("iResult", "002");
retMap.put("SN", "");
retMap.put("sResult", sResult);
}
//System.out.println(retMap.toString());
return retMap;
}
}

View File

@ -0,0 +1,25 @@
package kcc.xxx.service;
import seed.map.T_MEMBER;
/**
* XXX 관리를 위한 서비스 인터페이스 클래스
* @author 여현준
* @since 2021.08.03
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2021.08.03 여현준 최초 생성
*
* </pre>
*/
public interface XxxService {
public T_MEMBER getMemberForm(String memberId);
}

View File

@ -0,0 +1,123 @@
package kcc.xxx.service;
import java.io.Serializable;
import kcc.com.cmm.ComDefaultVO;
@SuppressWarnings("serial")
public class XxxVO extends ComDefaultVO implements Serializable {
// 검색조건
private String srchYear = ""; // 검색 년도
// 상세
private String esntlId = ""; // 로그인ID
private String xxxSeq = ""; // xxx 일련번호
private String bbsId = ""; // 게시판ID
private String nttId = ""; // 게시글ID
private String atchFileId = ""; // 첨부파일 ID
private String lastUpdusrId = ""; // 최종수정자 ID
private String lastUpdusrNm = ""; // 최종수정자 이름
private String searchCnd = ""; // 검색 항목
private String searchWrd = ""; // 검색명
private String frstRegisterId = ""; // 최조작성자 ID
private String frstRegisterNm = ""; // 최조작성자 이름
public String getSrchYear() {
return srchYear;
}
public void setSrchYear(String srchYear) {
this.srchYear = srchYear;
}
public String getEsntlId() {
return esntlId;
}
public void setEsntlId(String esntlId) {
this.esntlId = esntlId;
}
public String getXxxSeq() {
return xxxSeq;
}
public void setXxxSeq(String xxxSeq) {
this.xxxSeq = xxxSeq;
}
public String getBbsId() {
return bbsId;
}
public void setBbsId(String bbsId) {
this.bbsId = bbsId;
}
public String getNttId() {
return nttId;
}
public void setNttId(String nttId) {
this.nttId = nttId;
}
public String getAtchFileId() {
return atchFileId;
}
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getLastUpdusrNm() {
return lastUpdusrNm;
}
public void setLastUpdusrNm(String lastUpdusrNm) {
this.lastUpdusrNm = lastUpdusrNm;
}
public String getSearchCnd() {
return searchCnd;
}
public void setSearchCnd(String searchCnd) {
this.searchCnd = searchCnd;
}
public String getSearchWrd() {
return searchWrd;
}
public void setSearchWrd(String searchWrd) {
this.searchWrd = searchWrd;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getFrstRegisterNm() {
return frstRegisterNm;
}
public void setFrstRegisterNm(String frstRegisterNm) {
this.frstRegisterNm = frstRegisterNm;
}
}

View File

@ -0,0 +1,53 @@
package kcc.xxx.service.impl;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import seed.dao.MemberDAOImpl;
import seed.map.T_MEMBER;
/**
* XXX 관리를 위한 데이터 접근 클래스
* @author 여현준
* @since 2021.08.03
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2021.08.03 여현준 최초 생성
*
* </pre>
*/
@Repository("XxxDAO")
public class XxxDAO{
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@SuppressWarnings("unchecked")
public T_MEMBER getMemberForm(String memberId){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.add(Restrictions.eq("memberId", memberId));
List<T_MEMBER> list = criteria.list();
if(list.size() > 0){
return (T_MEMBER)list.get(0);
}else{
return null;
}
}
}

View File

@ -0,0 +1,38 @@
package kcc.xxx.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import kcc.xxx.service.XxxService;
import seed.map.T_MEMBER;
/**
* 평가정보 관리를 위한 서비스 구현 클래스
* @author 여현준
* @since 2021.08.03
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2021.08.03 여현준 최초 생성
*
* </pre>
*/
@Service("XxxService")
public class XxxServiceImpl extends EgovAbstractServiceImpl implements XxxService {
// XXX DAO
@Resource(name = "XxxDAO")
private XxxDAO xxxDAO;
public T_MEMBER getMemberForm(String memberId){
return xxxDAO.getMemberForm(memberId);
}
}

View File

@ -0,0 +1,37 @@
package kcc.xxx.web;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import kcc.xxx.service.XxxService;
import seed.map.T_MEMBER;
@Controller
public class XxxController {
private static final Logger LOGGER = LoggerFactory.getLogger(XxxController.class);
// XXX 서비스단
@Resource(name = "XxxService")
private XxxService xxxService;
/**
* XXX 등록화면
*/
@RequestMapping("/xxx/xxxTest.do")
public String XxxRegist() throws Exception {
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberId("seed");
T_MEMBER tMemberDB = xxxService.getMemberForm(tMember.getMemberId());
return null;
}
}

View File

@ -0,0 +1,17 @@
package seed.dao;
import java.util.HashMap;
import java.util.List;
import seed.map.T_ACCESS_STATISTICS;
public interface AccessStatisticsDAO {
public List<HashMap<Object,Object>> getAccessStatisticsList(String memberMergeSiteIdx, String[] qryColumns);
public T_ACCESS_STATISTICS getAccessStatisticsInfo(String siteIdx, Integer year, Integer month, Integer day, Integer hour);
public boolean setInsertAccessStatistics(T_ACCESS_STATISTICS accessStatistics);
public boolean setUpdateAccessStatistics(T_ACCESS_STATISTICS accessStatistics);
}

View File

@ -0,0 +1,126 @@
package seed.dao;
import java.util.HashMap;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
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_ACCESS_STATISTICS;
@Repository
public class AccessStatisticsDAOImpl implements AccessStatisticsDAO {
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@SuppressWarnings("unchecked")
public List<HashMap<Object,Object>> getAccessStatisticsList(String memberMergeSiteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_ACCESS_STATISTICS.class);
if(qryColumns != null && qryColumns.length > 0){
ProjectionList projectionList = Projections.projectionList();
boolean groupCheck = false;
for(int i=0; i<qryColumns.length; i++){
if(qryColumns[i]!=null && !"".equals(qryColumns[i])){
if(!groupCheck && qryColumns[i].indexOf("groupBy") >= 0){
groupCheck = true;
continue;
}
if(groupCheck){
if(qryColumns[i].indexOf("Count") >= 0){
projectionList.add(Projections.count(qryColumns[i]).as(qryColumns[i]));
}else{
projectionList.add(Projections.groupProperty(qryColumns[i]).as(qryColumns[i]));
}
}else{
projectionList.add(Projections.property(qryColumns[i]).as(qryColumns[i]));
}
}
}
criteria.setProjection(projectionList);
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
}
if(!memberMergeSiteIdx.equals("")){
criteria.add(Restrictions.ne("siteIdx", memberMergeSiteIdx));
}
criteria.addOrder(Order.desc("siteIdx"));
return criteria.list();
}
@SuppressWarnings("unchecked")
public T_ACCESS_STATISTICS getAccessStatisticsInfo(String siteIdx, Integer year, Integer month, Integer day, Integer hour) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_ACCESS_STATISTICS.class);
criteria.add(Restrictions.eq("siteIdx", siteIdx));
criteria.add(Restrictions.eq("accessYear", year));
criteria.add(Restrictions.eq("accessMonth", month));
criteria.add(Restrictions.eq("accessDay", day));
criteria.add(Restrictions.eq("accessHour", hour));
List<T_ACCESS_STATISTICS> dataList = criteria.list();
if(dataList!=null && dataList.size()>0){
return dataList.get(0);
}else{
return null;
}
}
public boolean setInsertAccessStatistics(T_ACCESS_STATISTICS accessStatistics) {
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(accessStatistics);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error(e);
}
return success;
}
public boolean setUpdateAccessStatistics(T_ACCESS_STATISTICS accessStatistics) {
boolean success = false;
try{
Query createQuery = this.sessionFactory.getCurrentSession().createQuery("UPDATE T_ACCESS_STATISTICS SET accessCount = :accessCount WHERE dataIdx = :dataIdx ");
createQuery.setInteger("accessCount", accessStatistics.getAccessCount());
createQuery.setInteger("dataIdx", accessStatistics.getDataIdx());
int rowCount = createQuery.executeUpdate();
if(rowCount>0){
success = true;
}
}catch(HibernateException e){
log.error(e);
}
return success;
}
}

View File

@ -0,0 +1,45 @@
package seed.dao;
import java.util.List;
import seed.map.T_BANNER_DATA;
public interface BannerDataDAO {
//AdminMemberService, ManagerMemberService
public List<T_BANNER_DATA> getBannerDataAllList(Integer memberIdx);
//ManagerBannerDataService
public Integer getBannerDataOrderFormCnt(Integer bannerSetIdx);
//ManagerBannerSetService, ManagerBannerDataService
public T_BANNER_DATA getBannerDataForm(Integer bannerDataIdx);
//ManagerBannerSetService
public T_BANNER_DATA getBannerDataOrderForm(Integer bannerSetIdx, Integer bannerDataOrder);
//ManagerBannerSetService
public Long getBannerDataListCnt(Integer bannerSetIdx);
//ManagerBannerDataService
public Long getBannerDataListCnt(Integer bannerSetIdx, String column, String search);
//ManagerBannerDataService
public List<T_BANNER_DATA> getBannerDataList(Integer bannerSetIdx);
//ManagerBannerDataService
public List<T_BANNER_DATA> getBannerDataList(Integer bannerSetIdx, int page, int row, String column, String search, String[] qryColumns);
//ManagerBannerDataService
public T_BANNER_DATA setBannerDataRegProc(T_BANNER_DATA tBannerData);
//ManagerBannerSetService, ManagerBannerDataService
public boolean setBannerDataModProc(T_BANNER_DATA tBannerData);
//ManagerBannerDataService
public boolean setBannerDataDelProc(T_BANNER_DATA tBannerData);
//ManagerBannerDataService
public void setBannerDataOrderProc(Integer bannerSetIdx, Integer bannerDataOrder);
}

View File

@ -0,0 +1,358 @@
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_BANNER_DATA;
/**
* T_BANNER_DATA 테이블을 select,insert,update,delete하기 위한 DAO메소드
* */
@Repository
public class BannerDataDAOImpl implements BannerDataDAO {
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* 모든 배너 데디터를 가지고 오는 메소드
* memberIdx 조건에 해당하는 데이터를 가지오 온다 자신이 생성한 배너 데이터 리스트를 가지고 온다
* @param Integer memberIdx 회원 idx
* @return List<T_BANNER_DATA> 배너 데이터 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_BANNER_DATA> getBannerDataAllList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_DATA.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* 배너데이터중 BANNER_DATA_ORDER의 MAX을 가지고 오는 메소드
* bannerSetIdx에 해당하는 데이터중 가장 bnaaner_data_order 가지고 온다
* @param Integer bannerSetIdx 배너셋 idx
* @return Integer max banner_data_order
* */
//ManagerBannerDataService
public Integer getBannerDataOrderFormCnt(Integer bannerSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_DATA.class);
criteria.add(Restrictions.eq("tBannerSet.bannerSetIdx", bannerSetIdx));
criteria.setProjection(Projections.max("bannerDataOrder"));
if(criteria.uniqueResult() == null){
return 0;
}else{
return (Integer)criteria.uniqueResult();
}
}
/**
* 배너데이터 상세 정보를 가지고 오는 메소드
* bannerDataIdx 해당하는 정보를 가지고 오는 메소드
* @param Integer bannerDataIdx 배너 데이터 idx
* @return T_BANNER_DATA 배너 데이터 정보
* */
//ManagerBannerSetService, ManagerBannerDataService
public T_BANNER_DATA getBannerDataForm(Integer bannerDataIdx) {
return (T_BANNER_DATA) this.sessionFactory.getCurrentSession().load(T_BANNER_DATA.class, bannerDataIdx);
}
/**
* 배너데이터를 가지고 오는 메소드
* bannerSetIdx, bannerDataOrder의 조건에 해당하는 데이터를 가지고 오는 메소드
* @param Integer bannerSetIdx 배너 설정 idx
* @param Integer bannerDataOrder 배너 출력 순서
* @return T_BANNER_DATA 배너 정보
* */
//ManagerBannerSetService
public T_BANNER_DATA getBannerDataOrderForm(Integer bannerSetIdx, Integer bannerDataOrder) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_DATA.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tBannerSet.bannerSetIdx", bannerSetIdx),
Restrictions.eq("bannerDataOrder", bannerDataOrder)));
return (T_BANNER_DATA) criteria.list().get(0);
}
/**
* 배너데이터 개수를 가지고 오는 메소드
* bannerSetIdx에 해당하는 데이터 개수를 가지고 온다
* @param Integer bannerSetIdx 배너 설정 idx
* @return Long 개수
* */
//ManagerBannerSetService
public Long getBannerDataListCnt(Integer bannerSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_DATA.class);
criteria.add(Restrictions.eq("tBannerSet.bannerSetIdx", bannerSetIdx));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* 배너데이터 개수를 가지고 오는 메소드
* bannerSetIdx, column, search에 해당하는 데이터 개수를 가지고 온다.
* @param Integer bannerSetIdx 배너 설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 검색된 개수
* */
//ManagerBannerDataService
@SuppressWarnings("deprecation")
public Long getBannerDataListCnt(Integer bannerSetIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_DATA.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tBannerSet.bannerSetIdx", bannerSetIdx));
if (!column.equals("")) {
if (column.equals("A")) {
if (!search.equals("")) {
criteria.add(
Restrictions.or(
Restrictions.or(
Restrictions.like("bannerDataTitle", search, MatchMode.ANYWHERE),
Restrictions.like("bannerDataContent", 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();
}
/**
* 배너리스트를 가지고 오는 메소드
* bannerSetIdx에 해당하는 배너 데이터 리스트를 가지고 오는 메소드
* @param Integer bannerSetIdx
* @return List<T_BANNER_DATA> 배너 데이터 리스트
* */
//ManagerBannerDataService
@SuppressWarnings("unchecked")
public List<T_BANNER_DATA> getBannerDataList(Integer bannerSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_DATA.class);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.ne("bannerDataType", "N"),
Restrictions.eq("bannerDataStatus", "U")),
Restrictions.eq("tBannerSet.bannerSetIdx", bannerSetIdx)));
criteria.addOrder(Order.desc("bannerDataOrder"));
return criteria.list();
}
/**
* 배너 데이터 리스트를 가지고 오는 메소드
* bannerSetIdx, column, search 해당하는 데이터중 한페이지당 row개수 만큼 page에 해당하는 페이지 리스트를 가지고 온다.
* @param Integer bannerSetIdx 배너 설정 idx
* @param int page 출력할 페이지 번호
* @param int row 페이지당 출력 개수
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns 가지고올
* @return List<T_BANNER_DATA> 배너 데이터 리스트
* */
//ManagerBannerDataService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BANNER_DATA> getBannerDataList(Integer bannerSetIdx, int page, int row, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_DATA.class);
criteria.createCriteria("tBannerSet", "tBannerSet", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tBannerSet.bannerSetIdx", bannerSetIdx));
if (!column.equals("")) {
if (column.equals("A")) {
if (!search.equals("")) {
criteria.add(
Restrictions.or(
Restrictions.or(
Restrictions.like("bannerDataTitle", search, MatchMode.ANYWHERE),
Restrictions.like("bannerDataContent", search, MatchMode.ANYWHERE)),
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
}
} else {
criteria.add(Restrictions.like(column, search,
MatchMode.ANYWHERE));
}
}
criteria.addOrder(Order.desc("bannerDataOrder"));
return criteria.list();
}
/**
* 배너 정보를 저장하는 메소드
* @param T_BANNER_DATA tBannerData 저장할 배너 데이터 객체
* @return T_BANNER_DATA 저장된 배너 데이터 객체(idx값 체크를 위해서 return)
* */
//ManagerBannerDataService
public T_BANNER_DATA setBannerDataRegProc(T_BANNER_DATA tBannerData){
try{
this.sessionFactory.getCurrentSession().save(tBannerData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getBannerDataForm(tBannerData.getBannerDataIdx());
}
/**
* 배너 데이터 정보를 수정하는 메소드
* 작업의 성공 여부는 exception여부로 결정
* @param T_BANNER_DATA tBannerData 수정할 배너 데이터 객체
* @return boolean 작업의 성공 여부
* */
//ManagerBannerSetService, ManagerBannerDataService
public boolean setBannerDataModProc(T_BANNER_DATA tBannerData) {
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBannerData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 배너 데이터를 삭제 하는 메소드
* tBannerData는 반드시 idx에 해당하는 값이 존재 해야 합니다.
* @param T_BANNER_DATA tBannerData 삭제할 배너 데이터 객체
* @return boolean 작업의 성공 여부
* */
//ManagerBannerDataService
public boolean setBannerDataDelProc(T_BANNER_DATA tBannerData) {
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tBannerData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 배너 정렬 값을 변경 하는 메소드
* bannerSetIdx에 해당하고 bannerDataOrder보다 조건에 해당하는 배너 데이터 리스트를 가지고 와서
* 해당 데이터의 banneerDataOrder 값을 +1 해줍니다.
* @param Integer bannerSetIdx 배너 설정 정보 idx
* @param Integer bannerDataOrder 배너 정렬
* @return void
* */
//ManagerBannerDataService
@SuppressWarnings("unchecked")
public void setBannerDataOrderProc(Integer bannerSetIdx, Integer bannerDataOrder){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_DATA.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tBannerSet.bannerSetIdx", bannerSetIdx),
Restrictions.gt("bannerDataOrder", bannerDataOrder)));
criteria.addOrder(Order.asc("bannerDataOrder"));
List<T_BANNER_DATA> tBannerDataList = criteria.list();
if(tBannerDataList.size() > 0){
for(int i=0; i<tBannerDataList.size(); i++){
T_BANNER_DATA tBannerDataDB = tBannerDataList.get(i);
tBannerDataDB.setBannerDataOrder(tBannerDataDB.getBannerDataOrder()-1);
try{
this.sessionFactory.getCurrentSession().update(tBannerDataDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
}
}
}
}

View File

@ -0,0 +1,44 @@
package seed.dao;
import java.util.List;
import seed.map.T_BANNER_MANAGER;
public interface BannerManagerDAO {
//AdminSiteService
public List<T_BANNER_MANAGER> getBannerManagerList(String siteIdx);
//AdminMemberService, ManagerMemberService
public List<T_BANNER_MANAGER> getBannerManagerList(Integer memberIdx);
//ManagerBannerManagerService
public T_BANNER_MANAGER getBannerManagerForm(Integer bannerManagerIdx);
//ManagerBannerManagerService
public Long getBannerManagerListGrantCnt(Integer bannerSetIdx, Integer memberIdx);
//ManagerBannerManagerService
public Long getBannerManagerListCnt(Integer bannerSetIdx, Integer memberIdx);
//ManagerBannerManagerService
public Long getBannerManagerListCnt(Integer bannerSetIdx, Integer selGroup, String column, String search);
//ManagerBannerManagerService
public Long getBannerManagerListCnt(String siteIdx, Integer memberIdx, String column, String search);
//ManagerBannerManagerService
public List<T_BANNER_MANAGER> getBannerManagerList(Integer bannerSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//ManagerBannerManagerService
public List<T_BANNER_MANAGER> getBannerManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerBannerManagerService
public boolean setBannerManagerRegProc(T_BANNER_MANAGER tBannerManager);
//ManagerBannerManagerService, AdminMemberService, ManagerMemberService
public boolean setBannerManagerModProc(T_BANNER_MANAGER tBannerManager);
//ManagerBannerManagerService
public boolean setBannerManagerDelProc(T_BANNER_MANAGER tBannerManager);
}

View File

@ -0,0 +1,433 @@
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_BANNER_MANAGER;
/**
* T_BANNER_MANAGER 정보를 select, insert, update, delete 하는 메소드
* */
@Repository
public class BannerManagerDAOImpl implements BannerManagerDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* 배너 관리자 리스트
* siteIdx에 해당하는 배너 관리자 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return List<T_BANNER_MANAGR> 배너 관리자 리스트
* */
//AdminSiteService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BANNER_MANAGER> getBannerManagerList(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_MANAGER.class);
criteria.createCriteria("tBannerSet", "tBannerSet", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tBannerSet.tSite.siteIdx", siteIdx));
return criteria.list();
}
/**
* 배너 관리자 리스트를 가지고 오는 메소드
* memberIdx에 해당하는 배너 관리자 리스트를 가지고 오는 메소드 자신이 관리자로 있는
* 배너 정보를 모두 가지고 온다.
* @param Integer memberIdx 사용자 idx
* @return List<T_BANNER_MANAGER> 배너 관리자 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_BANNER_MANAGER> getBannerManagerList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_MANAGER.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* 배너 관리자 정보를 가지고 오는 메소드
* bannerManagerIdx에 해당하는 관리자 정보를 가지고 오는 메소드
* @param Integer bannerManagerIdx 배너 관리자 idx
* @return T_BANNER_MANAGER 배너 관리자 정보
* */
//ManagerBannerManagerService
public T_BANNER_MANAGER getBannerManagerForm(Integer bannerManagerIdx){
return (T_BANNER_MANAGER) this.sessionFactory.getCurrentSession().load(T_BANNER_MANAGER.class, bannerManagerIdx);
}
/**
* 배너 관리자 리스트 개수를 가지고 오는 메소드
* bannertSetIdx, memberIdx에 해당하는 배너 관리자 개수를 가지고 오는 메소드
* 해당 메소드를 통해서 배너 관리자 유무를 판단 있습니다.
* @param Integer bannerSetIdx 배너 설정 idx
* @param Integer memberIdx 회원 idx
* @return Long 배너 관리자 리스트 개수
* */
//ManagerBannerManagerService
@SuppressWarnings("deprecation")
public Long getBannerManagerListGrantCnt(Integer bannerSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tBannerSet.bannerSetIdx", bannerSetIdx),
Restrictions.eq("bannerManagerStatus", "U")),
Restrictions.eq("bannerManagerGrant", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* 배너 관리자 리스트 개수를 가지고 오는 메소드
* bannertSetIdx, memberIdx에 해당하는 배너 관리자 개수를 가지고 오는 메소드
* 해당 메소드를 통해서 배너 관리자 유무를 판단 있습니다.
* @param Integer bannerSetIdx 배너 설정 idx
* @param Integer memberIdx 회원 idx
* @return Long 배너 관리자 리스트 개수
* */
//ManagerBannerManagerService
@SuppressWarnings("deprecation")
public Long getBannerManagerListCnt(Integer bannerSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tBannerSet.bannerSetIdx", bannerSetIdx),
Restrictions.eq("bannerManagerStatus", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* 배너 관리자 리스트 개수를 가지고 오는 메소드
* bannerSetIdx, column, search 해당하는 배너 리스트 개수를 가지고 오는 메소드
* @param Integer bannerSetIdx 배너설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 매니저 리스트 개수
* */
//ManagerBannerManagerService
@SuppressWarnings("deprecation")
public Long getBannerManagerListCnt(Integer bannerSetIdx, Integer selGroup, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tBannerSet.bannerSetIdx", bannerSetIdx));
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();
}
/**
* 배너 관리자 리스트 개수를 가지고 오는 메소드
* bannerSetIdx, column, search 해당하는 배너 리스트 개수를 가지고 오는 메소드
* @param Integer bannerSetIdx 배너설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 매니저 리스트 개수
* */
//ManagerBannerManagerService
@SuppressWarnings("deprecation")
public Long getBannerManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tBannerSet", "tBannerSet", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.eq("tBannerSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tMember.memberIdx", memberIdx)));
if(!search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* 배너 관리자 리스트를 가지고 오는 메소드
* bannerSetIdx, column, search 해당하는 관리자 리스트 row개를 page페이지에 해당 하는 데이터를
* 가지고 오는 메소드
* select시 order, orderColumn조건에 해당하는 방식으로 정렬을 하게 된다.
* @param Integer bannerSetIdx 배너설정 idx
* @param int page 페이지 번호
* @param int row 페이지당 출력 개수
* @param Stirng orderColumn order by 사용할 컬럼 정보
* @param String order order by 사용할 정렬 기준 ex> DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정보
* @return List<T_BANNER_MANGER> 배너 관리자 리스트
* */
//ManagerBannerManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BANNER_MANAGER> getBannerManagerList(Integer bannerSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tBannerSet.bannerSetIdx", bannerSetIdx));
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 = "bannerManagerIdx";
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* 배너 관리자 리스트를 가지고 오는 메소드
* bannerSetIdx, column, search 해당하는 관리자 리스트 row개를 page페이지에 해당 하는 데이터를
* 가지고 오는 메소드
* select시 order, orderColumn조건에 해당하는 방식으로 정렬을 하게 된다.
* @param Integer bannerSetIdx 배너설정 idx
* @param int page 페이지 번호
* @param int row 페이지당 출력 개수
* @param Stirng orderColumn order by 사용할 컬럼 정보
* @param String order order by 사용할 정렬 기준 ex> DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정보
* @return List<T_BANNER_MANGER> 배너 관리자 리스트
* */
//ManagerBannerManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BANNER_MANAGER> getBannerManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tBannerSet", "tBannerSet", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.and(
Restrictions.eq("tBannerSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tMember.memberIdx", memberIdx)));
if(!search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* 배너 관리자 정보를 저장하는 메소드$
* @param T_BANNER_MANAGER tBannerManager 관리자 정보
* @return boolean 작업의 성공 여부
* */
//ManagerBannerManagerService
public boolean setBannerManagerRegProc(T_BANNER_MANAGER tBannerManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tBannerManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 배너 관리자 정보를 수정하는 메소드
* @param T_BANNER_MANAGER tBannerManager 배너관리자 객체
* @return boolean 작업 성공 여부
* */
//ManagerBannerManagerService, AdminMemberService, ManagerMemberService
public boolean setBannerManagerModProc(T_BANNER_MANAGER tBannerManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBannerManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 배너 관리자 정보를 삭제 하는 메소드
* @param T_BANNER_MANAGER tBannerManager 삭제할 배너관리자 객체
* @return boolean 작업의 성공 여부
* */
//ManagerBannerManagerService
public boolean setBannerManagerDelProc(T_BANNER_MANAGER tBannerManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tBannerManager);
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,32 @@
package seed.dao;
import java.util.List;
import seed.map.T_BANNER_SET;
public interface BannerSetDAO {
//AdminMemberService, ManagerMemberService
public List<T_BANNER_SET> getBannerSetList(Integer memberIdx);
//AdminSiteService
public List<T_BANNER_SET> getBannerSetList(String siteIdx, String[] qryColumns);
//ManagerBannerManagerService
public Long getBannerSetListCnt(String siteIdx, String column, String search);
//ManagerBannerManagerService
public List<T_BANNER_SET> getBannerSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerBannerManagerService
public T_BANNER_SET getBannerSetForm(Integer bannerSetIdx);
//ManagerBannerManagerService
public T_BANNER_SET setBannerSetRegProc(T_BANNER_SET tBannerSet);
//ManagerBannerManagerService
public boolean setBannerSetModProc(T_BANNER_SET tBannerSet);
//ManagerBannerManagerService
public boolean setBannerSetDelProc(T_BANNER_SET tBannerSet);
}

View File

@ -0,0 +1,275 @@
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_BANNER_SET;
/**
* T_BANNER_SET테이블의 증보를 SELECT, INSERT, UPDATE하는 DAO 클래스
* */
@Repository
public class BannerSetDAOImpl implements BannerSetDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* 배너 설정 정보의 리스트를 가지고 오는 메소드
* 회원이 생성한 배너 설정 정보 리스트를 가지고 오는 메소드
* @param Integer memberIdx 사용자 idx
* @return List<T_BANNER_SET> 배너 설정 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_BANNER_SET> getBannerSetList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_SET.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* 배너 설정 리스트를 가지고 오는 메소드
* siteIdx에 해당하는 배너 설정 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select할 컬럼 정보
* @return List<T_BANNER_SET> 배너 설정 리스트
* */
//AdminSiteService
@SuppressWarnings("unchecked")
public List<T_BANNER_SET> getBannerSetList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_SET.class);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
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.addOrder(Order.asc("bannerSetIdx"));
return criteria.list();
}
/**
* 배너 설정 개수를 가지고 오는 메소드
* siteIdx, column, search에 해당하는 배너 설정 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String column 검색 항목
* @param String search 검색
* */
//ManagerBannerManagerService
@SuppressWarnings("deprecation")
public Long getBannerSetListCnt(String siteIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_SET.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("bannerSetName", 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();
}
/**
* 배너 설정 리스트를 가지고 오는 메소드
* stieIdx, column, search에 해당하는 배서 설정 리스트를 페이지 별로 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param int page 출력할 페이지 번호
* @param int row 페이지당 출력 개수
* @param String orderColumn order by할 column정보
* @param String order order by 정렬기준 ex>DESC,ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select할 컬럼 정보
* @return List<T_BANNER_SET> 배너 설정 리스트 정보
* */
//ManagerBannerManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BANNER_SET> getBannerSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BANNER_SET.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tBannerDatas", "tBannerDatas", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tSite.siteIdx", siteIdx));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("bannerSetName", search, MatchMode.ANYWHERE),
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* 배너 설정 정보를 가지고 오는 메소드
* bannerSetIdx 정보에 해당하는 데이터를 가지고 오는 메소드
* @param Integer bannerSetIdx 배너 설정 idx
* @return T_BANNER_SET 배너 설정 정보
* */
//ManagerBannerManagerService
public T_BANNER_SET getBannerSetForm(Integer bannerSetIdx){
return (T_BANNER_SET) this.sessionFactory.getCurrentSession().load(T_BANNER_SET.class, bannerSetIdx);
}
/**
* 배너 설정 정보를 저장하는 메소드
* @param T_BANNER_SET tBannerSet 저장할 배너 설정 객체
* @return T_BANNER_SET 저장된 배너 설정 객체
* */
//ManagerBannerManagerService
public T_BANNER_SET setBannerSetRegProc(T_BANNER_SET tBannerSet){
try{
this.sessionFactory.getCurrentSession().save(tBannerSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getBannerSetForm(tBannerSet.getBannerSetIdx());
}
/**
* 배너 설정 정보를 저장하는 메소드
* @param T_BANNER_SET tBannerSet 저장할 배너 설정 객체
* @return T_BANNER_SET 저장된 배너 설정 객체
* */
//ManagerBannerManagerService
public boolean setBannerSetModProc(T_BANNER_SET tBannerSet){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBannerSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 배너 설정 정보를 삭제 하는 메소드
* @param T_BANNER_SET tBannerSet 삭제할 배너 설정 객체
* @return boolean 작업 성공 여부
* */
//ManagerBannerManagerService
public boolean setBannerSetDelProc(T_BANNER_SET tBannerSet){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tBannerSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,30 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_BBS_AUTH;
public interface BbsAuthDAO {
//AdminMemberService, ManagerMemberService
public List<T_BBS_AUTH> getBbsAuthList(Integer memberIdx);
//ManagerBbsAuthService
public T_BBS_AUTH getBbsAuthForm(Integer bbsAuthIdx);
//ManagerBbsAuthService
public T_BBS_AUTH getBbsAuthForm(Integer bbsSetIdx, Integer groupLevel);
//ManagerBbsAuthService
public List<T_BBS_AUTH> getBbsAuthList(Integer bbsSetIdx, String[] qryColumns);
//UserBbsAuthService
public List<Map<Object, Object>> getBbsAuthMapList(Integer bbsSetIdx, Integer memberIdx, String[] qryColumns);
//AdminGroupService, ManagerGroupService, ManagerBbsSetService
public boolean setBbsAuthRegProc(T_BBS_AUTH tBbsAuth);
//ManagerBbsAuthService
public boolean setBbsAuthModProc(T_BBS_AUTH tBbsAuth);
}

View File

@ -0,0 +1,229 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
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_BBS_AUTH;
/**
* T_BBS_AUTH테이블 정보를 SELECT, INSERT, UPDATE, DELETE 하는 class
* */
@Repository
public class BbsAuthDAOImpl implements BbsAuthDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* 게시판 권한 정보 리스트를 가지고 오는 메소드
* 게시판 권한 정보중 자신이 생성한 정보 리스트를 가지고 오는 메소드
* @param Integer memberIdx 사용자 idx
* @return List<T_BBS_AUTH> 게시판 권한 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_BBS_AUTH> getBbsAuthList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_AUTH.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* 게시판 권한 정보를 가지고 오는 메소드
* bbsAuthIdx 해당하는 권한 정보를 가지고 오는 메소드
* @param Integer bbsAuthIdx 게시판 권한 idx
* @return T_BBS_AUTH 게시판 권한 정보
* */
//ManagerBbsAuthService
public T_BBS_AUTH getBbsAuthForm(Integer bbsAuthIdx){
return (T_BBS_AUTH) this.sessionFactory.getCurrentSession().load(T_BBS_AUTH.class, bbsAuthIdx);
}
/**
* 게시판 권한 정보를 가지고 오는 메소드
* bbsAuthIdx 해당하는 권한 정보를 가지고 오는 메소드
* @return T_BBS_AUTH 게시판 권한 정보
* */
//ManagerBbsAuthService
@SuppressWarnings("deprecation")
public T_BBS_AUTH getBbsAuthForm(Integer bbsSetIdx, Integer groupLevel){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_AUTH.class);
criteria.createCriteria("tGroup", "tGroup", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("tGroup.groupLevel", groupLevel)));
return (T_BBS_AUTH) criteria.list().get(0);
}
/**
* 게시판 권한 리스트를 가지고 오는 메소드
* bbsSetIdx에 해당하는 권한 리스트를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 정보
* @param String[] qryColumns SELECT할 컬럼 정보
* @return List<T_BBS_AUTH> 게시판 권한 리스트
* */
//ManagerBbsAuthService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BBS_AUTH> getBbsAuthList(Integer bbsSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_AUTH.class);
criteria.createCriteria("tGroup", "tGroup", 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.add(Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx));
criteria.addOrder(Order.asc("tGroup.groupLevel"));
return criteria.list();
}
/**
* 게시판 권한 리스트 정보를 가지고 오는 메소드
* bbsSetIdx, memberIdx에 해당하는 게시판 권한 리스트를 가지고 오는 메소드
* memberIdx 체크를 위해서 group, groups와 조인을 해서 검색 memberIdx가 0일 경우 groupLevel=999로 검색
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer memberIdx 회원 idx
* @param String[] qryColumns select할 컬럼 정보
* @return List<Map<Object, Object>> 게시판 권한 리스트
* */
//UserBbsAuthService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<Map<Object, Object>> getBbsAuthMapList(Integer bbsSetIdx, Integer memberIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_AUTH.class);
criteria.createCriteria("tGroup", "tGroup", Criteria.LEFT_JOIN).
createCriteria("tGroupss", "tGroupss", 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(memberIdx > 0){//로그인 되었을때 해당 테이블의 권한 검색
criteria.add(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("tGroupss.tMember.memberIdx", memberIdx)));
}else{//로그인이 안되고 손님일 경우일때 grouplevel 999로 검색
criteria.add(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("tGroup.groupLevel", 999)));
}
criteria.addOrder(Order.asc("tGroup.groupLevel"));
return criteria.list();
}
/**
* 게시판 권한 정보를 디비에 저장하는 메소드
* @param T_BBS_AUTH tBbsAuth 저장할 게시판 권한 객체
* @return boolean 작업 성공 여부
* */
//AdminGroupService, ManagerGroupService, ManagerBbsSetService
public boolean setBbsAuthRegProc(T_BBS_AUTH tBbsAuth){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tBbsAuth);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 게시판 권한 정보를 수정하는 메소드
* @param T_BBS_AUTH tBbsAuth 수정한 게시판 권한 객체
* @return boolean 작업 성공 여부
* */
//ManagerBbsAuthService
public boolean setBbsAuthModProc(T_BBS_AUTH tBbsAuth){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBbsAuth);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,46 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_BBS_CATEGORY;
import seed.map.VIEW_BBS_CATEGORY;
public interface BbsCategoryDAO {
//ManagerBbsService
public List<VIEW_BBS_CATEGORY> getBbsCategoryList(Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsService, UserBbsService
public List<T_BBS_CATEGORY> getBbsCategoryListt(Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsService
public List<T_BBS_CATEGORY> getBbsCategoryList(Integer bbsSetIdx, String bbsCategoryIdxs, Integer bbsCategoryDepth);
//ManagerBbsService
public Map<Object, Object> getBbsCategoryParentForm(Integer bbsSetIdx, String bbsCategoryParentIdx, String[] qryColumns);
//ManagerBbsService
public Map<Object, Object> getBbsCategoryForm(Integer bbsSetIdx, String bbsCategoryParentIdx, String[] qryColumns);
//ManagerBbsService
public Integer getBbsCategoryOrderForm(Integer bbsSetIdx, String bbsCategoryIdxs, Integer bbsCategoryDepth);
//ManagerBbsService
public T_BBS_CATEGORY getBbsCategoryForm(Integer bbsCategoryIdx);
//ManagerBbsService
public T_BBS_CATEGORY getBbsCategoryOrderForm(Integer bbsSetIdx, Integer bbsCategoryDepth, Integer bbsCategoryOrder, String orderType);
//ManagerBbsService
public void setBbsCategoryOrderProc(Integer bbsSetIdx, Integer bbsCategoryOrder, Integer bbsCategoryListCnt, String orderType);
//ManagerBbsService
public boolean setBbsCategoryRegProc(T_BBS_CATEGORY tBbsCategory);
//ManagerBbsService
public boolean setBbsCategoryModProc(T_BBS_CATEGORY tBbsCategory);
//ManagerBbsService
public boolean setBbsCategoryDelProc(T_BBS_CATEGORY tBbsCategory);
}

View File

@ -0,0 +1,472 @@
package seed.dao;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
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_BBS_CATEGORY;
import seed.map.VIEW_BBS_CATEGORY;
/**
* T_BBS_CATEGORY 테이블 정보를 SELECT, INSERT, UPDATE, DELETE 하는 class
* VIEW_BBS_CATEOGRY 뷰테이블 정보를 SELECT 하는 class
* */
@Repository
public class BbsCategoryDAOImpl implements BbsCategoryDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* 게시판 카테고리 리스트를 가지고 오는 메소드
* @param Integer bbsSetidx 게시판 설정 idx
* @param String[] qryColumns select 컬럼 정보
* @return List<VIEW_BBS_CATEOGRY> 카테고리 리스트
* */
//ManagerBbsService
@SuppressWarnings("unchecked")
public List<VIEW_BBS_CATEGORY> getBbsCategoryList(Integer bbsSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_BBS_CATEGORY.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("bbsSetIdx", bbsSetIdx));
criteria.addOrder(Order.asc("bbsCategoryOrder"));
return criteria.list();
}
/**
* 게시판 카테고리 리스트를 가지고 오는 메소드
* bbsSetIdx에 해당하는 카테고리 리스틀 가지고 온다
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String[] qryColumns select 컬럼 정보
* @return List<T_BBS_CATEGORY> 게시판 카테고리 리스트
* */
//ManagerBbsService, UserBbsService
@SuppressWarnings("unchecked")
public List<T_BBS_CATEGORY> getBbsCategoryListt(Integer bbsSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_CATEGORY.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("tBbsSet.bbsSetIdx", bbsSetIdx));
criteria.addOrder(
Order.asc("bbsCategoryDepth")).addOrder(
Order.asc("bbsCategoryOrder"));
return criteria.list();
}
/**
* 게시판 카테고리 리스트를 가지고 오는 메소드
* bbsSetIdx, bbsCategoryIdxs 해당하는 카테고리 리스트를 가지고 온다.
* bbsCategoryIdxs where 조건 작업을 위해서 0~bbsCategoryDepth 만큼 for문을 돌려서
* bbsCateogryIdx1~bbsCateogryIdx5에 해당하는 조건문을 생성 한다.
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String bbsCategoryIdxs 게시판 카테고리 idxs정보 ex>0100000000 2자리수를 기준으로 depth별 그룹을 이루에 된다.
* @param Integer bbsCategoryDepth 게시판 depth설정 정보-카테고리의 단계를 표현한다. ex>1 or 2 or 3
* @return List<T_BBS_CATEGORY> 카테고리 리스트
* */
//ManagerBbsService
@SuppressWarnings("unchecked")
public List<T_BBS_CATEGORY> getBbsCategoryList(Integer bbsSetIdx, String bbsCategoryIdxs, Integer bbsCategoryDepth){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_CATEGORY.class);
String[] bbsCategoryIdxss = new String[5];
for(int d=0; d<bbsCategoryDepth; d++){
bbsCategoryIdxss[d] = bbsCategoryIdxs.substring((d*2), ((d*2)+2));
criteria.add(Restrictions.eq("bbsCategoryIdx"+(d+1), bbsCategoryIdxss[d]));
}
criteria.add(Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx));
criteria.addOrder(Order.asc("bbsCategoryOrder"));
return criteria.list();
}
/**
* 카테고리 상위 정보를 가지고 오는 메소드
* bbsSetIdx, bbsCategoryParentIdx에 해당하는 카테고리 리스트중 bbsCategoryIdx1~bbsCategoryIdx5 컬럼의 DESC정렬중 상위 데이터1개를
* 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String bbsCategoryParentIdx 상위 카테고리 idx
* @param String[] qryColumns select 컬럼 정보
* @return Map<Object, Object> 카테고리 정보
* */
//ManagerBbsService
@SuppressWarnings({ "unchecked", "deprecation" })
public Map<Object, Object> getBbsCategoryParentForm(Integer bbsSetIdx, String bbsCategoryParentIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_CATEGORY.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setMaxResults(1);
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.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsCategoryParentIdx", bbsCategoryParentIdx)));
for(int o=1; o<5; o++){
criteria.addOrder(Order.desc("bbsCategoryIdx"+o));
}
ArrayList<Map<Object, Object>> list = (ArrayList<Map<Object, Object>>)criteria.list();
if(list != null && list.size() > 0){
return list.get(0);
}else{
return null;
}
}
/**
* 카테고리 정보를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String bbsCategoryParentIdx 상위 카테고리 idx
* @param String[] qryColumns select컬럼 정보
* @return Map<Object, Object>
* */
//ManagerBbsService
@SuppressWarnings({ "unchecked", "deprecation" })
public Map<Object, Object> getBbsCategoryForm(Integer bbsSetIdx, String bbsCategoryParentIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_CATEGORY.class);
criteria.createCriteria("tBbsSet", "tBbsSet", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember", "tMember", 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.add(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsCategoryIdxs", bbsCategoryParentIdx)));
ArrayList<Map<Object, Object>> list = (ArrayList<Map<Object, Object>>)criteria.list();
if(list != null && list.size() > 0){
return list.get(0);
}else{
return null;
}
}
/**
* 카테고리 정렬 정보를 가지고 오는 메소드
* bbsSetIdx에 해당하는 카테고리 정부중 bbsCategoryOrder DESC로 정렬한 데이터중 상위 1개의 bbsCategoryOrder값을 가지고 온다
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String bbsCategoryIdxs 게시판 카테고리 idxs정보 ex>0100000000 2자리수를 기준으로 depth별 그룹을 이루에 된다.
* @param Integer bbsCategoryDepth 게시판 depth설정 정보-카테고리의 단계를 표현한다. ex>1 or 2 or 3
* @return Integer bbsCategoryOrder 정보
* */
//ManagerBbsService
public Integer getBbsCategoryOrderForm(Integer bbsSetIdx, String bbsCategoryIdxs, Integer bbsCategoryDepth){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_CATEGORY.class);
criteria.setMaxResults(1);
String[] bbsCategoryIdxss = new String[5];
for(int d=0; d<bbsCategoryDepth; d++){
bbsCategoryIdxss[d] = bbsCategoryIdxs.substring((d*2), ((d*2)+2));
criteria.add(Restrictions.eq("bbsCategoryIdx"+(d+1), bbsCategoryIdxss[d]));
}
criteria.add(Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx));
criteria.addOrder(Order.desc("bbsCategoryOrder"));
T_BBS_CATEGORY tBbsCategory = (T_BBS_CATEGORY)criteria.list().get(0);
return tBbsCategory.getBbsCategoryOrder();
}
/**
* 카테고리 정보를 가지고 오는 메소드
* bbsCategoryIdx 해당하는 카테고리 정보를 가지고 오는 메소드
* @param Integer bbsCategoryIdx 카테고리 idx
* @return T_BBS_CATEGORY 카테고리 정보 객체
* */
//ManagerBbsService
public T_BBS_CATEGORY getBbsCategoryForm(Integer bbsCategoryIdx){
return (T_BBS_CATEGORY) this.sessionFactory.getCurrentSession().load(T_BBS_CATEGORY.class, bbsCategoryIdx);
}
/**
* 카테고리 정렬 정보를 가지고 오는 메소드
* bbsSetIdx, bbsCategoryDepthdp 해당하는 값중 orderType에 따라서 bbsCategoryOrder 보다 작거나 정렬된 데이터중 하나를 가지고 오는 메소드
* up=bbsCategoryOrder 작은(<) 데이터중 bbsCategoryOrder DESC정렬 상위 1개
* down=bbsCategoryOrder (>) 데이터중 bbsCategoryOrder ASC정렬 상위 1개
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer bbsCategoryDepth 게시판 depth설정 정보-카테고리의 단계를 표현한다. ex>1 or 2 or 3
* @param Integer bbsCategoryOrder 게시판 정렬 순서
* @param String orderType 가지고올 데이터의 bbsCategoryOrder desc,asc를 결정하는 메소드 ex>up,down
* @return T_BBS_CATEGORY 카테고리 정보 객체
* */
//ManagerBbsService
public T_BBS_CATEGORY getBbsCategoryOrderForm(Integer bbsSetIdx, Integer bbsCategoryDepth, Integer bbsCategoryOrder, String orderType){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_CATEGORY.class);
criteria.setMaxResults(1);
if(orderType.equals("up")){
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsCategoryDepth", bbsCategoryDepth)),
Restrictions.lt("bbsCategoryOrder", bbsCategoryOrder)));
criteria.addOrder(Order.desc("bbsCategoryOrder"));
}else{
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsCategoryDepth", bbsCategoryDepth)),
Restrictions.gt("bbsCategoryOrder", bbsCategoryOrder)));
criteria.addOrder(Order.asc("bbsCategoryOrder"));
}
return (T_BBS_CATEGORY)criteria.list().get(0);
}
/**
* 카테고리 정보를 저장하는 메소드
* @param T_BBS_CATEGORY tBbsCategory 저장할 카테고리 객체
* @return boolean 작업 성공 여부
* */
//ManagerBbsService
public boolean setBbsCategoryRegProc(T_BBS_CATEGORY tBbsCategory){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tBbsCategory);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 카테고리 정보를 수정하는 메소드
* @param T_BBS_CATEGORY tBbsCategory 수정할 카테고리 객체
* @return boolean 작업 성공 여부
* */
//ManagerBbsService
public boolean setBbsCategoryModProc(T_BBS_CATEGORY tBbsCategory){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBbsCategory);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 카테고리 정보를 삭제 하는 메소드
* @param T_BBS_CATEGORY tBbsCategory 삭제할 카테고리 객체
* @return boolean 작업 성공 여부
* */
//ManagerBbsService
public boolean setBbsCategoryDelProc(T_BBS_CATEGORY tBbsCategory){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tBbsCategory);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 카테고리 정렬 정보를 수정하는 메소드
* bbsSetIdx 맞고 bbsCategoryOrder 보다 카테고리 리스트를 가지고 와서
* orderType에 맞춰서 bbsCategoryOrder값을 수정하는 메소드
* orderType-plus= +1
* orderType-minus= -1
* orderType-minuss= -bbsCategoryListCnt
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer bbsCategoryOrder 카테고리 정렬 순서
* @param Integer bbsCategoryListCnt 카테고리 리스트 개수
* @param String orderType 정렬 형식 ex>plus, minus, minuss
* */
//ManagerBbsService
@SuppressWarnings("unchecked")
public void setBbsCategoryOrderProc(Integer bbsSetIdx, Integer bbsCategoryOrder, Integer bbsCategoryListCnt, String orderType){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_CATEGORY.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.ge("bbsCategoryOrder", bbsCategoryOrder)));
criteria.addOrder(Order.asc("bbsCategoryOrder"));
List<T_BBS_CATEGORY> tBbsCategoryList = criteria.list();
if(tBbsCategoryList.size() > 0){
for(int i=0; i<tBbsCategoryList.size(); i++){
T_BBS_CATEGORY tBbsCategoryDB = tBbsCategoryList.get(i);
if(orderType.equals("plus")){
tBbsCategoryDB.setBbsCategoryOrder(tBbsCategoryDB.getBbsCategoryOrder()+1);
}else if(orderType.equals("minus")){
tBbsCategoryDB.setBbsCategoryOrder(tBbsCategoryDB.getBbsCategoryOrder()-1);
}else if(orderType.equals("minuss")){
tBbsCategoryDB.setBbsCategoryOrder(tBbsCategoryDB.getBbsCategoryOrder()-bbsCategoryListCnt);
}
try{
this.sessionFactory.getCurrentSession().update(tBbsCategoryDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
}
}
}
}

View File

@ -0,0 +1,29 @@
package seed.dao;
import java.util.List;
import seed.map.T_BBS_COMMENT;
public interface BbsCommentDAO {
//AdminMemberService, ManagerMemberService
public List<T_BBS_COMMENT> getBbsCommentList(Integer memberIdx);
//UserBbsCommentService
public T_BBS_COMMENT getBbsCommentForm(Integer bbsCommentIdx);
//UserBbsCommentService
public List<T_BBS_COMMENT> getBbsCommentList(Integer bbsDataIdx, int page, int row, String[] qryColumns);
//UserBbsCommentService
public Long getBbsCommentListCnt(Integer bbsDataIdx);
//UserBbsCommentService
public boolean setBbsCommentRegProc(T_BBS_COMMENT tBbsComment);
//AdminMemberService, ManagerMemberService
public boolean setBbsCommentModProc(T_BBS_COMMENT tBbsComment);
//UserBbsCommentService
public boolean setBbsCommentDelProc(T_BBS_COMMENT tBbsComment);
}

View File

@ -0,0 +1,197 @@
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.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_BBS_COMMENT;
/**
* T_BBS_COMMENT 테이블 정보를 SELECT, INSERT, UPDATE, DELETE 하는 메소드
* */
@Repository
public class BbsCommentDAOImpl implements BbsCommentDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* 게시판 한줄 답변 리스트를 가지고 오는 메소드
* memberIdx에 해당하는 한줄 답변 리스트를 가지고 온다
* @param Integer memberIdx 회원 정보 idx
* @return List<T_BBS_COMMENT> 한줄 답변 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_BBS_COMMENT> getBbsCommentList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_COMMENT.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* 한줄 답변 정보를 가지고 오는 메소드
* bbsCommentIdx에 해당하는 한줄답변 정보를 가지고 오는 메소드
* @param Integer bbsCommentIdx 한줄답변 idx
* @return T_BBS_COMMENT 한줄답변 객체
* */
//UserBbsCommentService
public T_BBS_COMMENT getBbsCommentForm(Integer bbsCommentIdx){
return (T_BBS_COMMENT) this.sessionFactory.getCurrentSession().load(T_BBS_COMMENT.class, bbsCommentIdx);
}
/**
* 한줄 답변 리스트를 가지고 오는 메소드
* bbsDataIdx에 해당하는 한줄답변 리스트를 row개씩 page데이터를 가지고 온다
* @param Integer bbsDataIdx 게시물 idx
* @param int page 출력할 페이지 번호
* @param int row 페이지당 출력 개수
* @param String[] qryColumns select할 컬럼 지정
* @return List<T_BBS_COMMENT> 한줄 답변 리스트
* */
//UserBbsCommentService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BBS_COMMENT> getBbsCommentList(Integer bbsDataIdx, int page, int row, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_COMMENT.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tBbsData.bbsDataIdx", bbsDataIdx));
criteria.addOrder(Order.desc("bbsCommentIdx"));
return criteria.list();
}
/**
* 한줄답변 개수를 가지고 오는 메소드
* bbsDataIdx에 해당하는 한줄답변 개수를 가지고 오는 메소드
* @param Integer bbsDataIdx 게시물 idx
* @return Long 한줄답변 개수
* */
//UserBbsCommentService
@SuppressWarnings("unchecked")
public Long getBbsCommentListCnt(Integer bbsDataIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_COMMENT.class);
criteria.add(Restrictions.eq("tBbsData.bbsDataIdx", bbsDataIdx));
criteria.setProjection(Projections.rowCount());
List<Long> tBbsComment = criteria.list();
return tBbsComment.get(0);
}
/**
* 한줄답변 정보를 디비에 저장하는 메소드
* @param T_BBS_COMMENT tBbsComment 저장할 한줄답변 정보
* @return boolean 작업 성공여부
* */
//UserBbsCommentService
public boolean setBbsCommentRegProc(T_BBS_COMMENT tBbsComment){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tBbsComment);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 한줄답변 내용을 수정하는 메소드
* @param T_BBS_COMMENT tBbsComment 수정할 한줄답변 정보
* @return boolean 작업의 성공 여부
* */
//AdminMemberService, ManagerMemberService
public boolean setBbsCommentModProc(T_BBS_COMMENT tBbsComment){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBbsComment);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 한줄 답변 정보를 삭제하는 메소드
* @param T_BBS_COMMENT tBbsComment 삭제할 한줄답변 정보
* @return boolean 작업의 성공 여부
* */
//UserBbsCommentService
public boolean setBbsCommentDelProc(T_BBS_COMMENT tBbsComment){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tBbsComment);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,79 @@
package seed.dao;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import seed.map.T_BBS_DATA;
import seed.map.T_POINT;
public interface BbsDataDAO {
//AdminMemberService, ManagerMemberService
public List<T_BBS_DATA> getBbsDataList(Integer memberIdx);
//UserBbsDataService
public List<T_BBS_DATA> getBestDataList(Integer bbsSetIdx, int row, String[] qryColumns);
//UserBbsDataService
public List<T_BBS_DATA> getSlideDataList(Integer bbsSetIdx, int page, int row, String[] qryColumns);
//UserBbsDataService, ManagerBbsDataService
public List<Map<Object, Object>> getBbsDataMiniList(Integer bbsSetIdx, int page, int row, String bbsSetDateOrder, ArrayList<String> qryArrayList);
public List<Map<Object, Object>> getBbsDashboardList(String siteIdx, int page, int row, ArrayList<String> qryArrayList);
//ManagerBbsTrashService
public Long getBbsTrashListCnt(Integer bbsSetIdx, String column, String search, String bbsSetType, String searchSDate, String searchEDate);
//ManagerBbsTrashService
public List<Map<Object, Object>> getBbsTrashList(Integer bbsSetIdx, int page, int row, String column, String search, String bbsSetType, String searchSDate, String searchEDate, ArrayList<String> qryArrayList);
//UserBbsDataService
public List<Map<Object, Object>> getBbsNoticeDataList(Integer bbsSetIdx, String column, String search, String bbsSetDateOrder, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList);
//UserBbsDataService
public Long getBbsDataReplyCnt(Integer bbsSetIdx, Integer bbsDataGroup, Integer bbsDataDepth);
//UserBbsDataService
public Long getBbsDataListCnt(boolean grant, Integer bbsSetIdx, String column, String search, String bbsSetType, String bbsSetMyData, Integer memberIdx, String memberCertify, boolean grantAuth, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList);
//UserBbsDataService
public List<Map<Object, Object>> getBbsDataList(boolean grant, Integer bbsSetIdx, int page, int row, String column, String search, String bbsSetDateOrder, String bbsSetType, String bbsSetMyData, Integer memberIdx, String memberCertify, boolean grantAuth, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList);
//ManagerBbsDataService
public List<Map<Object, Object>> getBbsDataList(Integer bbsSetIdx, String column, String search, String bbsSetType, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList);
//ManagerBbsSetService, UserBbsDataService, ManagerBbsDataService
public T_BBS_DATA getBbsDataForm(Integer bbsDataIdx);
//ManagerBbsSetService, UserBbsDataService, ManagerBbsDataService
public T_BBS_DATA getBbsReplyForm(Integer bbsDataGroup, Integer bbsDataFam);
//ManagerBbsTrashService
public T_BBS_DATA getBbsTrashForm(Integer bbsDataIdx);
//UserBbsDataService
public Map<Object, Object> getBbsDataPreForm(T_BBS_DATA tBbsData, String column, String search, String bbsSetMyData, Integer memberIdx, String memberCertify, boolean grantAuth, String bbsDataCategory, String searchSDate, String searchEDate, String[] qryColumns);
//UserBbsDataService
public Map<Object, Object> getBbsDataNextForm(T_BBS_DATA tBbsData, String column, String search, String bbsSetMyData, Integer memberIdx, String memberCertify, boolean grantAuth, String bbsDataCategory, String searchSDate, String searchEDate, String[] qryColumns);
//UserBbsDataService
public T_BBS_DATA setBbsDataRegProc(T_BBS_DATA tBbsData);
//ManagerBbsSetService, UserBbsDataService
public boolean setBbsDataModProc(T_BBS_DATA tBbsData);
//ManagerBbsSetService, UserBbsDataService
public boolean setBbsDataDelProc(T_BBS_DATA tBbsData);
//UserBbsDataService, ManagerBbsDataService
public void setBbsDataPosModProc(T_BBS_DATA tBbsData);
//ManagerBbsSetService, UserBbsDataService
public void setBbsPointProc(T_POINT tPoint);
//UserBbsDataService, ManagerBbsDataService
public void setBbsDataHitProc(Integer bbsDataIdx);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_BBS_FILE;
public interface BbsFileDAO {
//UserBbsFileService
public T_BBS_FILE getBbsFileForm(Integer bbsFileIdx);
//ManagerBbsDataService, UserBbsDataService
public Long getBbsFileListCnt(Integer bbsDataIdx);
//ManagerBbsSetService
public List<T_BBS_FILE> getBbsFileList(Integer bbsDataIdx);
//UserBbsFileService, ManagerBbsFileService, ManagerBbsDataService
public List<T_BBS_FILE> getBbsFileList(Integer bbsDataIdx, String[] qryColumns);
//UserBbsFileService
public List<Map<Object, Object>> getBbsFileListMap(Integer bbsDataIdx, String[] qryColumns);
//UserBbsFileService
public List<T_BBS_FILE> getBbsFileList(Integer bbsDataIdx, Integer[] bbsFileIdx, String[] qryColumns);
//UserBbsFileService
public boolean setBbsFileRegProc(T_BBS_FILE tBbsFile);
//ManagerBbsSetService
public boolean setBbsFileModProc(T_BBS_FILE tBbsFile);
//UserBbsFileService
public boolean setBbsFileDelProc(T_BBS_FILE tBbsFile);
}

View File

@ -0,0 +1,279 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
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_BBS_FILE;
/**
* T_BBS_FILE 데이블 정보를 SELECT, INSERT, UPDATE, DELETE하는 class
* */
@Repository
public class BbsFileDAOImpl implements BbsFileDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* 첨부파일 정보를 가지고 오는 메소드
* bbsFileIdx에 해당하는 정보를 가지고 오는 메소드
* @param Integer bbsFileIdx 첨부파일 idx
* @return T_BBS_FILE 첨부파일 정보
* */
//UserBbsFileService
public T_BBS_FILE getBbsFileForm(Integer bbsFileIdx){
return (T_BBS_FILE) this.sessionFactory.getCurrentSession().load(T_BBS_FILE.class, bbsFileIdx);
}
/**
* 첨부파일 개수를 가지고 오는 메소드
* bbsDataIdx에 해당하는 첨부파일 개수를 가지고 오는 메소드
* @param Integer bbsDataIdx 게시물 idx
* @return Long 첨부파일 개수
* */
//ManagerBbsDataService, UserBbsDataService
public Long getBbsFileListCnt(Integer bbsDataIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_FILE.class);
criteria.add(Restrictions.eq("tBbsData.bbsDataIdx", bbsDataIdx));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* 첨부파일 리스트를 가지고 오는 메소드
* bbsDataIdx 해당하는 첨부파일 리스트를 가지고 온다
* @param Integer bbsDataIdx 게시물 idx
* @return List<T_BBS_FILE> 첨부파일 리스트
* */
//ManagerBbsSetService
@SuppressWarnings("unchecked")
public List<T_BBS_FILE> getBbsFileList(Integer bbsDataIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_FILE.class);
criteria.add(Restrictions.eq("tBbsData.bbsDataIdx", bbsDataIdx));
criteria.addOrder(Order.desc("bbsFileIdx"));
return criteria.list();
}
/**
* 첨부파일 리스트를 가지고 오는 메소드
* bbsDataIdx 해당하는 첨부파일 리스트
* @param Integer bbsDataIdx 게시물 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_FILE> 첨부파일 리스트
* */
//UserBbsFileService, ManagerBbsFileService, ManagerBbsDataService
@SuppressWarnings("unchecked")
public List<T_BBS_FILE> getBbsFileList(Integer bbsDataIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_FILE.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("tBbsData.bbsDataIdx", bbsDataIdx));
criteria.addOrder(Order.asc("bbsFileIdx"));
return criteria.list();
}
/**
* 첨부파일 리스트를 가지고 오는 메소드
* bbsDataIdx 해당하는 첨부파일 리스트를 가지고 온다
* @param Integer bbsDataIdx 게시물 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<Map<Object, Object>> 첨부파일 리스트
* */
//UserBbsFileService
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getBbsFileListMap(Integer bbsDataIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_FILE.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("tBbsData.bbsDataIdx", bbsDataIdx));
criteria.addOrder(Order.asc("bbsFileIdx"));
return criteria.list();
}
/**
* 첨부파일 리스트를 가지고 오는 메소드
* bbsDataIdx, bbsFileIdx에 해당하는 첨부파일 리스트를 가지고 온다
* bbsFileIdx 데이터는 in 조건으로 검색 한다
* @param Integer bbsDataIdx 게시물 idx
* @param Integer[] bbsFileIdx 첨부파일 idx 리스트
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_FILE> 첨부파일 리스트
* */
//UserBbsFileService
@SuppressWarnings("unchecked")
public List<T_BBS_FILE> getBbsFileList(Integer bbsDataIdx, Integer[] bbsFileIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_FILE.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.and(
Restrictions.not(
Restrictions.in("bbsFileIdx", bbsFileIdx)),
Restrictions.eq("tBbsData.bbsDataIdx", bbsDataIdx)));
return criteria.list();
}
/**
* 첨부파일 정보를 저장하는 메소드
* @param T_BBS_FILE tBbsFile 저장할 첨부파일 정보
* @return boolean 작업의 성공여부
* */
//UserBbsFileService
public boolean setBbsFileRegProc(T_BBS_FILE tBbsFile){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tBbsFile);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 첨부파일 정보를 수정하는 메소드
* @param T_BBS_FILE tBbsFile 수정할 첨부파일 정보
* @return boolean 작업의 성공여부
* */
//ManagerBbsSetService
public boolean setBbsFileModProc(T_BBS_FILE tBbsFile){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBbsFile);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 첨부파일 정보를 삭제하는 메소드
* @param T_BBS_FILE tBbsFile 삭제할 첨부파일 정보
* @return boolean 작업의 성공여부
* */
//UserBbsFileService
public boolean setBbsFileDelProc(T_BBS_FILE tBbsFile){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tBbsFile);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,84 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_BBS_ITEM;
public interface BbsItemDAO {
//AdminMemberService, ManagerMemberService
public List<T_BBS_ITEM> getBbsItemAllList(Integer memberIdx);
//AdminSiteService
public List<T_BBS_ITEM> getBbsItemList(Integer bbsSetIdx);
//ManagerBbsItemService
public T_BBS_ITEM getBbsItemForm(Integer bbsItemIdx);
//ManagerBbsItemService, UserBbsItemService
public T_BBS_ITEM getBbsItemValueForm(Integer bbsSetIdx, String bbsItemGroup);
//ManagerBbsItemService
public T_BBS_ITEM getBbsItemForm(Integer bbsSetIdx, String bbsItemGroup);
//UserBbsItemService, ManagerBbsItemService
public List<Map<Object, Object>> getBbsItemMiniList(Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsItemService
public List<T_BBS_ITEM> getBbsItemViewOrderList(Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsItemService
public List<T_BBS_ITEM> getBbsItemMiniOrderList(Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsItemService, UserBbsItemService
public List<Map<Object, Object>> getBbsItemList(Integer bbsSetIdx, String orderType, String[] qryColumns);
//UserBbsItemService
public List<T_BBS_ITEM> getBbsItemValuesList(Integer bbsSetIdx, String orderType, String[] qryColumns);
//ManagerBbsItemService
public List<T_BBS_ITEM> getBbsItemValuesGroupList(Integer bbsSetIdx, String bbsItemGroup, String[] qryColumns);
//ManagerBbsItemService
public List<Map<String, Object>> getBbsItemGroupList(Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsItemService
public List<T_BBS_ITEM> getBbsItemMiniOrderList(Integer bbsSetIdx, Integer bbsItemMiniOrder, String[] qryColumns);
//ManagerBbsItemService
public List<T_BBS_ITEM> getBbsItemListOrderList(Integer bbsSetIdx, Integer bbsItemListOrder, String[] qryColumns);
//ManagerBbsItemService
public List<T_BBS_ITEM> getBbsItemViewOrderList(Integer bbsSetIdx, Integer bbsItemViewOrder, String[] qryColumns);
//ManagerBbsItemService
public Long getBbsItemListCnt(Integer bbsSetIdx);
//ManagerBbsItemService
public Integer getBbsItemMiniOrderFormCnt(Integer bbsSetIdx);
//ManagerBbsItemService
public Integer getBbsItemListOrderFormCnt(Integer bbsSetIdx);
//ManagerBbsItemService
public Integer getBbsItemViewOrderFormCnt(Integer bbsSetIdx);
//ManagerBbsSetService
public T_BBS_ITEM setBbsItemRegProc(T_BBS_ITEM tBbsItem);
//ManagerBbsItemService
public boolean setBbsItemModProc(T_BBS_ITEM tBbsItem);
//ManagerBbsItemService
public boolean setBbsItemDelProc(T_BBS_ITEM tBbsItem);
//ManagerBbsItemService
public void setBbsItemMiniOrderProc(Integer bbsSetIdx, Integer bbsItemMiniOrder);
//ManagerBbsItemService
public void setBbsItemListOrderProc(Integer bbsSetIdx, Integer bbsItemListOrder);
//ManagerBbsItemService
public void setBbsItemViewOrderProc(Integer bbsSetIdx, Integer bbsItemViewOrder);
}

View File

@ -0,0 +1,851 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
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_BBS_ITEM;
/**
* T_BBS_ITEM 테이블 정보를 SELECT, INSERT, UPDATE, DELETE하는 class
* */
@Repository
public class BbsItemDAOImpl implements BbsItemDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx에 해당하는 게시판 항목 정보 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 정보 idx
* @return List<T_BBS_ITEM> 게시판 항목 정보 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_BBS_ITEM> getBbsItemAllList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* bbsSetIdx에 해당하는 게시판 항목 정보 리스트를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @return List<T_BBS_ITEM> 게시판 항목 정보 리스트
* */
//AdminSiteService
@SuppressWarnings("unchecked")
public List<T_BBS_ITEM> getBbsItemList(Integer bbsSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.add(Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx));
criteria.addOrder(Order.asc("bbsItemListOrder"));
return criteria.list();
}
/**
* bbsItemIdx에 해당하는 게시판 항목 정보를 가지고 오는 메소드
* @param Integer bbsItemIdx 게시판 항목 idx
* @return T_BBS_ITEM 게시판 항목 정보
* */
//ManagerBbsItemService
public T_BBS_ITEM getBbsItemForm(Integer bbsItemIdx){
return (T_BBS_ITEM) this.sessionFactory.getCurrentSession().load(T_BBS_ITEM.class, bbsItemIdx);
}
//ManagerBbsItemService, UserBbsItemService
public T_BBS_ITEM getBbsItemValueForm(Integer bbsSetIdx, String bbsItemGroup){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.setMaxResults(1);
criteria.add(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemGroup", bbsItemGroup)));
criteria.addOrder(Order.asc("bbsItemGroup")).addOrder(Order.asc("bbsItemIdx"));
return (T_BBS_ITEM)criteria.list().get(0);
}
/**
* bbsSetIdx, bbsItemGroup 조건에 대한 항목 정보를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String bbsItemGroup 게시판 항목 정보 그룹 ex>bbsDataIdx, bbsDataTitle, bbsDataContent...
* */
//ManagerBbsItemService
public T_BBS_ITEM getBbsItemForm(Integer bbsSetIdx, String bbsItemGroup){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.setMaxResults(1);
criteria.add(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemGroup", bbsItemGroup)));
criteria.addOrder(Order.asc("bbsItemGroup"));
return (T_BBS_ITEM)criteria.list().get(0);
}
/**
* bbsSetIdx,bbsItemMiniList=Y, bbsItemStatus=U 조건에 해당하는 항목 정보를 map형태로 가지고 오는 메소드
* 미니게시판 출력 사용할 항목 정보 리스트 조회시 사용된다
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<Map<Object,Object>> 게시판 항목 리스트
* */
//UserBbsItemService, ManagerBbsItemService
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getBbsItemMiniList(Integer bbsSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.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.and(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemMiniList", "Y")),
Restrictions.eq("bbsItemStatus", "U")));
criteria.addOrder(Order.asc("bbsItemMiniOrder"));
return criteria.list();
}
/**
* bbsSetIdx, bbsItemStatus=U 해당하는 게시물 항목 정보 리스트를 가지고 오는 메소드
* 상세보기 글짝성시 항목 리스트를 가지고 온다
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_ITEM> 게시판 항목 리스트
* */
//ManagerBbsItemService
@SuppressWarnings("unchecked")
public List<T_BBS_ITEM> getBbsItemViewOrderList(Integer bbsSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.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.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemStatus", "U")));
criteria.addOrder(Order.asc("bbsItemViewOrder"));
return criteria.list();
}
/**
* bbsSetIdx, bbsItemMiniList=Y, bbsItemStatus=U에 해당하는 항목 리스트를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_ITEM> 항목 리스트
* */
//ManagerBbsItemService
@SuppressWarnings("unchecked")
public List<T_BBS_ITEM> getBbsItemMiniOrderList(Integer bbsSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.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.and(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemMiniList", "Y")),
Restrictions.eq("bbsItemStatus", "U")));
criteria.addOrder(Order.asc("bbsItemMiniOrder"));
return criteria.list();
}
/**
* bbsSetIdx에 해당하는 게시판 항목 리스트를 map형태로 가지고 오는 메소드
* orderType 따라서 정렬 기준이 달라 지게 된다.
* @param Integer bbsSetidx 게시판 설정 idx
* @param String orderType 정렬에 사용할 컬럼을 정의 하기 위한 ex>LIST, VIEW
* @param String[] qryColumns select할 컬럼 정의
* @return List<Map<Obejct, Object>> 항목 리스트
* */
//ManagerBbsItemService, UserBbsItemService
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getBbsItemList(Integer bbsSetIdx, String orderType, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.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("tBbsSet.bbsSetIdx", bbsSetIdx));
criteria.addOrder(Order.asc("bbsItem"+orderType+"Order"));
return criteria.list();
}
/**
* bbsSetIdx, bbsItemStatus=U 해당하는 게시판 항목 리스트를 가지고 오는 메소드
* orderType 따라서 정렬 기준이 달라 지게 된다.
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String orderType 정렬에 사용할 컬럼을 정의 하기 위한 ex>LIST, VIEW
* @param String[] qryColumns select할 컬럼 정의
* @return List<T_BBS_ITEM> 항목 리스트
* */
//UserBbsItemService
@SuppressWarnings("unchecked")
public List<T_BBS_ITEM> getBbsItemValuesList(Integer bbsSetIdx, String orderType, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.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.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemStatus", "U")));
criteria.addOrder(Order.asc("bbsItem"+orderType+"Order")).addOrder(Order.asc("bbsItemIdx"));
return criteria.list();
}
/**
* bbsSetIdx, bbsItemGroup 해당하는 게시판 항목 리스트를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String bbsItemGroup 게시판 그룹 ex>bbsDataIdx, bbsDataTitle
* @param String[] qryColumns select할 컬럼 정의
* @return List<T_BBS_ITEM> 항목 리스트
* */
//ManagerBbsItemService
@SuppressWarnings("unchecked")
public List<T_BBS_ITEM> getBbsItemValuesGroupList(Integer bbsSetIdx, String bbsItemGroup, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.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.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemGroup", bbsItemGroup)));
criteria.addOrder(Order.asc("bbsItemGroup")).addOrder(Order.asc("bbsItemIdx"));
return criteria.list();
}
/**
* bbsSetIdx, bbsItemType=A 해당하는 게시판 항목 리스트를 map형태로 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<Map<String,Object>> 항목 리스트
* */
//ManagerBbsItemService
@SuppressWarnings("unchecked")
public List<Map<String, Object>> getBbsItemGroupList(Integer bbsSetIdx, String[] qryColumns) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.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.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemType", "A")));
criteria.addOrder(Order.asc("bbsItemGroup"));
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
return criteria.list();
}
/**
* bbsSetIdx, bbsItemMiniOrder에 해당하는 게시판 항목 리스트를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer bbsItemMiniOrder 미니게시판 출력 순서
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_ITEM> 항목 리스트
* */
//ManagerBbsItemService
@SuppressWarnings("unchecked")
public List<T_BBS_ITEM> getBbsItemMiniOrderList(Integer bbsSetIdx, Integer bbsItemMiniOrder, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.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.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemMiniOrder", bbsItemMiniOrder)));
criteria.addOrder(Order.asc("bbsItemIdx"));
return criteria.list();
}
/**
* bbsSetIdx, bbsItemListOrder에 해당하는 항목 리스트를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer bbsItemListOrder 게시판 리스트 출력 개수
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_ITEM> 항목 리스트
* */
//ManagerBbsItemService
@SuppressWarnings("unchecked")
public List<T_BBS_ITEM> getBbsItemListOrderList(Integer bbsSetIdx, Integer bbsItemListOrder, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.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.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemListOrder", bbsItemListOrder)));
criteria.addOrder(Order.asc("bbsItemIdx"));
return criteria.list();
}
/**
* bbsSetIdx, bbsItemViewOrder 해당하는 항목 리스트를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer bbsItemViewOrder 게시판 상세보기 정렬 순서
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_ITEM> 항목 리스트
* */
//ManagerBbsItemService
@SuppressWarnings("unchecked")
public List<T_BBS_ITEM> getBbsItemViewOrderList(Integer bbsSetIdx, Integer bbsItemViewOrder, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.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.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsItemViewOrder", bbsItemViewOrder)));
criteria.addOrder(Order.asc("bbsItemIdx"));
return criteria.list();
}
/**
* bbsSetIdx 해당하는 항목 개수를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @return Long 항목 개수
* */
//ManagerBbsItemService
public Long getBbsItemListCnt(Integer bbsSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.add(Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx));
criteria.setProjection(Projections.countDistinct("bbsItemGroup"));
return (Long)criteria.uniqueResult();
}
/**
* bbsSetIdx에 해당하는 bbsItemMiniOrder 최대값을 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @return Integer bbsItemMiniOrder 최대값
* */
//ManagerBbsItemService
public Integer getBbsItemMiniOrderFormCnt(Integer bbsSetIdx) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.add(Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx));
criteria.setProjection(Projections.max("bbsItemMiniOrder"));
if(criteria.uniqueResult() == null){
return 0;
}else{
return (Integer)criteria.uniqueResult();
}
}
/**
* bbsSetIdx에 해당하는 bbsItemListOrder 최대값을 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @return Integer bbsItemListOrder 최대값
* */
//ManagerBbsItemService
public Integer getBbsItemListOrderFormCnt(Integer bbsSetIdx) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.add(Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx));
criteria.setProjection(Projections.max("bbsItemListOrder"));
if(criteria.uniqueResult() == null){
return 0;
}else{
return (Integer)criteria.uniqueResult();
}
}
/**
* bbsSetIdx에 해당하는 bbsItemViewOrder 최대값을 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @return Integer bbsItemViewOrder 최대값
* */
//ManagerBbsItemService
public Integer getBbsItemViewOrderFormCnt(Integer bbsSetIdx) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.add(Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx));
criteria.setProjection(Projections.max("bbsItemViewOrder"));
if(criteria.uniqueResult() == null){
return 0;
}else{
return (Integer)criteria.uniqueResult();
}
}
/**
* 게시판 항목 정보를 저장하는 메소드
* @param T_BBS_ITEM tBbsItem 저장할 항목 정보
* @return T_BBS_ITEM 저장된 항목 정보
* */
//ManagerBbsSetService
public T_BBS_ITEM setBbsItemRegProc(T_BBS_ITEM tBbsItem){
try{
this.sessionFactory.getCurrentSession().save(tBbsItem);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getBbsItemForm(tBbsItem.gettBbsSet().getBbsSetIdx(), tBbsItem.getBbsItemGroup());
}
/**
* 게시판 항목 정보를 수정하는 메소드
* @param T_BBS_ITEM tBbsItem 수정할 항목 정보
* @return boolean 작업 성공 여부
* */
//ManagerBbsItemService
public boolean setBbsItemModProc(T_BBS_ITEM tBbsItem){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBbsItem);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 게시판 항목 정보를 삭제하는 메소드
* @param T_BBS_ITEM tBbsItem 삭제할 항목 정보
* @return boolean 작업 성공 여부
* */
//ManagerBbsItemService
public boolean setBbsItemDelProc(T_BBS_ITEM tBbsItem){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tBbsItem);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* bbsSetIdx, bbsItemMiniOrder < 조건에 해당하는 항목 정보를 가지고 와서 bbsItemMiniOrder값을 -1 해주는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer bbsItemMiniOrder 미니게시판 정렬 순서
* */
//ManagerBbsItemService
@SuppressWarnings("unchecked")
public void setBbsItemMiniOrderProc(Integer bbsSetIdx, Integer bbsItemMiniOrder){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.gt("bbsItemMiniOrder", bbsItemMiniOrder)));
criteria.addOrder(Order.asc("bbsItemMiniOrder"));
List<T_BBS_ITEM> tBbsItemList = criteria.list();
if(tBbsItemList.size() > 0){
for(int i=0; i<tBbsItemList.size(); i++){
T_BBS_ITEM tBbsItemDB = tBbsItemList.get(i);
if(tBbsItemDB.getBbsItemMiniOrder() != null && tBbsItemDB.getBbsItemMiniOrder() > 0){
tBbsItemDB.setBbsItemMiniOrder(tBbsItemDB.getBbsItemMiniOrder()-1);
try{
this.sessionFactory.getCurrentSession().update(tBbsItemDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
}
}
}
}
/**
* bbsSetIdx, bbsItemListOrder < 조건에 해당하는 항목 정보를 가지고 와서 bbsItemListOrder -1 해주는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer bbsItemListOrder 리시트 출력 정렬 순서
* */
//ManagerBbsItemService
@SuppressWarnings("unchecked")
public void setBbsItemListOrderProc(Integer bbsSetIdx, Integer bbsItemListOrder){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.gt("bbsItemListOrder", bbsItemListOrder)));
criteria.addOrder(Order.asc("bbsItemListOrder"));
List<T_BBS_ITEM> tBbsItemList = criteria.list();
if(tBbsItemList.size() > 0){
for(int i=0; i<tBbsItemList.size(); i++){
T_BBS_ITEM tBbsItemDB = tBbsItemList.get(i);
if(tBbsItemDB.getBbsItemListOrder() != null && tBbsItemDB.getBbsItemListOrder() > 0){
tBbsItemDB.setBbsItemListOrder(tBbsItemDB.getBbsItemListOrder()-1);
try{
this.sessionFactory.getCurrentSession().update(tBbsItemDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
}
}
}
}
/**
* bbsSetIdx, bbsItemViewOrder < 조건에 해당하는 항목 정보를 가지고 와서 bbsItemViewOrder -1 해주는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer bbsItemViewOrder 상세보기 정렬 순서
* */
//ManagerBbsItemService
@SuppressWarnings("unchecked")
public void setBbsItemViewOrderProc(Integer bbsSetIdx, Integer bbsItemViewOrder){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_ITEM.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.gt("bbsItemViewOrder", bbsItemViewOrder)));
criteria.addOrder(Order.asc("bbsItemViewOrder"));
List<T_BBS_ITEM> tBbsItemList = criteria.list();
if(tBbsItemList.size() > 0){
for(int i=0; i<tBbsItemList.size(); i++){
T_BBS_ITEM tBbsItemDB = tBbsItemList.get(i);
if(tBbsItemDB.getBbsItemViewOrder() != null && tBbsItemDB.getBbsItemViewOrder() > 0){
tBbsItemDB.setBbsItemViewOrder(tBbsItemDB.getBbsItemViewOrder()-1);
try{
this.sessionFactory.getCurrentSession().update(tBbsItemDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
}
}
}
}
}

View File

@ -0,0 +1,48 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_BBS_MANAGER;
public interface BbsManagerDAO {
//AdminSiteService
public List<T_BBS_MANAGER> getBbsManagerList(String siteIdx);
//AdminMemberService, ManagerMemberService
public List<T_BBS_MANAGER> getBbsManagerList(Integer memberIdx);
//ManagerBbsManagerService
public T_BBS_MANAGER getBbsManagerForm(Integer managerIdx);
//ManagerBbsManagerService
public Long getBbsManagerListGrantCnt(Integer bbsSetIdx, Integer memberIdx);
//UserBbsManagerService
public Long getBbsManagerListCnt(Integer bbsSetIdx, Integer memberIdx);
//ManagerBbsManagerService
public Long getBbsManagerListCnt(Integer bbsSetIdx, Integer selGroup, String column, String search);
//ManagerBbsManagerService
public Long getBbsManagerListCnt(String siteIdx, Integer memberIdx, String column, String search);
//ManagerBbsManagerService
public List<T_BBS_MANAGER> getBbsManagerList(Integer bbsSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//ManagerBbsManagerService
public List<T_BBS_MANAGER> getBbsManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerBbsManagerService
public List<Map<Object, Object>> getBbsManagerList(String siteIdx, Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsManagerService
public boolean setBbsManagerRegProc(T_BBS_MANAGER tBbsManager);
//ManagerBbsManagerService, AdminMemberService, ManagerMemberService
public boolean setBbsManagerModProc(T_BBS_MANAGER tBbsManager);
//ManagerBbsManagerService
public boolean setBbsManagerDelProc(T_BBS_MANAGER tBbsManager);
}

View File

@ -0,0 +1,471 @@
package seed.dao;
import java.util.List;
import java.util.Map;
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_BBS_MANAGER;
/**
* T_BBS_MANAGER 테이블 정보를 SELECT, INSERT, UPDATE, DELETE하는 class
* */
@Repository
public class BbsManagerDAOImpl implements BbsManagerDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* siteIdx에 해당하는 게시판 관리자 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return List<T_BBS_MANAGER> 게시판 관리자 리스트
* */
//AdminSiteService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BBS_MANAGER> getBbsManagerList(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_MANAGER.class);
criteria.createCriteria("tBbsSet", "tBbsSet", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tBbsSet.tSite.siteIdx", siteIdx));
return criteria.list();
}
/**
* memberIdx 해당하는 게시판 관리자 리스틀 가지고 오는 메소드
* @param Integer memberIdx 사용자 idx
* @return List<T_BBS_MANAGER> 관리자 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_BBS_MANAGER> getBbsManagerList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_MANAGER.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* managerIdx에 해당하는 게시판 관리자 정보를 가지고 오는 메소드
* @param Integer managerIdx 관리자 idx
* @return T_BBS_MANAGER 관리자 정보
* */
//ManagerBbsManagerService
public T_BBS_MANAGER getBbsManagerForm(Integer managerIdx){
return (T_BBS_MANAGER) this.sessionFactory.getCurrentSession().load(T_BBS_MANAGER.class, managerIdx);
}
/**
* bbsSetIdx, memberIdx, bbsManagerStatus=U, bbsManagerGrant=U, Member.memberStatus=U에 해당하는 게시판 관리자 개수를 가지고 오는
* 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer memberIdx 회원 정보 idx
* @return Long 관리자 개수
* */
//ManagerBbsManagerService
@SuppressWarnings("deprecation")
public Long getBbsManagerListGrantCnt(Integer bbsSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsManagerStatus", "U")),
Restrictions.eq("bbsManagerGrant", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* bbsSetIdx, memberIdx, bbsManagerStatus=U, bbsManagerGrant= OR 빈값, Member.memberStatus=U에 해당하는 게시판 관리자 개수를 가지고 오는
* 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param Integer memberIdx 회원 정보 idx
* @return Long 관리자 개수
* */
//ManagerBbsManagerService
@SuppressWarnings("deprecation")
public Long getBbsManagerListCnt(Integer bbsSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx),
Restrictions.eq("bbsManagerStatus", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* bbsSetIdx, column, search 해당하는 게시판 관리자 정보 개수를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 관리자 정보 개수
* */
//ManagerBbsManagerService
@SuppressWarnings("deprecation")
public Long getBbsManagerListCnt(Integer bbsSetIdx, Integer selGroup, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx));
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();
}
/**
* siteIdx, memberIdx, column, search 해당하는 게시판 관리자 정보 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param Integer memberIdx 회원 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 관리자 정보 개수
* */
//ManagerBbsManagerService
@SuppressWarnings("deprecation")
public Long getBbsManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tBbsSet", "tBbsSet", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.eq("tBbsSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tMember.memberIdx", memberIdx)));
if(!search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* bbsSetIdx, column, search 해당하는 게시판 관리자 리스트를 가지고 오는 메소드
* order by 시에는 orderColumn, order 조건을 기준으로 정렬을 하게 된다.
* @param Integer bbsSetIdx 게시판 설정 idx
* @param int page 페이지 번호
* @param int row 페이지당 출력 개수
* @param String orderColumn order by 사용할 column정보
* @param String order 정렬 기준 ex> DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_MANAGER> 게시판 관리자 리스트
* */
//ManagerBbsManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BBS_MANAGER> getBbsManagerList(Integer bbsSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tBbsSet.bbsSetIdx", bbsSetIdx));
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 = "bbsManagerIdx";
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* siteIdx, memberIdx, column, search 해당하는 게시판 관리자 리스트를 가지고 오는 메소드
* order by 시에는 orderColumn, order 조건을 기준으로 정렬을 하게 된다.
* @param String siteIdx 사이트 idx
* @param Integer memberIdx 회원 idx
* @param int page 페이지 번호
* @param int row 페이지당 출력 개수
* @param String orderColumn order by 사용할 column정보
* @param String order 정렬 기준 ex> DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_MANAGER> 게시판 관리자 리스트
* */
//ManagerBbsManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BBS_MANAGER> getBbsManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tBbsSet", "tBbsSet", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.and(
Restrictions.eq("tBbsSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tMember.memberIdx", memberIdx)));
if(!search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* siteIdx, bbsSetIdx 해당하는 게시판 관리자 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_MANAGER> 게시판 관리자 리스트
* */
//ManagerBbsManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<Map<Object, Object>> getBbsManagerList(String siteIdx, Integer bbsSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tBbsSet", "tBbsSet", 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.add(
Restrictions.and(
Restrictions.eq("tBbsSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tBbsSet.bbsSetIdx", bbsSetIdx)));
criteria.addOrder(Order.desc("bbsManagerIdx"));
return criteria.list();
}
/**
* 게시판 관리자 정보를 저장하는 메소드
* @param T_BBS_MANAGER tBbsManager 저장할 게시판 관리자 정보
* @return boolean 작업 성공 여부
* */
//ManagerBbsManagerService
public boolean setBbsManagerRegProc(T_BBS_MANAGER tBbsManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tBbsManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 게시판 관리자 정보를 수정하는 메소드
* @param T_BBS_MANAGER tBbsManager 수정할 게시판 관리자 정보
* @return boolean 작업 성공 여부
* */
//ManagerBbsManagerService, AdminMemberService, ManagerMemberService
public boolean setBbsManagerModProc(T_BBS_MANAGER tBbsManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBbsManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 게시판 관리자 정보를 삭제하는 메소드
* @param T_BBS_MANAGER tBbsManager 수정할 게시판 관리자 정보
* @return boolean 작업 성공 여부
* */
//ManagerBbsManagerService
public boolean setBbsManagerDelProc(T_BBS_MANAGER tBbsManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tBbsManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,42 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_BBS_SET;
public interface BbsSetDAO {
//AdminMemberService, ManagerMemberService
public List<T_BBS_SET> getBbsSetList(Integer memberIdx);
//AdminGroupService, ManagerGroupService, AdminSiteService
public List<T_BBS_SET> getBbsSetList(String siteIdx, String[] qryColumns);
//ManagerBbsSetService
public List<T_BBS_SET> getBbsSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerBbsSetService
public List<T_BBS_SET> getBbsSetList(String siteIdx, Integer bbsSetIdx, String bbsSetType, String[] qryColumns);
//ManagerBbsSetService
public Long getBbsSetListCnt(String siteIdx, String column, String search);
//ManagerBbsSetService
public T_BBS_SET getBbsSetForm(String siteIdx, String siteMenuIdx);
//ManagerBbsSetService, UserBbsSetService
public T_BBS_SET getBbsSetForm(Integer bbsSetIdx);
//ManagerBbsSetService, UserBbsSetService
public Map<Object, Object> getBbsSetMapForm(Integer bbsSetIdx, String[] qryColumns);
//ManagerBbsSetService
public T_BBS_SET setBbsSetRegProc(T_BBS_SET tBbsSet);
//ManagerBbsSetService
public boolean setBbsSetModProc(T_BBS_SET tBbsSet);
//ManagerBbsSetService
public boolean setBbsSetDelProc(T_BBS_SET tBbsSet);
}

View File

@ -0,0 +1,389 @@
package seed.dao;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
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_BBS_SET;
/**
* T_BBS_SET 테이블 정보를 select, insert, update, delete하는 class
* */
@Repository
public class BbsSetDAOImpl implements BbsSetDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx에 해당하는 게시판 설정 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 정보 idx
* @return List<T_BBS_SET> 게시판 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_BBS_SET> getBbsSetList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SET.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* siteIdx 해당하는 게시판 설정 리시트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_SET> 게시판 설정 리스트
* */
//AdminGroupService, ManagerGroupService
@SuppressWarnings("unchecked")
public List<T_BBS_SET> getBbsSetList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SET.class);
if(!siteIdx.equals("ALL_SITE_IDX")){
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
}
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.addOrder(Order.asc("bbsSetIdx"));
return criteria.list();
}
/**
*siteIdx, column, search에 해당하는 게시판 설정 리스트를 가지고 오는 메소드
*orderColumn order by 컬럼을 정의 하는 값으로 order값으로 정렬기준으로 추가로 정의 합니다.
*@param String siteIdx 사이트 idx
*@param int page 출력 페이지 번호
*@param int row 페이지별 출력 개수
*@param String orderColumn order by 컬럼 정의
*@param String order order by 하는 정의 ex> DESC,ASC
*@param String column 검색 항목
*@param String search 검색
*@param String[] qryColumns select하는 컬럼 정의
*@return List<T_BBS_SET> 게시판 설정 리스트
* */
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BBS_SET> getBbsSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SET.class);
criteria.createCriteria("tBbsDatas", "tBbsDatas", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tSite.siteIdx", siteIdx));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("bbsSetName", search, MatchMode.ANYWHERE),
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* siteIdx, bbsSetType에 해당하고 bbsSetIdx이 아닌 게시판 설정 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String bbsSetType 게시판 설정 타입 ex>B=일반게시판, A=앨범게시판, M=동영상게시판
* @param String[] qryColumns select할 컬럼 정의
* @return List<T_BBS_SET> 게시판 설정 리스트
* */
@SuppressWarnings("unchecked")
public List<T_BBS_SET> getBbsSetList(String siteIdx, Integer bbsSetIdx, String bbsSetType, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SET.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.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("bbsSetType", bbsSetType)),
Restrictions.ne("bbsSetIdx", bbsSetIdx)));
return criteria.list();
}
/**
* siteIdx, column, search 해당하는 게시판 설정 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String column 검색 항목
* @param Stirng search 검색
* @return Long 게시판 설정 개수
* */
@SuppressWarnings("deprecation")
public Long getBbsSetListCnt(String siteIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SET.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("bbsSetName", 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();
}
/**
* siteIdx, siteMenuIdx 해당 하는 게시판 설정 정보를 가지고 오는 메소드
* siteMenuIdx like 검색
* @param String siteIdx 사이트 idx
* @param String siteMenuIdx 사이트 메뉴 idex
* @return T_BBS_SET 게시판 설정 정보
* */
//ManagerBbsSetService
@SuppressWarnings("unchecked")
public T_BBS_SET getBbsSetForm(String siteIdx, String siteMenuIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SET.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.like("siteMenuIdxs", siteMenuIdx, MatchMode.ANYWHERE)));
ArrayList<T_BBS_SET> list = (ArrayList<T_BBS_SET>)criteria.list();
if(list != null && list.size() > 0){
return list.get(0);
}else{
return null;
}
}
/**
* bbsSetIdx에 해당하는 게시판 설정 정보를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @return T_BBS_SET 게시판 설정 정보
* */
public T_BBS_SET getBbsSetForm(Integer bbsSetIdx){
return (T_BBS_SET) this.sessionFactory.getCurrentSession().load(T_BBS_SET.class, bbsSetIdx);
}
/**
* bbsSetIdx 대한 게시판 설정 정보를 가지고 오는 메소드
* @param Integer bbsSetIdx 게시판 설정 idx
* @param String[] qryColumns select 컬럼 정의
* @return Map<Object,Object> 게시판 설정 정보
* */
//ManagerBbsSetService, UserBbsSetService
@SuppressWarnings("unchecked")
public Map<Object, Object> getBbsSetMapForm(Integer bbsSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SET.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);
}
ArrayList<Map<Object, Object>> list = (ArrayList<Map<Object, Object>>)criteria.list();
if(list != null && list.size() > 0){
return list.get(0);
}else{
return null;
}
}
/**
* 게시판 설정 정보를 저장하는 메소드
* @param T_BBS_SET tBbsSet 저장할 게시판 설정 정보
* @return T_BBS_SET 저장된 게시판 설정 정보
* */
public T_BBS_SET setBbsSetRegProc(T_BBS_SET tBbsSet){
try{
this.sessionFactory.getCurrentSession().save(tBbsSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getBbsSetForm(tBbsSet.getBbsSetIdx());
}
/**
* 게시판 설정 정보를 수정하는 메소드
* @param T_BBS_SET tBbsSet 수정할 게시판 설정 정보
* @return boolean 작업 성공 여부
* */
public boolean setBbsSetModProc(T_BBS_SET tBbsSet){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBbsSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 게시판 설정 정보를 삭제하는 메소드
* @param T_BBS_SET tBbsSet 삭제할 게시판 설정 정보
* @return boolean 작업 성공 여부
* */
public boolean setBbsSetDelProc(T_BBS_SET tBbsSet){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tBbsSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,41 @@
package seed.dao;
import java.util.List;
import seed.map.T_BBS_SKIN;
public interface BbsSkinDAO {
//AdminMemberService, ManagerMemberService
public List<T_BBS_SKIN> getBbsSkinList(Integer memberIdx);
//AdminSiteService
public List<T_BBS_SKIN> getBbsSkinList(String siteIdx, String[] qryColumns);
//ManagerBbsSetService
public String getBbsSkinCode(String siteIdx);
//ManagerBbsSetService
public T_BBS_SKIN getBbsSkinForm(Integer bbsSkinIdx);
//ManagerBbsSetService
public Long getBbsSetSkinListCnt(String siteIdx, String bbsSetType, String bbsSetSubType);
//ManagerBbsSetService
public List<T_BBS_SKIN> getBbsSetSkinList(String siteIdx, String bbsSetType, String bbsSetSubType, int page, int row, String[] qryColumns);
//ManagerBbsSetService
public Long getBbsSkinListCnt(String siteIdx);
//ManagerBbsSetService
public List<T_BBS_SKIN> getBbsSkinList(String siteIdx, int page, int row, String[] qryColumns);
//AdminSiteService, ManagerBbsSetService
public T_BBS_SKIN setBbsSkinRegProc(T_BBS_SKIN tBbsSkin);
//ManagerBbsSetService
public boolean setBbsSkinModProc(T_BBS_SKIN tBbsSkin);
//ManagerBbsSetService
public boolean setBbsSkinDelProc(T_BBS_SKIN tBbsSkin);
}

View File

@ -0,0 +1,364 @@
package seed.dao;
import java.util.ArrayList;
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.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_BBS_SKIN;
/**
* T_BBS_SKIN 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class BbsSkinDAOImpl implements BbsSkinDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx에 해당하는 게시판 스킨 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 정보 idx
* @return List<T_BBS_SKIN> 게시판 스킨 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_BBS_SKIN> getBbsSkinList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SKIN.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* siteIdx 해당하는 게시판 스킨 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_SKIN> 게시판 스킨 리스트
* */
//AdminSiteService
@SuppressWarnings("unchecked")
public List<T_BBS_SKIN> getBbsSkinList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SKIN.class);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
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.addOrder(Order.asc("bbsSkinIdx"));
return criteria.list();
}
/**
* siteIdx 해당하는 bbsSkinCode 정보를 가지고 오는 메소드
* bbsSkinCode order by desc 형태로 정렬한 데이터중 최상위 1개의 데이터를 가지고 온다
* @param String siteIdx 사이트 idx
* @return String bbsSkinCode정보
* */
//ManagerBbsSetService
@SuppressWarnings("unchecked")
public String getBbsSkinCode(String siteIdx){
String bbsSkinCode = "01";
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SKIN.class);
criteria.setMaxResults(1);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
criteria.addOrder(Order.desc("bbsSkinCode"));
ArrayList<T_BBS_SKIN> list = (ArrayList<T_BBS_SKIN>)criteria.list();
if(list != null && list.size() > 0){
T_BBS_SKIN tBbsSkinDB = list.get(0);
Integer bbsSkinCodeTmp = Integer.parseInt(tBbsSkinDB.getBbsSkinCode()) + 1;
if(bbsSkinCodeTmp < 10){
bbsSkinCode = "0"+bbsSkinCodeTmp;
}else{
bbsSkinCode = bbsSkinCodeTmp+"";
}
}
return bbsSkinCode;
}
/**
* bbsSkinIdx 해당하는 게시판 스킨 정보를 가지고 오는 메소드
* @param Integer bbsSkinIdx 게시판 스킨 idx
* @return T_BBS_SKIN 게시판 스킨 정보
* */
//ManagerBbsSetService
public T_BBS_SKIN getBbsSkinForm(Integer bbsSkinIdx){
return (T_BBS_SKIN) this.sessionFactory.getCurrentSession().load(T_BBS_SKIN.class, bbsSkinIdx);
}
/**
* siteIdx, bbsSetType, bbsSetSubType, bbsSkinStatus=U 해당하는 게시판 스킨 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String bbsSetType 게시판 설정 타입 ex>B=게시판, A=앨범, M=동영상
* @param String bbsSetSubType 게시판 sub설정 타입 ex>L=리스트, I=이미지, G=갤러리형태
* @return Long 개수
* */
//ManagerBbsSetService
public Long getBbsSetSkinListCnt(String siteIdx, String bbsSetType, String bbsSetSubType){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SKIN.class);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.or(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.isNull("tSite.siteIdx")),
Restrictions.eq("bbsSkinType", bbsSetType)),
Restrictions.eq("bbsSkinSubType", bbsSetSubType)),
Restrictions.eq("bbsSkinStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* siteIdx, bbsSetType, bbsSetSubType, bbsSkinStatus=U 대한 게시판 스킨 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String bbsSetType 게시판 설정 타입 ex>B=게시판, A=앨범, M=동영상
* @param String bbsSetSubType 게시판 sub설정 타입 ex>L=리스트, I=이미지, G=갤러리형태
* @param int page 출력 페이지 번호
* @param int row 페이지당 출력 개수
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_SKIN> 게시판 스킨 리스트
* */
//ManagerBbsSetService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BBS_SKIN> getBbsSetSkinList(String siteIdx, String bbsSetType, String bbsSetSubType, int page, int row, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SKIN.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.and(
Restrictions.and(
Restrictions.and(
Restrictions.or(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.isNull("tSite.siteIdx")),
Restrictions.eq("bbsSkinType", bbsSetType)),
Restrictions.eq("bbsSkinSubType", bbsSetSubType)),
Restrictions.eq("bbsSkinStatus", "U")));
criteria.addOrder(Order.desc("bbsSkinIdx"));
return criteria.list();
}
/**
* siteIdx 해당하는 게시판 스킨 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return Long 게시판 스킨 개수
* */
//ManagerBbsSetService
public Long getBbsSkinListCnt(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SKIN.class);
criteria.add(
Restrictions.or(
Restrictions.isNull("tSite.siteIdx"),
Restrictions.eq("tSite.siteIdx", siteIdx)));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* siteIdx 해당하는 게시판 스킨 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param int page 출력할 페이지 번호
* @param int row 페이지당 출력 개수
* @param String[] qryColumns select 컬럼 정의
* @return List<T_BBS_SKIN> 게시판 스킨 리스트
* */
//ManagerBbsSetService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_BBS_SKIN> getBbsSkinList(String siteIdx, int page, int row, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_BBS_SKIN.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.or(
Restrictions.isNull("tSite.siteIdx"),
Restrictions.eq("tSite.siteIdx", siteIdx)));
criteria.addOrder(Order.desc("bbsSkinIdx"));
return criteria.list();
}
/**
* 게시판 스킨 정보를 저장하는 메소드
* @param T_BBS_SKIN tBbsSkin 저장할 게시판 스킨 정보
* @return T_BBS_SKIN 저장된 게시판 스킨 정보
* */
//AdminSiteService, ManagerBbsSetService
public T_BBS_SKIN setBbsSkinRegProc(T_BBS_SKIN tBbsSkin){
try{
this.sessionFactory.getCurrentSession().save(tBbsSkin);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getBbsSkinForm(tBbsSkin.getBbsSkinIdx());
}
/**
* 게시판 스킨 정보를 수정하는 메소드
* @param T_BBS_SKIN tBbsSkin 수정할 게시판 스킨 정보
* @return boolean 작업 성공 여부
* */
//ManagerBbsSetService
public boolean setBbsSkinModProc(T_BBS_SKIN tBbsSkin){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tBbsSkin);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 게시판 스킨 정보를 삭제하는 메소드
* @param T_BBS_SKIN tBbsSkin 삭제할 게시판 스킨 정보
* @return boolean 작업 성공 여부
* */
//ManagerBbsSetService
public boolean setBbsSkinDelProc(T_BBS_SKIN tBbsSkin){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tBbsSkin);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,18 @@
package seed.dao;
import java.util.List;
import seed.map.T_COMMON_FILE;
public interface CommonFileDAO {
public T_COMMON_FILE getCommonFileForm(Integer commonFileIdx);
public List<T_COMMON_FILE> getCommonFileList(Integer funcIdx, String fileCode);
public List<T_COMMON_FILE> getCommonFileList(String toDate);
public T_COMMON_FILE setCommonFileRegProc(T_COMMON_FILE tCommonFile);
public boolean setCommonFileDelProc(T_COMMON_FILE tCommonFile);
}

View File

@ -0,0 +1,115 @@
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.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import seed.map.T_COMMON_FILE;
/**
* T_COMMON_FILE 테이블 정보를 select, insert, update, delete하는 class
* */
@Repository
public class CommonFileDAOImpl implements CommonFileDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* 게시판 임시파일 정보 리스트를 가지고 오는 메소드
* funcIdx fileCode에 해당하는 임시 첨부파일 리스트를 가지고 오는 메소드
* fileCode의 경우 yyyyMMddHHmmss format을 기준으로 생성한 임시 값을 사용 한다.
* @param Integer funcIdx 첨부파일 idx
* @param String fileCode 임시 첨부파일시 생성된 fileCode값
* @return List<T_COMMON_FILE>
* */
@SuppressWarnings("unchecked")
public List<T_COMMON_FILE> getCommonFileList(Integer funcIdx, String fileCode){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_COMMON_FILE.class);
criteria.add(
Restrictions.and(
Restrictions.eq("commonFileFuncIdx", funcIdx),
Restrictions.eq("commonFileCode", fileCode)));
criteria.addOrder(Order.asc("commonFileIdx"));
return criteria.list();
}
/**
* 게시판 임시 첨부파일 리스트중 toDate에 해당하는 리스트를 가지고 오는 메소드
* @param String toDate yyyymmdd 형식의 현재 날짜 정보
* @return List<T_COMMON_FILE> 임시 첨부파일 리스트
* */
@SuppressWarnings("unchecked")
public List<T_COMMON_FILE> getCommonFileList(String toDate){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_COMMON_FILE.class);
criteria.add(Restrictions.not(Restrictions.in("commonFileDate", new Object[]{toDate})));
return criteria.list();
}
/**
* commonFileIdx에 해당하는 임시 첨부파일 정보를 가지고 오는 메소드
* @param Integer commonFileIdx 임시첨부파일 idx
* @return T_COMMON_FILE 임시첨부파일 정보
* */
public T_COMMON_FILE getCommonFileForm(Integer commonFileIdx){
return (T_COMMON_FILE) this.sessionFactory.getCurrentSession().load(T_COMMON_FILE.class, commonFileIdx);
}
/**
* 임시 첨부파일 정보를 저장하는 메소드
* @param T_COMMON_FILE tCommonFile 저장할 첨부파일 정보
* @return T_COMMON_FILE 저장된 첨부파일 정보
* */
public T_COMMON_FILE setCommonFileRegProc(T_COMMON_FILE tCommonFile){
try{
this.sessionFactory.getCurrentSession().save(tCommonFile);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getCommonFileForm(tCommonFile.getCommonFileIdx());
}
/**
* 임시 첨부파일 정보를 삭제 하는 메소드
* @param T_COMMON_FILE tCommonFile 임시 첨부파일
* @return boolean 작업의 성공 여부
* */
public boolean setCommonFileDelProc(T_COMMON_FILE tCommonFile){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tCommonFile);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,59 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_MESSAGE;
import seed.map.T_MESSAGE_FILE;
import seed.map.VIEW_MESSAGE;
public interface CommonMessageDAO {
//CommonMessageService
public T_MESSAGE getMessageForm(Integer messageIdx);
//CommonMessageService
public VIEW_MESSAGE getMessageViewForm(Integer messageIdx);
//CommonMessageService
public Map<Object, Object> getMessagePreFrom(Integer messageIdx, String messageStatus, String column, String search, String[] qryColumnsPn);
//CommonMessageService
public Map<Object, Object> getMessageNextFrom(Integer messageIdx, String messageStatus, String column, String search, String[] qryColumns);
//CommonMessageService
public Long getMessageCnt(Integer memberIdx);
//CommonMessageService
public Long getMessageCnt(Integer memberIdx, String messageStatus, String column, String search);
//CommonMessageService
public List<VIEW_MESSAGE> getMessageList(Integer memberIdx, Integer page, Integer row, String[] qryColumns, String messageStatus, String column, String search);
//CommonMessageService
public T_MESSAGE_FILE getMessageFileForm(Integer fileIdx);
//CommonMessageService
public List<T_MESSAGE_FILE> getMessageFileList(Integer messageIdx);
//CommonMessageService
public void setMessageStatusProc(T_MESSAGE tMessage);
//CommonMessageService
public T_MESSAGE setMessageRegProc(T_MESSAGE tMessage);
//CommonMessageService
public boolean setMessageDelProc(T_MESSAGE tMessage);
//CommonMessageService
public boolean setMessageFileRegProc(T_MESSAGE_FILE tMessageFile);
//CommonMessageService
public boolean setMessageFileDelProc(T_MESSAGE_FILE tMessageFileDB);
//CommonMessageService
public List<T_MESSAGE> getMessageList(Integer memberIdx);
//AdminMemberService, ManagerMemberService
public List<T_MESSAGE> getMessageAllList(Integer memberIdx);
}

View File

@ -0,0 +1,447 @@
package seed.dao;
import java.util.List;
import java.util.Map;
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_MESSAGE;
import seed.map.T_MESSAGE_FILE;
import seed.map.VIEW_MESSAGE;
/**
* T_MESSAGE 테이블 정보를 select, insert, update, delete하는 class
* */
@Repository
public class CommonMessageDAOImpl implements CommonMessageDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* messageIdx에 해당하는 메시지 정보를 가지고 오는 메소드
* @param Integer messageIdx 메시지 idx
* @return T_MESSAGE 메시지 정보
* */
//CommonMessageService
public T_MESSAGE getMessageForm(Integer messageIdx){
return (T_MESSAGE)this.sessionFactory.getCurrentSession().load(T_MESSAGE.class, messageIdx);
}
/**
* view테이블의 정보를 가지고 오는 메소드(해당 view테이블의 경우 member_idx에 해당하는 member_name을 가지고 있는 테이블이다.
* @param Integer messageIdx 메시지 idx
* @return VIEW_MESSAGE 메시지 정보
* */
//CommonMessageService
public VIEW_MESSAGE getMessageViewForm(Integer messageIdx){
return (VIEW_MESSAGE)this.sessionFactory.getCurrentSession().load(VIEW_MESSAGE.class, messageIdx);
}
/**
* messageIdx 보다큰 값을 가진 메시지 정보중 order by messageIdx desc 정렬로 가지고온 데이터중
* 최상위 하나를 가지고 오는 메소드
* @param Integer messageIdx 메시지 idx
* @param String messageStatus 메시지 확인상태(Y:확인,N:미확인)
* @param String column 검색 항목
* @param Stirng search 검색
* @param String[] qryColumns select 컬럼 정의
* @return Map<Object, Object> 메시지 정보
* */
//CommonMessageService
@SuppressWarnings("unchecked")
public Map<Object, Object> getMessagePreFrom(Integer messageIdx, String messageStatus, String column, String search, String[] qryColumns){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(VIEW_MESSAGE.class);
criteria.setMaxResults(1);
criteria.add(Restrictions.gt("messageIdx", messageIdx));
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.addOrder(Order.desc("messageIdx"));
if(!messageStatus.equals("")){
criteria.add(Restrictions.eq("messageStatus", messageStatus));
}
if(!column.equals("") && !search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
List<VIEW_MESSAGE> tMessageList = criteria.list();
if(tMessageList.size() > 0){
return (Map<Object, Object>)tMessageList.get(0);
}else{
return null;
}
}
/**
* messageIdx 보다작은 값을 가진 메시지 정보중 order by messageIdx desc 정렬로 가지고온 데이터중
* 최상위 하나를 가지고 오는 메소드
* @param Integer messageIdx 메시지 idx
* @param String messageStatus 메시지 확인상태(Y:확인,N:미확인)
* @param String column 검색 항목
* @param Stirng search 검색
* @param String[] qryColumns select 컬럼 정의
* @return Map<Object, Object> 메시지 정보
* */
//CommonMessageService
@SuppressWarnings("unchecked")
public Map<Object, Object> getMessageNextFrom(Integer messageIdx, String messageStatus, String column, String search, String[] qryColumns){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(VIEW_MESSAGE.class);
criteria.setMaxResults(1);
criteria.add(Restrictions.lt("messageIdx", messageIdx));
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.addOrder(Order.desc("messageIdx"));
if(!messageStatus.equals("")){
criteria.add(Restrictions.eq("messageStatus", messageStatus));
}
if(!column.equals("") && !search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
List<VIEW_MESSAGE> tMessageList = criteria.list();
if(tMessageList.size() > 0){
return (Map<Object, Object>)tMessageList.get(0);
}else{
return null;
}
}
/**
* memberIdx에 해당하는 메시지 개수를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return Long 개수
* */
//CommonMessageService
public Long getMessageCnt(Integer memberIdx){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(T_MESSAGE.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* memberIdx, messageStatus, column, search에 해당하는 메시지 개수를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @param String messageStatus 메시지 확인상태(Y:확인,N:미확인)
* @param String column 검색 항목
* @param String search 검색
* @return Long 메시지 개수
* */
//CommonMessageService
public Long getMessageCnt(Integer memberIdx, String messageStatus, String column, String search){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(VIEW_MESSAGE.class);
criteria.add(Restrictions.eq("memberIdx", memberIdx));
if(!messageStatus.equals("")){
criteria.add(Restrictions.eq("messageStatus", messageStatus));
}
if(!column.equals("") && !search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* memberIdx, messageStatus, column, search에 해당하는 정보를 페이지 별로 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @param Integer page 페이지 번호
* @param Intege row 페지이당 출력 개수
* @param String[] qryColumns select 컬럼 정의
* @param String messageStatus 메시지 확인상태(Y:확인,N:미확인)
* @param String column 검색 항목
* @param String search 검색
* @return List<VIEW_MESSAGE> 메시지 리스트
* */
//CommonMessageService
@SuppressWarnings("unchecked")
public List<VIEW_MESSAGE> getMessageList(Integer memberIdx, Integer page, Integer row, String[] qryColumns, String messageStatus, String column, String search){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(VIEW_MESSAGE.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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));
if(!messageStatus.equals("")){
criteria.add(Restrictions.eq("messageStatus", messageStatus));
}
if(!column.equals("") && !search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
criteria.addOrder(Order.desc("messageIdx"));
return criteria.list();
}
/**
* fileIdx에 해당하는 메시지 첨부파일 정보를 가지고오는 메소드
* @param Integer fileIdx 파일 idx
* @return T_MESSAGE_FILE 메시지 파일 정보
* */
//CommonMessageService
public T_MESSAGE_FILE getMessageFileForm(Integer fileIdx){
return (T_MESSAGE_FILE)this.sessionFactory.getCurrentSession().load(T_MESSAGE_FILE.class, fileIdx);
}
/**
* messageIdx에 해당하는 메시지 파일 리스트를 가지고 오는 메소드
* @param Integer messageIdx 메시지 idx
* @return List<T_MESSAGE_FILE> 메시지 파일 리스트
* */
//CommonMessageService
@SuppressWarnings("unchecked")
public List<T_MESSAGE_FILE> getMessageFileList(Integer messageIdx){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(T_MESSAGE_FILE.class);
criteria.add(Restrictions.eq("tMessage.messageIdx", messageIdx));
return criteria.list();
}
/**
* 메시지 상태 정보를 수정하는 메소드
* @param T_MESSAGE tMessage 수정할 메시지 정보
* */
//CommonMessageService
public void setMessageStatusProc(T_MESSAGE tMessage){
try{
this.sessionFactory.getCurrentSession().update(tMessage);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
}
/**
* 메시지 정보를 저장하는 메소드
* @param T_MESSAGE t_message 저장할 메시지 정보
* @return T_MESSAGE 저장된 메시지 정보
* */
//CommonMessageService
public T_MESSAGE setMessageRegProc(T_MESSAGE tMessage){
try{
this.sessionFactory.getCurrentSession().save(tMessage);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getMessageForm(tMessage.getMessageIdx());
}
/**
* 메시지 정보를 삭제 하는 메소드
* @param T_MESSAGE tMessage 수정할 메시지 정보
* @return boolean 작업의 성공 여부
* */
//CommonMessageService
public boolean setMessageDelProc(T_MESSAGE tMessage){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tMessage);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 메시지 파일 정보를 저장하는 메소드
* @param T_MESSAGE_FILE tMessageFile 저장할 메시지 파일 정보
* @return boolean 작업의 성공 여부
* */
//CommonMessageService
public boolean setMessageFileRegProc(T_MESSAGE_FILE tMessageFile){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tMessageFile);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 메시지 파일 정보를 삭제하는 메소드
* @param T_MESSAGE_FILE tMessageFileDB 삭제할 메시지 파일 정보
* @return boolean 작업의 성공 여부
* */
//CommonMessageService
public boolean setMessageFileDelProc(T_MESSAGE_FILE tMessageFileDB){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tMessageFileDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 메시지 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_MESSAGE> 메시지 리스트
* */
//CommonMessageService
@SuppressWarnings("unchecked")
public List<T_MESSAGE> getMessageList(Integer memberIdx){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(T_MESSAGE.class);
criteria.setFirstResult(100);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
criteria.addOrder(Order.desc("messageIdx"));
return criteria.list();
}
/**
* 메시지 정보 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_MESSAGE> 메시지 리스트
* */
@SuppressWarnings("unchecked")
public List<T_MESSAGE> getMessageAllList(Integer memberIdx){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(T_MESSAGE.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
}

View File

@ -0,0 +1,14 @@
package seed.dao;
import java.util.List;
import seed.map.T_POSTCODE;
public interface CommonPostCodeDAO {
public List<T_POSTCODE> getCommonPostCodeList(String search);
public Long getCommonPostCodeListCnt();
public boolean setCommonPostCodeRegProc(T_POSTCODE tPostCode);
}

View File

@ -0,0 +1,69 @@
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.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import seed.map.T_POSTCODE;
/**
* 해당 클래스에 대한 사용 여부를 생각 해야할 필요가 있음
* */
@Repository
public class CommonPostCodeDAOImpl implements CommonPostCodeDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@SuppressWarnings("unchecked")
public List<T_POSTCODE> getCommonPostCodeList(String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POSTCODE.class);
if(search != null && !search.equals("")){
criteria.add(Restrictions.like("dong", search, MatchMode.ANYWHERE));
}
criteria.addOrder(Order.desc("seq"));
return criteria.list();
}
public Long getCommonPostCodeListCnt(){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POSTCODE.class);
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
public boolean setCommonPostCodeRegProc(T_POSTCODE tPostCode){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tPostCode);
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,35 @@
package seed.dao;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository("disputeResolutionCommitteeDao")
public class DisputeResolutionCommitteeDao {
@Autowired SqlSession sqlSession;
// public DisputeResolutionCommitteeVO resolutionCommitteeLogin(DisputeResolutionCommitteeVO disputeResolutionCommitteeVO) {
// return sqlSession.selectOne("disputeResolutionCommittee.resolutionCommitteeLogin", disputeResolutionCommitteeVO);
// }
//
// public DisputeResolutionCommitteeVO resolutionCommitteeInfo(String memberNo) {
// return sqlSession.selectOne("disputeResolutionCommittee.resolutionCommitteeInfo", memberNo);
// }
//
// public boolean resolutionCommitteeLoginLog(DisputeResolutionCommitteeVO resultVO){
// int dmlCnt = sqlSession.insert("disputeResolutionCommittee.resolutionCommitteeLoginLog", resultVO);
// if(dmlCnt>0){
// return true;
// }else{
// return false;
// }
// }
//
// public DisputeResolutionCommitteeAttendanceRateVO resolutionCommitteeRate(String memberIdx) {
// return sqlSession.selectOne("disputeResolutionCommittee.resolutionCommitteeRate", memberIdx);
// }
}

View File

@ -0,0 +1,20 @@
package seed.dao;
import java.util.List;
import seed.map.T_ERROR_LOGS;
public interface ErrorLogsDAO {
//AdminErrorLogsSetService
public T_ERROR_LOGS getErrorLogsForm(Integer errorLogsIdx);
//AdminErrorLogsSetService
public Long getErrorLogsListCnt(String column, String search);
//AdminErrorLogsSetService
public List<T_ERROR_LOGS> getErrorLogsList(int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//CommonErrorLogsService
public void setErrorLogsRegProc(T_ERROR_LOGS tErrorLogs);
}

View File

@ -0,0 +1,126 @@
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_ERROR_LOGS;
@Repository
public class ErrorLogsDAOImpl implements ErrorLogsDAO {
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
//AdminErrorLogsSetService
public T_ERROR_LOGS getErrorLogsForm(Integer errorLogsIdx){
return (T_ERROR_LOGS) this.sessionFactory.getCurrentSession().load(T_ERROR_LOGS.class, errorLogsIdx);
}
//AdminErrorLogsSetService
public Long getErrorLogsListCnt(String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_ERROR_LOGS.class);
if (!column.equals("")) {
if (column.equals("A")) {
if (!search.equals("")) {
criteria.add(
Restrictions.or(
Restrictions.like("errorLogsUrl", search, MatchMode.ANYWHERE),
Restrictions.like("errorLogsType", search, MatchMode.ANYWHERE)));
}
} else {
criteria.add(Restrictions.like(column, search,
MatchMode.ANYWHERE));
}
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
//AdminErrorLogsSetService
@SuppressWarnings("unchecked")
public List<T_ERROR_LOGS> getErrorLogsList(int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_ERROR_LOGS.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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 (!column.equals("")) {
if (column.equals("A")) {
if (!search.equals("")) {
criteria.add(
Restrictions.or(
Restrictions.like("errorLogsUrl", search, MatchMode.ANYWHERE),
Restrictions.like("errorLogsType", search, MatchMode.ANYWHERE)));
}
} else {
criteria.add(Restrictions.like(column, search,
MatchMode.ANYWHERE));
}
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
//CommonErrorLogsService
public void setErrorLogsRegProc(T_ERROR_LOGS tErrorLogs) {
try{
this.sessionFactory.getCurrentSession().save(tErrorLogs);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error(e);
}
}
}

View File

@ -0,0 +1,23 @@
package seed.dao;
import java.util.List;
import seed.map.T_FILE_DOWNLOAD;
public interface FileDownLoadDAO {
//CommonFileDownLoadService
public Long getFileDownLoadCnt(String funcType, String funcSetIdx, String funcDataIdx);
//CommonFileDownLoadService
public List<T_FILE_DOWNLOAD> getFileDownLoadList(String funcType, String funcSetIdx, String funcDataIdx, int page, int row, String[] qryColumns);
//CommonFileDownLoadService
public List<T_FILE_DOWNLOAD> getFileDownLoadList(String funcType, String funcSetIdx, String funcDataIdx);
//CommonFileDownLoadService
public boolean setFileDownLoadDelProc(T_FILE_DOWNLOAD tFileDownLoad);
//CommonFileDownLoadService
public boolean setFileDownLoadProc(T_FILE_DOWNLOAD tFileDownLoad);
}

View File

@ -0,0 +1,172 @@
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.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_FILE_DOWNLOAD;
/**
* T_FILE_DOWNLOAD 테이블을 select,insert,update,delete하기 위한 DAO메소드
* */
@Repository
public class FileDownLoadDAOImpl implements FileDownLoadDAO {
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Long getFileDownLoadCnt(String funcType, String funcSetIdx, String funcDataIdx) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FILE_DOWNLOAD.class);
if(!funcSetIdx.equals("0") && !funcDataIdx.equals("0")){
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("funcType", funcType),
Restrictions.eq("funcSetIdx", funcSetIdx)),
Restrictions.eq("funcDataIdx", funcDataIdx)));
}else if(!funcSetIdx.equals("0")){
criteria.add(
Restrictions.and(
Restrictions.eq("funcType", funcType),
Restrictions.eq("funcSetIdx", funcSetIdx)));
}else if(!funcDataIdx.equals("0")){
criteria.add(
Restrictions.and(
Restrictions.eq("funcType", funcType),
Restrictions.eq("funcDataIdx", funcDataIdx)));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
@SuppressWarnings("unchecked")
public List<T_FILE_DOWNLOAD> getFileDownLoadList(String funcType, String funcSetIdx, String funcDataIdx, int page, int row, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FILE_DOWNLOAD.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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(!funcSetIdx.equals("0") && !funcDataIdx.equals("0")){
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("funcType", funcType),
Restrictions.eq("funcSetIdx", funcSetIdx)),
Restrictions.eq("funcDataIdx", funcDataIdx)));
}else if(!funcSetIdx.equals("0")){
criteria.add(
Restrictions.and(
Restrictions.eq("funcType", funcType),
Restrictions.eq("funcSetIdx", funcSetIdx)));
}else if(!funcDataIdx.equals("0")){
criteria.add(
Restrictions.and(
Restrictions.eq("funcType", funcType),
Restrictions.eq("funcDataIdx", funcDataIdx)));
}
criteria.addOrder(Order.desc("fileDownLoadIdx"));
return criteria.list();
}
@SuppressWarnings("unchecked")
public List<T_FILE_DOWNLOAD> getFileDownLoadList(String funcType, String funcSetIdx, String funcDataIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FILE_DOWNLOAD.class);
if(!funcSetIdx.equals("0") && !funcDataIdx.equals("0")){
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("funcType", funcType),
Restrictions.eq("funcSetIdx", funcSetIdx)),
Restrictions.eq("funcDataIdx", funcDataIdx)));
}else if(!funcSetIdx.equals("0")){
criteria.add(
Restrictions.and(
Restrictions.eq("funcType", funcType),
Restrictions.eq("funcSetIdx", funcSetIdx)));
}else if(!funcDataIdx.equals("0")){
criteria.add(
Restrictions.and(
Restrictions.eq("funcType", funcType),
Restrictions.eq("funcDataIdx", funcDataIdx)));
}
criteria.addOrder(Order.desc("fileDownLoadIdx"));
return criteria.list();
}
public boolean setFileDownLoadDelProc(T_FILE_DOWNLOAD tFileDownLoad){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tFileDownLoad);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
public boolean setFileDownLoadProc(T_FILE_DOWNLOAD tFileDownLoad){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tFileDownLoad);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,30 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_FIREWALL;
public interface FirewallDAO {
//AdminFirewallSetService
public T_FIREWALL getFirewallForm(Integer firewallIdx);
//AdminFirewallSetService
public Long getFirewallListCnt(String column, String search);
//AdminFirewallSetService
public List<T_FIREWALL> getFirewallList(int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//AdminFirewallSetService
public List<Map<Object, Object>> getFirewallList();
//AdminFirewallSetService
public T_FIREWALL setFirewallRegProc(T_FIREWALL tFirewall);
//AdminFirewallSetService
public boolean setFirewallModProc(T_FIREWALL tFirewall);
//AdminFirewallSetService
public boolean setFirewallDelProc(T_FIREWALL tFirewall);
}

View File

@ -0,0 +1,262 @@
package seed.dao;
import java.util.List;
import java.util.Map;
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_FIREWALL;
/**
* T_FIREWALL 테이블 정보를 select, insert, update, delete하는 class
* */
@Repository
public class FirewallDAOImpl implements FirewallDAO {
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* firewallIdx에 해당하는 방화벽 정보를 가지고 오는 메소드
* @param Integer firewallIdx 방화벽 idx
* @return T_FIREWALL 방화벽 정보
* */
//AdminFirewallSetService
public T_FIREWALL getFirewallForm(Integer firewallIdx) {
return (T_FIREWALL) this.sessionFactory.getCurrentSession().load(T_FIREWALL.class, firewallIdx);
}
/**
* column, search에 해당하는 방화벽 개수를 가지고 오는 메소드
* @param String column 검색 항목
* @param String search 검색
* @return Long 방화벽 개수
* */
//AdminFirewallSetService
@SuppressWarnings("deprecation")
public Long getFirewallListCnt(String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FIREWALL.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
if (!column.equals("")) {
if (column.equals("firewallIp")) {
if (!search.equals("")) {
criteria.add(
Restrictions.or(
Restrictions.or(
Restrictions.or(
Restrictions.or(
Restrictions.or(
Restrictions.or(
Restrictions.or(
Restrictions.like("firewallAClass", search, MatchMode.ANYWHERE),
Restrictions.like("firewallBClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallCClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallDClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallEClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallFClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallGClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallHClass", search, MatchMode.ANYWHERE)));
}
} else {
criteria.add(Restrictions.like(column, search,
MatchMode.ANYWHERE));
}
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* column, search에 해당하는 방화벽 리스트 정보를 orderColumn, order 기준으로 정렬해서
* 페이지 별로 가지고 오는 메소드
* @param int page 페이지 번호
* @param int row 페이지당 출력 개수
* @param String orderColumn order by 컬럼 정보
* @param String order 정렬 방법 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select컬럼 정의
* @return List<T_FIREWALL> 방화벽 정보 리스트
* */
//AdminFirewallSetService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_FIREWALL> getFirewallList(int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FIREWALL.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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 (!column.equals("")) {
if (column.equals("firewallIp")) {
if (!search.equals("")) {
criteria.add(
Restrictions.or(
Restrictions.or(
Restrictions.or(
Restrictions.or(
Restrictions.or(
Restrictions.or(
Restrictions.or(
Restrictions.like("firewallAClass", search, MatchMode.ANYWHERE),
Restrictions.like("firewallBClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallCClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallDClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallEClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallFClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallGClass", search, MatchMode.ANYWHERE)),
Restrictions.like("firewallHClass", search, MatchMode.ANYWHERE)));
}
} else {
criteria.add(Restrictions.like(column, search,
MatchMode.ANYWHERE));
}
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* firewallStatus=U 방화벽 정보 리스트를 가지고 오는 메소드
* @return List<Map<Object, Object>> 방화벽 리스트
* */
//AdminFirewallSetService
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getFirewallList(){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FIREWALL.class);
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.property("firewallAClass").as("_firewallAClass"));
projectionList.add(Projections.property("firewallBClass").as("_firewallBClass"));
projectionList.add(Projections.property("firewallCClass").as("_firewallCClass"));
projectionList.add(Projections.property("firewallDClass").as("_firewallDClass"));
projectionList.add(Projections.property("firewallEClass").as("_firewallEClass"));
projectionList.add(Projections.property("firewallFClass").as("_firewallFClass"));
projectionList.add(Projections.property("firewallGClass").as("_firewallGClass"));
projectionList.add(Projections.property("firewallHClass").as("_firewallHClass"));
criteria.setProjection(projectionList);
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
criteria.add(Restrictions.eq("firewallStatus", "U"));
return criteria.list();
}
/**
* 방화벽 정보를 저장하는 메소드
* @param T_FIREWALL tFirewall 저장할 방화벽 정보
* @return T_FIREWALL 저장된 방화벽 정보
* */
//AdminFirewallSetService
public T_FIREWALL setFirewallRegProc(T_FIREWALL tFirewall){
try{
this.sessionFactory.getCurrentSession().save(tFirewall);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getFirewallForm(tFirewall.getFirewallIdx());
}
/**
* 방화벽 정보를 수정하는 메소드
* @param T_FIREWALL tFirewall 수정할 방화벽 정보
* @return boolean 작업의 성공 여부
* */
//AdminFirewallSetService
public boolean setFirewallModProc(T_FIREWALL tFirewall) {
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tFirewall);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 방하벽 정보를 삭제하는 메소드
* @param T_FIREWALL tFirewall 삭제할 방화벽 정보
* @return boolean 작업의 성공 여부
* */
//AdminFirewallSetService
public boolean setFirewallDelProc(T_FIREWALL tFirewall) {
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tFirewall);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,27 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_FORMBUILDER_AUTH;
public interface FormbuilderAuthDAO {
//AdminMemberService, ManagerMemberService
public List<T_FORMBUILDER_AUTH> getFormbuilderAuthList(Integer memberIdx);
//ManagerFormbuilderAuthService
public T_FORMBUILDER_AUTH getFormbuilderAuthForm(Integer formbuilderAuthIdx);
//ManagerFormbuilderAuthService
public List<T_FORMBUILDER_AUTH> getFormbuilderAuthList(Integer formbuilderSetIdx, String[] qryColumns);
//UserFormbuilderAuthService
public List<Map<Object, Object>> getFormbuilderAuthMapList(Integer formbuilderSetIdx, Integer memberIdx, String[] qryColumns);
//AdminGroupService, ManagerGroupService, ManagerFormbuilderSetService
public boolean setFormbuilderAuthRegProc(T_FORMBUILDER_AUTH tFormbuilderAuth);
//ManagerFormbuilderAuthService
public boolean setFormbuilderAuthModProc(T_FORMBUILDER_AUTH tFormbuilderAuth);
}

View File

@ -0,0 +1,205 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
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_FORMBUILDER_AUTH;
/**
* T_FORMBUILDER_AUTH 정보를 select, insert, update, delete하는 class
* */
@Repository
public class FormbuilderAuthDAOImpl implements FormbuilderAuthDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx에 해당하는 폼빌더 권한 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_FORMBUILDER_AUTH> 폼빌더 권한 리스트를 가지고 오는 메소드
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_AUTH> getFormbuilderAuthList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_AUTH.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* formbuilderAuthIdx에 해당하는 권한 정보를 가지고 오는 메소드
* @param Integer formbuilderAuthIdx 권한 idx
* @return T_FORMBUILDER_AUTH 권한 정보
* */
//ManagerFormbuilderAuthService
public T_FORMBUILDER_AUTH getFormbuilderAuthForm(Integer formbuilderAuthIdx){
return (T_FORMBUILDER_AUTH) this.sessionFactory.getCurrentSession().load(T_FORMBUILDER_AUTH.class, formbuilderAuthIdx);
}
/**
* formbuilderSetIdx에 해당하는 권한 리스트를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_AUTH> 권한 리스트
* */
//ManagerFormbuilderAuthService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_FORMBUILDER_AUTH> getFormbuilderAuthList(Integer formbuilderSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_AUTH.class);
criteria.createCriteria("tGroup", "tGroup", 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.add(Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
criteria.addOrder(Order.asc("tGroup.groupLevel"));
return criteria.list();
}
/**
* formbuilderSetIdx, memberIdx에 해당하는 폼빌더 권한 리스트를 가지고 오는 메소드
* memberIdx가 0인 경우 로그인이 안되고 손님일 경우로 보고 grouplevel 999로 검색
* @param Integer formbuilderSetIdx 폼빌더 idx
* @param Integer memberIdx 회원 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<Map<Object, Object>> 권한 리스트
* */
//UserFormbuilderAuthService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<Map<Object, Object>> getFormbuilderAuthMapList(Integer formbuilderSetIdx, Integer memberIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_AUTH.class);
criteria.createCriteria("tGroup", "tGroup", Criteria.LEFT_JOIN).
createCriteria("tGroupss", "tGroupss", 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(memberIdx > 0){//로그인 되었을때 해당 테이블의 권한 검색
criteria.add(
Restrictions.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("tGroupss.tMember.memberIdx", memberIdx)));
}else{//로그인이 안되고 손님일 경우일때 grouplevel 999로 검색
criteria.add(
Restrictions.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("tGroup.groupLevel", 999)));
}
criteria.addOrder(Order.asc("tGroup.groupLevel"));
return criteria.list();
}
/**
* 폼빌더 권한 정보를 저장하는 메소드
* @param T_FORMBUILDER_AUTH tFormbuilderAuth 저장할 권한 정보
* @return boolean 작업의 성공 여부
* */
//AdminGroupService, ManagerGroupService, ManagerFormbuilderSetService
public boolean setFormbuilderAuthRegProc(T_FORMBUILDER_AUTH tFormbuilderAuth){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tFormbuilderAuth);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 폼빌더 권한 정보를 수정하는 메소드
* @param T_FORMBUILDER_AUTH tFormbuilderAuth 수정할 권한 정보
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderAuthService
public boolean setFormbuilderAuthModProc(T_FORMBUILDER_AUTH tFormbuilderAuth){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tFormbuilderAuth);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,44 @@
package seed.dao;
import java.util.List;
import seed.map.T_FORMBUILDER_DATA;
public interface FormbuilderDataDAO {
//UserFormbuilderDataService
public Long getFormbuilderDataOverlapCnt(Integer formbuilderSetIdx, Integer memberIdx, String memberIp);
//UserFormbuilderDataService
public Long getFormbuilderDataOverlapCnt(Integer formbuilderSetIdx, Integer memberIdx, String memberName, String memberEmail);
//UserFormbuilderDataService
public T_FORMBUILDER_DATA getFormbuilderDataForm(Integer formbuilderDataIdx);
//ManagerFormbuilderDataService
public Long getFormbuilderDataListCnt(Integer formbuilderSetIdx, String column, String search, String[] qryColumns);
//ManagerFormbuilderDataService
public List<T_FORMBUILDER_DATA> getFormbuilderDataItemGroupList(Integer formbuilderItemGroup);
//ManagerFormbuilderDataService
public List<T_FORMBUILDER_DATA> getFormbuilderDataList(Integer formbuilderDataGroup);
//ManagerFormbuilderDataService
public List<T_FORMBUILDER_DATA> getFormbuilderDataList(Integer formbuilderSetIdx, int page, int row, String column, String search, String[] qryColumns);
//ManagerFormbuilderDataService
public List<T_FORMBUILDER_DATA> getFormbuilderDataList(Integer formbuilderSetIdx, String column, String search, String[] qryColumns);
//ManagerFormbuilderDataService
public List<T_FORMBUILDER_DATA> getFormbuilderDataSubList(Integer formbuilderSetIdx);
//UserFormbuilderDataService, ManagerFormbuilderDataService
public T_FORMBUILDER_DATA setFormbuilderDataRegProc(T_FORMBUILDER_DATA tFormbuilderData);
//UserFormbuilderDataService, ManagerFormbuilderDataService
public boolean setFormbuilderDataModProc(T_FORMBUILDER_DATA tFormbuilderData);
//ManagerFormbuilderDataService
public boolean setFormbuilderDataDelProc(T_FORMBUILDER_DATA tFormbuilderData);
}

View File

@ -0,0 +1,397 @@
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_FORMBUILDER_DATA;
/**
* T_FORMBUILDER_DATA 테이블 정보를 select, insert, update, delete하는 class
* */
@Repository
public class FormbuilderDataDAOImpl implements FormbuilderDataDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* formbuilderSetIdx와 memberIdx에 해당하는 폼빌더 데이터 개수를 가지고 오는 메소드
* memberIdx의 정보가 0일 경우 memberIdx 대신해서 memberIp를 사용 한다
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param Integer memberIdx 회원 idx
* @param String memberIp 회원 접속 아이피
* @return Long 데이터 개수
* */
//UserFormbuilderDataService
public Long getFormbuilderDataOverlapCnt(Integer formbuilderSetIdx, Integer memberIdx, String memberIp){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_DATA.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderDataStatus","U")));
if(memberIdx == 0){
criteria.add(Restrictions.eq("formbuilderDataMemberIp",memberIp));
}else{
criteria.add(Restrictions.eq("formbuilderDataMemberIdx",memberIdx));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* formbuilderSetIdx, formbuilderDataStatus=U, memberIdx에 해당하는 폼빌더 데이터 개수를 가지고 오는 메소드
* memberIdx가 0인 경우 memberName, memberEmail에 해당하는 정보의 개수를 가지고 온다
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param Integer memberIdx 회원 idx
* @param String memberName 회원 이름
* @param String memberEmail 회원 이메일
* @return Long 폼빌더 데이터 개수
* */
//UserFormbuilderDataService
public Long getFormbuilderDataOverlapCnt(Integer formbuilderSetIdx, Integer memberIdx, String memberName, String memberEmail){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_DATA.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderDataStatus","U")));
if(memberIdx == 0){
criteria.add(
Restrictions.and(
Restrictions.eq("formbuilderDataMemberName",memberName),
Restrictions.eq("formbuilderDataMemberEmail",memberEmail)));
}else{
criteria.add(Restrictions.eq("formbuilderDataMemberIdx",memberIdx));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* formbuilderDataIdx에 해당하는 폼빌더 정보를 가지고 오는 메소드
* @param Integer formbuilderDataIdx 폼빌더 데이터 idx
* @return T_FORMBUILDER_DATA 폼빌더 정보
* */
public T_FORMBUILDER_DATA getFormbuilderDataForm(Integer formbuilderDataIdx){
return (T_FORMBUILDER_DATA) this.sessionFactory.getCurrentSession().load(T_FORMBUILDER_DATA.class, formbuilderDataIdx);
}
/**
* formbuilderSetIdx, column, search에 해당하는 데이터의 개수를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return Long 데이터 개수
* */
//ManagerFormbuilderDataService
public Long getFormbuilderDataListCnt(Integer formbuilderSetIdx, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_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){
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("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
if(!column.equals("") && !search.equals("")){
if(column.equals("formbuilderDataMemberName") || column.equals("formbuilderDataMemberEmail")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}else{
criteria.add(
Restrictions.and(
Restrictions.eq("formbuilderItemGroup", Integer.parseInt(column)),
Restrictions.like("formbuilderDataText", search, MatchMode.ANYWHERE)));
}
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* service까지 확인후 주석 예정 이런 메소드가 필요한지 알수가 없네요 아직은
* */
//ManagerFormbuilderDataService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_DATA> getFormbuilderDataItemGroupList(Integer formbuilderItemGroup){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_DATA.class);
criteria.add(Restrictions.eq("formbuilderItemGroup", formbuilderItemGroup));
criteria.addOrder(Order.asc("formbuilderDataIdx"));
return criteria.list();
}
/**
* service까지 확인후 주석 예정 이런 메소드가 필요한지 알수가 없네요 아직은
* @param Integer formbuilderDataGroup
* @return List<T_FORMBUILDER_DATA>
* */
//ManagerFormbuilderDataService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_DATA> getFormbuilderDataList(Integer formbuilderDataGroup){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_DATA.class);
criteria.add(Restrictions.eq("formbuilderDataGroup", formbuilderDataGroup));
criteria.addOrder(Order.asc("formbuilderDataIdx"));
return criteria.list();
}
/**
* formbuilderSetIdx, column, search 해당하는 폼빌더 데이터를 페이지 별로 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param int page 페이지 번호
* @param int row 페이지 출력 개수
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_DATA> 폼빌더 리스트
* */
//ManagerFormbuilderDataService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_DATA> getFormbuilderDataList(Integer formbuilderSetIdx, int page, int row, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_DATA.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
if(!column.equals("") && !search.equals("")){
if(column.equals("formbuilderDataMemberName") || column.equals("formbuilderDataMemberEmail")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}else{
criteria.add(
Restrictions.and(
Restrictions.eq("formbuilderItemGroup", Integer.parseInt(column)),
Restrictions.like("formbuilderDataText", search, MatchMode.ANYWHERE)));
}
}
criteria.addOrder(Order.desc("formbuilderDataGroup"));
return criteria.list();
}
/**
* formbuilderSetIdx, column, search 해당하는 폼빌더 데이터를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_DATA> 폼빌더 데이터 리스트
* */
//ManagerFormbuilderDataService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_DATA> getFormbuilderDataList(Integer formbuilderSetIdx, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_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("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
if(!column.equals("") && !search.equals("")){
if(column.equals("formbuilderDataMemberName") || column.equals("formbuilderDataMemberEmail")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}else{
criteria.add(
Restrictions.and(
Restrictions.eq("formbuilderItemGroup", Integer.parseInt(column)),
Restrictions.like("formbuilderDataText", search, MatchMode.ANYWHERE)));
}
}
criteria.addOrder(Order.desc("formbuilderDataGroup"));
return criteria.list();
}
/**
* formbuilderSetIdx 해당하는 폼빌더 데이터 리스트를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @return List<T_FORMBUILDER_DATA> 폼빌더 데이터 리스트
* */
//ManagerFormbuilderDataService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_DATA> getFormbuilderDataSubList(Integer formbuilderSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_DATA.class);
criteria.add(Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
criteria.addOrder(Order.asc("formbuilderDataIdx"));
return criteria.list();
}
/**
* 폼빌더 데이터를 저장하는 메소드
* @param T_FORMBUILDER_DATA tFormbuilderData 저장할 폼빌더 데이터
* @return T_FORMBUILDER_DATA 저장된 폼빌더 데이터
* */
//UserFormbuilderDataService, ManagerFormbuilderDataService
public T_FORMBUILDER_DATA setFormbuilderDataRegProc(T_FORMBUILDER_DATA tFormbuilderData){
try{
this.sessionFactory.getCurrentSession().save(tFormbuilderData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getFormbuilderDataForm(tFormbuilderData.getFormbuilderDataIdx());
}
/**
* 폼빌더 데이터를 수정하는 메소드
* @param T_FORMBUILDER_DATA tFormbuilderData 수정할 폼빌더 데이터
* @return boolean 작업의 성공 여부
* */
//UserFormbuilderDataService, ManagerFormbuilderDataService
public boolean setFormbuilderDataModProc(T_FORMBUILDER_DATA tFormbuilderData){
boolean success = false;
try {
this.sessionFactory.getCurrentSession().update(tFormbuilderData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 폼빌더 데이터를 삭제하는 메소드
* @param T_FORMBUILDER_DATA tFormbuilderData 삭제할 폼빌더 데이터
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderDataService
public boolean setFormbuilderDataDelProc(T_FORMBUILDER_DATA tFormbuilderData){
boolean success = false;
try {
this.sessionFactory.getCurrentSession().delete(tFormbuilderData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,51 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_FORMBUILDER_ITEM;
public interface FormbuilderItemDAO {
//AdminMemberService, ManagerMemberService
public List<T_FORMBUILDER_ITEM> getFormbuilderItemAllList(Integer memberIdx);
//AdminSiteService
public List<T_FORMBUILDER_ITEM> getFormbuilderItemList(Integer formbuilderSetIdx);
//ManagerFormbuilderItemService
public T_FORMBUILDER_ITEM getFormbuilderItemForm(Integer formbuilderItemIdx);
//ManagerFormbuilderItemService
public T_FORMBUILDER_ITEM getFormbuilderItemForm(Integer formbuilderSetIdx, Integer formbuilderItemGroup);
//ManagerFormbuilderItemService
public List<Map<Object, Object>> getFormbuilderItemList(Integer formbuilderSetIdx, String[] qryColumns);
//ManagerFormbuilderItemService
public List<T_FORMBUILDER_ITEM> getFormbuilderItemValuesList(Integer formbuilderSetIdx, Integer formbuilderItemGroup, String[] qryColumns);
//UserFormbuilderItemService
public List<T_FORMBUILDER_ITEM> getFormbuilderItemValuesList(Integer formbuilderSetIdx, String[] qryColumns);
//ManagerFormbuilderItemService
public List<T_FORMBUILDER_ITEM> getFormbuilderItemOrderList(Integer formbuilderSetIdx, Integer formbuilderItemOrder, String[] qryColumns);
//ManagerFormbuilderItemService
public Long getFormbuilderItemListCnt(Integer formbuilderSetIdx);
//ManagerFormbuilderItemService
public Integer getFormbuilderItemOrderFormCnt(Integer formbuilderSetIdx);
//ManagerformbuilderSetService
public T_FORMBUILDER_ITEM setFormbuilderItemRegProc(T_FORMBUILDER_ITEM tFormbuilderItem);
//ManagerFormbuilderItemService
public boolean setFormbuilderItemModProc(T_FORMBUILDER_ITEM tFormbuilderItem);
//ManagerFormbuilderItemService
public boolean setFormbuilderItemDelProc(T_FORMBUILDER_ITEM tFormbuilderItem);
//ManagerFormbuilderItemService
public void setFormbuilderItemOrderProc(Integer formbuilderSetIdx, Integer formbuilderItemOrder);
}

View File

@ -0,0 +1,421 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
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_FORMBUILDER_ITEM;
/**
* T_FORMBUILDER_ITE 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class FormbuilderItemDAOImpl implements FormbuilderItemDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx에 해당하는 폼빌더 항목 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_FORMBUILDER_ITEM> 폼빌더 항목 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_ITEM> getFormbuilderItemAllList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* formbuilderSetIdx 해당하는 폼빌더 항목 리스트를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @return List<T_FORMBUILDER_ITEM> 폼빌더 항목 리스트
* */
//AdminSiteService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_ITEM> getFormbuilderItemList(Integer formbuilderSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.class);
criteria.add(Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
criteria.addOrder(Order.asc("formbuilderItemOrder"));
return criteria.list();
}
/**
* formbuilderItemIdx 해당하는 항목 정보를 가지고 오는 메소드
* @param Integer formbuilderItemIdx 폼빌더 항목 idx
* @return T_FORMBUILDER_ITEM 폼빌더 항목 정보
* */
//ManagerFormbuilderItemService
public T_FORMBUILDER_ITEM getFormbuilderItemForm(Integer formbuilderItemIdx){
return (T_FORMBUILDER_ITEM) this.sessionFactory.getCurrentSession().load(T_FORMBUILDER_ITEM.class, formbuilderItemIdx);
}
/**
* formbuilderSetIdx, formbuilderItemGroup 해당하는 항목 정보를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param Integer formbuilderItemGroup 폼빌더 항목 그룹 정보
* @return T_FORMBUILDER_ITEM 항목 정보
* */
//ManagerFormbuilderItemService
public T_FORMBUILDER_ITEM getFormbuilderItemForm(Integer formbuilderSetIdx, Integer formbuilderItemGroup){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.class);
criteria.setMaxResults(1);
criteria.add(
Restrictions.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderItemGroup", formbuilderItemGroup)));
criteria.addOrder(Order.asc("formbuilderItemGroup"));
return (T_FORMBUILDER_ITEM)criteria.list().get(0);
}
/**
* formbuilderSetIdx 해당하는 항목 리스트를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<Map<Object, Object>> 항목 리스트
* */
//ManagerFormbuilderItemService
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getFormbuilderItemList(Integer formbuilderSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.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("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
criteria.addOrder(Order.asc("formbuilderItemOrder"));
return criteria.list();
}
/**
* formbuilderSetIdx, formbuilderItemGroup 해당하는 폼빌더 항목 리스트를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param Integer formbuilderItemGroup 항목 그룹 정보
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_ITEM> 항목 리스트
* */
//ManagerFormbuilderItemService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_ITEM> getFormbuilderItemValuesList(Integer formbuilderSetIdx, Integer formbuilderItemGroup, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.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.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderItemGroup", formbuilderItemGroup)));
criteria.addOrder(Order.asc("formbuilderItemGroup")).addOrder(Order.asc("formbuilderItemIdx"));
return criteria.list();
}
/**
* formbuilderSetIdx, formbuilderItemStatus=U 항목 리스트를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_ITEM> 폼빌더 항목 리스트
* */
//UserFormbuilderItemService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_ITEM> getFormbuilderItemValuesList(Integer formbuilderSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.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.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderItemStatus", "U")));
criteria.addOrder(Order.asc("formbuilderItemOrder")).addOrder(Order.asc("formbuilderItemIdx"));
return criteria.list();
}
/**
* formbuilderSetIdx, formbuilderItemOrder 해당하는 항목 리스트를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param Integer formbuilderItemOrder 폼빌더 항목 정렬 순서
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_ITEM> 폼빌더 항목 리스트
* */
//ManagerFormbuilderItemService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_ITEM> getFormbuilderItemOrderList(Integer formbuilderSetIdx, Integer formbuilderItemOrder, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.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.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderItemOrder", formbuilderItemOrder)));
criteria.addOrder(Order.asc("formbuilderItemIdx"));
return criteria.list();
}
/**
* formbuilderSetIdx 해당하는 항목 개수를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @return Long 항목 개수
* */
//ManagerFormbuilderItemService
public Long getFormbuilderItemListCnt(Integer formbuilderSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.class);
criteria.add(Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
criteria.setProjection(Projections.countDistinct("formbuilderItemGroup"));
return (Long)criteria.uniqueResult();
}
/**
* formbuilderSetIdx 해당하는 항목 정보중 formbuilderItemOrder 최대값을 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @return Integer formbuilderItemOrder 최대값
* */
//ManagerFormbuilderItemService
public Integer getFormbuilderItemOrderFormCnt(Integer formbuilderSetIdx) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.class);
criteria.add(Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
criteria.setProjection(Projections.max("formbuilderItemOrder"));
if(criteria.uniqueResult() == null){
return 0;
}else{
return (Integer)criteria.uniqueResult();
}
}
/**
* 폴빌더 항목 정보를 저장하는 메소드
* @param T_FORMBUILDER_ITEM tFormbuilderItem 저장할 폼빌더 항목 정보
* @return T_FORMBUILDER_ITEM 저장된 폼빌더 항목 정보
* */
//ManagerformbuilderSetService
public T_FORMBUILDER_ITEM setFormbuilderItemRegProc(T_FORMBUILDER_ITEM tFormbuilderItem){
try{
this.sessionFactory.getCurrentSession().save(tFormbuilderItem);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getFormbuilderItemForm(tFormbuilderItem.gettFormbuilderSet().getFormbuilderSetIdx(), tFormbuilderItem.getFormbuilderItemGroup());
}
/**
* 폴빌더 항목 정보를 수정하는 메소드
* @param T_FORMBUILDER_ITEM tFormbuilderItem 수정할 폼빌더 항목 정보
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderItemService
public boolean setFormbuilderItemModProc(T_FORMBUILDER_ITEM tFormbuilderItem){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tFormbuilderItem);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 폴빌더 항목 정보를 삭제하는 메소드
* @param T_FORMBUILDER_ITEM tFormbuilderItem 삭제할 폼빌더 항목 정보
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderItemService
public boolean setFormbuilderItemDelProc(T_FORMBUILDER_ITEM tFormbuilderItem){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tFormbuilderItem);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
*formbuilderSetIdx, formbuilderItemOrder 에해당하는 항목 formbuilderItemOrder 값을 -1 해주는 메소드
*formbuilderItemOrder 조건의 경우 formbuilderItemOrder보다 값을 가진 항목을 찾는 조건 이다.
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param Integer formbuilderItemOrder 폼빌더 항목 정렬값
* */
//ManagerFormbuilderItemService
@SuppressWarnings("unchecked")
public void setFormbuilderItemOrderProc(Integer formbuilderSetIdx, Integer formbuilderItemOrder){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.gt("formbuilderItemOrder", formbuilderItemOrder)));
criteria.addOrder(Order.asc("formbuilderItemOrder"));
List<T_FORMBUILDER_ITEM> tFormbuilderItemList = criteria.list();
if(tFormbuilderItemList.size() > 0){
for(int i=0; i<tFormbuilderItemList.size(); i++){
T_FORMBUILDER_ITEM tFormbuilderItemDB = tFormbuilderItemList.get(i);
tFormbuilderItemDB.setFormbuilderItemOrder(tFormbuilderItemDB.getFormbuilderItemOrder()-1);
try{
this.sessionFactory.getCurrentSession().update(tFormbuilderItemDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
}
}
}
}

View File

@ -0,0 +1,48 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_FORMBUILDER_MANAGER;
public interface FormbuilderManagerDAO {
//AdminSiteService
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(String siteIdx);
//AdminMemberService, ManagerMemberService
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(Integer memberIdx);
//ManagerFormbuilderManagerService
public T_FORMBUILDER_MANAGER getFormbuilderManagerForm(Integer managerIdx);
//ManagerFormbuilderManagerService
public Long getFormbuilderManagerListGrantCnt(Integer formbuilderSetIdx, Integer memberIdx);
//ManagerFormbuilderManagerService, UserFormbuilderManagerService
public Long getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer memberIdx);
//ManagerFormbuilderManagerService
public Long getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer selGroup, String column, String search);
//ManagerFormbuilderManagerService
public Long getFormbuilderManagerListCnt(String siteIdx, Integer memberIdx, String column, String search);
//ManagerFormbuilderManagerService
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(Integer formbuilderSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//ManagerFormbuilderManagerService
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerFormbuilderManagerService
public List<Map<Object, Object>> getFormbuilderManagerList(String siteIdx, Integer formbuilderSetIdx, String[] qryColumns);
//ManagerFormbuilderManagerService
public boolean setFormbuilderManagerRegProc(T_FORMBUILDER_MANAGER tFormbuilderManager);
//ManagerFormbuilderManagerService, AdminMemberService, ManagerMemberService
public boolean setFormbuilderManagerModProc(T_FORMBUILDER_MANAGER tFormbuilderManager);
//ManagerFormbuilderManagerService
public boolean setFormbuilderManagerDelProc(T_FORMBUILDER_MANAGER tFormbuilderManager);
}

View File

@ -0,0 +1,467 @@
package seed.dao;
import java.util.List;
import java.util.Map;
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_FORMBUILDER_MANAGER;
/**
* T_FORMBUILDER_MANAGER 테이블 정보를 select, insert, update, delete하는 class
* */
@Repository
public class FormbuilderManagerDAOImpl implements FormbuilderManagerDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* siteIdx에 해당하는 폼빌더 관리자 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return List<T_FORMBUILDER_MANAGER> 폼빌더 관리자 리스트
* */
//AdminSiteService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_MANAGER.class);
criteria.createCriteria("tFormbuilderSet", "tFormbuilderSet", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tFormbuilderSet.tSite.siteIdx", siteIdx));
return criteria.list();
}
/**
* memberIdx에 해당하는 폼빌더 관리자 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_FORMBUILDER_MANAGER> 폼빌더 관리자 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_MANAGER.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* managerIdx에 해당하는 폼빌더 정보를 가지고 오는 메소드
* @param Integer managerIdx 폼빌더 관리자 idx
* @return T_FORMBUILDER_MANAGER 폼빌더 관리자 정보
* */
//ManagerFormbuilderManagerService
public T_FORMBUILDER_MANAGER getFormbuilderManagerForm(Integer managerIdx){
return (T_FORMBUILDER_MANAGER) this.sessionFactory.getCurrentSession().load(T_FORMBUILDER_MANAGER.class, managerIdx);
}
/**
* formbuilderSetIdx, memberIdx 해당하는 관리자 개수를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param Integer memberIdx 회원 idx
* @return Long 폼빌더 관리자 정보 개수
* */
//ManagerFormbuilderManagerService
@SuppressWarnings("deprecation")
public Long getFormbuilderManagerListGrantCnt(Integer formbuilderSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderManagerStatus", "U")),
Restrictions.eq("formbuilderManagerGrant", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* formbuilderSetIdx, memberIdx 해당하는 관리자 개수를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param Integer memberIdx 회원 idx
* @return Long 폼빌더 관리자 정보 개수
* */
//ManagerFormbuilderManagerService, UserFormbuilderManagerService
@SuppressWarnings("deprecation")
public Long getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderManagerStatus", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* formbuilderSetIdx, column, search 해당하는 관리자 개수를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 폼빌더 관리자 개수
* */
//ManagerFormbuilderManagerService
@SuppressWarnings("deprecation")
public Long getFormbuilderManagerListCnt(Integer formbuilderSetIdx, Integer selGroup, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
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();
}
/**
* formbuilderSetIdx, column, search 해당하는 관리자 개수를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 폼빌더 관리자 개수
* */
//ManagerFormbuilderManagerService
@SuppressWarnings("deprecation")
public Long getFormbuilderManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tFormbuilderSet", "tFormbuilderSet", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.eq("tFormbuilderSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tMember.memberIdx", memberIdx)));
if(!search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* formbuilderSetIdx, column, search 해당하는 폼빌더 관리자 리스트를 페이지 별로 가지고 오는 메소드
* orderColumn 의로 정렬할 컬럼을 정의 하고 order 옵션으로 정렬 형식을 정의 한다.
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param int page 페이지 번호
* @param int row 개수
* @param String orderColumn order by 컬럼 정의
* @param String order order by 옵션정의 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_MANAGER> 관리자 리스트
* */
//ManagerFormbuilderManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(Integer formbuilderSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
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 = "formbuilderManagerIdx";
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* formbuilderSetIdx, column, search 해당하는 폼빌더 관리자 리스트를 페이지 별로 가지고 오는 메소드
* orderColumn 의로 정렬할 컬럼을 정의 하고 order 옵션으로 정렬 형식을 정의 한다.
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param int page 페이지 번호
* @param int row 개수
* @param String orderColumn order by 컬럼 정의
* @param String order order by 옵션정의 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_MANAGER> 관리자 리스트
* */
//ManagerFormbuilderManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_FORMBUILDER_MANAGER> getFormbuilderManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tFormbuilderSet", "tFormbuilderSet", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.and(
Restrictions.eq("tFormbuilderSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tMember.memberIdx", memberIdx)));
if(!search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* siteIdx, formbuilderSetIdx 해당하는 폼빌더 관리자 리스트를 페이지 별로 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_MANAGER> 관리자 리스트
* */
//ManagerFormbuilderManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<Map<Object, Object>> getFormbuilderManagerList(String siteIdx, Integer formbuilderSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tFormbuilderSet", "tFormbuilderSet", 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.add(
Restrictions.and(
Restrictions.eq("tFormbuilderSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx)));
criteria.addOrder(Order.desc("formbuilderManagerIdx"));
return criteria.list();
}
/**
* 폼빌더 관리자 정보를 저장하는 메소드
* @param T_FORMBUILDER_MANAGER tFormbuilderManager 저장할 폼빌더 관리자 계정
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderManagerService
public boolean setFormbuilderManagerRegProc(T_FORMBUILDER_MANAGER tFormbuilderManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tFormbuilderManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 폼빌더 관리자 정보를 수정하는 메소드
* @param T_FORMBUILDER_MANAGER tFormbuilderManager 수정할 폼빌더 관리자 계정
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderManagerService, AdminMemberService, ManagerMemberService
public boolean setFormbuilderManagerModProc(T_FORMBUILDER_MANAGER tFormbuilderManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tFormbuilderManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 폼빌더 관리자 정보를 삭제하는 메소드
* @param T_FORMBUILDER_MANAGER tFormbuilderManager 삭제할 폼빌더 관리자 계정
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderManagerService
public boolean setFormbuilderManagerDelProc(T_FORMBUILDER_MANAGER tFormbuilderManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tFormbuilderManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,46 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_FORMBUILDER_SET;
import seed.map.VIEW_FORMBUILDER_SET;
public interface FormbuilderSetDAO {
//AdminMemberService, ManagerMemberService
public List<T_FORMBUILDER_SET> getFormbuilderSetList(Integer memberIdx);
//AdminGroupService, ManagerGroupService
public List<T_FORMBUILDER_SET> getFormbuilderSetList(String siteIdx, String[] qryColumns);
//ManagerFormbuilderSetService
public List<Map<Object, Object>> getFormbuilderSetMiniList(Integer formbuilderSetIdx, int page, int row, String[] qryColumns);
//ManagerFormbuilderSetService
public List<VIEW_FORMBUILDER_SET> getFormbuilderSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//UserFormbuilderSetService
public List<T_FORMBUILDER_SET> getFormbuilderSetList(Integer formbuilderSetIdx, int page, int row, String[] qryColumns);
//ManagerFormbuilderSetService
public Long getFormbuilderSetListCnt(String siteIdx, String column, String search);
//UserFormbuilderSetService
public Long getFormbuilderSetListCnt(Integer formbuilderSetIdx);
//ManagerFormbuilderSetService
public T_FORMBUILDER_SET getFormbuilderSetForm(String siteIdx, String siteMenuIdx);
//ManagerFormbuilderSetService, UserFormbuilderSetService
public T_FORMBUILDER_SET getFormbuilderSetForm(Integer formbuilderSetIdx);
//ManagerFormbuilderSetService
public T_FORMBUILDER_SET setFormbuilderSetRegProc(T_FORMBUILDER_SET tFormbuilderSet);
//ManagerFormbuilderSetService
public boolean setFormbuilderSetModProc(T_FORMBUILDER_SET tFormbuilderSet);
//ManagerFormbuilderSetService
public boolean setFormbuilderSetDelProc(T_FORMBUILDER_SET tFormbuilderSet);
}

View File

@ -0,0 +1,434 @@
package seed.dao;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
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_FORMBUILDER_SET;
import seed.map.VIEW_FORMBUILDER_SET;
/**
* T_FORMBUILDER_SET 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class FormbuilderSetDAOImpl implements FormbuilderSetDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx 해당하는 폼빌더 설정 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_FORMBUILDER_SET> 폼빌더 설정 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_SET> getFormbuilderSetList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SET.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* 폼빌더 데이터를 가지고 오는 메소드
* formbuilderSetIdx에 해당하는 정보를 page에 맞춰서 row개 가지고 온다
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param int page 출력할 페이지 번호
* @param int row 페이지 출력 개수
* @param String[] select 컬럼 정의
* @return List<Map<Object, Object>> 폼빌더 설정 리스트
* */
//ManagerFormbuilderSetService
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getFormbuilderSetMiniList(Integer formbuilderSetIdx, int page, int row, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SET.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.and(
Restrictions.eq("formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderSetStatus","U")));
criteria.addOrder(Order.desc("formbuilderSetIdx"));
return criteria.list();
}
/**
* siteIdx 해당하는 폼빌더 설정 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns seelct 컬럼 정의
* @return List<T_FORMBUILDER_SET> 폼빌더 설정 리스트
* */
//AdminGroupService, ManagerGroupService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_SET> getFormbuilderSetList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SET.class);
if(!siteIdx.equals("ALL_SITE_IDX")){
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
}
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.addOrder(Order.asc("formbuilderSetIdx"));
return criteria.list();
}
/**
* formbuilderSetIdx, column, search 해당하는 폼빌더 설정 리스트를 페이지 별로 가지고 오는 메소드
* orderColumn 의로 정렬할 컬럼을 정의 하고 order 옵션으로 정렬 형식을 정의 한다.
* @param String siteIdx 사이트 idx
* @param int page 페이지 번호
* @param int row 페이지 출력 개수
* @param String orderColumn 정렬 컬럼 정의
* @param String order 정렬 옵션 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<VIEW_FORMBUILDER_SET> 폼빌더 설정 리스트
* */
//ManagerFormbuilderSetService
@SuppressWarnings("unchecked")
public List<VIEW_FORMBUILDER_SET> getFormbuilderSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_FORMBUILDER_SET.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("siteIdx", siteIdx));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("formbuilderSetName", search, MatchMode.ANYWHERE),
Restrictions.like("memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* formbuilderSetIdx 해당하는 폼빌더 설정 리스트를 페이지 별로 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @param int page 페이지 번호
* @param int row 페이지 출력 개수
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_SET> 폼빌더 설정 리스트
* */
//UserFormbuilderSetService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_FORMBUILDER_SET> getFormbuilderSetList(Integer formbuilderSetIdx, int page, int row, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SET.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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(formbuilderSetIdx.equals(0)){
criteria.add(Restrictions.eq("formbuilderSetStatus", "U"));
}else{
criteria.add(
Restrictions.and(
Restrictions.eq("formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderSetStatus", "U")));
}
criteria.addOrder(Order.desc("formbuilderSetIdx"));
return criteria.list();
}
/**
* siteIdx, column, search 해당하는 폼빌더 설정 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 폼빌더 설정 개수
* */
//ManagerFormbuilderSetService
public Long getFormbuilderSetListCnt(String siteIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_FORMBUILDER_SET.class);
criteria.add(Restrictions.eq("siteIdx", siteIdx));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("formbuilderSetName", search, MatchMode.ANYWHERE),
Restrictions.like("memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* formbuilderSetIdx 해당하는 폼빌더 설정 개수를 가지고 오는 메소드
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @return Long 폼빌더 설정 개수
* */
//UserFormbuilderSetService
@SuppressWarnings("deprecation")
public Long getFormbuilderSetListCnt(Integer formbuilderSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SET.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
if(formbuilderSetIdx.equals(0)){
criteria.add(Restrictions.eq("formbuilderSetStatus", "U"));
}else{
criteria.add(
Restrictions.and(
Restrictions.eq("formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderSetStatus", "U")));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* siteIdx, siteMenuIdx 해당하는 폼빌더 정보를 가지고 오는 메소드
* siteMenuIdx의 경우 SITE_MENU_IDXS 컬럼을 LIKE검색 한다
* @param String siteIdx 폼빌더 설정 idx
* @param String siteMenuIdx 폼빌더 설정 idx
* @return T_FORMBUILDER_SET 폼빌더 정보
* */
//ManagerFormbuilderSetService
@SuppressWarnings("unchecked")
public T_FORMBUILDER_SET getFormbuilderSetForm(String siteIdx, String siteMenuIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SET.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.like("siteMenuIdxs", siteMenuIdx, MatchMode.ANYWHERE)));
ArrayList<T_FORMBUILDER_SET> list = (ArrayList<T_FORMBUILDER_SET>)criteria.list();
if(list != null && list.size() > 0){
return list.get(0);
}else{
return null;
}
}
/**
* formbuilderSetIdx 해당하는 폼빌더 설정 정보를 가지고 옵니다.
* @param Integer formbuilderSetIdx 폼빌더 설정 idx
* @return T_FORMBUILDER_SET 폼빌더 설정 정보
* */
//ManagerFormbuilderSetService, UserFormbuilderSetService
public T_FORMBUILDER_SET getFormbuilderSetForm(Integer formbuilderSetIdx){
return (T_FORMBUILDER_SET) this.sessionFactory.getCurrentSession().load(T_FORMBUILDER_SET.class, formbuilderSetIdx);
}
/**
* 폼빌더 설정 정보를 저장하는 메소드
* @param T_FORMBUILDER_SET tFormbuilderSet 저장할 폼빌더 설정 정보
* @return T_FORMBUILDER_SET 저장한 폼빌더 설정 정보
* */
//ManagerFormbuilderSetService
public T_FORMBUILDER_SET setFormbuilderSetRegProc(T_FORMBUILDER_SET tFormbuilderSet){
try{
this.sessionFactory.getCurrentSession().save(tFormbuilderSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getFormbuilderSetForm(tFormbuilderSet.getFormbuilderSetIdx());
}
/**
* 폼빌더 설정 정보를 수정하는 메소드
* @param T_FORMBUILDER_SET tFormbuilderSet 수정할 폼빌더 설정 정보
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderSetService
public boolean setFormbuilderSetModProc(T_FORMBUILDER_SET tFormbuilderSet){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tFormbuilderSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 폼빌더 설정 정보를 삭제하는 메소드
* @param T_FORMBUILDER_SET tFormbuilderSet 삭제할 폼빌더 설정 정보
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderSetService
public boolean setFormbuilderSetDelProc(T_FORMBUILDER_SET tFormbuilderSet){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tFormbuilderSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,41 @@
package seed.dao;
import java.util.List;
import seed.map.T_FORMBUILDER_SKIN;
public interface FormbuilderSkinDAO {
//AdminMemberService, ManagerMemberService
public List<T_FORMBUILDER_SKIN> getFormbuilderSkinList(Integer memberIdx);
//ManagerFormbuilderSetService
public String getFormbuilderSkinCode(String siteIdx);
//ManagerFormbuilderSetService
public T_FORMBUILDER_SKIN getFormbuilderSkinForm(Integer formbuilderSkinIdx);
//ManagerFormbuilderSetService
public Long getFormbuilderSetSkinListCnt(String siteIdx);
//ManagerFormbuilderSetService
public List<T_FORMBUILDER_SKIN> getFormbuilderSetSkinList(String siteIdx, int page, int row, String[] qryColumns);
//ManagerFormbuilderSetService
public Long getFormbuilderSkinListCnt(String siteIdx);
//ManagerFormbuilderSetService
public List<T_FORMBUILDER_SKIN> getFormbuilderSkinList(String siteIdx, String[] qryColumns);
//ManagerFormbuilderSetService
public List<T_FORMBUILDER_SKIN> getFormbuilderSkinList(String siteIdx, int page, int row, String[] qryColumns);
//AdminSiteService, ManagerFormbuilderSetService
public T_FORMBUILDER_SKIN setFormbuilderSkinRegProc(T_FORMBUILDER_SKIN tFormbuilderSkin);
//ManagerFormbuilderSetService
public boolean setFormbuilderSkinModProc(T_FORMBUILDER_SKIN tFormbuilderSkin);
//ManagerFormbuilderSetService
public boolean setFormbuilderSkinDelProc(T_FORMBUILDER_SKIN tFormbuilderSkin);
}

View File

@ -0,0 +1,351 @@
package seed.dao;
import java.util.ArrayList;
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.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_FORMBUILDER_SKIN;
/**
* T_FORMBUILDER_SKIN 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class FormbuilderSkinDAOImpl implements FormbuilderSkinDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx에 해당하는 폼빌더 스킨 정보 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_FORMBUILDER_SKIN> 폼빌더 스킨 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_SKIN> getFormbuilderSkinList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SKIN.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* siteIdx 맞는 skinCode정보를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return String 스킨 코드값
* */
//ManagerFormbuilderSetService
@SuppressWarnings("unchecked")
public String getFormbuilderSkinCode(String siteIdx){
String formbuilderSkinCode = "01";
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SKIN.class);
criteria.setMaxResults(1);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
criteria.addOrder(Order.desc("formbuilderSkinCode"));
ArrayList<T_FORMBUILDER_SKIN> list = (ArrayList<T_FORMBUILDER_SKIN>)criteria.list();
if(list != null && list.size() > 0){
T_FORMBUILDER_SKIN tFormbuilderSkinDB = list.get(0);
Integer formbuilderSkinCodeTmp = Integer.parseInt(tFormbuilderSkinDB.getFormbuilderSkinCode()) + 1;
if(formbuilderSkinCodeTmp < 10){
formbuilderSkinCode = "0"+formbuilderSkinCodeTmp;
}else{
formbuilderSkinCode = formbuilderSkinCodeTmp+"";
}
}
return formbuilderSkinCode;
}
/**
* formbuilderSkinIdx 해당하는 스킨 정보를 가지고 오는 메소드
* @param Integer formbuilderSkinIdx 폼빌더 스킨 idx
* @return T_FORMBUILDER_SKIN 폼빌더 스킨 정보
* */
//ManagerFormbuilderSetService
public T_FORMBUILDER_SKIN getFormbuilderSkinForm(Integer formbuilderSkinIdx){
return (T_FORMBUILDER_SKIN) this.sessionFactory.getCurrentSession().load(T_FORMBUILDER_SKIN.class, formbuilderSkinIdx);
}
/**
* siteIdx 해당하는 스킨 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return Long 스킨개수
* */
//ManagerFormbuilderSetService
public Long getFormbuilderSetSkinListCnt(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SKIN.class);
criteria.add(
Restrictions.and(
Restrictions.or(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.isNull("tSite.siteIdx")),
Restrictions.eq("formbuilderSkinStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* siteIdx에 해당하는 폼빌더 스킨 리스트를 페이지 별로 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param int page 페이지 번호
* @param int row 페이지 출력 개수
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_SKIN> 폼빌더 스킨 리스트
* */
//ManagerFormbuilderSetService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_FORMBUILDER_SKIN> getFormbuilderSetSkinList(String siteIdx, int page, int row, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SKIN.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.and(
Restrictions.or(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.isNull("tSite.siteIdx")),
Restrictions.eq("formbuilderSkinStatus", "U")));
criteria.addOrder(Order.desc("formbuilderSkinIdx"));
return criteria.list();
}
/**
* siteIdx 해당하는 폼빌더 스킨 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return Long 폼빌더 스킨 개수
* */
//ManagerFormbuilderSetService
public Long getFormbuilderSkinListCnt(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SKIN.class);
criteria.add(
Restrictions.or(
Restrictions.isNull("tSite.siteIdx"),
Restrictions.eq("tSite.siteIdx", siteIdx)));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* siteIdx 해당하는 폼빌더 스킨 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_SKIN> 폼빌더 스킨 리스트
* */
//AdminSiteService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_SKIN> getFormbuilderSkinList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SKIN.class);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
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.addOrder(Order.asc("formbuilderSkinIdx"));
return criteria.list();
}
/**
* siteIdx 해당하는 폼빌더 스킨 리스트를 페이지별로 가지고 온다.
* @param String siteIdx 사이트 idx
* @param int page 페이지 번호
* @param int row 페이지당 출력 개수
* @param String[] qryColumns select 컬럼 정의
* @return List<T_FORMBUILDER_SKIN> 폼빌더 스킨 리스트
* */
//ManagerFormbuilderSetService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_FORMBUILDER_SKIN> getFormbuilderSkinList(String siteIdx, int page, int row, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_SKIN.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.or(
Restrictions.isNull("tSite.siteIdx"),
Restrictions.eq("tSite.siteIdx", siteIdx)));
criteria.addOrder(Order.desc("formbuilderSkinIdx"));
return criteria.list();
}
/**
* 폼빌더 스킨 정보를 저장하는 메소드
* @param T_FORMBUILDER_SKIN tFormbuilderSkin 저장할 폼빌더 스킨 정보
* @return T_FORMBUILDER_SKIN 저장된 폼빌더 스킨 정보
* */
//AdminSiteService, ManagerFormbuilderSetService
public T_FORMBUILDER_SKIN setFormbuilderSkinRegProc(T_FORMBUILDER_SKIN tFormbuilderSkin){
try{
this.sessionFactory.getCurrentSession().save(tFormbuilderSkin);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getFormbuilderSkinForm(tFormbuilderSkin.getFormbuilderSkinIdx());
}
/**
* 폼빌더 스킨 정보를 수정하는 메소드
* @param T_FORMBUILDER_SKIN tFormbuilderSkin 수정할 폼빌더 스킨 정보
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderSetService
public boolean setFormbuilderSkinModProc(T_FORMBUILDER_SKIN tFormbuilderSkin){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tFormbuilderSkin);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 폼빌더 스킨 정보를 삭제하는 메소드
* @param T_FORMBUILDER_SKIN tFormbuilderSkin 삭제할 폼빌더 스킨 정보
* @return boolean 작업의 성공 여부
* */
//ManagerFormbuilderSetService
public boolean setFormbuilderSkinDelProc(T_FORMBUILDER_SKIN tFormbuilderSkin){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tFormbuilderSkin);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,42 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_GROUP;
public interface GroupDAO {
//AdminGroupService ManagerGroupService
public void setGroupLevelProc(Integer groupLevel);
//AdminGroupService ManagerGroupService
public T_GROUP getGroupLevelForm(String siteIdx, Integer groupLevel);
//AdminGroupService ManagerGroupService
public Integer getGroupLevelFormCnt(String siteIdx);
//AdminGroupService, ManagerGroupService
public T_GROUP getGroupForm(Integer groupIdx);
//AdminGroupService
public List<T_GROUP> getGroupList(String[] qryColumns);
//AdminGroupService, ManagerGroupService, ManagerBbsSetService, AdminSiteService
public List<T_GROUP> getGroupList(String siteIdx, String[] qryColumns);
//AdminGroupService, ManagerGroupService, ManagerBbsSetService, AdminSiteService
public List<Map<Object, Object>> getGroupMapList(String siteIdx, String[] qryColumns);
//AdminGroupService, ManagerGroupService
public List<T_GROUP> getGroupList(String siteIdx, String column, String search, String[] qryColumns);
//AdminSiteService, AdminGroupService, ManagerSiteService, ManagerGroupService
public T_GROUP setGroupRegProc(T_GROUP tGroup);
//AdminGroupService, ManagerGroupService
public boolean setGroupModProc(T_GROUP tGroup);
//AdminGroupService, ManagerGroupService
public boolean setGroupDelProc(T_GROUP tGroup);
}

View File

@ -0,0 +1,382 @@
package seed.dao;
import java.util.List;
import java.util.Map;
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_GROUP;
/**
* T_GROUP 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class GroupDAOImpl implements GroupDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* groupLevel 보다 크고 999보다 작은 그룹레벨을 가진 데이터의 그룹레벨값을 -1 하는 메소드
* @param Integer groupLevel
* */
//AdminGroupService
@SuppressWarnings("unchecked")
public void setGroupLevelProc(Integer groupLevel){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUP.class);
criteria.add(
Restrictions.and(
Restrictions.lt("groupLevel", 999),
Restrictions.gt("groupLevel", groupLevel)));
criteria.addOrder(Order.asc("groupLevel"));
List<T_GROUP> tGroupList = criteria.list();
if(tGroupList.size() > 0){
for(int i=0; i<tGroupList.size(); i++){
T_GROUP tGroupDB = tGroupList.get(i);
tGroupDB.setGroupLevel(tGroupDB.getGroupLevel()-1);
try{
this.sessionFactory.getCurrentSession().update(tGroupDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
}
}
}
/**
* siteIdx, groupLevel 해당하는 그룹 정보를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param Integer groupLevel 그룹 레벨
* @return T_GROUP 그룹 정보
* */
//AdminGroupService
public T_GROUP getGroupLevelForm(String siteIdx, Integer groupLevel) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUP.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("groupLevel", groupLevel)));
return (T_GROUP) criteria.list().get(0);
}
/**
* siteIdx 해당하는 그룹중 그룹레벨이 999보다 작은 값중 가장 그룹레벨을 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return Integer 그룹레벨 최대값
* */
//AdminGroupService
public Integer getGroupLevelFormCnt(String siteIdx){
Integer groupLevel = 0;
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUP.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.lt("groupLevel", 999)));
criteria.setProjection(Projections.max("groupLevel"));
if((Integer)criteria.uniqueResult() != null){
groupLevel = (Integer)criteria.uniqueResult();
}
return groupLevel;
}
/**
* groupIdx 해당하는 그룹 정보를 가지고 오는 메소드
* @param Integer groupIdx 그룹 idx
* @return T_GROUP 그룹정보
* */
//AdminGroupService
public T_GROUP getGroupForm(Integer groupIdx){
return (T_GROUP) this.sessionFactory.getCurrentSession().load(T_GROUP.class, groupIdx);
}
/**
* groupStatus=U 해당하는 그룹 정보 리스트를 가지고 오는 메소드
* @param String[] qryColumns select 컬럼 정의
* @return List<T_GROUP> 그룹 리스트
* */
//AdminGroupService
@SuppressWarnings("unchecked")
public List<T_GROUP> getGroupList(String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUP.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("groupStatus", "U"));
criteria.addOrder(Order.asc("groupLevel"));
return criteria.list();
}
/**
* siteIdx, groupStatus=U 해당하는 그룹 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_GROUP> 그룹 리스트
* */
//AdminGroupService, ManagerGroupService, ManagerBbsSetService, AdminSiteService
@SuppressWarnings("unchecked")
public List<T_GROUP> getGroupList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUP.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.and(
Restrictions.eq("groupStatus", "U"),
Restrictions.eq("tSite.siteIdx", siteIdx)));
criteria.addOrder(Order.asc("groupLevel"));
return criteria.list();
}
/**
* siteIdx, groupStatus=U 해당하는 그룹 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<Map<Object, Object>> 그룹 리스트
* */
//AdminGroupService, ManagerGroupService, ManagerBbsSetService, AdminSiteService
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getGroupMapList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUP.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.and(
Restrictions.eq("groupStatus", "U"),
Restrictions.eq("tSite.siteIdx", siteIdx)));
criteria.addOrder(Order.asc("groupLevel"));
return criteria.list();
}
/**
* siteIdx, column, search 해당하는 그룹 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_GROUP> 그룹 리스트
* */
//AdminGroupService, ManagerGroupService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_GROUP> getGroupList(String siteIdx, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUP.class);
criteria.createCriteria("tGroupss", "tGroupss", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember", "tMember", 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.add(Restrictions.eq("tSite.siteIdx", siteIdx));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("groupName", search, MatchMode.ANYWHERE),
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.addOrder(Order.asc("groupLevel"));
return criteria.list();
}
/**
* 그룹 정보를 저장하는 메소드
* @param T_GROUP tGroup 저장할 그룹 정보
* @return T_GROUP 저장된 그룹 정보
* */
//AdminSiteService, AdminGroupService, ManagerSiteService, ManagerGroupService
public T_GROUP setGroupRegProc(T_GROUP tGroup){
try{
this.sessionFactory.getCurrentSession().save(tGroup);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return getGroupForm(tGroup.getGroupIdx());
}
/**
* 그룹 정보를 수정하는 메소드
* @param T_GROUP tGroup 수정할 그룹 정보
* @return boolean 작업의 성공 여부
* */
//AdminGroupService, ManagerGroupService
public boolean setGroupModProc(T_GROUP tGroup){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tGroup);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 그룹 정보를 삭제하는 메소드
* @param T_GROUP tGroup 삭제할 그룹 정보
* @return boolean 작업의 성공 여부
* */
//AdminGroupService, ManagerGroupService
public boolean setGroupDelProc(T_GROUP tGroup){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tGroup);
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,45 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_GROUPS;
public interface GroupsDAO {
//AdminGroupsService
public Long getGroupsListCnt(String siteIdx, Integer groupIdx, Integer memberIdx);
//AdminGroupsService
public Long getGroupsListCnt(Integer groupIdx, String column, String search);
//AdminGroupsService, ManagerGroupsService
public Long getGroupsListCnt(Integer memberIdx);
//AdminGroupsService
public List<T_GROUPS> getGroupsList(Integer groupIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//AdminGroupsService
public List<Map<Object, Object>> getGroupsMapList(Integer memberIdx, String[] qryColumns);
//AdminMemberController, ManagerGroupsService
public List<T_GROUPS> getGroupsList(String siteIdx, Integer memberIdx, String[] qryColumns);
//AdminMemberService, ManagerSiteService
public List<T_GROUPS> getGroupsList(Integer memberIdx);
//ManagerMemberService
public List<T_GROUPS> getGroupsList(String siteIdx, Integer memberIdx);
//AdminGroupsService, ManagerGroupsService
public T_GROUPS getGroupsForm(Integer groupsIdx);
//AdminGroupsService, ManagerGroupsService
public boolean setGroupsRegProc(T_GROUPS tGroups);
//AdminGroupsService, ManagerGroupsService
public boolean setGroupsModProc(T_GROUPS tGroups);
//AdminGroupsService, AdminMemberService, ManagerMemberService, ManagerGroupsService
public boolean setGroupsDelProc(T_GROUPS tGroups);
}

View File

@ -0,0 +1,403 @@
package seed.dao;
import java.util.List;
import java.util.Map;
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_GROUPS;
/**
* T_GROUPS 테이블 정보를 select, insert, update, delete하는 class
* */
@Repository
public class GroupsDAOImpl implements GroupsDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* siteIdx, groupIdx, memberIdx 해당하는 그룹회원 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param Integer groupIdx 그룹 idx
* @param Integer memberIdx 회원 idx
* @return Long 그룹회원 개수
* */
//AdminGroupsService
public Long getGroupsListCnt(String siteIdx, Integer groupIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUPS.class);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("tGroup.groupIdx", groupIdx)),
Restrictions.eq("tMember.memberIdx", memberIdx)));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* groupIdx, column, search 해당하는 그룹회원 개수를 가지고 오는 메소드
* @param Integer groupIdx 그룹 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 그룹회원 개수
* */
//AdminGroupsService
@SuppressWarnings("deprecation")
public Long getGroupsListCnt(Integer groupIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUPS.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tGroup.groupIdx", groupIdx));
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();
}
/**
* memberIdx 해당하는 그룹회원 개수를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return Long 그룹회원 개수
* */
//AdminGroupsService, ManagerGroupsService
public Long getGroupsListCnt(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUPS.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* groupIdx, column, search 해당하는 그룹회원 리스트를 페이지별로 가지고 오는 메소드
* orderColumn, order 정의돈 내용으로 정렬을 한다
* @param Integer groupIdx 그룹 idx
* @param int page 페이지 번호
* @param int row 페이지 출력 개수
* @param String orderColumn 정렬 컬럼 정의
* @param String order 정렬 방법 정의 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns
* @return List<T_GROUPS> 그룹 회원 리스트
* */
//AdminGroupsService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_GROUPS> getGroupsList(Integer groupIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUPS.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tGroup", "tGroup", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tGroup.groupIdx", groupIdx));
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(!order.equals("") && !orderColumn.equals("")){
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
}
return criteria.list();
}
/**
* memberIdx, groupsStatus=U 해당하는 그룹회원 리스트를 가지고 오는 메소드
* @param Integer memberIdx 그룹 idx
* @param String[] qryColumns
* @return List<Map<Object, Object>> 그룹 회원 리스트
* */
//AdminGroupsService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<Map<Object, Object>> getGroupsMapList(Integer memberIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUPS.class);
criteria.createCriteria("tSite", "tSite", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tGroup", "tGroup", 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.add(
Restrictions.and(
Restrictions.eq("groupsStatus", "U"),
Restrictions.eq("tMember.memberIdx", memberIdx)));
criteria.addOrder(Order.asc("tSite.siteName")).addOrder(Order.asc("tGroup.groupLevel"));
return criteria.list();
}
/**
* siteIdx, memberIdx, groupsStatus=U 해당하는 회원 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param Integer memberIdx 회원 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_GROUPS> 그룹 회원 리스트
* */
//AdminMemberController, ManagerGroupsService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_GROUPS> getGroupsList(String siteIdx, Integer memberIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUPS.class);
criteria.createCriteria("tSite", "tSite", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tGroup", "tGroup", 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.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("groupsStatus", "U"),
Restrictions.eq("tSite.siteIdx", siteIdx)),
Restrictions.eq("tMember.memberIdx", memberIdx)));
criteria.addOrder(Order.asc("tSite.siteName")).addOrder(Order.asc("tGroup.groupLevel"));
return criteria.list();
}
/**
* memberIdx 해당하는 회원 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_GROUPS> 그룹 회원 리스트
* */
//AdminMemberService, AdminSiteService, ManagerSiteService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_GROUPS> getGroupsList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUPS.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* siteIdx, memberIdx 해당하는 회원 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param Integer memberIdx 회원 idx
* @return List<T_GROUPS> 그룹 회원 리스트
* */
//ManagerMemberService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_GROUPS> getGroupsList(String siteIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_GROUPS.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.eq("tMember.memberIdx", memberIdx),
Restrictions.eq("tSite.siteIdx", siteIdx)));
return criteria.list();
}
/**
*groupsIdx 해당하는 회원 정보를 가지고 오는 메소드
* @param Integer groupsIdx 그룹 회원 idx
* @return T_GROUPS 그룹 회원 정보
* */
//AdminGroupsService, ManagerGroupsService
public T_GROUPS getGroupsForm(Integer groupsIdx){
return (T_GROUPS) this.sessionFactory.getCurrentSession().load(T_GROUPS.class, groupsIdx);
}
/**
*그룹 회원 정보를 저장하는 메소드
* @param T_GROUPS tGroups 저장할 그룹 회원 정보
* @return boolean 작업의 성공 여부
* */
//AdminGroupsService, ManagerGroupsService
public boolean setGroupsRegProc(T_GROUPS tGroups){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tGroups);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
*그룹 회원 정보를 수정하는 메소드
* @param T_GROUPS tGroups 수정할 그룹 회원 정보
* @return boolean 작업의 성공 여부
* */
//AdminGroupsService, ManagerGroupsService
public boolean setGroupsModProc(T_GROUPS tGroups){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tGroups);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
*그룹 회원 정보를 삭제하는 메소드
* @param T_GROUPS tGroups 삭제할 그룹 회원 정보
* @return boolean 작업의 성공 여부
* */
//AdminGroupsService, AdminMemberService, ManagerMemberService, ManagerGroupsService
public boolean setGroupsDelProc(T_GROUPS tGroups){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tGroups);
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,15 @@
package seed.dao;
import java.util.List;
import seed.map.T_LOGS;
import seed.map.VIEW_LOGS;
public interface LogsDAO {
public Long getSiteMemberLogListCnt(String logsType, String logsSubType, String column, String search, String sDate, String eDate);
public List<VIEW_LOGS> getLogsList(String logsType, String logsSubType, int page, int row, String orderColumn, String order, String column, String search, String sDate, String eDate);
public void setLogsRegProc(T_LOGS tLogs);
}

View File

@ -0,0 +1,99 @@
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.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import seed.map.T_LOGS;
import seed.map.VIEW_LOGS;
@Repository
public class LogsDAOImpl implements LogsDAO {
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Long getSiteMemberLogListCnt(String logsType, String logsSubType, String column, String search, String sDate, String eDate){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_LOGS.class);
criteria.add(Restrictions.eq("logsType", logsType));
if(!logsSubType.equals("")){
criteria.add(Restrictions.eq("logsSubType", logsSubType));
}
if(!column.equals("") && !search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
if(!sDate.equals("") && !eDate.equals("")){
criteria.add(
Restrictions.and(
Restrictions.ge("logsRegDate", sDate),
Restrictions.le("logsRegDate", eDate)));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
@SuppressWarnings("unchecked")
public List<VIEW_LOGS> getLogsList(String logsType, String logsSubType, int page, int row, String orderColumn, String order, String column, String search, String sDate, String eDate){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_LOGS.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
criteria.add(Restrictions.eq("logsType", logsType));
if(!logsSubType.equals("")){
criteria.add(Restrictions.eq("logsSubType", logsSubType));
}
if(!column.equals("") && !search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
if(!sDate.equals("") && !eDate.equals("")){
criteria.add(
Restrictions.and(
Restrictions.ge("logsRegDate", sDate),
Restrictions.le("logsRegDate", eDate)));
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
public void setLogsRegProc(T_LOGS tLogs){
try{
this.sessionFactory.getCurrentSession().save(tLogs);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
}
}

View File

@ -0,0 +1,61 @@
package seed.dao;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import seed.map.T_MEMBER;
public interface MemberDAO {
//AdminMemberService, ManagerMemberService
public Long getMemberFormCnt(String memberId);
//AdminMemberService
public List<T_MEMBER> getMemberList(ArrayList<Integer> arrayListMemberIdx);
//AdminMemberService, ManagerMemberService
public Long getMemberListCnt(String siteIdx, Integer selGroup, String column, String search);
//AdminMemberService
public Long getMemberListCnt(String column, String search);
//AdminMemberService
public Long getMemberPrivacyListCnt(String siteIdx, String column, String search, Integer privacyDate);
//AdminSiteService
public List<T_MEMBER> getMemberList(String siteIdx);
//AdminMemberService, ManagerMemberService
public List<T_MEMBER> getMemberList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//AdminMemberService
public List<T_MEMBER> getMemberList(int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//AdminMemberService
public List<T_MEMBER> getMemberPrivacyList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, Integer privacyDate, String[] qryColumns);
//AdminLoginService, ManagerLoginService
public T_MEMBER getMemberForm(String memberId);
//AdminSiteService, AdminLoginService, ManagerLoginService, AdminSiteManagerService, AdminMemberService, ManagerSiteService, ManagerMemberService, UserMemberService
public T_MEMBER getMemberForm(Integer memberIdx);
//ManagerMemberService
public Map<Object, Object> getMemberMapForm(Integer memberIdx, String[] qryColumns);
//UserMemberService
public String getMemberIdFindForm(String memberName, String memberEmail1, String memberEmail2);
//UserMemberService
public Integer getMemberPwFindForm(String memberName, String memberId);
//AdminMemberService, ManagerMemberService
public T_MEMBER setMemberRegProc(T_MEMBER tMember);
//AdminSiteService, AdminLoginService, ManagerLoginService, AdminSiteManagerService, AdminMemberService, ManagerSiteService, ManagerMemberService
public boolean setMemberModProc(T_MEMBER tMember);
//AdminMemberService, ManagerMemberService
public boolean setMemberDelProc(T_MEMBER tMember);
}

View File

@ -0,0 +1,665 @@
package seed.dao;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Map;
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_MEMBER;
/**
* T_MEMBER 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class MemberDAOImpl implements MemberDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberId에 해당하는 회원 개수를 가지고 오는 메소드
* @param String memberId 회원 id
* @return Long 회원 개수
* */
//AdminMemberService, ManagerMemberService
public Long getMemberFormCnt(String memberId){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.add(Restrictions.eq("memberId", memberId));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* arrayListMemberIdx 해당하는 회원 리스트를 가지고 오는 메소드
* arrayListMemberIdx 정보는 memberIdx in (arrayListMemberIdx) 조건에 사용된다.
* @param ArrayList<Integer> arrayListMemberIdx
* @return List<T_MEMBER>
* */
//AdminMemberService
@SuppressWarnings("unchecked")
public List<T_MEMBER> getMemberList(ArrayList<Integer> arrayListMemberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.add(Restrictions.in("memberIdx", arrayListMemberIdx));
return criteria.list();
}
/**
* siteIdx, column, search 해당하는 회원 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 회원 개수
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("deprecation")
public Long getMemberListCnt(String siteIdx, Integer selGroup, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.createCriteria("tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tGroups.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("memberId", search, MatchMode.ANYWHERE),
Restrictions.like("memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.setProjection(Projections.countDistinct("memberIdx"));
return (Long)criteria.uniqueResult();
}
/**
* siteIdx, column, search 해당하는 슈퍼관리자 회원 관리자 회원 개수를 가지고 오는 메소드
* @param String column 검색 항목
* @param String search 검색
* @return Long 회원 개수
* */
//AdminMemberService
public Long getMemberListCnt(String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.add(
Restrictions.or(
Restrictions.eq("memberGrant", "U"),
Restrictions.eq("memberGrant", "S")));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("memberId", search, MatchMode.ANYWHERE),
Restrictions.like("memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.setProjection(Projections.countDistinct("memberIdx"));
return (Long)criteria.uniqueResult();
}
/**
* siteIdx, column, search 해당하는 슈퍼관리자 회원 관리자 회원 개수를 가지고 오는 메소드
* @param String column 검색 항목
* @param String search 검색
* @return Long 회원 개수
* */
//AdminMemberService
@SuppressWarnings("deprecation")
public Long getMemberPrivacyListCnt(String siteIdx, String column, String search, Integer privacyDate){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.createCriteria("tGroups", "tGroups", Criteria.LEFT_JOIN);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = new GregorianCalendar();
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_YEAR, -privacyDate);
Date privacy = new Date();
try {
privacy = sdf.parse(sdf.format(cal.getTime()));
} catch (ParseException e) {
log.error("CHECK ERROR:",e);
return 0L;
}
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.ne("memberGrant", "U"),
Restrictions.ne("memberGrant", "S")),
Restrictions.in("memberStatus", new String[]{"S", "D"})),
Restrictions.eq("tGroups.tSite.siteIdx", siteIdx)),
Restrictions.le("memberRegDate", privacy)));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("memberId", search, MatchMode.ANYWHERE),
Restrictions.like("memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.setProjection(Projections.countDistinct("memberIdx"));
return (Long)criteria.uniqueResult();
}
/**
* siteIdx 해당하는 회원 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return List<T_MEMBER> 회원 리스트
* */
//AdminSiteService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_MEMBER> getMemberList(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.createCriteria("tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tGroups.tSite.siteIdx", siteIdx));
return criteria.list();
}
/**
* siteIdx, column, search 해당하는 회원 리스트를 가지고 오는 메소드
* orderColumn 의로 정렬할 컬럼을 정의 하고 order 옵션으로 정렬 형식을 정의 한다.
* @param String siteIdx 사이트 idx
* @param int page 페이지 번호
* @param int row 개수
* @param String orderColumn order by 컬럼 정의
* @param String order order by 옵션정의 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_MEMBER> 회원 리스트
* */
//AdminMemberService, MangerMemberService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_MEMBER> getMemberList(String siteIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.createCriteria("tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tGroups.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("memberId", search, MatchMode.ANYWHERE),
Restrictions.like("memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* siteIdx, column, search 해당하는 슈퍼관리자 회원 관리자 회원 리스트를 가지고 오는 메소드
* orderColumn 의로 정렬할 컬럼을 정의 하고 order 옵션으로 정렬 형식을 정의 한다.
* @param int page 페이지 번호
* @param int row 개수
* @param String orderColumn order by 컬럼 정의
* @param String order order by 옵션정의 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_MEMBER> 회원 리스트
* */
//AdminMemberService, MangerMemberService
@SuppressWarnings("unchecked")
public List<T_MEMBER> getMemberList(int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.or(
Restrictions.eq("memberGrant", "U"),
Restrictions.eq("memberGrant", "S")));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("memberId", search, MatchMode.ANYWHERE),
Restrictions.like("memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* siteIdx, column, search 해당하는 슈퍼관리자 회원 관리자 회원 리스트를 가지고 오는 메소드
* orderColumn 의로 정렬할 컬럼을 정의 하고 order 옵션으로 정렬 형식을 정의 한다.
* @param int page 페이지 번호
* @param int row 개수
* @param String orderColumn order by 컬럼 정의
* @param String order order by 옵션정의 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_MEMBER> 회원 리스트
* */
//AdminMemberService, MangerMemberService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_MEMBER> getMemberPrivacyList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, Integer privacyDate, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.createCriteria("tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = new GregorianCalendar();
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_YEAR, -privacyDate);
Date privacy = new Date();
try {
privacy = sdf.parse(sdf.format(cal.getTime()));
} catch (ParseException e) {
log.error("CHECK ERROR:",e);
return null;
}
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.ne("memberGrant", "U"),
Restrictions.ne("memberGrant", "S")),
Restrictions.in("memberStatus", new String[]{"S", "D"})),
Restrictions.eq("tGroups.tSite.siteIdx", siteIdx)),
Restrictions.le("memberRegDate", privacy)));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("memberId", search, MatchMode.ANYWHERE),
Restrictions.like("memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* memberId 해당하는 회원 정보를 가지고 오는 메소드
* @param String memberId 회원아이디
* @return T_MEMBER 회원 정보
* */
//AdminLoginService, ManagerLoginService
@SuppressWarnings("unchecked")
public T_MEMBER getMemberForm(String memberId){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.add(Restrictions.eq("memberId", memberId));
List<T_MEMBER> list = criteria.list();
if(list.size() > 0){
return (T_MEMBER)list.get(0);
}else{
return null;
}
}
/**
* memberIdx 해당하는 회원 정보를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return T_MEMBER 회원 정보
* */
//AdminSiteService, AdminLoginService, ManagerLoginService, AdminSiteManagerService, AdminMemberService, ManagerSiteService, ManagerMemberService, UserMemberService
public T_MEMBER getMemberForm(Integer memberIdx){
return (T_MEMBER) this.sessionFactory.getCurrentSession().load(T_MEMBER.class, memberIdx);
}
/**
* memberIdx 해당하는 회원 정보를 가지고 오는 메소드
* @param Integer memberIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return Map<Object, Object>
* */
//ManagerMemberService
@SuppressWarnings("unchecked")
public Map<Object, Object> getMemberMapForm(Integer memberIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.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));
List<Map<Object, Object>> list = criteria.list();
if(list.size() > 0){
return (Map<Object, Object>)list.get(0);
}else{
return null;
}
}
/**
* memberName, memberEmail1, memberEmail2 해당하는 회원 아이디를 가지고 오는 메소드
* @param String memberName 회원 이름
* @param String memberEmail1 회원 이메일1
* @param String memberEmail2 회원 이메일2
* @return String 회원 아이디
* */
//UserMemberService
@SuppressWarnings("unchecked")
public String getMemberIdFindForm(String memberName, String memberEmail1, String memberEmail2){
String memberId = "";
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("memberName", memberName),
Restrictions.eq("memberEmail1", memberEmail1)),
Restrictions.eq("memberEmail2", memberEmail2)));
List<T_MEMBER> list = criteria.list();
if(list.size() > 0){
memberId = list.get(0).getMemberId();
}
return memberId;
}
/**
* memberName, memberEmail1, memberEmail2 해당하는 회원 아이디를 가지고 오는 메소드
* @param String memberName 회원 이름
* @param String memberEmail1 회원 이메일1
* @param String memberEmail2 회원 이메일2
* @return String 회원 아이디
* */
//UserMemberService
@SuppressWarnings("unchecked")
public Integer getMemberPwFindForm(String memberName, String memberId){
Integer memberIdx = 0;
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER.class);
criteria.add(
Restrictions.and(
Restrictions.eq("memberId", memberId),
Restrictions.eq("memberName", memberName)));
List<T_MEMBER> list = criteria.list();
if(list.size() > 0){
return list.get(0).getMemberIdx();
}
return memberIdx;
}
/**
* 회원 정보를 저장하는 메소드
* @param T_MEMBER tMember 저장할 회원 정보
* @return T_MEMBER 저장된 회원 정보
* */
//AdminMemberService, ManagerMemberService
public T_MEMBER setMemberRegProc(T_MEMBER tMember){
this.sessionFactory.getCurrentSession().save(tMember);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
return getMemberForm(tMember.getMemberIdx());
}
/**
* 회원 정보를 수정하는 메소드
* @param T_MEMBER tMember 수정할 회원 정보
* @return boolean 작업의 성공 여부
* */
//AdminSiteService, AdminLoginService, ManagerLoginService, AdminSiteManagerService, AdminMemberService, ManagerSiteService, ManagerMemberService
public boolean setMemberModProc(T_MEMBER tMember){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tMember);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 회원 정보를 삭제하는 메소드
* @param T_MEMBER tMember 삭제할 회원 정보
* @return boolean 작업의 성공 여부
* */
//AdminMemberService, ManagerMemberService
public boolean setMemberDelProc(T_MEMBER tMember){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tMember);
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,48 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_MEMBER_ITEM;
public interface MemberItemDAO {
//ManagerMemberItemService
public T_MEMBER_ITEM getMemberItemForm(Integer memberItemIdx);
//ManagerMemberItemService
public T_MEMBER_ITEM getMemberItemForm(String siteIdx, String memberItemGroup);
//ManagerMemberItemService
public List<Map<Object, Object>> getMemberItemList(String siteIdx, String[] qryColumns);
//ManagerMemberItemService
public List<T_MEMBER_ITEM> getMemberItemValuesList(String siteIdx, String memberItemGroup, String[] qryColumns);
//UsermemberItemService
public List<T_MEMBER_ITEM> getMemberItemValuesList(String siteIdx, String[] qryColumns);
//ManagerMemberItemService
public List<Map<String, Object>> getMemberItemGroupList(String siteIdx, String[] qryColumns);
//ManagerMemberItemService
public List<T_MEMBER_ITEM> getMemberItemOrderList(String siteIdx, Integer memberItemOrder, String[] qryColumns);
//ManagerMemberItemService
public Long getMemberItemListCnt(String siteIdx);
//ManagerMemberItemService
public Integer getMemberItemOrderFormCnt(String siteIdx);
//ManagermemberSetService
public T_MEMBER_ITEM setMemberItemRegProc(T_MEMBER_ITEM tMemberItem);
//ManagerMemberItemService
public boolean setMemberItemModProc(T_MEMBER_ITEM tMemberItem);
//ManagerMemberItemService
public boolean setMemberItemDelProc(T_MEMBER_ITEM tMemberItem);
//ManagerMemberItemService
public void setMemberItemOrderProc(String siteIdx, Integer memberItemOrder);
}

View File

@ -0,0 +1,432 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
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_MEMBER_ITEM;
/**
* T_MEMBER_ITEM 테이블 관련 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class MemberItemDAOImpl implements MemberItemDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberItemIdx 해당하는 회원 정보 추가 컬럼 정보를 가지고 오는 메소드
* @param Integer memberItemIdx 회원 정보 추가컬럼 idx
* @return T_MEMBER_ITEM 회원 정보 추가컬럼
* */
//ManagerMemberItemService
public T_MEMBER_ITEM getMemberItemForm(Integer memberItemIdx){
return (T_MEMBER_ITEM) this.sessionFactory.getCurrentSession().load(T_MEMBER_ITEM.class, memberItemIdx);
}
/**
* siteIdx, memberItemGroup 해당하는 회원 정보 추가 컬럼 정보를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String memberItemGroup 추가 컬럼 그룹 정보
* @return T_MEMBER_ITEM 회원 정보 추가컬럼
* */
//ManagerMemberItemService
public T_MEMBER_ITEM getMemberItemForm(String siteIdx, String memberItemGroup){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_ITEM.class);
criteria.setMaxResults(1);
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("memberItemGroup", memberItemGroup)));
criteria.addOrder(Order.asc("memberItemGroup"));
return (T_MEMBER_ITEM)criteria.list().get(0);
}
/**
* siteIdx, memberItemGroup 해당하는 회원 정보 추가 컬럼 정보를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<Map<Object, Object>> 회원 정보 추가 컬럼 리스트
* */
//ManagerMemberItemService
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getMemberItemList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_ITEM.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("tSite.siteIdx", siteIdx));
criteria.addOrder(Order.asc("memberItemOrder"));
return criteria.list();
}
/**
* siteIdx, memberItemGroup 해당하는 회원 정보 추가 컬럼 정보를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String memberItemGroup 추가 컬럼 그룹 정보
* @param String[] qryColumns select 컬럼 정의
* @return List<T_MEMBER_ITEM> 회원 정보 추가 컬럼 리스트
* */
//ManagerMemberItemService
@SuppressWarnings("unchecked")
public List<T_MEMBER_ITEM> getMemberItemValuesList(String siteIdx, String memberItemGroup, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_ITEM.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.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("memberItemGroup", memberItemGroup)));
criteria.addOrder(Order.asc("memberItemGroup")).addOrder(Order.asc("memberItemIdx"));
return criteria.list();
}
/**
* siteIdx 해당하는 회원 정보 추가 컬럼 정보를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_MEMBER_ITEM> 회원 정보 추가 컬럼 리스트
* */
//ManagerMemberItemService, UserMemberItemService
@SuppressWarnings("unchecked")
public List<T_MEMBER_ITEM> getMemberItemValuesList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_ITEM.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.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("memberItemStatus", "U")));
criteria.addOrder(Order.asc("memberItemOrder")).addOrder(Order.asc("memberItemIdx"));
return criteria.list();
}
/**
* siteIdx 해당하는 회원 정보 추가 컬럼 정보를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<Map<String, Object>> 회원 정보 추가 컬럼 리스트
* */
//ManagerMemberItemService
@SuppressWarnings("unchecked")
public List<Map<String, Object>> getMemberItemGroupList(String siteIdx, String[] qryColumns) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_ITEM.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("tSite.siteIdx", siteIdx));
criteria.addOrder(Order.asc("memberItemGroup"));
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
return criteria.list();
}
/**
* siteIdx, memberItemOrder 해당하는 회원 정보 추가 컬럼 정보를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param Integer memberItemOrder 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_MEMBER_ITEM> 회원 정보 추가 컬럼 리스트
* */
//ManagerMemberItemService
@SuppressWarnings("unchecked")
public List<T_MEMBER_ITEM> getMemberItemOrderList(String siteIdx, Integer memberItemOrder, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_ITEM.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.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("memberItemOrder", memberItemOrder)));
criteria.addOrder(Order.asc("memberItemIdx"));
return criteria.list();
}
/**
* siteIdx 해당하는 회원 추가 컬럼 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return Long 회원 추가 컬럼 개수
* */
//ManagerMemberItemService
public Long getMemberItemListCnt(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_ITEM.class);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
criteria.setProjection(Projections.countDistinct("memberItemGroup"));
return (Long)criteria.uniqueResult();
}
/**
* siteIdx 해당하는 회원 추가 컬럼 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return Long 회원 추가 컬럼 개수
* */
//ManagerMemberItemService
public Integer getMemberItemOrderFormCnt(String siteIdx) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_ITEM.class);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
criteria.setProjection(Projections.max("memberItemOrder"));
if(criteria.uniqueResult() == null){
return 0;
}else{
return (Integer)criteria.uniqueResult();
}
}
/**
* 회원 정보 추가 컬럼을 저장하는 메소드
* @param T_MEMBER_ITEM tMemberItem 저장할 회원 정보 추가 컬럼
* @return T_MEMBER_ITEM 저장된 회원 정보 추가 컬럼
* */
//ManagermemberSetService
public T_MEMBER_ITEM setMemberItemRegProc(T_MEMBER_ITEM tMemberItem){
try{
this.sessionFactory.getCurrentSession().save(tMemberItem);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getMemberItemForm(tMemberItem.gettSite().getSiteIdx(), tMemberItem.getMemberItemGroup());
}
/**
* 회원 정보 추가 컬럼을 수정하는 메소드
* @param T_MEMBER_ITEM tMemberItem 수정할 회원 정보 추가 컬럼
* @return boolean 작업의 성공 여부
* */
//ManagerMemberItemService
public boolean setMemberItemModProc(T_MEMBER_ITEM tMemberItem){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tMemberItem);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 회원 정보 추가 컬럼을 삭제하는 메소드
* @param T_MEMBER_ITEM tMemberItem 삭제할 회원 정보 추가 컬럼
* @return boolean 작업의 성공 여부
* */
//ManagerMemberItemService
public boolean setMemberItemDelProc(T_MEMBER_ITEM tMemberItem){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tMemberItem);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 회원 정보 추가 컬럼 정보의 memberItemOrder -1
* @param String siteIdx
* @param Integer memberItemOrder
* @return boolean 작업의 성공 여부
* */
//ManagerMemberItemService
@SuppressWarnings("unchecked")
public void setMemberItemOrderProc(String siteIdx, Integer memberItemOrder){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_ITEM.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.gt("memberItemOrder", memberItemOrder)));
criteria.addOrder(Order.asc("memberItemOrder"));
List<T_MEMBER_ITEM> tMemberItemList = criteria.list();
if(tMemberItemList.size() > 0){
for(int i=0; i<tMemberItemList.size(); i++){
T_MEMBER_ITEM tMemberItemDB = tMemberItemList.get(i);
tMemberItemDB.setMemberItemOrder(tMemberItemDB.getMemberItemOrder()-1);
try{
this.sessionFactory.getCurrentSession().update(tMemberItemDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
}
}
}
}

View File

@ -0,0 +1,20 @@
package seed.dao;
import java.util.List;
import seed.map.T_MEMBER_SMART;
public interface MemberSmartDAO {
//UserSmartMenuDataService
public T_MEMBER_SMART getMemberSmartForm(Integer memberSmartIdx);
//UserSmartMenuDataService
public List<T_MEMBER_SMART> getMemberSmartList(Integer smartMenuSetIdx, Integer memberIdx);
//UserSmartMenuDataService
public boolean setMemberSmartDelProc(T_MEMBER_SMART tMemberSmart);
//UserSmartMenuDataService
public boolean setMemberSmartProc(T_MEMBER_SMART tMemberSmart);
}

View File

@ -0,0 +1,104 @@
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.Restrictions;
import org.springframework.stereotype.Repository;
import seed.map.T_MEMBER_SMART;
/**
* T_MEMBER_SMART 테이블 관련 정보를 select, insert, delete 하는 class
* */
@Repository
public class MemberSmartDAOImpl implements MemberSmartDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* 회원 스마트 메뉴 상세 정보를 가지고 오는 메소드
* memberSmartIdx 해당하는 정보를 가지고 오는 메소드
* @param Integer memberSmartIdx 회원 스마트 메뉴 데이터 idx
* @return T_BANNER_DATA 배너 데이터 정보
* */
//UserSmartMenuDataService
public T_MEMBER_SMART getMemberSmartForm(Integer memberSmartIdx) {
return (T_MEMBER_SMART) this.sessionFactory.getCurrentSession().load(T_MEMBER_SMART.class, memberSmartIdx);
}
/**
* siteIdx, smartMenuSetIdx, memberIdx 해당하는 회원 스마트 메뉴 정보를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String smartMenuSetIdx 스마트 메뉴 idx
* @param String memberIdx 회원 idx
* @return T_MEMBER_SMART 회원 스마트 메뉴 정보
* */
//UserSmartMenuDataService
@SuppressWarnings("unchecked")
public List<T_MEMBER_SMART> getMemberSmartList(Integer smartMenuSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_SMART.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tMember.memberIdx", memberIdx),
Restrictions.eq("tSmartMenuSet.smartMenuSetIdx", smartMenuSetIdx)));
return criteria.list();
}
/**
* 회원 스마트 메뉴를 삭제하는 메소드
* @param T_MEMBER_SMART tMemberSmart 삭제할 회원 스마트 메뉴
* @return boolean 작업의 성공 여부
* */
//UserSmartMenuDataService
public boolean setMemberSmartDelProc(T_MEMBER_SMART tMemberSmart){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tMemberSmart);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 회원 스마트 메뉴를 저장하는 메소드
* @param T_MEMBER_SMART tMemberSmart 수정할 회원 스마트 메뉴
* @return boolean 작업의 성공 여부
* */
//UserSmartMenuDataService
public boolean setMemberSmartProc(T_MEMBER_SMART tMemberSmart){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tMemberSmart);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,30 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_MENU_AUTH;
public interface MenuAuthDAO {
//AdminMemberService, ManagerMemberService
public List<T_MENU_AUTH> getMenuAuthList(Integer memberIdx);
//AdminMenuService
public T_MENU_AUTH getMenuAuthForm(Integer menuAuthIdx);
//AdminMenuAuthService, AdminSiteService
public List<T_MENU_AUTH> getMenuAuthList(String siteIdx, String[] qryColumns);
//AdminMenuAuthService, AdminSiteService
public List<Map<Object, Object>> getMenuAuthMapList(String siteIdx, String[] qryColumns);
//AdminMenuService
public boolean setMenuAuthRegProc(T_MENU_AUTH tMenuAuth);
//AdminMenuService
public boolean setMenuAuthModProc(T_MENU_AUTH tMenuAuth);
//AdminMenuService
public boolean setMenuAuthDelProc(T_MENU_AUTH tMenuAuth);
}

View File

@ -0,0 +1,220 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
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_MENU_AUTH;
/**
* T_MEMBER_AUTH 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class MenuAuthDAOImpl implements MenuAuthDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx 해당하는 회원 권한 정보를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_MENU_AUTH>
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_MENU_AUTH> getMenuAuthList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU_AUTH.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* menuAuthIdx 해당하는 메뉴 권한 정보를 가지고 오는 메소드
* @param Integer menuAuthIdx 메뉴 권한 idx
* @return T_MENU_AUTH 메뉴권한 정보
* */
//AdminMenuService
public T_MENU_AUTH getMenuAuthForm(Integer menuAuthIdx){
return (T_MENU_AUTH) this.sessionFactory.getCurrentSession().load(T_MENU_AUTH.class, menuAuthIdx);
}
/**
* siteIdx 해당하는 메뉴 권한 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_MENU_AUTH> 메뉴 권한 리스트
* */
//AdminMenuAuthService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_MENU_AUTH> getMenuAuthList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU_AUTH.class);
criteria.createCriteria("tMenu", "tMenu", 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.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("menuAuthStatus", "U")));
criteria.addOrder(Order.asc("tMenu.menuOrder"));
return criteria.list();
}
/**
* siteIdx 해당하는 메뉴 권한 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_MENU_AUTH> 메뉴 권한 리스트
* */
//AdminMenuAuthService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<Map<Object, Object>> getMenuAuthMapList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU_AUTH.class);
criteria.createCriteria("tMenu", "tMenu", 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.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("menuAuthStatus", "U")));
criteria.addOrder(Order.asc("tMenu.menuOrder"));
return criteria.list();
}
/**
* 메뉴 권한 정보를 저장하는 메소드
* @param T_MENU_AUTH tMenuAuth 저장할 메뉴 권한
* @return boolean 작업의 성공 여부
* */
//AdminMenuService
public boolean setMenuAuthRegProc(T_MENU_AUTH tMenuAuth){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tMenuAuth);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 메뉴 권한 정보를 수정하는 메소드
* @param T_MENU_AUTH tMenuAuth 수정할 메뉴 권한
* @return boolean 작업의 성공 여부
* */
//AdminMenuService
public boolean setMenuAuthModProc(T_MENU_AUTH tMenuAuth){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tMenuAuth);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 메뉴 권한 정보를 삭제하는 메소드
* @param T_MENU_AUTH tMenuAuth 삭제할 메뉴 권한
* @return boolean 작업의 성공 여부
* */
//AdminMenuService
public boolean setMenuAuthDelProc(T_MENU_AUTH tMenuAuth){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tMenuAuth);
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,29 @@
package seed.dao;
import java.util.List;
import seed.map.T_MENU;
public interface MenuDAO {
//AdminMenuService
public Long getMenuListCnt(String column, String search);
//AdminMenuService
public List<T_MENU> getMenuList(int page, int row, String column, String search, String[] qryColumns);
//AdminMenuService
public List<T_MENU> getMenuList(String[] qryColumns);
//AdminMenuService
public T_MENU getMenuForm(Integer menuIdx);
//AdminMenuService
public T_MENU getMenuOrderForm(Integer menuOrder);
//AdminMenuService
public boolean setMenuModProc(T_MENU tMenu);
//AdminMenuService
public boolean setMenuDelProc(T_MENU tMenu);
}

View File

@ -0,0 +1,237 @@
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_MENU;
/**
* T_MENU 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class MenuDAOImpl implements MenuDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* column, search 해당하는 메뉴 개수를 가지고 오는 메소드
* @param String column 검색 항목
* @param String search 검색
* @return Long 메뉴 개수
* */
//AdminMenuService
@SuppressWarnings("deprecation")
public Long getMenuListCnt(String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("menuName", 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();
}
/**
* column, search 해당하는 메뉴 리스트를 페이지별로 가지고 오는 메소드
* @param int page 출력 페이지 번호
* @param int row 페이지 출력 개수
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_MENU> 메뉴 리스트
* */
//AdminMenuService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_MENU> getMenuList(int page, int row, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("menuName", search, MatchMode.ANYWHERE),
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.addOrder(Order.asc("menuOrder"));
return criteria.list();
}
/**
* menuStatus=U 해당하는 메뉴 리스트를 가지고 오는 메소드
* @param String[] qryColumns select 컬럼 정의
* @return List<T_MENU> 메뉴 리스트
* */
//AdminMenuService
@SuppressWarnings("unchecked")
public List<T_MENU> getMenuList(String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU.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("menuStatus", "U"));
criteria.addOrder(Order.asc("menuOrder"));
return criteria.list();
}
/**
* menuIdx 해당하는 메뉴 정보를 가지고 오는 메소드
* @param Integer menuIdx 메뉴 idx
* @return T_MENU 메뉴 정보
* */
//AdminMenuService
public T_MENU getMenuForm(Integer menuIdx){
return (T_MENU) this.sessionFactory.getCurrentSession().load(T_MENU.class, menuIdx);
}
/**
* menuOrder 해당하는 메뉴 정보를 가지고 오는 메소드
* @param Integer menuOrder 메뉴 정렬 번호
* @return T_MENU 메뉴 정보
* */
//AdminMenuService
public T_MENU getMenuOrderForm(Integer menuOrder) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU.class);
criteria.add(Restrictions.eq("menuOrder", menuOrder));
return (T_MENU) criteria.list().get(0);
}
/**
* 메뉴 정보를 수정 하는 메소드
* @param T_MENU tMenu 저장할 메뉴 정보
* @return boolean
* */
//AdminMenuService
public boolean setMenuModProc(T_MENU tMenu){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tMenu);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 메뉴 정보를 삭제 하는 메소드
* @param T_MENU tMenu 저장할 메뉴 정보
* @return boolean
* */
//AdminMenuService
public boolean setMenuDelProc(T_MENU tMenu){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tMenu);
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,21 @@
package seed.dao;
import java.util.ArrayList;
import java.util.HashMap;
import seed.map.T_MENU_STATISTICS;
public interface MenuStatisticsDAO {
public ArrayList<HashMap<Object,Object>> getHmenuStatisticsList(String siteIdx, String[] qryColumns);
public ArrayList<HashMap<Object,Object>> getHmenuStatisticsList(String siteIdx, Integer year, Integer month, String[] qryColumns);
public T_MENU_STATISTICS getHmenuStatisticsInfo(String siteIdx, Integer siteMenuIdx, Integer year, Integer month, Integer day, Integer hour);
public boolean setInsertHmenuStatistics(T_MENU_STATISTICS hmenuStatistics);
public boolean setUpdateHmenuStatistics(T_MENU_STATISTICS hmenuStatistics);
public HashMap<Object,Object> getHmenuStatisticsInfo(String siteIdx, Integer siteMenuIdx, String[] qryColumns);
}

View File

@ -0,0 +1,216 @@
package seed.dao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
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_MENU_STATISTICS;
@Repository
public class MenuStatisticsDAOImpl implements MenuStatisticsDAO {
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@SuppressWarnings("unchecked")
public ArrayList<HashMap<Object,Object>> getHmenuStatisticsList(String siteIdx, String[] qryColumns) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU_STATISTICS.class);
if(qryColumns != null && qryColumns.length > 0){
ProjectionList projectionList = Projections.projectionList();
boolean groupCheck = false;
for(int i=0; i<qryColumns.length; i++){
if(qryColumns[i]!=null && !"".equals(qryColumns[i])){
if(!groupCheck && qryColumns[i].indexOf("groupBy") >= 0){
groupCheck = true;
continue;
}
if(groupCheck){
if(qryColumns[i].indexOf("Count") >= 0){
projectionList.add(Projections.sum(qryColumns[i]).as(qryColumns[i]));
}else{
projectionList.add(Projections.groupProperty(qryColumns[i]).as(qryColumns[i]));
}
}else{
projectionList.add(Projections.property(qryColumns[i]).as(qryColumns[i]));
}
}
}
criteria.setProjection(projectionList);
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
}
criteria.add(Restrictions.eq("siteIdx", siteIdx));
criteria.addOrder(Order.desc("siteMenuIdx"));
return (ArrayList<HashMap<Object,Object>>)criteria.list();
}
@SuppressWarnings("unchecked")
public ArrayList<HashMap<Object,Object>> getHmenuStatisticsList(String siteIdx, Integer year, Integer month, String[] qryColumns) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU_STATISTICS.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);
}
if(!siteIdx.equals("")){
criteria.add(Restrictions.eq("siteIdx", siteIdx));
criteria.add(Restrictions.eq("accessYear", year));
criteria.add(Restrictions.eq("accessMonth", month));
criteria.addOrder(Order.desc("siteMenuIdx"));
}else{
criteria.add(Restrictions.eq("accessYear", year));
criteria.add(Restrictions.eq("accessMonth", month));
criteria.addOrder(Order.desc("siteIdx"));
}
criteria.add(Restrictions.eq("accessYear", year));
criteria.add(Restrictions.eq("accessMonth", month));
criteria.addOrder(Order.desc("siteMenuIdx"));
return (ArrayList<HashMap<Object,Object>>)criteria.list();
}
@SuppressWarnings("unchecked")
public T_MENU_STATISTICS getHmenuStatisticsInfo(String siteIdx, Integer siteMenuIdx, Integer year, Integer month, Integer day, Integer hour) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU_STATISTICS.class);
criteria.add(Restrictions.eq("siteIdx", siteIdx));
criteria.add(Restrictions.eq("siteMenuIdx", siteMenuIdx));
criteria.add(Restrictions.eq("accessYear", year));
criteria.add(Restrictions.eq("accessMonth", month));
criteria.add(Restrictions.eq("accessDay", day));
criteria.add(Restrictions.eq("accessHour", hour));
List<T_MENU_STATISTICS> dataList = criteria.list();
if(dataList!=null && dataList.size()>0){
return dataList.get(0);
}else{
return null;
}
}
public boolean setInsertHmenuStatistics(T_MENU_STATISTICS hmenuStatistics) {
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(hmenuStatistics);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error(e);
}
return success;
}
public boolean setUpdateHmenuStatistics(T_MENU_STATISTICS hmenuStatistics) {
boolean success = false;
try{
Query createQuery = this.sessionFactory.getCurrentSession().createQuery("UPDATE T_MENU_STATISTICS SET accessCount = :accessCount WHERE dataIdx = :dataIdx ");
createQuery.setInteger("accessCount", hmenuStatistics.getAccessCount());
createQuery.setInteger("dataIdx", hmenuStatistics.getDataIdx());
int rowCount = createQuery.executeUpdate();
if(rowCount>0){
success = true;
}
}catch(HibernateException e){
log.error(e);
}
return success;
}
@SuppressWarnings("unchecked")
public HashMap<Object,Object> getHmenuStatisticsInfo(String siteIdx, Integer siteMenuIdx, String[] qryColumns) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MENU_STATISTICS.class);
if(qryColumns != null && qryColumns.length > 0){
ProjectionList projectionList = Projections.projectionList();
boolean groupCheck = false;
for(int i=0; i<qryColumns.length; i++){
if(qryColumns[i]!=null && !"".equals(qryColumns[i])){
if(!groupCheck && qryColumns[i].indexOf("groupBy") >= 0){
groupCheck = true;
continue;
}
if(groupCheck){
if(qryColumns[i].indexOf("Count") >= 0){
projectionList.add(Projections.sum(qryColumns[i]).as(qryColumns[i]));
}else{
projectionList.add(Projections.groupProperty(qryColumns[i]).as(qryColumns[i]));
}
}else{
projectionList.add(Projections.property(qryColumns[i]).as(qryColumns[i]));
}
}
}
criteria.setProjection(projectionList);
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
}
criteria.add(Restrictions.eq("siteIdx", siteIdx));
criteria.add(Restrictions.eq("siteMenuIdx", siteMenuIdx));
ArrayList<HashMap<Object,Object>> dataList = (ArrayList<HashMap<Object,Object>>)criteria.list();
if(dataList!=null && dataList.size()>0){
return dataList.get(0);
}else{
return null;
}
}
}

View File

@ -0,0 +1,61 @@
package seed.dao;
import java.util.List;
import java.util.Map;
import seed.map.T_FORMBUILDER_DATA;
import seed.map.T_FORMBUILDER_ITEM;
import seed.map.T_MEMBER_AUTH;
import seed.map.VIEW_BBS_DATA;
import seed.map.VIEW_FORMBUILDER_DATA;
public interface MyPageDAO {
//UserMyPageService
public T_FORMBUILDER_DATA getFormbuilderDataForm(Integer formbuilderDataIdx);
//UserMyPageService
public Long getBbsDataCnt(Integer memberIdx, String column, String search, String searchSDate, String searchEDate);
//UserMyPageService
public List<VIEW_BBS_DATA> getBbsDataList(Integer memberIdx, Integer page, Integer row, String column, String search, String searchSDate, String searchEDate);
//UserMyPageService
public Long getFormbuilderDataCnt(Integer memberIdx, String column, String search, String searchSDate, String searchEDate, String[] qryColumns);
//UserMyPageService
public List<VIEW_FORMBUILDER_DATA> getFormbuilderDataList(Integer memberIdx, Integer page, Integer row, String column, String search, String searchSDate, String searchEDate, String[] qryColumns);
//UserMyPageService
public List<Map<Object, Object>> getFormbuilderItemList(Integer formbuilderSetIdx, String[] qryColumns);
//UserMyPageService
public List<T_FORMBUILDER_ITEM> getFormbuilderItemValuesList(Integer formbuilderSetIdx, String[] qryColumns);
//UserMyPageService
public List<T_FORMBUILDER_DATA> getFormbuilderDataList(Integer formbuilderDataGroup);
//UserMyPageService
public T_FORMBUILDER_DATA setFormbuilderDataRegProc(T_FORMBUILDER_DATA tFormbuilderData);
//UserMyPageService
public boolean setFormbuilderDataDelProc(T_FORMBUILDER_DATA tFormbuilderData);
//UserLoginService
public Long getMemberAuthCnt(Integer memberIdx, String memberIp);
//UserMyPageService
public T_MEMBER_AUTH getMemberAuthForm(Integer memberAuthIdx);
//UserMyPageService
public Long getMemberAuthListCnt(Integer memberIdx, String column, String search, String searchSDate, String searchEDate);
//UserMyPageService
public List<T_MEMBER_AUTH> getMemberAuthList(Integer memberIdx, Integer page, Integer row, String column, String search, String searchSDate, String searchEDate, String[] qryColumns);
//UserMyPageService
public boolean setMemberAuthRegProc(T_MEMBER_AUTH tMemberAuth);
//UserMyPageService
public boolean setMemberAuthDelProc(T_MEMBER_AUTH tMemberAuth);
}

View File

@ -0,0 +1,532 @@
package seed.dao;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;
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_FORMBUILDER_DATA;
import seed.map.T_FORMBUILDER_ITEM;
import seed.map.T_MEMBER_AUTH;
import seed.map.VIEW_BBS_DATA;
import seed.map.VIEW_FORMBUILDER_DATA;
@Repository
public class MyPageDAOImpl implements MyPageDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
//UserMyPageService
public T_FORMBUILDER_DATA getFormbuilderDataForm(Integer formbuilderDataIdx){
return (T_FORMBUILDER_DATA) this.sessionFactory.getCurrentSession().load(T_FORMBUILDER_DATA.class, formbuilderDataIdx);
}
//UserMyPageService
public Long getBbsDataCnt(Integer memberIdx, String column, String search, String searchSDate, String searchEDate){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(VIEW_BBS_DATA.class);
criteria.add(
Restrictions.and(
Restrictions.eq("memberIdx", memberIdx),
Restrictions.eq("bbsDataStatus","U")));
if(!column.equals("") && (!search.equals("") || !searchSDate.equals("") || !searchEDate.equals(""))){
if(column.equals("bbsDataTitle")){
criteria.add(Restrictions.like("bbsDataTitle", search, MatchMode.ANYWHERE));
}else if(column.equals("bbsDataRegDate")){
if(!searchSDate.equals("") && !searchEDate.equals("")){
criteria.add(Restrictions.between("bbsDataRegDate", searchSDate, searchEDate + " 24:59:59"));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
if(column.equals("bbsDataRegDate") && !searchSDate.equals("") && !searchEDate.equals("")){
criteria.add(Restrictions.between("bbsDataRegDate", searchSDate, searchEDate + " 24:59:59"));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
//UserMyPageService
@SuppressWarnings("unchecked")
public List<VIEW_BBS_DATA> getBbsDataList(Integer memberIdx, Integer page, Integer row, String column, String search, String searchSDate, String searchEDate){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(VIEW_BBS_DATA.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
criteria.add(
Restrictions.and(
Restrictions.eq("memberIdx", memberIdx),
Restrictions.eq("bbsDataStatus","U")));
if(!column.equals("") && (!search.equals("") || !searchSDate.equals("") || !searchEDate.equals(""))){
if(column.equals("bbsDataTitle")){
criteria.add(Restrictions.like("bbsDataTitle", search, MatchMode.ANYWHERE));
}else if(column.equals("bbsDataRegDate")){
if(!searchSDate.equals("") && !searchEDate.equals("")){
criteria.add(Restrictions.between("bbsDataRegDate", searchSDate, searchEDate + " 24:59:59"));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.addOrder(Order.desc("bbsDataIdx"));
return criteria.list();
}
//UserMyPageService
public Long getFormbuilderDataCnt(Integer memberIdx, String column, String search, String searchSDate, String searchEDate, String[] qryColumns){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(VIEW_FORMBUILDER_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){
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.and(
Restrictions.and(
Restrictions.eq("memberIdx", memberIdx),
Restrictions.eq("formbuilderSetStatus", "U")),
Restrictions.eq("formbuilderDataStatus","U")));
if(!column.equals("") && (!search.equals("") || !searchSDate.equals("") || !searchEDate.equals(""))){
if(column.equals("formbuilderSetName")){
criteria.add(Restrictions.like("formbuilderSetName", search, MatchMode.ANYWHERE));
}else if(column.equals("formbuilderDataRegDate")){
if(!searchSDate.equals("") && !searchEDate.equals("")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try{
criteria.add(Restrictions.between("formbuilderDataRegDate", sdf.parse(searchSDate), sdf.parse(searchEDate)));
}catch(Exception e){
log.error("CHECK ERROR:",e);
}
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
//UserMyPageService
@SuppressWarnings("unchecked")
public List<VIEW_FORMBUILDER_DATA> getFormbuilderDataList(Integer memberIdx, Integer page, Integer row, String column, String search, String searchSDate, String searchEDate, String[] qryColumns){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(VIEW_FORMBUILDER_DATA.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.and(
Restrictions.and(
Restrictions.eq("memberIdx", memberIdx),
Restrictions.eq("formbuilderSetStatus", "U")),
Restrictions.eq("formbuilderDataStatus","U")));
if(!column.equals("") && (!search.equals("") || !searchSDate.equals("") || !searchEDate.equals(""))){
if(column.equals("formbuilderSetName")){
criteria.add(Restrictions.like("formbuilderSetName", search, MatchMode.ANYWHERE));
}else if(column.equals("formbuilderDataRegDate")){
if(!searchSDate.equals("") && !searchEDate.equals("")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try{
criteria.add(Restrictions.between("formbuilderDataRegDate", sdf.parse(searchSDate), sdf.parse(searchEDate)));
}catch(Exception e){
log.error("CHECK ERROR:",e);
}
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.addOrder(Order.desc("formbuilderDataGroup"));
return criteria.list();
}
//UserMyPageService
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getFormbuilderItemList(Integer formbuilderSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.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("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx));
criteria.addOrder(Order.asc("formbuilderItemOrder"));
return criteria.list();
}
//UserMyPageService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_ITEM> getFormbuilderItemValuesList(Integer formbuilderSetIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_ITEM.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.and(
Restrictions.eq("tFormbuilderSet.formbuilderSetIdx", formbuilderSetIdx),
Restrictions.eq("formbuilderItemStatus", "U")));
criteria.addOrder(Order.asc("formbuilderItemOrder")).addOrder(Order.asc("formbuilderItemIdx"));
return criteria.list();
}
//UserMyPageService
@SuppressWarnings("unchecked")
public List<T_FORMBUILDER_DATA> getFormbuilderDataList(Integer formbuilderDataGroup){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_FORMBUILDER_DATA.class);
criteria.add(Restrictions.eq("formbuilderDataGroup", formbuilderDataGroup));
criteria.addOrder(Order.asc("formbuilderDataIdx"));
return criteria.list();
}
//UserMyPageService
public T_FORMBUILDER_DATA setFormbuilderDataRegProc(T_FORMBUILDER_DATA tFormbuilderData){
try{
this.sessionFactory.getCurrentSession().save(tFormbuilderData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getFormbuilderDataForm(tFormbuilderData.getFormbuilderDataIdx());
}
//UserMyPageService
public boolean setFormbuilderDataDelProc(T_FORMBUILDER_DATA tFormbuilderData){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tFormbuilderData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
//UserLoginService
public Long getMemberAuthCnt(Integer memberIdx, String memberIp){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(T_MEMBER_AUTH.class);
String[] memberIps = memberIp.split("\\.");
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tMember.memberIdx", memberIdx),
Restrictions.eq("memberAuthA", memberIps[0])),
Restrictions.eq("memberAuthB", memberIps[1])),
Restrictions.eq("memberAuthC", memberIps[2])),
Restrictions.eq("memberAuthD", memberIps[3])));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
//UserMyPageService
public T_MEMBER_AUTH getMemberAuthForm(Integer memberAuthIdx){
return (T_MEMBER_AUTH) this.sessionFactory.getCurrentSession().load(T_MEMBER_AUTH.class, memberAuthIdx);
}
//UserMyPageService
public Long getMemberAuthListCnt(Integer memberIdx, String column, String search, String searchSDate, String searchEDate){
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(T_MEMBER_AUTH.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
if(!column.equals("") && (!search.equals("") || !searchSDate.equals("") || !searchEDate.equals(""))){
if(column.equals("memberAuthDatas")){
String[] searchs = search.split("\\.");
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("memberAuthA", searchs[0]),
Restrictions.eq("memberAuthB", searchs[1])),
Restrictions.eq("memberAuthC", searchs[2])),
Restrictions.eq("memberAuthD", searchs[3])));
}else if(column.equals("memberAuthRegDate")){
if(!searchSDate.equals("") && !searchEDate.equals("")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try{
criteria.add(Restrictions.between("memberAuthRegDate", sdf.parse(searchSDate), sdf.parse(searchEDate)));
}catch(Exception e){
log.error("CHECK ERROR:",e);
}
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
//UserMyPageService
@SuppressWarnings("unchecked")
public List<T_MEMBER_AUTH> getMemberAuthList(Integer memberIdx, Integer page, Integer row, String column, String search, String searchSDate, String searchEDate, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_MEMBER_AUTH.class);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tMember.memberIdx", memberIdx));
if(!column.equals("") && (!search.equals("") || !searchSDate.equals("") || !searchEDate.equals(""))){
if(column.equals("memberAuthDatas")){
String[] searchs = search.split("\\.");
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("memberAuthA", searchs[0]),
Restrictions.eq("memberAuthB", searchs[1])),
Restrictions.eq("memberAuthC", searchs[2])),
Restrictions.eq("memberAuthD", searchs[3])));
}else if(column.equals("memberAuthRegDate")){
if(!searchSDate.equals("") && !searchEDate.equals("")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try{
criteria.add(Restrictions.between("memberAuthRegDate", sdf.parse(searchSDate), sdf.parse(searchEDate)));
}catch(Exception e){
log.error("CHECK ERROR:",e);
}
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.addOrder(Order.desc("memberAuthIdx"));
return criteria.list();
}
//UserMyPageService
public boolean setMemberAuthRegProc(T_MEMBER_AUTH tMemberAuth){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tMemberAuth);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
//UserMyPageService
public boolean setMemberAuthDelProc(T_MEMBER_AUTH tMemberAuth){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tMemberAuth);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,45 @@
package seed.dao;
import java.util.List;
import seed.map.T_POPUP_DATA;
public interface PopupDataDAO {
//AdminMemberService, ManagerMemberService
public List<T_POPUP_DATA> getPopupDataAllList(Integer memberIdx);
//ManagerpopupDataService
public Integer getPopupDataOrderFormCnt(Integer popupSetIdx);
//ManagerpopupSetService, ManagerpopupDataService
public T_POPUP_DATA getPopupDataForm(Integer popupDataIdx);
//ManagerpopupSetService
public T_POPUP_DATA getPopupDataOrderForm(Integer popupSetIdx, Integer popupDataOrder);
//ManagerpopupSetService
public Long getPopupDataListCnt(Integer popupSetIdx);
//ManagerpopupDataService
public Long getPopupDataListCnt(Integer popupSetIdx, String column, String search);
//ManagerpopupDataService
public List<T_POPUP_DATA> getPopupDataList(Integer popupSetIdx);
//ManagerpopupDataService
public List<T_POPUP_DATA> getPopupDataList(Integer popupSetIdx, int page, int row, String column, String search, String[] qryColumns);
//ManagerpopupDataService
public T_POPUP_DATA setPopupDataRegProc(T_POPUP_DATA tPopupData);
//ManagerpopupSetService, ManagerpopupDataService
public boolean setPopupDataModProc(T_POPUP_DATA tPopupData);
//ManagerpopupDataService
public boolean setPopupDataDelProc(T_POPUP_DATA tPopupData);
//ManagerpopupDataService
public void setPopupDataOrderProc(Integer popupSetIdx, Integer popupDataOrder);
}

View File

@ -0,0 +1,347 @@
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_POPUP_DATA;
/**
* T_POPUP_DATA 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class PopupDataDAOImpl implements PopupDataDAO {
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx 해당하는 팝업 데이터 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_POPUP_DATA> 팝업 데이터 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_POPUP_DATA> getPopupDataAllList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_DATA.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* popupSetIdx 해당하는 팝업 popupDataOrder 최대 값을 가지고 오는 메소드
* @param Integer popupSetIdx 팝업 설정 idx
* @return Integer popupDataOrder 최대값
* */
//ManagerpopupDataService
public Integer getPopupDataOrderFormCnt(Integer popupSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_DATA.class);
criteria.add(Restrictions.eq("tPopupSet.popupSetIdx", popupSetIdx));
criteria.setProjection(Projections.max("popupDataOrder"));
if(criteria.uniqueResult() == null){
return 0;
}else{
return (Integer)criteria.uniqueResult();
}
}
/**
* popupDataIdx 해당하는 팝업 데이터 정보를 가지고 오는 메소드
* @param Integer popupDataIdx 팝업 데이터 idx
* @return T_POPUP_DATA 팝업 데이터
* */
//ManagerpopupSetService, ManagerpopupDataService
public T_POPUP_DATA getPopupDataForm(Integer popupDataIdx) {
return (T_POPUP_DATA) this.sessionFactory.getCurrentSession().load(T_POPUP_DATA.class, popupDataIdx);
}
/**
* popupSetIdx, popupDataOrder 해당하는 팝업 데이터 정보를 가지고 오는 메소드
* @param Integer popupSetIdx 팝업 설정 idx
* @param Integer popupDataOrder 팝업 데이터 정렬값
* @return T_POPUP_DATA 팝업 데이터
* */
//ManagerpopupSetService
public T_POPUP_DATA getPopupDataOrderForm(Integer popupSetIdx, Integer popupDataOrder) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_DATA.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tPopupSet.popupSetIdx", popupSetIdx),
Restrictions.eq("popupDataOrder", popupDataOrder)));
return (T_POPUP_DATA) criteria.list().get(0);
}
/**
* popupSetIdx 해당하는 팝업 데이터 개수를 가지고 오는 메소드
* @param Integer popupSetIdx 팝업 설정 idx
* @return Long 팝업 데이터 개수
* */
//ManagerpopupSetService
public Long getPopupDataListCnt(Integer popupSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_DATA.class);
criteria.add(Restrictions.eq("tPopupSet.popupSetIdx", popupSetIdx));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* popupSetIdx, column, search 해당하는 팝업 데이터 개수를 가지고 오는 메소드
* @param Integer popupSetIdx 팝업 설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 팝업 데이터 개수
* */
//ManagerpopupDataService
@SuppressWarnings("deprecation")
public Long getPopupDataListCnt(Integer popupSetIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_DATA.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tPopupSet.popupSetIdx", popupSetIdx));
if (!column.equals("")) {
if (column.equals("A")) {
if (!search.equals("")) {
criteria.add(
Restrictions.or(
Restrictions.or(
Restrictions.like("popupDataTitle", search, MatchMode.ANYWHERE),
Restrictions.like("popupDataContent", 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();
}
/**
* popupSetIdx 해당하는 팝업 데이터 리스트를 가지고 오는 메소드
* @param Integer popupSetIdx 팝업 설정 idx
* @return List<T_POPUP_DATA> 팝업 데이터 리스트
* */
//ManagerpopupDataService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_POPUP_DATA> getPopupDataList(Integer popupSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_DATA.class);
criteria.createCriteria("tPopupSet", "tPopupSet", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.ne("popupDataType", "N"),
Restrictions.eq("popupDataStatus", "U")),
Restrictions.eq("tPopupSet.popupSetIdx", popupSetIdx)));
criteria.addOrder(Order.desc("popupDataOrder"));
return criteria.list();
}
/**
* popupSetIdx, column, search 해당하는 팝업 데이터 리스트를 페이지 별로 가지고 오는 메소드
* @param Integer popupSetIdx 팝업 설정 idx
* @param int page 페이지 출력 번호
* @param int row 페이지당 출력 개수
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_POPUP_DATA> 팝업 데이터 리스트
* */
//ManagerpopupDataService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_POPUP_DATA> getPopupDataList(Integer popupSetIdx, int page, int row, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_DATA.class);
criteria.createCriteria("tPopupSet", "tPopupSet", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tPopupSet.popupSetIdx", popupSetIdx));
if (!column.equals("")) {
if (column.equals("A")) {
if (!search.equals("")) {
criteria.add(
Restrictions.or(
Restrictions.or(
Restrictions.like("popupDataTitle", search, MatchMode.ANYWHERE),
Restrictions.like("popupDataContent", search, MatchMode.ANYWHERE)),
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
}
} else {
criteria.add(Restrictions.like(column, search,
MatchMode.ANYWHERE));
}
}
criteria.addOrder(Order.desc("popupDataOrder"));
return criteria.list();
}
/**
* 팝업 데이터 정보를 저장하는 메소드
* @param T_POPUP_DATA tPopupData 저장할 팝업 데이터
* @return T_POPUP_DATA 저장한 팝업 데이터
* */
//ManagerpopupDataService
public T_POPUP_DATA setPopupDataRegProc(T_POPUP_DATA tPopupData){
try{
this.sessionFactory.getCurrentSession().save(tPopupData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getPopupDataForm(tPopupData.getPopupDataIdx());
}
/**
* 팝업 데이터 정보를 수정하는 메소드
* @param T_POPUP_DATA tPopupData 수정할 팝업 데이터
* @return boolean 작업의 성공 여부
* */
//ManagerpopupSetService, ManagerpopupDataService
public boolean setPopupDataModProc(T_POPUP_DATA tPopupData) {
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tPopupData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 팝업 데이터 정보를 삭제하는 메소드
* @param T_POPUP_DATA tPopupData 삭제할 팝업 데이터
* @return boolean 작업의 성공 여부
* */
//ManagerpopupDataService
public boolean setPopupDataDelProc(T_POPUP_DATA tPopupData) {
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tPopupData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* popupSetIdx, popupDataOrder 보다 데이터를 가지고 와서 order값을 -1 하는 메소드
* @param Integer popupSetIdx 팝업 설정 idx
* @param Integer popupDataOrder 팝업 데이터 정렬값
* */
//ManagerpopupDataService
@SuppressWarnings("unchecked")
public void setPopupDataOrderProc(Integer popupSetIdx, Integer popupDataOrder){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_DATA.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tPopupSet.popupSetIdx", popupSetIdx),
Restrictions.gt("popupDataOrder", popupDataOrder)));
criteria.addOrder(Order.asc("popupDataOrder"));
List<T_POPUP_DATA> tPopupDataList = criteria.list();
if(tPopupDataList.size() > 0){
for(int i=0; i<tPopupDataList.size(); i++){
T_POPUP_DATA tPopupDataDB = tPopupDataList.get(i);
tPopupDataDB.setPopupDataOrder(tPopupDataDB.getPopupDataOrder()-1);
try{
this.sessionFactory.getCurrentSession().update(tPopupDataDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
}
}
}
}

View File

@ -0,0 +1,44 @@
package seed.dao;
import java.util.List;
import seed.map.T_POPUP_MANAGER;
public interface PopupManagerDAO {
//AdminSiteService
public List<T_POPUP_MANAGER> getPopupManagerList(String siteIdx);
//AdminMemberService, ManagerMemberService
public List<T_POPUP_MANAGER> getPopupManagerList(Integer memberIdx);
//ManagerpopupManagerService
public T_POPUP_MANAGER getPopupManagerForm(Integer popupManagerIdx);
//ManagerpopupManagerService
public Long getPopupManagerListGrantCnt(Integer popupSetIdx, Integer memberIdx);
//ManagerpopupManagerService
public Long getPopupManagerListCnt(Integer popupSetIdx, Integer memberIdx);
//ManagerpopupManagerService
public Long getPopupManagerListCnt(Integer popupSetIdx, Integer selGroup, String column, String search);
//ManagerpopupManagerService
public Long getPopupManagerListCnt(String siteIdx, Integer memberIdx, String column, String search);
//ManagerpopupManagerService
public List<T_POPUP_MANAGER> getPopupManagerList(Integer popupSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//ManagerpopupManagerService
public List<T_POPUP_MANAGER> getPopupManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerpopupManagerService
public boolean setPopupManagerRegProc(T_POPUP_MANAGER tPopupManager);
//ManagerpopupManagerService, AdminMemberService, ManagerMemberService
public boolean setPopupManagerModProc(T_POPUP_MANAGER tPopupManager);
//ManagerpopupManagerService
public boolean setPopupManagerDelProc(T_POPUP_MANAGER tPopupManager);
}

View File

@ -0,0 +1,416 @@
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_POPUP_MANAGER;
/**
* T_POPUP_MANAGER 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class PopupManagerDAOImpl implements PopupManagerDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* siteIdx 해당하는 팝업 관리자 리스트
* @param String siteIdx 사이트 idx
* @return List<T_POPUP_MANAGER> 팝업 관리자 리스트
* */
//AdminSiteService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_POPUP_MANAGER> getPopupManagerList(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_MANAGER.class);
criteria.createCriteria("tPopupSet", "tPopupSet", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tPopupSet.tSite.siteIdx", siteIdx));
return criteria.list();
}
/**
* memberIdx 해당하는 팝업 관리자 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_POPUP_MANAGER> 팝업 관리자 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_POPUP_MANAGER> getPopupManagerList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_MANAGER.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* popupManagerIdx 해당하는 관리자 정보를 가지고 오는 메소드
* @param Integer popupManagerIdx 팝업관리자 idx
* @return T_POPUP_MANAGER 팝업 관리자 정보
* */
//ManagerpopupManagerService
public T_POPUP_MANAGER getPopupManagerForm(Integer popupManagerIdx){
return (T_POPUP_MANAGER) this.sessionFactory.getCurrentSession().load(T_POPUP_MANAGER.class, popupManagerIdx);
}
/**
* popupSetIdx, memberIdx 해당하는 관리자 개수를 가지고 오는 메소드
* @param Integer popupSetIdx 팝업 설정 idx
* @param Integer memberIdx 회원 idx
* @return Long 관리자 개수
* */
//ManagerpopupManagerService
@SuppressWarnings("deprecation")
public Long getPopupManagerListGrantCnt(Integer popupSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tPopupSet.popupSetIdx", popupSetIdx),
Restrictions.eq("popupManagerStatus", "U")),
Restrictions.eq("popupManagerGrant", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* popupSetIdx, memberIdx 해당하는 관리자 개수를 가지고 오는 메소드
* @param Integer popupSetIdx 팝업 설정 idx
* @param Integer memberIdx 회원 idx
* @return Long 관리자 개수
* */
//ManagerpopupManagerService
@SuppressWarnings("deprecation")
public Long getPopupManagerListCnt(Integer popupSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tPopupSet.popupSetIdx", popupSetIdx),
Restrictions.eq("popupManagerStatus", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* popupSetIdx, column, search 해당하는 관리자 개수를 가지고 오는 메소드
* @param Integer popupSetIdx 팝업설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 관리자 개수
* */
//ManagerpopupManagerService
@SuppressWarnings("deprecation")
public Long getPopupManagerListCnt(Integer popupSetIdx, Integer selGroup, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tPopupSet.popupSetIdx", popupSetIdx));
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();
}
/**
* popupSetIdx, column, search 해당하는 관리자 개수를 가지고 오는 메소드
* @param Integer popupSetIdx 팝업설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 관리자 개수
* */
//ManagerpopupManagerService
@SuppressWarnings("deprecation")
public Long getPopupManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tPopupSet", "tPopupSet", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.eq("tPopupSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tMember.memberIdx", memberIdx)));
if(!search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* popupSetIdx, column, search 해당하는 관리자 리스트를 페이지 별로 가지고 오는 메소드
* @param Integer popupSetIdx 팝업설정 idx
* @param int page 페이지 출력 번호
* @param int row 페이 출력 개수
* @param String orderColumn order by 컬럼
* @param String order order by 정의 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_POPUP_MANAGER> 팝업 관리자 리스트
* */
//ManagerpopupManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_POPUP_MANAGER> getPopupManagerList(Integer popupSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tPopupSet.popupSetIdx", popupSetIdx));
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 = "popupManagerIdx";
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* popupSetIdx, column, search 해당하는 관리자 리스트를 페이지 별로 가지고 오는 메소드
* @param Integer popupSetIdx 팝업설정 idx
* @param int page 페이지 출력 번호
* @param int row 페이 출력 개수
* @param String orderColumn order by 컬럼
* @param String order order by 정의 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_POPUP_MANAGER> 팝업 관리자 리스트
* */
//ManagerpopupManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_POPUP_MANAGER> getPopupManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tPopupSet", "tPopupSet", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.and(
Restrictions.eq("tPopupSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tMember.memberIdx", memberIdx)));
if(!search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* 팝업 관리자 정보를 저장하는 메소드
* @param T_POPUP_MANAGER tPopupManager 저장할 팝업 관리자 정보
* @return boolean 작업의 성공 여부
* */
//ManagerpopupManagerService
public boolean setPopupManagerRegProc(T_POPUP_MANAGER tPopupManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tPopupManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 팝업 관리자 정보를 수정하는 메소드
* @param T_POPUP_MANAGER tPopupManager 수정할 팝업 관리자 정보
* @return boolean 작업의 성공 여부
* */
//ManagerpopupManagerService, AdminMemberService, ManagerMemberService
public boolean setPopupManagerModProc(T_POPUP_MANAGER tPopupManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tPopupManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 팝업 관리자 정보를 삭제하는 메소드
* @param T_POPUP_MANAGER tPopupManager 삭제할 팝업 관리자 정보
* @return boolean 작업의 성공 여부
* */
//ManagerpopupManagerService
public boolean setPopupManagerDelProc(T_POPUP_MANAGER tPopupManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tPopupManager);
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,32 @@
package seed.dao;
import java.util.List;
import seed.map.T_POPUP_SET;
public interface PopupSetDAO {
//AdminMemberService, ManagerMemberService
public List<T_POPUP_SET> getPopupSetList(Integer memberIdx);
//AdminSiteService
public List<T_POPUP_SET> getPopupSetList(String siteIdx, String[] qryColumns);
//ManagerPopupManagerService
public Long getPopupSetListCnt(String siteIdx, String column, String search);
//ManagerPopupManagerService
public List<T_POPUP_SET> getPopupSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerPopupManagerService
public T_POPUP_SET getPopupSetForm(Integer popupSetIdx);
//ManagerPopupManagerService
public T_POPUP_SET setPopupSetRegProc(T_POPUP_SET tPopupSet);
//ManagerPopupManagerService
public boolean setPopupSetModProc(T_POPUP_SET tPopupSet);
//ManagerPopupManagerService
public boolean setPopupSetDelProc(T_POPUP_SET tPopupSet);
}

View File

@ -0,0 +1,266 @@
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_POPUP_SET;
/**
* T_POPUP_SET 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class PopupSetDAOImpl implements PopupSetDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx 해당하는 팝업 설정 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_POPUP_SET> 팝업 설정
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_POPUP_SET> getPopupSetList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_SET.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* memberIdx 해당하는 팝업 설정 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String[] qryColumns select 컬럼 정의
* @return List<T_POPUP_SET> 팝업 설정
* */
//AdminSiteService
@SuppressWarnings("unchecked")
public List<T_POPUP_SET> getPopupSetList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_SET.class);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
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.addOrder(Order.asc("popupSetIdx"));
return criteria.list();
}
/**
* siteIdx, column, search 해당하는 팝업 설정 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 팝업 개수
* */
//ManagerPopupManagerService
@SuppressWarnings("deprecation")
public Long getPopupSetListCnt(String siteIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_SET.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("popupSetName", 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();
}
/**
* siteIdx, column, search 해당하는 팝업 설정 개수를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 팝업 개수
* */
//ManagerPopupManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_POPUP_SET> getPopupSetList(String siteIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_POPUP_SET.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tPopupDatas", "tPopupDatas", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tSite.siteIdx", siteIdx));
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.like("popupSetName", search, MatchMode.ANYWHERE),
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* popupSetIdx 해당하는 팝업 설정 정보를 가지고 오는 메소드
* @param Integer popupSetIdx 팝업 설정 idx
* @return T_POPUP_SET 팝업 설정 정보
* */
//ManagerPopupManagerService
public T_POPUP_SET getPopupSetForm(Integer popupSetIdx){
return (T_POPUP_SET) this.sessionFactory.getCurrentSession().load(T_POPUP_SET.class, popupSetIdx);
}
/**
* 팝업 설정 정보를 저장하는 메소드
* @param T_POPUP_SET tPopupSet 저장할 팝업 정보
* @return T_POPUP_SET 저장된 팝업 정보
* */
//ManagerPopupManagerService
public T_POPUP_SET setPopupSetRegProc(T_POPUP_SET tPopupSet){
try{
this.sessionFactory.getCurrentSession().save(tPopupSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getPopupSetForm(tPopupSet.getPopupSetIdx());
}
/**
* 팝업 설정 정보를 수정하는 메소드
* @param T_POPUP_SET tPopupSet 수정할 팝업 정보
* @return boolean 작업의 성공 여부
* */
//ManagerPopupManagerService
public boolean setPopupSetModProc(T_POPUP_SET tPopupSet){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tPopupSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 팝업 설정 정보를 삭제하는 메소드
* @param T_POPUP_SET tPopupSet 삭제할 팝업 정보
* @return boolean 작업의 성공 여부
* */
//ManagerPopupManagerService
public boolean setPopupSetDelProc(T_POPUP_SET tPopupSet){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tPopupSet);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
}

View File

@ -0,0 +1,45 @@
package seed.dao;
import java.util.List;
import seed.map.T_QUICK_DATA;
public interface QuickDataDAO {
//AdminMemberService, ManagerMemberService
public List<T_QUICK_DATA> getQuickDataAllList(Integer memberIdx);
//ManagerQuickDataService
public Integer getQuickDataOrderFormCnt(Integer quickSetIdx);
//ManagerQuickSetService, ManagerQuickDataService
public T_QUICK_DATA getQuickDataForm(Integer quickDataIdx);
//ManagerQuickSetService
public T_QUICK_DATA getQuickDataOrderForm(Integer quickSetIdx, Integer quickDataOrder);
//ManagerQuickSetService
public Long getQuickDataListCnt(Integer quickSetIdx);
//ManagerQuickDataService
public Long getQuickDataListCnt(Integer quickSetIdx, String column, String search);
//ManagerQuickDataService
public List<T_QUICK_DATA> getQuickDataList(Integer quickSetIdx, int page, int row, String column, String search, String[] qryColumns);
//ManagerQuickDataService
public List<T_QUICK_DATA> getQuickDataList(Integer quickSetIdx);
//ManagerQuickDataService
public T_QUICK_DATA setQuickDataRegProc(T_QUICK_DATA tQuickData);
//ManagerQuickSetService, ManagerQuickDataService
public boolean setQuickDataModProc(T_QUICK_DATA tQuickData);
//ManagerQuickDataService
public boolean setQuickDataDelProc(T_QUICK_DATA tQuickData);
//ManagerQuickDataService
public void setQuickDataOrderProc(Integer quickSetIdx, Integer quickDataOrder);
}

View File

@ -0,0 +1,345 @@
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_QUICK_DATA;
/**
* T_QUICK_DATA 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class QuickDataDAOImpl implements QuickDataDAO {
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* memberIdx 해당하는 퀵메뉴 데이터 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_QUICK_DATA> 퀵메뉴 데이터 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_QUICK_DATA> getQuickDataAllList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_DATA.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* quickSetIdx 해당하는 퀵메뉴 quickDataOrder 최대값을 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @return Integer quickDataOrder 최대값
* */
//ManagerQuickDataService
public Integer getQuickDataOrderFormCnt(Integer quickSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_DATA.class);
criteria.add(Restrictions.eq("tQuickSet.quickSetIdx", quickSetIdx));
criteria.setProjection(Projections.max("quickDataOrder"));
if(criteria.uniqueResult() == null){
return 0;
}else{
return (Integer)criteria.uniqueResult();
}
}
/**
* quickDataIdx 해당하는 퀵메뉴 데이터 정보를 가지고 오는 메소드
* @param Integer quickDataIdx 퀵메뉴 데이터 idx
* @return T_QUICK_DATA 퀵메뉴 데이터
* */
//ManagerQuickSetService, ManagerQuickDataService
public T_QUICK_DATA getQuickDataForm(Integer quickDataIdx) {
return (T_QUICK_DATA) this.sessionFactory.getCurrentSession().load(T_QUICK_DATA.class, quickDataIdx);
}
/**
* quickSetIdx, quickDataOrder 해당하는 퀵메뉴 데이터 정보를 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @param Integer quickDataOrder 퀵메뉴 데이터 정렬
* @return T_QUICK_DATA 퀵메뉴 데이터
* */
//ManagerQuickSetService
public T_QUICK_DATA getQuickDataOrderForm(Integer quickSetIdx, Integer quickDataOrder) {
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_DATA.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tQuickSet.quickSetIdx", quickSetIdx),
Restrictions.eq("quickDataOrder", quickDataOrder)));
return (T_QUICK_DATA) criteria.list().get(0);
}
/**
* quickSetIdx 해당하는 퀵메뉴 데이터 개수를 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @return Long
* */
//ManagerQuickSetService
public Long getQuickDataListCnt(Integer quickSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_DATA.class);
criteria.add(Restrictions.eq("tQuickSet.quickSetIdx", quickSetIdx));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* quickSetIdx, column, search 해당하는 퀵메뉴 데이터 개수를 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long
* */
//ManagerQuickDataService
@SuppressWarnings("deprecation")
public Long getQuickDataListCnt(Integer quickSetIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_DATA.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tQuickSet.quickSetIdx", quickSetIdx));
if (!column.equals("")) {
if (column.equals("A")) {
if (!search.equals("")) {
criteria.add(
Restrictions.or(
Restrictions.or(
Restrictions.like("quickDataTitle", search, MatchMode.ANYWHERE),
Restrictions.like("quickDataContent", 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();
}
/**
* quickSetIdx, column, search 해당하는 퀵메뉴 데이터 리스트를 페이지 별로 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @param int page 페이지 출력 번호
* @param int row 페이지 출력 개수
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_QUICK_DATA> 퀵메뉴 데이터 리스트
* */
//ManagerQuickDataService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_QUICK_DATA> getQuickDataList(Integer quickSetIdx, int page, int row, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_DATA.class);
criteria.createCriteria("tQuickSet", "tQuickSet", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tQuickSet.quickSetIdx", quickSetIdx));
if (!column.equals("")) {
if (column.equals("A")) {
if (!search.equals("")) {
criteria.add(
Restrictions.or(
Restrictions.or(
Restrictions.like("quickDataTitle", search, MatchMode.ANYWHERE),
Restrictions.like("quickDataContent", search, MatchMode.ANYWHERE)),
Restrictions.like("tMember.memberName", search, MatchMode.ANYWHERE)));
}
} else {
criteria.add(Restrictions.like(column, search,
MatchMode.ANYWHERE));
}
}
criteria.addOrder(Order.asc("quickDataOrder"));
return criteria.list();
}
/**
* quickSetIdx,quickDataStatus=U 해당하는 퀵메뉴 데이터 리스트를 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @return List<T_QUICK_DATA> 퀵메뉴 데이터 리스트
* */
//ManagerQuickDataService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_QUICK_DATA> getQuickDataList(Integer quickSetIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_DATA.class);
criteria.createCriteria("tQuickSet", "tQuickSet", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.eq("quickDataStatus", "U"),
Restrictions.eq("tQuickSet.quickSetIdx", quickSetIdx)));
criteria.addOrder(Order.asc("quickDataOrder"));
return criteria.list();
}
/**
* 퀵메뉴 데이터를 저장하는 메소드
* @param T_QUICK_DATA tQuickData 저장할 퀵메뉴 데이터
* @return T_QUICK_DATA 저장된 퀵메뉴 데이터
* */
//ManagerQuickDataService
public T_QUICK_DATA setQuickDataRegProc(T_QUICK_DATA tQuickData){
try{
this.sessionFactory.getCurrentSession().save(tQuickData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return getQuickDataForm(tQuickData.getQuickDataIdx());
}
/**
* 퀵메뉴 데이터를 수정하는 메소드
* @param T_QUICK_DATA tQuickData 수정할 퀵메뉴 데이터
* @return boolean 작업 성공 여부
* */
//ManagerQuickSetService, ManagerQuickDataService
public boolean setQuickDataModProc(T_QUICK_DATA tQuickData) {
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tQuickData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* 퀵메뉴 데이터를 삭제하는 메소드
* @param T_QUICK_DATA tQuickData 삭제할 퀵메뉴 데이터
* @return boolean 작업 성공 여부
* */
//ManagerQuickDataService
public boolean setQuickDataDelProc(T_QUICK_DATA tQuickData) {
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tQuickData);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
return success;
}
/**
* quickSetIdx, quickDataOrder 보다 데이터를 가지고 와서 order값을 -1 하는 메소드
* @param Integer quickSetIdx 퀵메뉴 데이터 설정 idx
* @param Integer quickDataOrder 퀵메뉴 데이터 정렬값
* */
//ManagerQuickDataService
@SuppressWarnings("unchecked")
public void setQuickDataOrderProc(Integer quickSetIdx, Integer quickDataOrder){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_DATA.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tQuickSet.quickSetIdx", quickSetIdx),
Restrictions.gt("quickDataOrder", quickDataOrder)));
criteria.addOrder(Order.asc("quickDataOrder"));
List<T_QUICK_DATA> tQuickDataList = criteria.list();
if(tQuickDataList.size() > 0){
for(int i=0; i<tQuickDataList.size(); i++){
T_QUICK_DATA tQuickDataDB = tQuickDataList.get(i);
tQuickDataDB.setQuickDataOrder(tQuickDataDB.getQuickDataOrder()-1);
try{
this.sessionFactory.getCurrentSession().update(tQuickDataDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException e){
log.error("CHECK ERROR:",e);
}
}
}
}
}

View File

@ -0,0 +1,44 @@
package seed.dao;
import java.util.List;
import seed.map.T_QUICK_MANAGER;
public interface QuickManagerDAO {
//AdminSiteService
public List<T_QUICK_MANAGER> getQuickManagerList(String siteIdx);
//AdminMemberService, ManagerMemberService
public List<T_QUICK_MANAGER> getQuickManagerList(Integer memberIdx);
//ManagerQuickManagerService
public T_QUICK_MANAGER getQuickManagerForm(Integer quickManagerIdx);
//ManagerQuickManagerService
public Long getQuickManagerListGrantCnt(Integer quickSetIdx, Integer memberIdx);
//ManagerQuickManagerService
public Long getQuickManagerListCnt(Integer quickSetIdx, Integer memberIdx);
//ManagerQuickManagerService
public Long getQuickManagerListCnt(Integer quickSetIdx, Integer selGroup, String column, String search);
//ManagerQuickManagerService
public Long getQuickManagerListCnt(String siteIdx, Integer memberIdx, String column, String search);
//ManagerQuickManagerService
public List<T_QUICK_MANAGER> getQuickManagerList(Integer quickSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns);
//ManagerQuickManagerService
public List<T_QUICK_MANAGER> getQuickManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns);
//ManagerQuickManagerService
public boolean setQuickManagerRegProc(T_QUICK_MANAGER tQuickManager);
//ManagerQuickManagerService, AdminMemberService, ManagerMemberService
public boolean setQuickManagerModProc(T_QUICK_MANAGER tQuickManager);
//ManagerQuickManagerService
public boolean setQuickManagerDelProc(T_QUICK_MANAGER tQuickManager);
}

View File

@ -0,0 +1,416 @@
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_QUICK_MANAGER;
/**
* T_QUICK_MANAGER 테이블 정보를 select, insert, update, delete 하는 class
* */
@Repository
public class QuickManagerDAOImpl implements QuickManagerDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* siteIdx 해당하는 관리자 리스트를 가지고 오는 메소드
* @param String siteIdx 사이트 idx
* @return List<T_QUICK_MANAGER> 퀵메뉴 관리자 리스트
* */
//AdminSiteService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_QUICK_MANAGER> getQuickManagerList(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_MANAGER.class);
criteria.createCriteria("tQuickSet", "tQuickSet", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tQuickSet.tSite.siteIdx", siteIdx));
return criteria.list();
}
/**
* memberIdx 해당하는 퀵메뉴 관리자 리스트를 가지고 오는 메소드
* @param Integer memberIdx 회원 idx
* @return List<T_QUICK_MANAGER> 퀵메뉴 관리자 리스트
* */
//AdminMemberService, ManagerMemberService
@SuppressWarnings("unchecked")
public List<T_QUICK_MANAGER> getQuickManagerList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_MANAGER.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
return criteria.list();
}
/**
* quickManagerIdx 해당하는 퀵메뉴 관리자 정보를 가지고 오는 메소드
* @param Integer quickManagerIdx 퀵메뉴 idx
* @return T_QUICK_MANAGER 퀵메뉴 관리자 정보
* */
//ManagerQuickManagerService
public T_QUICK_MANAGER getQuickManagerForm(Integer quickManagerIdx){
return (T_QUICK_MANAGER) this.sessionFactory.getCurrentSession().load(T_QUICK_MANAGER.class, quickManagerIdx);
}
/**
* quickSetIdx, memberIdx 해당하는 퀵메뉴 관리자 개수를 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @param Integer memberIdx 회원 idx
* @return Long 데이터 개수
* */
//ManagerQuickManagerService
@SuppressWarnings("deprecation")
public Long getQuickManagerListGrantCnt(Integer quickSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tQuickSet.quickSetIdx", quickSetIdx),
Restrictions.eq("quickManagerStatus", "U")),
Restrictions.eq("quickManagerGrant", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* quickSetIdx, memberIdx 해당하는 퀵메뉴 관리자 개수를 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @param Integer memberIdx 회원 idx
* @return Long 데이터 개수
* */
//ManagerQuickManagerService
@SuppressWarnings("deprecation")
public Long getQuickManagerListCnt(Integer quickSetIdx, Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tQuickSet.quickSetIdx", quickSetIdx),
Restrictions.eq("quickManagerStatus", "U")),
Restrictions.eq("tMember.memberIdx", memberIdx)),
Restrictions.eq("tMember.memberStatus", "U")));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* quickSetIdx, column, search 해당하는 퀵메뉴 관리자 개수를 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 데이터 개수
* */
//ManagerQuickManagerService
@SuppressWarnings("deprecation")
public Long getQuickManagerListCnt(Integer quickSetIdx, Integer selGroup, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.add(Restrictions.eq("tQuickSet.quickSetIdx", quickSetIdx));
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();
}
/**
* quickSetIdx, column, search 해당하는 퀵메뉴 관리자 개수를 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @param String column 검색 항목
* @param String search 검색
* @return Long 데이터 개수
* */
//ManagerQuickManagerService
@SuppressWarnings("deprecation")
public Long getQuickManagerListCnt(String siteIdx, Integer memberIdx, String column, String search){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tQuickSet", "tQuickSet", Criteria.LEFT_JOIN);
criteria.add(
Restrictions.and(
Restrictions.eq("tQuickSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tMember.memberIdx", memberIdx)));
if(!search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
/**
* quickSetIdx, column, search 해당하는 퀵메뉴 관리자 리스트를 페이지 별로 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @param int page 페이지 출력 번호
* @param int row 페이지 출력 개수
* @param String orderColumn order by 컬럼 정의
* @param String order order by 형식 정의 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_QUICK_MANAGER> 퀵메뉴 관리자 리스트
* */
//ManagerQuickManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_QUICK_MANAGER> getQuickManagerList(Integer quickSetIdx, int page, int row, String orderColumn, String order, Integer selGroup, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tMember.tGroups", "tGroups", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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("tQuickSet.quickSetIdx", quickSetIdx));
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 = "quickManagerIdx";
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* quickSetIdx, column, search 해당하는 퀵메뉴 관리자 리스트를 페이지 별로 가지고 오는 메소드
* @param Integer quickSetIdx 퀵메뉴 설정 idx
* @param int page 페이지 출력 번호
* @param int row 페이지 출력 개수
* @param String orderColumn order by 컬럼 정의
* @param String order order by 형식 정의 ex>DESC, ASC
* @param String column 검색 항목
* @param String search 검색
* @param String[] qryColumns select 컬럼 정의
* @return List<T_QUICK_MANAGER> 퀵메뉴 관리자 리스트
* */
//ManagerQuickManagerService
@SuppressWarnings({ "unchecked", "deprecation" })
public List<T_QUICK_MANAGER> getQuickManagerList(String siteIdx, Integer memberIdx, int page, int row, String orderColumn, String order, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_QUICK_MANAGER.class);
criteria.createCriteria("tMember", "tMember", Criteria.LEFT_JOIN);
criteria.createCriteria("tQuickSet", "tQuickSet", Criteria.LEFT_JOIN);
criteria.setFirstResult(page);
criteria.setMaxResults(row);
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.and(
Restrictions.eq("tQuickSet.tSite.siteIdx", siteIdx),
Restrictions.eq("tMember.memberIdx", memberIdx)));
if(!search.equals("")){
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
if(order.equals("DESC")){
criteria.addOrder(Order.desc(orderColumn));
}else{
criteria.addOrder(Order.asc(orderColumn));
}
return criteria.list();
}
/**
* 퀵메뉴 관리자 정보를 저장하는 메소드
* @param T_QUICK_MANAGER tQuickManager 저장할 퀵메뉴 관리자 정보
* @return boolean 작업의 성공 여부
* */
//ManagerQuickManagerService
public boolean setQuickManagerRegProc(T_QUICK_MANAGER tQuickManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().save(tQuickManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 퀵메뉴 관리자 정보를 수정하는 메소드
* @param T_QUICK_MANAGER tQuickManager 수정할 퀵메뉴 관리자 정보
* @return boolean 작업의 성공 여부
* */
//ManagerQuickManagerService, AdminMemberService, ManagerMemberService
public boolean setQuickManagerModProc(T_QUICK_MANAGER tQuickManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tQuickManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
/**
* 퀵메뉴 관리자 정보를 삭제하는 메소드
* @param T_QUICK_MANAGER tQuickManager 삭제할 퀵메뉴 관리자 정보
* @return boolean 작업의 성공 여부
* */
//ManagerQuickManagerService
public boolean setQuickManagerDelProc(T_QUICK_MANAGER tQuickManager){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tQuickManager);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
}

Some files were not shown because too many files have changed in this diff Show More