hibernate 手写sql语句代码片记录

代码片

package com.zzy.cowhide.service;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.orm.hibernate.Page;
import org.springside.modules.orm.hibernate.SimpleHibernateTemplate;

import com.zzy.cowhide.bean.OrderReportBean;
import com.zzy.cowhide.entity.OrderOd;
import com.zzy.cowhide.utils.StringUtilsEx;

@Service
@Transactional
public class OrderReportService {

    private SimpleHibernateTemplate<OrderOd, Integer> orderDao;


    @Autowired
    public void setSessionFactory(SessionFactory sessionFactory) {
        orderDao = new SimpleHibernateTemplate<OrderOd, Integer>(sessionFactory, OrderOd.class);
    }


    /**
     * 
     * @Title: find 
     * @Description: TODO(每日交易额统计    type == 0) 
     * @param page
     * @return
     * @throws ParseException    设定文件 
     * List<OrderOdBean>    返回类型 
     * @throws 
     * @author oftoo
     */
    @SuppressWarnings("unchecked")
    public List<OrderReportBean> findByDay(Page<OrderOd> page) throws ParseException {
        Map<String, String> parameters = page.getQueryMap();
        String startDate = null, endDate =null, shopName = null;
        if (parameters.containsKey("startDate") && !StringUtilsEx.isNullOrEmpty(parameters.get("startDate"))) {
            startDate = parameters.get("startDate") + " 00:00:00";
        }
        if (parameters.containsKey("endDate") && !StringUtilsEx.isNullOrEmpty(parameters.get("endDate"))) {
            endDate = parameters.get("endDate") + " 23:59:59";
        }
        if (parameters.containsKey("shopName") && !StringUtilsEx.isNullOrEmpty(parameters.get("shopName"))) {
            shopName = parameters.get("shopName");
        }

        StringBuilder sb = new StringBuilder();
        List<OrderReportBean> listBean = new ArrayList<OrderReportBean>();
        sb.append(" SELECT shop.company_name AS name , SUM( order_od.total) AS total, count(order_od.id) AS ods, 0 AS TYPE, DATE_FORMAT(order_od.create_time,'%Y-%m-%d') AS time");
        sb.append(" FROM order_od ");
        sb.append(" LEFT JOIN shop on order_od.saler_member_id = shop.id ");
        sb.append(" LEFT JOIN member on shop.member_id = member.id ");
        sb.append(" WHERE ");
        sb.append("  1 = 1");
        sb.append(" AND order_od.status IN (3,4) ");//订单状态表示完成的
        if (shopName != null && shopName.equals("")) {
            sb.append(" AND shop.shop_name LIKE    =  '%+" + shopName + "%'");
        }
        if (startDate !=null && endDate != null) {
            sb.append(" AND order_od.create_time >= " + "'" + startDate + "'");//开始时间
            sb.append(" AND order_od.create_time < " + "'" + endDate + "'");//结束时间
        }

        sb.append(" GROUP BY saler_member_id,DATE_FORMAT(order_od.create_time,'%Y-%m-%d') ");
        List<Object[]> list = orderDao.getSession().createSQLQuery(sb.toString()).list();
        for (Object[] objects : list) {
            OrderReportBean bean = new OrderReportBean();
            bean.setName(objects[0]);
            bean.setTotal(objects[1]);
            bean.setOds(objects[2]);
            bean.setType(objects[3]);
            bean.setTime(objects[4]);
            listBean.add(bean);
        }
        return listBean;
    }


    /**
     * 
     * @Title: findSum 
     * @Description: TODO(历史交易额统计  type == 1) 
     * @param page
     * @return
     * @throws ParseException    设定文件 
     * List<OrderOdBean>    返回类型 
     * @throws 
     * @author oftoo
     */
    @SuppressWarnings("unchecked")
    public List<OrderReportBean> findSum(Page<OrderOd> page) throws ParseException {
        Map<String, String> parameters = page.getQueryMap();
        String startDate = null, endDate =null, shopName = null;
        if (parameters.containsKey("startDate") && !StringUtilsEx.isNullOrEmpty(parameters.get("startDate"))) {
            startDate = parameters.get("startDate") + " 00:00:00";
        }
        if (parameters.containsKey("endDate") && !StringUtilsEx.isNullOrEmpty(parameters.get("endDate"))) {
            endDate = parameters.get("endDate") + " 23:59:59";
        }
        if (parameters.containsKey("shopName") && !StringUtilsEx.isNullOrEmpty(parameters.get("shopName"))) {
            shopName = parameters.get("shopName");
        }
        List<OrderReportBean> listBean = new ArrayList<OrderReportBean>();

        StringBuilder sp = new StringBuilder();
        sp.append(" SELECT shop.company_name AS NAME ,SUM( order_od.total) AS total, COUNT(order_od.id) AS ods, 1 AS TYPE, DATE_FORMAT(order_od.create_time,'%Y-%m-%d') AS TIME");
        sp.append(" FROM order_od ");
        sp.append(" LEFT JOIN shop on order_od.saler_member_id = shop.id ");
        sp.append(" LEFT JOIN member on shop.member_id = member.id ");
        sp.append(" WHERE ");
        sp.append("  1 = 1");
        sp.append(" AND order_od.status IN (3,4) ");//订单状态表示完成的
        if (shopName != null && shopName.equals("")) {
            sp.append(" AND shop.shop_name LIKE    =  '%+" + shopName + "%'");
        }
        if (startDate !=null && endDate != null) {
            sp.append(" AND order_od.create_time >= " + "'" + startDate + "'");//开始时间
            sp.append(" AND order_od.create_time < " + "'" + endDate + "'");//结束时间
        }
        sp.append(" GROUP BY saler_member_id");
        List<Object[]> countList = orderDao.getSession().createSQLQuery(sp.toString()).list();
        for (Object[] objects : countList) {
            OrderReportBean bean = new OrderReportBean();
            bean.setName(objects[0]);
            bean.setTotal(objects[1]);
            bean.setOds(objects[2]);
            bean.setType(objects[3]);
            bean.setTime("截止  " + objects[4]);
            listBean.add(bean);
        }

        return listBean;
    }


    /**
     * 
     * @Title: find 
     * @Description: TODO(查询全部) 
     * @param page
     * @return
     * @throws ParseException    设定文件 
     * List<OrderOdBean>    返回类型 
     * @throws 
     * @author oftoo
     */
    public List<OrderReportBean> find(Page<OrderOd> page) throws ParseException {
        Map<String, String> parameters = page.getQueryMap();
        String type = null;
        List<OrderReportBean> listBean = new ArrayList<OrderReportBean>();
        if (parameters.containsKey("type") && !StringUtilsEx.isNullOrEmpty(parameters.get("type"))) {
            type = parameters.get("type");
        }
        if (type == null || Integer.valueOf(type) == 2) {//查询全部
            listBean = this.findByDay(page);
            listBean.addAll(this.findSum(page));
        } else if (Integer.valueOf(type) == 0) {//查询 每日交易记录
            listBean = this.findByDay(page);
        } else if (Integer.valueOf(type) == 1) {//查询历史交易记录
            listBean = this.findSum(page);
        }
        return listBean;
    }



}

代码片二:

    /**
     * 分页查询
     */
    public List<ChemicalCategory> findPageNo(int pageNo) {
        Criteria criteria = chemicalCategoryDao.createCriteria();
        criteria.addOrder(Order.asc("level"));
        criteria.add(Restrictions.eq("status", 1));
        criteria.addOrder(Order.asc("sort"));
        if (pageNo==1) {
            criteria.setFirstResult(0);
        } else {
            criteria.setFirstResult(5*(pageNo-1));
        }
        criteria.setMaxResults(15);
        return chemicalCategoryDao.findByCriteria(criteria);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值