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

📄 busiopportmgriml.java

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

import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
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 com.yuanchung.sales.constants.SystemConstant;
import com.yuanchung.sales.dao.busiOpport.BusiOpportDAO;
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.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;
import com.yuanchung.sales.service.admin.authorization.AuthorizationMgr;
import com.yuanchung.sales.service.busiOpport.BusiOpportMgr;
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.CustomerVo;
import com.yuanchung.sales.vo.busiOpport.BusiOpportDefinedVo;
import com.yuanchung.sales.vo.busiOpport.BusinessOpportunityVo;
import com.yuanchung.sales.vo.contact.ContactRoleVo;
import com.yuanchung.sales.vo.contact.ContactVo;
import com.yuanchung.sales.vo.right.WebRightsView;

public class BusiOpportMgrIml implements BusiOpportMgr {
	private static Logger logger = Logger.getLogger(BusiOpportMgrIml.class);
	private BusiOpportDAO busiOpportDao;
	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 setBusiOpportDao(BusiOpportDAO busiOpportDao) {
		this.busiOpportDao = busiOpportDao;
	}

	public BusiOpportDAO getBusiOpportDao() {
		return busiOpportDao;
	}

	// 根据ID查找客户
	public Customer getCustomerById(int customerId) throws ApplicationException {
		try {
			return busiOpportDao.getCustomerById(customerId);
		} catch (Exception e) {
			e.printStackTrace();
			throw new ApplicationException(Constants.WITHOUTDATA);
		}
	}

	// 增加业务机会
	public boolean addBusiOpport(BusinessOpportunity busiOpport)
			throws ApplicationException {
		try {
			busiOpportDao.save(busiOpport);
		} catch (Exception e) {
			throw new ApplicationException(Constants.ADDBUSIOPPORTEXCEPTION);
		}
		return true;
	}

	// 搜索所有的客户
	public List<CustomerVo> getCustomerByUser(User user, int flag)
			throws ApplicationException {
		List customers = busiOpportDao.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 (Exception 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 = busiOpportDao
				.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);
		}
	}

	// 搜索所有的业务机会
	@SuppressWarnings("unchecked")
	public List<BusinessOpportunityVo> getAllBusiOpport(User user)
			throws ApplicationException {
		List<BusinessOpportunityVo> result = new ArrayList<BusinessOpportunityVo>();
		List<BusinessOpportunity> busiOpports = busiOpportDao
				.getBusiOpport(user);
		System.out.println("有几个业务机会" + busiOpports);
		try {
			for (Object o : busiOpports) {
				BusinessOpportunity bo = (BusinessOpportunity) o;
				// 将客户po封装成vo
				result.add(new BusinessOpportunityVo(bo.getId(), bo
						.getCustomer(), bo.getBusiOpportName(),
						bo.getStageOf(), bo.getPreTransactionDate(),"y","y"));
			}
			return result;
		} catch (Exception e) {
			throw new ApplicationException(Constants.FINDBUSIOPPORTEXCEPTION);
		}
	}

	@SuppressWarnings("unchecked")
	public List<BusinessOpportunityVo> getAllBusiOpport(String userIds,
			HttpServletRequest request) throws ApplicationException {
		List<BusinessOpportunityVo> result = new ArrayList<BusinessOpportunityVo>();
		User user = SessionMgr.getCustSession(request);
		// 删除(数据范围)
		Rights delRights = SessionMgr.getJspRightsControl(request).get("3")
				.getRightsMap().get("303");
		String delUserIds = authorizationMgr.findUserDataRange(delRights
				.getId(), user);
		logger.debug("delUserIds : " + delUserIds);
		// 修改(数据范围)
		Rights modifyRights = SessionMgr.getJspRightsControl(request).get("3")
				.getRightsMap().get("302");
		String modifyUserIds = authorizationMgr.findUserDataRange(modifyRights
				.getId(), user);
		List<BusinessOpportunity> busiOpports = busiOpportDao
				.getBusiOpport(userIds);
		System.out.println("有几个业务机会" + busiOpports);
		try {
			for (Object o : busiOpports) {
				String delRightsFlag = "n";
				String modifyRightsFlag = "n";
				BusinessOpportunity bo = (BusinessOpportunity) o;
				if (authorizationMgr.isRights(bo.getUser().getId(),
						delUserIds)) {
					delRightsFlag = "y";
				}
				if (authorizationMgr.isRights(bo.getUser().getId(),
						modifyUserIds)) {
					modifyRightsFlag = "y";
				}
				// 将客户po封装成vo
				result.add(new BusinessOpportunityVo(bo.getId(), bo
						.getCustomer(), bo.getBusiOpportName(),
						bo.getStageOf(), bo.getPreTransactionDate(),
						delRightsFlag, modifyRightsFlag));
			}
			return result;
		} catch (Exception e) {
			throw new ApplicationException(Constants.FINDBUSIOPPORTEXCEPTION);
		}
	}

	// 初始化用户自定义选项
	public UserDefined initUserDefined(User user, String definedName, int type,
			Date inDate) throws ApplicationException {
		return new UserDefined(user, definedName, type, inDate);
	}

	// 增加用户自定义选项
	public void addUserDefined(UserDefined userDefined)
			throws ApplicationException {
		try {
			busiOpportDao.saveUserDefined(userDefined);
		} catch (Exception e) {
			throw new ApplicationException(Constants.ADDUSERDEFINEDEXCEPTION);
		}
	}

	// 将值转换字段
	public String getStringByField(String fieldInt) {
		int field = Integer.parseInt(fieldInt);
		String str = "";
		switch (field) {
		case 1:
			str = "busiOpportName";
			break;
		case 2:
			str = "customerName";
			break;
		case 3:
			str = "businessDescribe";
			break;
		case 4:
			str = "involveProduct";
			break;
		case 5:
			str = "preTransactionDate";
			break;
		case 6:
			str = "stageOf";
			break;
		case 7:
			str = "probability";
			break;
		case 8:
			str = "predictAmount";
			break;
		case 9:
			str = "decisionMan";
			break;
		case 10:
			str = "decisionMan";
			break;
		case 11:
			str = "creatDate";
			break;
		}
		return str;
	}

	// 增加用户过滤选项
	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 {
			busiOpportDao.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 {
			busiOpportDao.saveUserField(userField);
		} catch (Exception e) {
			throw new ApplicationException(Constants.ADDFIELDEXCEPTION);
		}
	}

	// 根据用户和类型查找选项
	public List<UserDefined> getOptionsByUserAndType(User user, int type)
			throws ApplicationException {
		return busiOpportDao.getUserDefinedByUserAndType(user, type);
	}

	// 根据id搜索客户选项
	public UserDefined getUserDefinedById(int optionId)
			throws ApplicationException {
		try {
			return busiOpportDao.getUserDefinedById(optionId);
		} catch (Exception e) {
			throw new ApplicationException(Constants.SEARCHOPTIONEXCEPTION);
		}
	}

	// 将客户选项po封装成vo
	public BusiOpportDefinedVo transaformBusiOpportDefinedPoToVo(
			UserDefined userDefined) throws ApplicationException {
		BusiOpportDefinedVo cdVo = null;
		if (userDefined != null) {
			List<UserFilter> userFilters = busiOpportDao
					.getUserFilterByOption(userDefined);
			UserField userField = busiOpportDao
					.getUserFieldByOption(userDefined);// 搜索显示字段
			List<String> preField = new ArrayList<String>();
			String[] fieldArray = userField.getFieldName().split(",");// 将显示字段转换成数组
			for (String o : fieldArray) {// 搜索用户自定义客户字段
				preField.add(o);
			}
			List<String> noUserFields = filterString(preField);// 提取剩余的字段
			cdVo = new BusiOpportDefinedVo(userDefined.getId(), userDefined
					.getDefinedName(), userDefined.getType(), userFilters,
					noUserFields, preField);
		}
		return cdVo;
	}

	// 过滤字符串
	public static String[] contactField = new String[] { "业务机会名称", "客户名称",
			"业务机会描述", "涉及产品", "预计成交日期", "所属阶段", "成功概率", "预计金额", "决策人", "竞争情况描述" };

	public List<String> filterString(List<String> preField) {
		Set<String> fieldSet = new HashSet<String>();
		for (int i = 0; i < preField.size(); i++) {
			fieldSet.add(preField.get(i));
		}
		List<String> enableField = new ArrayList<String>();
		for (String s : contactField) {// 遍历预选项
			if (!fieldSet.contains(s)) {
				enableField.add(s);
			}
		}
		return enableField;
	}

	// 修改用户选项
	public boolean updateOption(UserDefined userDefined)
			throws ApplicationException {
		try {
			busiOpportDao.updateUserDefined(userDefined);
		} catch (Exception e) {
			e.printStackTrace();
			throw new ApplicationException(Constants.UPDATEOPTIONEXCEPTION);
		}
		return true;
	}

	// 根据id搜索用户过滤条件
	public UserFilter getUserFilterById(String filterId)
			throws ApplicationException {
		try {
			return busiOpportDao.getUserFilter(Integer.parseInt(filterId));
		} catch (Exception e) {
			throw new ApplicationException(Constants.SEARCHFILTEREXCEPTION);
		}
	}

	// 修改用户选项
	public boolean updateUserFilter(UserFilter userFilter)
			throws ApplicationException {
		try {
			busiOpportDao.updateUserFilter(userFilter);
			return true;
		} catch (Exception e) {
			throw new ApplicationException(Constants.UPDATEFILTEREXCEPTION);
		}
	}

	// 根据选项搜索显示字段
	public UserField getUserFieldByOption(UserDefined userDefined)
			throws ApplicationException {
		try {
			return busiOpportDao.getUserFieldByOption(userDefined);
		} catch (Exception e) {
			throw new ApplicationException(Constants.SEARCHFIELDEXCEPTION);
		}
	}

	// 修改显示字段
	public boolean updateUserField(UserField userField)
			throws ApplicationException {
		try {
			busiOpportDao.updateUserField(userField);
		} catch (Exception e) {
			throw new ApplicationException(Constants.UPDATEFIELDEXCEPTION);
		}
		return true;
	}

	// 根据选项搜索相应的显示字段
	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>();
			// 用户自定义选项

⌨️ 快捷键说明

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