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