org.redis.shop.dao.impl.VechileDaoImpl.java Source code

Java tutorial

Introduction

Here is the source code for org.redis.shop.dao.impl.VechileDaoImpl.java

Source

package org.redis.shop.dao.impl;

import java.util.List;
import java.util.Map;

import org.hibernate.Criteria;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.redis.shop.base.dao.impl.BaseDaoImpl;
import org.redis.shop.dao.VechileDao;
import org.redis.shop.entity.Vechile;
import org.redis.shop.util.Pager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;

@Repository("vechileDaoImpl")
public class VechileDaoImpl extends BaseDaoImpl<Vechile> implements VechileDao {

    /**
     * 
     */
    private static final Logger log = LoggerFactory.getLogger(VechileDaoImpl.class);

    public List<Vechile> vechile_search(Map<String, Object> map, Pager pager) {
        Criteria criteria = getSession().createCriteria(Vechile.class);
        if (map.get("state") != null) {
            criteria.add(Restrictions.eq("state", map.get("state")));
        }
        if (map.get("vechileNum") != null) {
            criteria.add(Restrictions.eq("vechileNum", map.get("vechileNum")));
        }
        if (map.get("license") != null) {
            criteria.add(Restrictions.eq("license", map.get("license")));
        }
        if (map.get("type") != null) {
            if (map.get("siteId") != null) {
                criteria.createAlias("site", "s");
                criteria.add(Restrictions.eq("s.siteId", map.get("siteId")));
            } else if (map.get("type").equals("site") && map.get("region") != null) {
                criteria.createAlias("site", "s");
                criteria.add(Restrictions.eq("s.region", map.get("region")));
            }

            if (map.get("centerId") != null) {
                criteria.createAlias("center", "ct");
                criteria.add(Restrictions.eq("ct.centerId", map.get("centerId")));
            } else if (map.get("type").equals("center") && map.get("region") != null) {
                criteria.createAlias("center", "c");
                criteria.add(Restrictions.eq("c.region", map.get("region")));
            }
            if (map.get("type").equals("site") && map.get("region") == null) {
                criteria.add(Restrictions.isNotNull("site"));
            } else if (map.get("type").equals("center") && map.get("region") == null) {
                criteria.add(Restrictions.isNotNull("center"));
            }
        }
        return criteria.setFirstResult(pager.getPageSize() * (pager.getPageNumber() - 1))
                .setMaxResults(pager.getPageSize()).list();
    }

    public Integer vechile_search_count(Map<String, Object> map) {
        Criteria criteria = getSession().createCriteria(Vechile.class);
        if (map.get("state") != null) {
            criteria.add(Restrictions.eq("state", map.get("state")));
        }
        if (map.get("vechileNum") != null) {
            criteria.add(Restrictions.eq("vechileNum", map.get("vechileNum")));
        }
        if (map.get("license") != null) {
            criteria.add(Restrictions.eq("license", map.get("license")));
        }
        if (map.get("type") != null) {
            if (map.get("siteId") != null) {
                criteria.createAlias("site", "s");
                criteria.add(Restrictions.eq("s.siteId", map.get("siteId")));
            } else if (map.get("type").equals("site") && map.get("region") != null) {
                criteria.createAlias("site", "s");
                criteria.add(Restrictions.eq("s.region", map.get("region")));
            }

            if (map.get("centerId") != null) {
                criteria.createAlias("center", "ct");
                criteria.add(Restrictions.eq("ct.centerId", map.get("centerId")));
            } else if (map.get("type").equals("center") && map.get("region") != null) {
                criteria.createAlias("center", "c");
                criteria.add(Restrictions.eq("c.region", map.get("region")));
            }
            if (map.get("type").equals("site") && map.get("region") == null) {
                criteria.add(Restrictions.isNotNull("site"));
            } else if (map.get("type").equals("center") && map.get("region") == null) {
                criteria.add(Restrictions.isNotNull("center"));
            }
        }
        return Integer.parseInt(((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()) + "");
    }
}