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

312 lines
11 KiB
Java

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