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

938 lines
33 KiB
Java

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 com.mysql.jdbc.jdbc2.optional.SuspendableXAConnection;
import seed.map.T_SITE_MENU;
import seed.map.VIEW_SITE_MENU;
import seed.utils.SeedUtils;
@Repository
public class SiteMenuDAOImpl implements SiteMenuDAO{
private Logger log = Logger.getLogger(this.getClass());
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
//ManagerSiteMenuService
@SuppressWarnings("unchecked")
public Map<Object, Object> getSiteMenuLoginForm(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_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.and(
Restrictions.like("siteMenuLinkUrl", "/user/"+siteIdx+"/", MatchMode.END),
Restrictions.like("siteMenuLinkUrl", "/login", MatchMode.START)));
ArrayList<Map<Object, Object> > list = (ArrayList<Map<Object, Object>>)criteria.list();
if(list != null && list.size() > 0){
return list.get(0);
}else{
return null;
}
}
//AdminSiteMenuService, ManagerSiteMenuService
public Long getSiteMenuDepthCnt(String siteIdx, String siteMenuParentIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuParentIdx", siteMenuParentIdx)));
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
//AdminSiteMenuService, ManagerSiteMenuService
public Long getSiteMenuDepthCnt(String siteIdx, Integer siteMenuIdx, String siteMenuIdxs, Integer siteMenuDepth, String siteMenuStatusType){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
if(siteMenuStatusType.equals("top")){
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.ne("siteMenuIdx", siteMenuIdx)),
Restrictions.eq("siteMenuDepth", siteMenuDepth)),
Restrictions.eq("siteMenuTopStatus", "U")));
}else{
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.ne("siteMenuIdx", siteMenuIdx)),
Restrictions.eq("siteMenuDepth", siteMenuDepth)),
Restrictions.eq("siteMenuSubStatus", "U")));
}
String[] siteMenuIdxss = new String[10];
for(int d=0; d<(siteMenuDepth-1); d++){
siteMenuIdxss[d] = siteMenuIdxs.substring((d*2), ((d*2)+2));
criteria.add(Restrictions.eq("siteMenuIdx"+(d+1), siteMenuIdxss[d]));
}
criteria.setProjection(Projections.rowCount());
return (Long)criteria.uniqueResult();
}
//AdminSiteMenuService, ManagerSiteMenuService
@SuppressWarnings("unchecked")
public T_SITE_MENU getSiteMenuOrderForm(String siteIdx, Integer siteMenuDepth, String siteMenuParentIdx, Integer siteMenuOrder, String orderType){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
criteria.setMaxResults(1);
if(orderType.equals("up")){
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuDepth", siteMenuDepth)),
Restrictions.eq("siteMenuParentIdx", siteMenuParentIdx)),
Restrictions.lt("siteMenuOrder", siteMenuOrder)));
criteria.addOrder(Order.desc("siteMenuOrder"));
}else{
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuDepth", siteMenuDepth)),
Restrictions.eq("siteMenuParentIdx", siteMenuParentIdx)),
Restrictions.gt("siteMenuOrder", siteMenuOrder)));
criteria.addOrder(Order.asc("siteMenuOrder"));
}
ArrayList<T_SITE_MENU> list = (ArrayList<T_SITE_MENU>)criteria.list();
if(list != null && list.size() > 0){
return list.get(0);
}else{
return null;
}
}
//AdminSiteMenuService, ManagerSiteMenuService
public Integer getSiteMenuOrderForm(String siteIdx, String siteMenuIdxs, Integer siteMenuDepth){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
criteria.setMaxResults(1);
String[] siteMenuIdxss = new String[10];
for(int d=0; d<siteMenuDepth; d++){
siteMenuIdxss[d] = siteMenuIdxs.substring((d*2), ((d*2)+2));
criteria.add(Restrictions.eq("siteMenuIdx"+(d+1), siteMenuIdxss[d]));
}
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
criteria.addOrder(Order.desc("siteMenuOrder"));
T_SITE_MENU tSiteMenu = (T_SITE_MENU)criteria.list().get(0);
return tSiteMenu.getSiteMenuOrder();
}
//AdminSiteMenuService, ManagerSiteMenuService
public Integer getSiteMenuForm(String siteIdx, Integer siteMenuDepth, Integer siteMenuOrder, String Type){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
if(Type.equals("lt")){
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuDepth", siteMenuDepth)),
Restrictions.lt("siteMenuOrder", siteMenuOrder)));
criteria.addOrder(Order.desc("siteMenuOrder"));
}else{
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuDepth", siteMenuDepth)),
Restrictions.gt("siteMenuOrder", siteMenuOrder)));
criteria.addOrder(Order.asc("siteMenuOrder"));
}
criteria.setProjection(Projections.rowCount());
return Integer.valueOf(criteria.uniqueResult().toString());
}
//AdminSiteMenuService
@SuppressWarnings({ "unchecked", "deprecation" })
public Map<Object, Object> getSiteMenuForm(String siteIdx, String siteMenuParentIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
criteria.createCriteria("tSite", "tSite", 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("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuIdxs", siteMenuParentIdx)));
ArrayList<Map<Object, Object>> list = (ArrayList<Map<Object, Object>>)criteria.list();
if(list != null && list.size() > 0){
return list.get(0);
}else{
return null;
}
}
//AdminSiteMenuService
@SuppressWarnings({ "unchecked", "deprecation" })
public Map<Object, Object> getSiteMenuParentForm(String siteIdx, String siteMenuParentIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.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("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuParentIdx", siteMenuParentIdx)));
for(int o=1; o<10; o++){
criteria.addOrder(Order.desc("siteMenuIdx"+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;
}
}
//AdminSiteMenuService, ManagerSiteMenuService
@SuppressWarnings("unchecked")
public List<T_SITE_MENU> getSiteMenuList(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
if(!siteIdx.equals("ALL_SITE_IDX")){
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
}
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
//AdminMemberServie, ManagerMemberServie
@SuppressWarnings("unchecked")
public List<T_SITE_MENU> getSiteMenuList(Integer memberIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
criteria.add(Restrictions.eq("tMember.memberIdx", memberIdx));
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
//AdminSiteMenuService, ManagerSiteMenuService
@SuppressWarnings("unchecked")
public List<T_SITE_MENU> getSiteMenuList(String siteIdx, String siteMenuIdxs, Integer siteMenuDepth){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
String[] siteMenuIdxss = new String[10];
for(int d=0; d<siteMenuDepth; d++){
siteMenuIdxss[d] = siteMenuIdxs.substring((d*2), ((d*2)+2));
criteria.add(Restrictions.eq("siteMenuIdx"+(d+1), siteMenuIdxss[d]));
}
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
//AdminSiteMenuService, ManagerSiteMenuService
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getSiteMenuTabList(String siteIdx, String siteMenuIdxs, Integer siteMenuDepth, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_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);
}
String[] siteMenuIdxss = new String[10];
for(int d=0; d<siteMenuDepth-1; d++){
siteMenuIdxss[d] = siteMenuIdxs.substring((d*2), ((d*2)+2));
criteria.add(Restrictions.eq("siteMenuIdx"+(d+1), siteMenuIdxss[d]));
}
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuStatus", "U")),
Restrictions.eq("siteMenuDepth", siteMenuDepth)));
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
@SuppressWarnings("unchecked")
public List<Map<Object, Object>> getSiteMenuList(String siteIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_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.and(
Restrictions.eq("tSite.siteIdx", siteIdx)));
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
//AdminSiteMenuService
@SuppressWarnings("unchecked")
public List<T_SITE_MENU> getSiteMenuDepthList(String siteIdx, String siteMenuType){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
if(siteMenuType.equals("top")){
criteria.add(Restrictions.eq("tSite.siteIdx", siteIdx));
}else if(siteMenuType.equals("sub")){
criteria.add(
Restrictions.and(
Restrictions.ge("siteMenuDepth", 1),
Restrictions.eq("tSite.siteIdx", siteIdx)));
}
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
//AdminSiteMenuService
@SuppressWarnings("unchecked")
public List<T_SITE_MENU> getSiteMenuTopList(String siteIdx, Integer siteMenuTopDepth, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_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.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.ge("siteMenuDepth", 1)),
Restrictions.le("siteMenuDepth", siteMenuTopDepth)));
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
//AdminSiteMenuService
@SuppressWarnings("unchecked")
public List<T_SITE_MENU> getSiteMenuSubList(String siteIdx, Integer siteMenuSubSDepth, Integer siteMenuSubEDepth, String siteMenuIdx1, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_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.and(
Restrictions.and(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuStatus", "U")),
Restrictions.ge("siteMenuDepth", siteMenuSubSDepth)),
Restrictions.le("siteMenuDepth", siteMenuSubEDepth)),
Restrictions.eq("siteMenuIdx1", siteMenuIdx1)));
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
//AdminSiteMenuService
@SuppressWarnings("unchecked")
public List<VIEW_SITE_MENU> getSiteMenuList(String siteIdx, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_SITE_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);
}
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.or(
Restrictions.like("siteMenuIdxs", search, MatchMode.ANYWHERE),
Restrictions.like("siteMenuName", search, MatchMode.ANYWHERE)),
Restrictions.like("memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.add(Restrictions.eq("siteIdx", siteIdx));
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
//AdminSiteMenuService
@SuppressWarnings("unchecked")
public List<Map<Object,Object>> getSiteMenuChargeList(String siteIdx, String column, String search, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_SITE_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);
}
if(!column.equals("")){
if(column.equals("A")){
if(!search.equals("")){
criteria.add(
Restrictions.or(
Restrictions.or(
Restrictions.like("siteMenuIdxs", search, MatchMode.ANYWHERE),
Restrictions.like("siteMenuName", search, MatchMode.ANYWHERE)),
Restrictions.like("memberName", search, MatchMode.ANYWHERE)));
}
}else{
criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE));
}
}
criteria.add(Restrictions.eq("siteIdx", siteIdx));
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
//AdminSiteMenuService, ManagerSiteMenuService
@SuppressWarnings("unchecked")
public List<T_SITE_MENU> getSiteMenuSmartList(String siteIdx, String type, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_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);
}
if(type.equals("default")){
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuSmart", "Y")),
Restrictions.eq("siteMenuSmartDefault", "Y")));
}else{
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuSmart", "Y")));
}
criteria.addOrder(Order.asc("siteMenuOrder"));
return criteria.list();
}
//ManagerSiteMenuService
@SuppressWarnings("unchecked")
public String getSiteMenuSubTitleForm(String siteIdx, String siteMenuIdx1){
String siteMenuSubTitle = "";
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.property("siteMenuName").as("_siteMenuName"));
criteria.setProjection(projectionList);
criteria.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
criteria.add(
Restrictions.and(
Restrictions.and(
Restrictions.eq("siteMenuDepth", 1),
Restrictions.eq("tSite.siteIdx", siteIdx)),
Restrictions.eq("siteMenuIdx1", siteMenuIdx1)));
ArrayList<Map<Object, Object>> list = (ArrayList<Map<Object, Object>>)criteria.list();
if(list != null && list.size() > 0){
Map<Object, Object> tSiteMenuDB = list.get(0);
siteMenuSubTitle = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName"));
}
return siteMenuSubTitle;
}
//AdminSiteService
public T_SITE_MENU getSiteMenuForm(String siteIdx, String siteMenuIdxs){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuIdxs", siteMenuIdxs)));
return (T_SITE_MENU)criteria.list().get(0);
}
//AdminSiteMenuService, ManagerSiteMenuService
public T_SITE_MENU getSiteMenuForm(Integer siteMenuIdx){
return (T_SITE_MENU) this.sessionFactory.getCurrentSession().load(T_SITE_MENU.class, siteMenuIdx);
}
//AdminSiteMenuService, ManagerSiteMenuService
public T_SITE_MENU getSiteMenuFormByget(Integer siteMenuIdx){
return (T_SITE_MENU) this.sessionFactory.getCurrentSession().get(T_SITE_MENU.class, siteMenuIdx);
}
//AdminSiteMenuService, ManagerSiteMenuService
@SuppressWarnings({ "unchecked", "deprecation" })
public Map<Object, Object> getSiteMenuMapForm(Integer siteMenuIdx, String[] qryColumns){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
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);
}
criteria.add(Restrictions.eq("siteMenuIdx", siteMenuIdx));
ArrayList<Map<Object, Object>> list = (ArrayList<Map<Object, Object>>)criteria.list();
System.out.println("list :: "+list.toString());
if(list != null && list.size() > 0){
return list.get(0);
}else{
return null;
}
}
//AdminSiteMenuService, ManagerSiteMenuService
@SuppressWarnings("unchecked")
public T_SITE_MENU getSiteMenuForm(String siteIdx){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
criteria.setMaxResults(1);
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.eq("siteMenuStatus", "U")));
criteria.addOrder(Order.asc("siteMenuOrder"));
ArrayList<T_SITE_MENU> list = (ArrayList<T_SITE_MENU>)criteria.list();
if(list != null && list.size() > 0){
return list.get(0);
}else{
return null;
}
}
//ManagerSiteMenuService
public T_SITE_MENU setSiteMenuRegProc(T_SITE_MENU tSiteMenu){
try{
this.sessionFactory.getCurrentSession().save(tSiteMenu);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return getSiteMenuForm(tSiteMenu.getSiteMenuIdx());
}
//AdminSiteMenuService, ManagerSiteMenuService
public boolean setSiteMenuModProc(T_SITE_MENU tSiteMenu){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().update(tSiteMenu);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
//AdminSiteMenuService, ManagerSiteMenuService
public boolean setSiteMenuDelProc(T_SITE_MENU tSiteMenu){
boolean success = false;
try{
this.sessionFactory.getCurrentSession().delete(tSiteMenu);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
success = true;
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
return success;
}
//AdminSiteMenuService
@SuppressWarnings("unchecked")
public void setSiteMenuOrderProc(String siteIdx, Integer siteMenuOrder, Integer siteMenuListCnt, String orderType){
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(T_SITE_MENU.class);
criteria.add(
Restrictions.and(
Restrictions.eq("tSite.siteIdx", siteIdx),
Restrictions.ge("siteMenuOrder", siteMenuOrder)));
criteria.addOrder(Order.asc("siteMenuOrder"));
List<T_SITE_MENU> tSiteMenuList = criteria.list();
if(tSiteMenuList.size() > 0){
for(int i=0; i<tSiteMenuList.size(); i++){
T_SITE_MENU tSiteMenuDB = tSiteMenuList.get(i);
if(orderType.equals("plus")){
tSiteMenuDB.setSiteMenuOrder(tSiteMenuDB.getSiteMenuOrder()+1);
}else if(orderType.equals("minus")){
tSiteMenuDB.setSiteMenuOrder(tSiteMenuDB.getSiteMenuOrder()-1);
}else if(orderType.equals("minuss")){
tSiteMenuDB.setSiteMenuOrder(tSiteMenuDB.getSiteMenuOrder()-siteMenuListCnt);
}
try{
this.sessionFactory.getCurrentSession().update(tSiteMenuDB);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().clear();
}catch(HibernateException ex){
log.error("CHECK ERROR:",ex);
}
}
}
}
}