package com.alifi.hades.biz.access.rule.ctu;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.alifi.hades.biz.access.rule.AccessRule;
import com.alifi.hades.biz.crm.manager.CrmMemberManager;
import com.alifi.hades.common.model.CustListDO;
import com.alifi.hades.dal.dao.CustListDao;
import com.alifi.hyperion.common.model.Member;
/**
* 黑名单准入规则
*
*/
public abstract class AbstractCTUAccessRule implements AccessRule {
private static final Log logger = LogFactory.getLog(AbstractCTUAccessRule.class);
protected static final String KEY_MEMBER = "member";
private CrmMemberManager crmMemberManager;
private CustListDao custListDao;
public boolean checkAccess(String prodId, Map<String, Object> context) {
if (context.containsKey(KEY_MEMBER)) {
Member member = (Member) context.get(KEY_MEMBER);
String site = crmMemberManager.getSiteBySource(member.getSource());
String siteMemId = member.getUserId();
String ruleCode = getAccessRuleCode();
// 白名单
CustListDO whiteList = custListDao.getWhiteListByRuleCode(site, siteMemId, ruleCode);
if (whiteList != null) {
logger.info("该规则的白名单用户,跳过此规则校验。ruleCode:" + ruleCode + " siteMemId:" + siteMemId);
return true;
}
return doCheckAccess(prodId, member);
}
return false;
}
protected abstract boolean doCheckAccess(String prodId, Member member);
public void setCustListDao(CustListDao custListDao) {
this.custListDao = custListDao;
}
public void setCrmMemberManager(CrmMemberManager crmMemberManager) {
this.crmMemberManager = crmMemberManager;
}
}
/*
* Project: Hades
*
* File Created at 2011-03-15
* $Id$
*
* Copyright 2011 B2B Technology, Alibaba.com Corporation Limited.
* All rights reserved.
*
* This software is the confidential and proprietary information of
* Alibaba Company. ("Confidential Information"). You shall not
* disclose such Confidential Information and shall use it only in
* accordance with the terms of the license agreement you entered into
* with Alibaba.com.
*/
package com.alifi.hades.biz.access.rule.ctu;
import static com.alifi.hades.biz.common.util.TemplatedLog.log;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.alifi.ctu.service.BlackListService;
import com.alifi.hades.biz.common.dictionary.MsgTemplateDictionary.DataError;
import com.alifi.hades.biz.common.dictionary.MsgTemplateDictionary.RpcCallError;
import com.alifi.hades.biz.common.exception.LoanLogMsg;
import com.alifi.hades.biz.crm.manager.CrmMemberManager;
import com.alifi.hyperion.common.model.Member;
/**
* 黑名单不准入
*
*/
public class BlackListAccessRule extends AbstractCTUAccessRule {
private static final Log logger = LogFactory.getLog(BlackListAccessRule.class);
private CrmMemberManager crmMemberManager;
private BlackListService blackListService;
@Override
/**
* 黑名单不准入
*/
protected boolean doCheckAccess(String prodId, Member member) {
String site = crmMemberManager.getSiteBySource(member.getSource());
String siteMemId = member.getUserId();
try {
if(blackListService.checkBlackListBySiteMemeber(site, siteMemId, prodId, "1")){
logger.debug(log(DataError.UNEXPECTED, "黑名单用户不准入。siteMemId:" + siteMemId));
return false;
}else{
return true;
}
} catch (Exception e) {
logger.error(log(RpcCallError.MSG_00001, LoanLogMsg.BLACKLIST_EXCEPTION), e);
return false;
}
}
public String getAccessRuleCode() {
return "2000";
}
public void setCrmMemberManager(CrmMemberManager crmMemberManager) {
this.crmMemberManager = crmMemberManager;
super.setCrmMemberManager(crmMemberManager);//处理父类无法注入问题
}
public void setBlackListService(BlackListService blackListService) {
this.blackListService = blackListService;
}
}
父类bean无法注入问题
最新推荐文章于 2020-09-10 10:24:53 发布