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 + -
显示快捷键?