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

📄 customermgrimpl.java

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

import java.util.ArrayList;
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.log4j.Logger;

import com.yuanchung.sales.constants.SystemConstant;
import com.yuanchung.sales.dao.customer.CustomerDAO;
import com.yuanchung.sales.dao.util.UtilDAO;
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.service.CustAccount;
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.CustomerMgr;
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.ContactVo;
import com.yuanchung.sales.vo.right.WebRightsView;

public class CustomerMgrImpl implements CustomerMgr {
	// private static List customerPageContorller;
	private static Logger logger = Logger.getLogger(CustomerMgrImpl.class);
	private CustomerDAO customerDao;
	private AuthorizationMgr authorizationMgr;
	private UtilDAO utilDao;

	public UtilDAO getUtilDao() {
		return utilDao;
	}

	public void setUtilDao(UtilDAO utilDao) {
		this.utilDao = utilDao;
	}

	public void setAuthorizationMgr(AuthorizationMgr authorizationMgr) {
		this.authorizationMgr = authorizationMgr;
	}

	public void setCustomerDao(CustomerDAO customerDao) {
		this.customerDao = customerDao;
	}

	public CustomerDAO getCustomerDao() {
		return customerDao;
	}

	// 根据用户取得客户列表
	public List<Customer> getCustomerByUser(User user, int flag)
			throws ApplicationException {
		try {
			List customers = customerDao.getByUser(user, flag);
			logger.debug("一共几个客户" + customers.size());
			return customers;
		} catch (Exception e) {
			throw new ApplicationException(Constants.GETCUSTOMEREXCEPTION);
		}
	}

	public List<Customer> getCustomerByUser(String userIds, int flag) {
		try {
			List customers = customerDao.getByUser(userIds, flag);
			logger.debug("一共几个客户" + customers.size());
			return customers;
		} catch (RuntimeException re) {
			logger.error(re);
			throw new ApplicationException(Constants.GETCUSTOMEREXCEPTION);
		}
	}

	// 保存客户
	public boolean addCustomer(Customer customer) throws ApplicationException {
		try {
			customerDao.save(customer);
			saveCustAccount();//保存客户账号2009-2-28 hwb
			return true;
		} catch (RuntimeException e) {
			throw new ApplicationException(Constants.ADDCUSTOMEREXCEPTION);
		}
	}
	//**********************保存客户账号2009-2-28 hwb***********************//
	//提供客户在线登录的账号
	public void saveCustAccount(){
		CustAccount custAccount = new CustAccount();
		custAccount.setFlag(Constants.CUST_ACCOUNT_FLAG);
		if(customerDao.getCustomerByMaxId()!=null){
			custAccount.setCustomer(customerDao.getCustomerByMaxId());
			custAccount.setLoginName(Constants.getCustLoginName()+String.valueOf(customerDao.getCustomerByMaxId().getId()));
		}
		custAccount.setPassword(Constants.CUST_ACCOUNT_PASSWORD);
		try {
		customerDao.saveCustAccount(custAccount);
		} catch (RuntimeException e) {
			logger.debug(e.getMessage());
			throw new ApplicationException(Constants.ADDCUSTOMEREXCEPTION);
		}
	}
	//*********************and*************************//
	
	// 保存用户自定义选项
	public void addUserDefined(UserDefined userDefined)
			throws ApplicationException {
		try {
			customerDao.saveUserDefined(userDefined);
		} catch (Exception e) {
			throw new ApplicationException(Constants.ADDUSERDEFINEDEXCEPTION);
		}
	}

	// 保存用户过滤选项
	public void addUserFilter(UserFilter userFilter)
			throws ApplicationException {
		try {
			customerDao.saveUserFilter(userFilter);
		} catch (Exception e) {
			throw new ApplicationException(Constants.ADDUFILTEREXCEPTION);
		}
	}

	// 保存用户显示字段
	public void addUserField(UserField userField) throws ApplicationException {
		try {
			customerDao.saveUserField(userField);
		} catch (Exception e) {
			throw new ApplicationException(Constants.ADDFIELDEXCEPTION);
		}
	}

	// 根据用户和类型查找选项
	public List getOptionsByUserAndType(User user, int type)
			throws ApplicationException {
		try {
			List options = customerDao.getUserDefinedByUserAndType(user, type);
			return options;
		} catch (Exception e) {
			throw new ApplicationException(Constants.SEARCHOPTIONEXCEPTION);
		}
	}

	// 根据选项搜索客户
	@SuppressWarnings("unchecked")
	public List<CustomerVo> getCustomerByOption(String optionId,int currentPage,
			HttpSession session) throws ApplicationException {
		UserDefined ud = null;
		// 2009-02-19 add 数据范围
		logger.debug("request" + session);
		Rights rights = ((Map<String, WebRightsView>) session
				.getAttribute(SystemConstant.JSP_RIGHTS_CONTROL)).get("1")
				.getRightsMap().get("104");
		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("1")
				.getRightsMap().get("103");
		String delUserIds = authorizationMgr.findUserDataRange(delRights.getId(), user);
		logger.debug("delUserIds : " + delUserIds);
		//修改(数据范围)
		Rights modifyRights = ((Map<String, WebRightsView>) session
				.getAttribute(SystemConstant.JSP_RIGHTS_CONTROL)).get("1")
				.getRightsMap().get("102");
		String modifyUserIds = authorizationMgr.findUserDataRange(modifyRights.getId(), user);

		// end add
		if (StringTool.isNotBlank(optionId)) {
			if (!optionId.equals(Constants.ALLCUSTOMER)) {
				// 根据选项id搜索用户自定义选项
				ud = customerDao.getUserDefinedById(Integer.parseInt(optionId));
				System.out.println("有到这里吗...");
				// 取得用户的过滤字段
				Set<UserFilter> userFilters = ud.getUserFilters();
				StringBuffer hql = new StringBuffer();
				hql.append("FROM Customer WHERE flag=1 ");
				for (Object o : userFilters) {// 遍历所有的用户过滤字段
					UserFilter filter = (UserFilter) o;
					String filterName = filter.getFilterName();
					if (filterName.equals("employeeNum")) {
						hql.append("AND ( employeeMinNum "
								+ filter.getOperator() + " "
								+ filter.getFilterValue() + " ");
						hql.append("OR employeeMaxNum " + filter.getOperator()
								+ " " + filter.getFilterValue() + " ) ");
						continue;
					} else {
						hql.append("AND " + filter.getFilterName() + " "
								+ filter.getOperator() + " "
								+ filter.getFilterValue() + " ");
					}
				}
				// 2009-02-19 add 数据范围
				hql.append("and user in (" + userIds + ") order by inDate desc");
				logger.debug("hql : " + hql.toString());
				// end add
				// 查询所有符合条件的客户
				//2009-02-20 modify
//				List customers = customerDao.getCustomerByUserHql(hql
//						.toString());
				List customers = utilDao.findDataByPage(hql.toString(), (currentPage-1)*Constants.PAGE_SEARCH_COUNT, Constants.PAGE_SEARCH_COUNT);
				String hqlCount = "select count(*) " + hql.toString();
				logger.debug("hqlCount : " + hqlCount);
				int pageCount = utilDao.getResultsetCount(hqlCount.toString());
				logger.debug("pageCount : " + pageCount);
				//end modify
				session.setAttribute("customers", customers);
				session.setAttribute("pageCount", pageCount);

				System.out.println("有几条记录1:" + customers.size());
				List<CustomerVo> result = new ArrayList<CustomerVo>();
				try {
					for (Object o : customers) {
						Customer c = (Customer) o;
						//2009-02-20 add 删除、修改(数据范围)
						String delRightsFlag = "n";
						String modifyRightsFlag = "n";
						if(authorizationMgr.isRights(c.getUser().getId(), delUserIds)){
							delRightsFlag = "y";
						}
						if(authorizationMgr.isRights(c.getUser().getId(), modifyUserIds)){
							modifyRightsFlag = "y";
						}
						logger.debug("delRightsFlag : " + delRightsFlag);
						logger.debug("modifyRightsFlag : " + modifyRightsFlag);
						//end
						// 将客户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()
												.getId(), c.getUser()
												.getFamilyName(),delRightsFlag,modifyRightsFlag));
					}
					return result;
				} catch (Exception e) {
					e.printStackTrace();
					throw new ApplicationException(
							Constants.GETCUSTOMEREXCEPTION);
				}
			} else {// 默认所有客户
				return null;
			}
		}
		return null;
	}

	// 根据选项搜索相应的显示字段
	public List<String> getDefinedField(String optionId,
			HttpServletRequest request) throws ApplicationException {
		User user = SessionMgr.getCustSession(request);
		UserDefined ud = null;
		List<String> fields = null;
		logger.debug("optionId : " + optionId);
		if (StringTool.isNotBlank(optionId)) {
			if (!optionId.equals(Constants.ALLCUSTOMER)) {
				fields = new ArrayList<String>();
				// 用户自定义选项

⌨️ 快捷键说明

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