📄 contactmgrimpl.java
字号:
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 + -