busiopportdaoimpl.java

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

JAVA
348
字号
package com.yuanchung.sales.dao.busiOpport.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.busiOpport.BusiOpportDAO;
import com.yuanchung.sales.exception.SystemException;
import com.yuanchung.sales.model.businessOpportunity.BusinessOpportunity;
import com.yuanchung.sales.model.businessOpportunity.ContactBusiopport;
import com.yuanchung.sales.model.customer.ConRole;
import com.yuanchung.sales.model.customer.Customer;
import com.yuanchung.sales.model.customer.CustomerContact;
import com.yuanchung.sales.model.user.User;
import com.yuanchung.sales.model.userDefined.UserDefined;
import com.yuanchung.sales.model.userDefined.UserField;
import com.yuanchung.sales.model.userDefined.UserFilter;

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

	// 保存业务机会
	public void save(BusinessOpportunity businessOpportunity)
			throws DataAccessException {
		getHibernateTemplate().save(businessOpportunity);
	}

	// 根据用户查找客户
	public List getCustomerByUser(User user, int flag) throws DataAccessException {
		return 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 getHibernateTemplate()
				.find(
						"from Customer as c where 1=1 and c.flag=1 and c.user=? and c.customerName like '%"
								+ customerName + "%'", user);
	}

	// 查找所有的业务机会
	public List getBusiOpport(User user) throws DataAccessException {
		return getHibernateTemplate().find(
				"from BusinessOpportunity bo where bo.flag=1 and bo.user=? order by bo.creatDate desc", user);
	}
	public List getBusiOpport(String userIds){
		StringBuffer hql = new StringBuffer("from BusinessOpportunity bo where bo.flag=1 and bo.user ");
		hql.append("in (" + userIds + ") order by bo.creatDate desc");
		return getHibernateTemplate().find(hql.toString());
	}

	// 保存用户自定义选项
	public void saveUserDefined(UserDefined userDefined)
			throws DataAccessException {
		getHibernateTemplate().save(userDefined);
	}

	// 保存自定义选项过滤条件
	public void saveUserFilter(UserFilter userFilter)
			throws DataAccessException {
		getHibernateTemplate().save(userFilter);
	}

	// 保存用户显示字段
	public void saveUserField(UserField userField) throws DataAccessException {
		getHibernateTemplate().save(userField);
	}

	// 根据用户和类型查找选项
	public List getUserDefinedByUserAndType(User user, int type)
			throws DataAccessException {
		return 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) getHibernateTemplate().get(UserDefined.class,
				userDefinedId);
	}

	// 根据选项查找过滤条件
	public List getUserFilterByOption(UserDefined userDefined)
			throws DataAccessException {
		return getHibernateTemplate().find(
				"from UserFilter as uf where uf.userDefined=?", userDefined);
	}

	// 根据选项搜索显示字段
	public UserField getUserFieldByOption(UserDefined userDefined)
			throws DataAccessException {
		return (UserField) getHibernateTemplate().find(
				"from UserField as uf where uf.userDefined=?", userDefined)
				.get(0);
	}

	// 更新用户选项
	public void updateUserDefined(UserDefined userDefined)
			throws DataAccessException {
		getHibernateTemplate().saveOrUpdate(userDefined);
	}

	// 根据id查询过滤条件
	public UserFilter getUserFilter(int id) throws DataAccessException {
		return (UserFilter) getHibernateTemplate().get(UserFilter.class, id);
	}

	// 更新过滤条件
	public void updateUserFilter(UserFilter userFilter)
			throws DataAccessException {
		getHibernateTemplate().saveOrUpdate(userFilter);
	}

	// 修改显示字段
	public void updateUserField(UserField userField) throws DataAccessException {
		getHibernateTemplate().saveOrUpdate(userField);
	}

	// 根据选项查找联系人
	public List getBusiOpportByUserDefined(String hql)
			throws DataAccessException {
		return getHibernateTemplate().find(hql);
	}

	// 根据id查找业务机会
	public BusinessOpportunity getById(int id) throws DataAccessException {
		return (BusinessOpportunity) getHibernateTemplate().get(
				BusinessOpportunity.class, id);
	}

	// 修改业务机会
	public void updateBusiOpport(BusinessOpportunity busiOpport)
			throws DataAccessException {
		getHibernateTemplate().saveOrUpdate(busiOpport);
	}

	// 删除业务机会
	public void delete(BusinessOpportunity busiOpport)
			throws DataAccessException {
		getHibernateTemplate().delete(busiOpport);
	}

	// 删除过滤条件
	public void deleteFilter(UserFilter userFilter) throws DataAccessException {
		getHibernateTemplate().delete(userFilter);
	}

	/**
	 * 根据名称模糊查找业务机会对象列表;
	 */
	public List getAllBusiOpportByName(final String nameLike)
			throws DataAccessException {
		return this.getHibernateTemplate().executeFind(new HibernateCallback() {

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				Query query = session
						.createSQLQuery(
								"SELECT * FROM business_opportunity b where 1=1 and b.flag=1 and BusiOpport_Name like '%"
										+ nameLike + "%'").addEntity(
								BusinessOpportunity.class);// 操作的是sql,添加实体后转化成hql操作,这个是必须的;
				List list = query.list();
				return list;
			}

		});
	}

	/**
	 * 搜索头几条记录;
	 */
	public List getTopBusiOpport() throws DataAccessException {
		return this.getHibernateTemplate().executeFind(new HibernateCallback() {

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

		
	/**
	 * 搜索删除状态的业务机会;
	 */
	public List getBusiOpportByDelete(User user, int flag) throws DataAccessException {
		try {
			return getHibernateTemplate().find("from BusinessOpportunity as bo where bo.user=? and bo.flag=? order by bo.lastModifyTime desc", new Object[]{user, flag});//2为删除状态;
		} catch(Exception e) {
			e.printStackTrace();
			logger.error("find businessOpports error!");
			throw new SystemException("find businessOpports error!");
		}
		
	}
	//查找最新的业务机会
	public BusinessOpportunity getLastestBusiOpport() throws DataAccessException {
		return (BusinessOpportunity)getHibernateTemplate().find("from BusinessOpportunity as bo where bo.id >= (select max(b.id) from BusinessOpportunity as b)").get(0);
	}
	//根据ID查找联系人
	public CustomerContact getContactById(int contactId) throws DataAccessException {
		return (CustomerContact)getHibernateTemplate().get(CustomerContact.class, contactId);
	}
	/**
	 * 根据联系人查找业务机会
	 * @param contactId联系人主键
	 * @return
	 * @throws DataAccessException
	 */
	public List getBusiOpportsByContactId(int contactId) throws DataAccessException {
		return getHibernateTemplate().find("from BusinessOpportunity as bo where bo.contactId=? order by bo.creatDate desc", contactId);
	}
	/**
	 * 保存联系人---业务机会
	 * @param contactBusiopport
	 * @throws DataAccessException
	 */
	public void saveContactBusiOpport(ContactBusiopport contactBusiopport) throws DataAccessException {
		getHibernateTemplate().save(contactBusiopport);
	}
	//查找联系人根据业务机会ID
	public List getContactsByBusiOpportId(int busiOpportId) throws DataAccessException {
		return getHibernateTemplate().find("select cc,  from CustomerContact as cc join cc.contactBusiopports as cb where cb.businessOpportunity.id=?", busiOpportId);
	}
	public void  saveConRole(ContactBusiopport ContactBusiopport) throws DataAccessException {
		getHibernateTemplate().save(ContactBusiopport);
	}
	//根据客户ID查找联系人
	public List getContactRoleByCustomerId(int customerId) throws DataAccessException {
		return getHibernateTemplate().find("from ContactRole as cr where cr.customerContact.customer.id=?", customerId);
	}
	//查找所有的角色
	public List getAllConRole() throws DataAccessException {
		return getHibernateTemplate().find("from ConRole");
	}	
	//根据主键查找角色
	public ConRole getConRoleById(int conRoleId) throws DataAccessException {
		return (ConRole)getHibernateTemplate().get(ConRole.class, conRoleId);
	}
	
	//查找所有未删除的联系人
	public List getContactByUser(User user, int flag) throws DataAccessException {
		return getHibernateTemplate().find("from CustomerContact as cc where cc.user=? and cc.flag=?", new Object[]{user, flag});
	}	
	//根据业务机会ID查找联系人---业务机会
	public List getContactBusiOpportByBusiOpportId(int busiOpportId) throws  DataAccessException {
		return getHibernateTemplate().find("from ContactBusiopport as cb where cb.businessOpportunity.id=?", busiOpportId);
	}
	//根据客户ID查找所有的联系人
	public List getContactsByCustomerId(int customerId, List<Integer> contactIdArray) throws  DataAccessException {
		StringBuffer hql = new StringBuffer();
		hql.append("from CustomerContact as cc where cc.customer.id=?");
		for(Integer o : contactIdArray) {			
			hql.append(" and cc.id != "+o);
		}		
		return getHibernateTemplate().find(hql.toString(), customerId);		
	}
	//查找联系人---业务机会
	public ContactBusiopport getContactBusiopportById(int conBusiId) throws DataAccessException {
		return (ContactBusiopport)getHibernateTemplate().get(ContactBusiopport.class, conBusiId);
	}
	//保存联系人---业务机会
	public void saveContactBusiopport(ContactBusiopport conBusi) throws DataAccessException {
		getHibernateTemplate().save(conBusi);
	}
	//更新联系人---业务机会
	public void updateContactBusiopport(ContactBusiopport conBusi) throws DataAccessException {
		try{
			getHibernateTemplate().update(conBusi);
		}catch(Exception e){
			e.printStackTrace();			
		}
	}
	//批量更新业务机会的状态
	public void updateBusiOpports(int modifyManId, String modifyTime, int customerId, int flag) throws DataAccessException {
		try{
			getHibernateTemplate().bulkUpdate("update BusinessOpportunity as bo set bo.flag=?, bo.modifyManId=?, bo.lastModifyTime=? where bo.customer.id=?", new Object[]{flag, modifyManId, modifyTime, customerId});
		}catch(Exception e){
			e.printStackTrace();			
		}
	}
	//更新联系人根据ID
	public void updateBusiOpportById(int modifyManId, String modifyTime, int busiOpportId, int flag) throws DataAccessException {
		try{
			getHibernateTemplate().bulkUpdate("update BusinessOpportunity as bo set bo.flag=?, bo.modifyManId=?, bo.lastModifyTime=? where bo.id=?", new Object[]{flag, modifyManId, modifyTime, busiOpportId});
		}catch(Exception e){
			e.printStackTrace();	
			logger.error("bulk update contacts error...");
			throw new SystemException("bulk update contacts error...");
		}
	}
	//根据联系人名称查找模糊查找联系人
	public List getBusiOpportsByNameLike(User user, int flag, String name) throws DataAccessException {
		try{
			return getHibernateTemplate().find("from BusinessOpportunity as bo where bo.flag=? and bo.user=? and bo.busiOpportName like '%"+name+"%'", new Object[]{flag, user});
		}catch(Exception e){
			e.printStackTrace();
			logger.error("bulk update contacts error...");
			throw new SystemException("bulk update contacts error...");
		}
	}
	//根据客户ID删除联系人
	public void deleteByCustomerId(int customerId, int flag) throws DataAccessException {
		try{			
			getHibernateTemplate().bulkUpdate("delete from CustomerContact as cc where cc.customer.id=? and cc.flag=?", new Object[]{customerId, flag});
		}catch(Exception e){
			e.printStackTrace();
			logger.error(e.getMessage());
			throw new SystemException(e.getMessage());
		}
	}
	

	//根据业务机会对象删除业务机会
	public void deleteByObject(BusinessOpportunity busiOpport) throws DataAccessException {
		
		try{
			this.getHibernateTemplate().delete(busiOpport);
			logger.debug("删除成功!");
		}catch(Exception e){
			e.printStackTrace();
			logger.error(e.getMessage());
			throw new SystemException(e.getMessage());
		}
	}
}

⌨️ 快捷键说明

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