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