orderdaoimpl.java

来自「基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰」· Java 代码 · 共 184 行

JAVA
184
字号
package com.yuanchung.sales.dao.order.impl;

import java.sql.SQLException;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.yuanchung.sales.dao.order.OrderDAO;
import com.yuanchung.sales.exception.SystemException;
import com.yuanchung.sales.model.businessOpportunity.BusinessOpportunity;
import com.yuanchung.sales.model.customer.Customer;
import com.yuanchung.sales.model.customer.CustomerContact;
import com.yuanchung.sales.model.order.Order;
import com.yuanchung.sales.model.user.User;
import com.yuanchung.sales.vo.order.CustomerOrderVo;

public class OrderDAOImpl extends HibernateDaoSupport implements OrderDAO {

	// 根据客户ID查找客户
	public Customer getCustomerById(int customerId) throws DataAccessException {
		return (Customer) this.getHibernateTemplate().find(
				"from Customer c where c.id=? and c.flag=1", customerId).get(0);
	}

	// 根据用户查找客户
	public List getCustomerByUser(User user, int flag)
			throws DataAccessException {
		return this.getHibernateTemplate().find(
				"from Customer as c where c.user=? and c.flag=?",
				new Object[] { user, flag });
	}

	// 根据名称模糊查找客户
	public List getCustomerByNamelike(User user, String customerName)
			throws DataAccessException {
		return this.getHibernateTemplate().find(
				"from Customer as c where 1=1 "
						+ "c.flag=1 and c.user=? and c.customerName like '%"
						+ customerName + "%'", user);
	}

	/*
	 * //保存用户自定义选项 public void saveUserDefined(UserDefined userDefined) throws
	 * DataAccessException { this.getHibernateTemplate().save(userDefined); }
	 * 
	 * //保存自定义选项过滤条件 public void saveUserFilter(UserFilter userFilter) throws
	 * DataAccessException { this.getHibernateTemplate().save(userFilter); }
	 * 
	 * //保存用户显示字段 public void saveUserField(UserField userField) throws
	 * DataAccessException { this.getHibernateTemplate().save(userField); }
	 * 
	 * //根据用户和类型查找选项 public List getUserDefinedByUserAndType(User user, int
	 * type) throws DataAccessException { return this.getHibernateTemplate()
	 * .find( "from UserDefined as ud where ud.user=? and ud.type=? order by
	 * ud.inDate desc", new Object[] { user, type }); }
	 * 
	 * //根据id搜索选项 public UserDefined getUserDefinedById(int userDefinedId)
	 * throws DataAccessException { return
	 * (UserDefined)this.getHibernateTemplate().get(UserDefined.class,userDefinedId); }
	 * 
	 * //根据选项查找过滤条件 public List getUserFilterByOption(UserDefined userDefined)
	 * throws DataAccessException { return
	 * this.getHibernateTemplate().find("from UserDefiend uf where
	 * uf.userDefined=?",userDefined); }
	 * 
	 * //根据选项搜索显示字段 public UserField getUserFieldByOption(UserDefined
	 * userDefined) throws DataAccessException { return
	 * (UserField)this.getHibernateTemplate().find("from UserField uf where
	 * uf.userDefined=?",userDefined); }
	 * 
	 * //更新用户选项 public void updateUserDefined(UserDefined userDefined) throws
	 * DataAccessException {
	 * this.getHibernateTemplate().saveOrUpdate(userDefined); }
	 * 
	 * //根据id查询过滤条件 public UserFilter getUserFilter(int id) throws
	 * DataAccessException { return
	 * (UserFilter)this.getHibernateTemplate().get(UserFilter.class, id); }
	 * 
	 * //更新过滤条件 public void updateUserFilter(UserFilter userFilter) throws
	 * DataAccessException {
	 * this.getHibernateTemplate().saveOrUpdate(userFilter); }
	 * 
	 * //修改显示字段 public void updateUserField(UserField userField) throws
	 * DataAccessException { this.getHibernateTemplate().update(userField); }
	 */

	// 1.查找所有的订单
	public List getAllOrder(User user) throws DataAccessException {
		return this
				.getHibernateTemplate()
				.find(
						"from Order o where o.flag=1 and o.user=? order by o.orderDate desc",
						user);
	}

	// 2.根据客户名称查找订单
	public List<CustomerOrderVo> getOrderByCustomerName(String customerName)
			throws DataAccessException {

		return this.getHibernateTemplate().executeFind(new HibernateCallback() {

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				Query query = session
						.createSQLQuery("select *from order o,customer c where 1=1 and o.customerId=c.id and c.Customer_name='customerName'");
				 List<CustomerOrderVo> list = query.list();
				return list;
			}
		});
	}

	// 3.保存订单
	public void save(Order order) throws DataAccessException {
		this.getHibernateTemplate().save(order);
	}

	// 4.修改订单
	public void update(Order order) throws DataAccessException {
		this.getHibernateTemplate().update(order);
	}

	// 5.删除订单
	public void delete(Order order) throws DataAccessException {
		this.getHibernateTemplate().delete(order);
	}

	// 6.搜索前面几张订单的记录
	public List getTopOrder() throws DataAccessException {
		return this.getHibernateTemplate().executeFind(new HibernateCallback() {

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				Query query = session
						.createSQLQuery(
								"SELECT * FROM order o where 1=1 and o.flag=1 order by orderDate desc")
						.addEntity(Order.class);
				List list = query.list();
				return list;
			}
		});
	}

	// 7.搜索删除状态的订单
	public List getOrderByDelete(User user, int flag)
			throws DataAccessException {
		try {
			return getHibernateTemplate()
					.find(
							"from Order as o where o.user=? and o.flag=? order by o.orderDate desc",
							new Object[] { user, flag }); // 2为删除状态;
		} catch (Exception e) {
			e.printStackTrace();
			logger.debug("find order error!");
			throw new SystemException("find order error!");
		}

	}

	// 8.查询最近的订单
	public Order getLastestOrder() throws DataAccessException {
		return (Order) this
				.getHibernateTemplate()
				.find(
						"from order as o where o.orderId >= (select max(o.orderId) from Order as 00)").get(0);
	}

	// 9.根据ID查找联系人
	public CustomerContact getCustomerContactById(int customercontactId)
			throws DataAccessException {
		return (CustomerContact) getHibernateTemplate().get(
				CustomerContact.class, customercontactId);
	}

	// 10.根据订单号查找订单
	public Order getOrderById(int orderId) {
		return (Order) getHibernateTemplate().get(Order.class, orderId);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?