fairnet/src/main/java/seed/dao/FormbuilderSkinDAOImpl.java
tolag3 495238e333 이준호 분쟁조정시스템 커밋
- hibernate 연동
 - 권한관리 개발중
2024-08-13 12:16:43 +09:00

352 lines
12 KiB
Java

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;
}
}