Package com.lgx8.gateway.dao.impl

Source Code of com.lgx8.gateway.dao.impl.GatewayCategoryDetailDao

package com.lgx8.gateway.dao.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.transaction.annotation.Transactional;

import com.lgx8.common.PageArgument;
import com.lgx8.common.PageList;
import com.lgx8.common.dao.impl.BaseDao;
import com.lgx8.gateway.dao.IGatewayCategoryDao;
import com.lgx8.gateway.dao.IGatewayCategoryDetailDao;
import com.lgx8.gateway.entities.GatewayCategory;
import com.lgx8.gateway.entities.GatewayCategoryDetail;

@SuppressWarnings("unchecked")
public class GatewayCategoryDetailDao extends BaseDao implements IGatewayCategoryDetailDao {

  private IGatewayCategoryDao gatewayCategoryDao;
 
  public IGatewayCategoryDao getGatewayCategoryDao() {
    return gatewayCategoryDao;
  }

  public void setGatewayCategoryDao(IGatewayCategoryDao gatewayCategoryDao) {
    this.gatewayCategoryDao = gatewayCategoryDao;
  }

  public List<GatewayCategoryDetail> findGatewayCategoryDetailByCategoryId(
      Integer categoryId) {
    String hql = "from GatewayCategoryDetail g where g.enabled = true";
    hql += " and g.category.id = " + categoryId;
    hql += " order by g.layerOrder asc";
    List<GatewayCategoryDetail> detail = getHibernateTemplate().find(hql);
    return detail;
  }
 
  public PageList  findPageGatewayCategoryDetailByCategoryId(Integer categoryId,PageArgument argment) {
    String hql = "from GatewayCategoryDetail g where g.enabled = true";
    hql += " and g.category.id =? ";
    hql += " order by g.id,g.layerOrder asc";
    Object[] o = new Object[]{categoryId};
    return  gatewayCategoryDao.findByPage4Report(hql, o, argment.getCurPage(), argment.getPageSize());
  }

  @Transactional
  public GatewayCategoryDetail saveGatewayCategoryDetail(GatewayCategory category,
      String entityId, String entityUrl,String entityName, String layerOrder, Integer type,String areaNode,String url,String otherUrl) {
    GatewayCategoryDetail detail = new GatewayCategoryDetail();
    detail.setCategory(category);
    detail.setEnabled(true);
    if(!"null".equals(entityId)&&!"".equals(entityId)&&entityId!=null)
      detail.setEntityId(entityId);
    if(!"null".equals(entityUrl)&&!"".equals(entityUrl)&&entityUrl!=null)detail.setEntityUrl(entityUrl);
    if(!"null".equals(otherUrl)&&!"".equals(otherUrl)&&otherUrl!=null)detail.setOtherUrl(otherUrl);
    if(!"null".equals(areaNode)&&!"".equals(areaNode)&&areaNode!=null)detail.setAreaNode(areaNode);
    if(!"null".equals(url)&&!"".equals(url)&&url!=null)detail.setUrl(url);
    if("".equals(layerOrder) || layerOrder == null || "null".equals(layerOrder))
    {
      String hql = "from GatewayCategoryDetail d where d.enabled = true and d.category.id = " + category.getId();
      hql += " order by d.layerOrder desc";
      List<GatewayCategoryDetail> details = getHibernateTemplate().find(hql);
      if(details.size() == 0)
      {
        detail.setLayerOrder("0001");
      }else
      {
        Pattern pattern = Pattern.compile("([0-9]+)*");

        Matcher m = pattern.matcher(details.get(0).getLayerOrder());
        boolean b = m.matches();

        if(b)
        {
          Integer order = Integer.parseInt(details.get(0).getLayerOrder());
          String orderStr = "";
          order ++;
          if(order < 10)
          {
            orderStr = "000"+order;
          }else if(order < 100)
          {
            orderStr = "00"+order;
          }else if(order < 1000)
          {
            orderStr = "0"+order;
          }else
          {
            orderStr = ""+order;
          }
          detail.setLayerOrder(orderStr);
        }else
        {
          detail.setLayerOrder(details.get(0).getLayerOrder()+"1");
        }
      }
    }else
      detail.setLayerOrder(layerOrder);
    detail.setType(type);
    detail.setEntityName(entityName);
   
    getHibernateTemplate().persist(detail);
   
    return detail;
  }

  @Transactional
  public void updateGatewayCategoryDetails(Integer categoryId, String params) {
   
    String id = null;
    String layerOrder = null;
    String[] ps = params.split(",");
    for(String param : ps)
    {
      id = param.split(":")[0];
      layerOrder = param.split(":")[1];
      updateGatewayCategoryDetail(categoryId,Integer.parseInt(id),layerOrder);
    }
  }

  @Transactional
  public GatewayCategoryDetail updateGatewayCategoryDetail(
      Integer categoryId, Integer id, String layerOrder) {
    GatewayCategory category = gatewayCategoryDao.findGatewayCategoryById(categoryId);
    GatewayCategoryDetail detail = getHibernateTemplate().get(GatewayCategoryDetail.class, id);
    detail.setCategory(category);
    detail.setLayerOrder(layerOrder);
    getHibernateTemplate().update(detail);
    return detail;
  }

  @Transactional
  public void deleteGatewayCategoryDetail(Integer id) {
    GatewayCategoryDetail detail = getHibernateTemplate().get(GatewayCategoryDetail.class, id);
    getHibernateTemplate().delete(detail);
  }
 
  @Transactional
  public void saveGatewayOrder(final List insertedRecords , final List updatedList, final List deletedRecords ) {
    Session session=this.getSession();
    for (Object o : updatedList) {
      Map m = (HashMap)o;
      String hql = "update GatewayCategoryDetail g set g.layerOrder = ? where g.id = ?";
      Query query = session.createQuery(hql);
      query.setString(0,(String)m.get("layerOrder"));
      query.setInteger(1,(Integer)m.get("id"));
      query.executeUpdate();
    }
  }
 
  public GatewayCategoryDetail findGatewayCategoryDetailById(Integer id) {
    return getHibernateTemplate().get(GatewayCategoryDetail.class, id);
  }

  @Transactional
  public void updateGatewayCategoryDetail(
      GatewayCategoryDetail gatewayGategoryDetail) {
    getHibernateTemplate().update(gatewayGategoryDetail);
  }

  public PageList findPageGatewayCategoryDetailByCategoryId(
      Integer categoryId, String areaNode, PageArgument argment) {
    String hql = "from GatewayCategoryDetail g where g.enabled = true";
    hql += " and g.category.id =? ";
   
    if(!"".equals(areaNode)&&areaNode != null)
    {
      hql += " and g.areaNode =? ";
    }
   
    hql += " order by g.id,g.layerOrder asc";
   
    Object[] o = new Object[]{categoryId};
   
    if(!"".equals(areaNode)&&areaNode != null)
    {
      o = new Object[]{categoryId,areaNode};
    }
   
    return  gatewayCategoryDao.findByPage4Report(hql, o, argment.getCurPage(), argment.getPageSize());
  }

}
TOP

Related Classes of com.lgx8.gateway.dao.impl.GatewayCategoryDetailDao

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.