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