⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contactmgrimpl.java

📁 基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰富
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.yuanchung.sales.service.customer.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.log4j.Logger;
import org.springframework.dao.DataAccessException;

import com.yuanchung.sales.constants.SystemConstant;
import com.yuanchung.sales.dao.customer.ContactDAO;
import com.yuanchung.sales.dao.util.UtilDAO;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.model.admin.Rights;
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;
import com.yuanchung.sales.service.admin.authorization.AuthorizationMgr;
import com.yuanchung.sales.service.customer.ContactMgr;
import com.yuanchung.sales.util.Constants;
import com.yuanchung.sales.util.PageController;
import com.yuanchung.sales.util.SessionMgr;
import com.yuanchung.sales.util.StringTool;
import com.yuanchung.sales.vo.CustomerDefinedVo;
import com.yuanchung.sales.vo.CustomerVo;
import com.yuanchung.sales.vo.contact.ContactDefinedVo;
import com.yuanchung.sales.vo.contact.ContactVo;
import com.yuanchung.sales.vo.right.WebRightsView;

public class ContactMgrImpl implements ContactMgr{
	static Logger logger = Logger.getLogger(ContactMgrImpl.class);
	private ContactDAO contactDao;
	private AuthorizationMgr authorizationMgr;
	private UtilDAO utilDao;


	public AuthorizationMgr getAuthorizationMgr() {
		return authorizationMgr;
	}
	public void setAuthorizationMgr(AuthorizationMgr authorizationMgr) {
		this.authorizationMgr = authorizationMgr;
	}
	public UtilDAO getUtilDao() {
		return utilDao;
	}
	public void setUtilDao(UtilDAO utilDao) {
		this.utilDao = utilDao;
	}
	public void setContactDao(ContactDAO contactDao) {
		this.contactDao = contactDao;
	}
	//增加联系人
	public boolean addContact(CustomerContact contact) throws ApplicationException {
		try{
			contactDao.save(contact);
			return true;
		}catch(Exception e){
			throw new ApplicationException(Constants.ADDCONTACTEXCEPTION);				
		}
	}
	//为联系人搜索客户
	public List<CustomerVo> getCustomerByUser(User user, int flag) throws ApplicationException{
		List customers = contactDao.getCustomerByUser(user, flag);
		List<CustomerVo> result = new ArrayList<CustomerVo>();
		try{
			for(Object o : customers){
				Customer c = (Customer)o;
				//将客户po封装成vo
				result.add(new CustomerVo(c.getId(), c.getCustomerName(), c.getCreateTime(),
						c.getLegalRepresent(), c.getBizType(), c.getRegisterCapital(), 
						c.getIndustryOf(), c.getEmployeeNum(), c.getRegionOf(), 
						c.getCommunAddr(), c.getPhone(), c.getFax(), c.getZipCode(), 
						c.getWebSite(), c.getEmail(), c.getHonestGrade(), c.getManagerLevel(), 
						c.getBreedVisualize(), c.getCustomerState(), c.getCustomerSource(), c.getRemark(),c.getProvince(), 
						c.getCity(), c.getCounty(), c.getUser()));						
			}
			return result;
		}catch(DataAccessException e){			
			throw new ApplicationException(Constants.GETCUSTOMEREXCEPTION);
		}
	}
	
	//根据名称模糊查询客户
	public List<CustomerVo> getCustomerByNamelike(String customerName, HttpServletRequest request) throws ApplicationException{
		System.out.println("有到这里吗:"+customerName);
		User user = SessionMgr.getCustSession(request);	
		List customers = contactDao.getCustomerByNamelike(user, customerName);
		List<CustomerVo> result = new ArrayList<CustomerVo>();
		try{
			for(Object o : customers){
				Customer c = (Customer)o;
				//将客户po封装成vo
				result.add(new CustomerVo(c.getId(), c.getCustomerName(), c.getCreateTime(),
						c.getLegalRepresent(), c.getBizType(), c.getRegisterCapital(), 
						c.getIndustryOf(), c.getEmployeeNum(), c.getRegionOf(), 
						c.getCommunAddr(), c.getPhone(), c.getFax(), c.getZipCode(), 
						c.getWebSite(), c.getEmail(), c.getHonestGrade(), c.getManagerLevel(), 
						c.getBreedVisualize(), c.getCustomerState(), c.getCustomerSource(), c.getRemark(),c.getProvince(), 
						c.getCity(), c.getCounty(), c.getUser()));						
			}
			return result;
		}catch(Exception e){			
			throw new ApplicationException(Constants.GETCUSTOMEREXCEPTION);
		}
	}
	//根据名称查找客户
	public Customer getCustomerByName(String name) throws ApplicationException{
		try{
			return contactDao.getCustomerByName(name);
		}catch(Exception e){
			throw new ApplicationException(Constants.SEARCHCUSTOMEREXCEPTION);
		}
	}	
	//根据用户查找所有的联系人
	public List<ContactVo> getContactByUser(User user) throws ApplicationException{
		List<ContactVo> result = new ArrayList<ContactVo>();
		List contacts = contactDao.getContactByUser(user);
		try{
			for(Object o : contacts){				
				CustomerContact cc = (CustomerContact)o;					
				//将客户po封装成vo
				Customer c = cc.getCustomer();
				if(c != null) {
					result.add(new ContactVo(cc.getId(), cc.getName(), c.getId(), c.getCustomerName(), cc.getComPhone()));
				}else {
					result.add(new ContactVo(cc.getId(), cc.getName(), cc.getComPhone()));
				}								
			}
			return result;
		}catch(Exception e){	
			e.printStackTrace();
			throw new ApplicationException(Constants.GETCUSTOMEREXCEPTION);
		}
	}
	public List<ContactVo> getContactByUser(String userIds,HttpServletRequest request) throws ApplicationException{
		List<ContactVo> result = new ArrayList<ContactVo>();
		User user = SessionMgr.getCustSession(request);
		// 删除(数据范围)
		Rights delRights = SessionMgr.getJspRightsControl(request).get("2")
				.getRightsMap().get("203");
		String delUserIds = authorizationMgr.findUserDataRange(delRights
				.getId(), user);
		logger.debug("delUserIds : " + delUserIds);
		// 修改(数据范围)
		Rights modifyRights = SessionMgr.getJspRightsControl(request).get("2")
				.getRightsMap().get("202");
		String modifyUserIds = authorizationMgr.findUserDataRange(modifyRights
				.getId(), user);

		List contacts = contactDao.getContactByUser(userIds);
		
		try{
			for(Object o : contacts){				
				CustomerContact cc = (CustomerContact)o;	
				String delRightsFlag = "n";
				String modifyRightsFlag = "n";

				//将客户po封装成vo
				Customer c = cc.getCustomer();
				if (authorizationMgr.isRights(cc.getUser().getId(),
						delUserIds)) {
					delRightsFlag = "y";
				}
				if (authorizationMgr.isRights(cc.getUser().getId(),
						modifyUserIds)) {
					modifyRightsFlag = "y";
				}

				if(c != null) {
					result.add(new ContactVo(cc.getId(), cc.getName(), c.getId(), c.getCustomerName(), cc.getComPhone(),delRightsFlag,modifyRightsFlag));
				}else {
					ContactVo cVo = new ContactVo(cc.getId(), cc.getName(), cc.getComPhone());
					cVo.setDelRights(delRightsFlag);
					cVo.setModifyRights(modifyRightsFlag);
					result.add(cVo);
				}
			}
			return result;
		}catch(Exception e){	
			e.printStackTrace();
			throw new ApplicationException(Constants.GETCUSTOMEREXCEPTION);
		}
	}
	//根据用户查找所有的联系人
	public List<ContactVo> getContact() throws ApplicationException{
		List<ContactVo> result = new ArrayList<ContactVo>();
		List<CustomerContact> contacts = contactDao.getContact();
		System.out.println("有几个联系人"+contacts);
		try{
			for(Object o : contacts){				
				CustomerContact cc = (CustomerContact)o;						
				//将客户po封装成vo
				result.add(new ContactVo());				
			}
			return result;
		}catch(Exception e){
			throw new ApplicationException(Constants.FINDCONTACTEXCEPTION);
		}
	}
	//增加用户自定义选项
	public void addUserDefined(UserDefined userDefined) throws ApplicationException{
		try{
			contactDao.saveUserDefined(userDefined);
		}catch(Exception e){
			throw new ApplicationException(Constants.ADDUSERDEFINEDEXCEPTION);
		}
	}
	//初始化用户自定义选项
	public UserDefined initUserDefined(User user, String definedName, int type, Date inDate) throws ApplicationException{
		return new UserDefined(user, definedName, type, inDate);
	}
	//增加用户过滤选项
	public UserFilter initUserFilter(UserDefined userDefined, String filterName, 
			String operatorName, String operator, String filterValue, String filter) throws ApplicationException{
		return new UserFilter(userDefined, filterName, operatorName, operator, filterValue, filter);
	}
	//增加用户过滤
	public void addUserFilter(UserFilter userFilter) throws ApplicationException{
		try{
			contactDao.saveUserFilter(userFilter);
		}catch(Exception e){
			throw new ApplicationException(Constants.ADDUFILTEREXCEPTION);
		}
	}
	//初始化用户显示字段
	public UserField initUserFiled(UserDefined userDefined, String optionFields) throws ApplicationException{
		return new UserField(userDefined, optionFields);
	}
	//增加用户显示字段
	public void addUserFiled(UserField userField) throws ApplicationException{
		try{
			contactDao.saveUserField(userField);
		}catch(Exception e){
			throw new ApplicationException(Constants.ADDFIELDEXCEPTION);
		}
	}
	//根据用户和类型查找选项
	public List<UserDefined> getOptionsByUserAndType(User user, int type) throws ApplicationException{
		return contactDao.getUserDefinedByUserAndType(user, type);
	}
	//根据选项查找联系人
	@SuppressWarnings("unchecked")
	public List<ContactVo> getContactByOptionId(String optionId,int currentPage, HttpSession session) throws ApplicationException{
		System.out.println("这里的选项id"+optionId);
		UserDefined userDefined = null;
		// 2009-02-15 add 数据范围
		logger.debug("request" + session);
		Rights rights = ((Map<String, WebRightsView>) session
				.getAttribute(SystemConstant.JSP_RIGHTS_CONTROL)).get("2")
				.getRightsMap().get("204");
		User user = (User) session.getAttribute(Constants.SESSION_USER);
		logger.debug("user : " + user.getId());
		String userIds = authorizationMgr.findUserDataRange(rights.getId(),
				user);
		//删除(数据范围)
		Rights delRights = ((Map<String, WebRightsView>) session
				.getAttribute(SystemConstant.JSP_RIGHTS_CONTROL)).get("2")
				.getRightsMap().get("203");
		String delUserIds = authorizationMgr.findUserDataRange(delRights.getId(), user);
		logger.debug("delUserIds : " + delUserIds);
		//修改(数据范围)
		Rights modifyRights = ((Map<String, WebRightsView>) session
				.getAttribute(SystemConstant.JSP_RIGHTS_CONTROL)).get("2")
				.getRightsMap().get("202");
		String modifyUserIds = authorizationMgr.findUserDataRange(modifyRights.getId(), user);

		// end add

		if(StringTool.isNotBlank(optionId)){
			userDefined = contactDao.getUserDefinedById(Integer.parseInt(optionId));			
			//取得用户的过滤字段			
			Set<UserFilter> userFilters = userDefined.getUserFilters();				
			StringBuffer hql = new StringBuffer();
			hql.append("FROM CustomerContact WHERE flag=1 ");
			for(Object o : userFilters){//遍历所有的用户过滤字段
				UserFilter filter = (UserFilter)o;
				String filterName = filter.getFilterName();					
				//生成hql
				hql.append("AND "+filter.getFilterName()+" "+filter.getOperator()+" "+filter.getFilterValue()+" ");
			}
			// 2009-02-19 add 数据范围
			hql.append(" and user in (" + userIds + ") order by inDate desc");
			// end add

			logger.debug("查找的hql:"+hql.toString());
			//根据自定义hql查找联系人
			//2009-02-25 modify
//			List contacts = contactDao.getContactByUserDefined(hql.toString());	
			List contacts = utilDao.findDataByPage(hql.toString(), currentPage, Constants.PAGE_SEARCH_COUNT);
			String hqlCount = "select count(*) " + hql.toString();
			logger.debug("hqlCount : " + hqlCount);
			int pageCount = utilDao.getResultsetCount(hqlCount.toString());
			logger.debug("pageCount : " + pageCount);
			session.setAttribute("pageCount", pageCount);
			//end modify
			List<ContactVo> result = new ArrayList<ContactVo>();
			try{
				for(Object o : contacts){
					CustomerContact cc = (CustomerContact)o;
					//将客户po封装成vo
					ContactVo contactVo = new ContactVo();
					BeanUtils.copyProperties(contactVo, cc);
					
					Customer customer = cc.getCustomer();
					if(customer != null) {
						contactVo.setCustomerId(customer.getId());
						contactVo.setCustomerName(customer.getCustomerName());
					}
					//2009-02-25 add
					if(authorizationMgr.isRights(cc.getUser().getId(), delUserIds)){
						contactVo.setDelRights("y");
					}
					if(authorizationMgr.isRights(cc.getUser().getId(), modifyUserIds)){
						contactVo.setModifyRights("y");
					}
					//end add
					result.add(contactVo);						
				}
				//将联系人保存在会话中
				session.setAttribute("contacts", result);
				return result;
			}catch(Exception e){
				e.printStackTrace();
				throw new ApplicationException(Constants.GETCUSTOMEREXCEPTION);
			}
		}
		return null;
	}
	//根据选项搜索相应的显示字段
	public List<String> getDefinedField(String optionId, HttpServletRequest request) throws ApplicationException{
		List<String> fields = null;
		UserDefined ud = null;
		if(StringTool.isNotBlank(optionId)){
			fields = new ArrayList<String>();
			//用户自定义选项
			ud = contactDao.getUserDefinedById(Integer.parseInt(optionId));
			//取得相应显示字段
			UserField userField = contactDao.getUserFieldByOption(ud);
			String[] fieldArray = userField.getFieldName().split(",");//将显示字段转换成数组
			for(String o : fieldArray ){					

⌨️ 快捷键说明

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