package
com.taobao.upp.subcommon.bizlogic.rights.service.impl
import org
.springframework.beans.BeansException
import org
.springframework.context.ApplicationContext
import org
.springframework.context.ApplicationContextAware
import org
.springframework.stereotype.Component
import
com.taobao.upp.jmx.UppJmxClass
import
com.taobao.upp.subcommon.bizlogic.rights.service.RightMessageService
import
com.taobao.upp.subcommon.bizlogic.rights.service.RightsCheckService
import
com.taobao.upp.subcommon.bizlogic.rights.service.RightsIssueService
import
com.taobao.upp.subcommon.bizlogic.rights.service.RightsMappingDef
import
com.taobao.upp.subcommon.client.dto.RightsOption
import
com.taobao.upp.subcommon.client.dto.RightsResult
@UppJmxClass
@Component(
"rightsDespatchService")
public class RightsDespatchService implements ApplicationContextAware{
private ApplicationContext applicationContext
public RightsResult check(RightsOption rightsOption) {
RightsCheckService rightsCheckService = (RightsCheckService) applicationContext.
getBean(RightsMappingDef
.checkBeanMap.get(rightsOption
.getBizType()))
return rightsCheckService
.check(rightsOption)
}
public RightsResult issue(RightsOption rightsOption) {
RightsIssueService rightsIssueService = (RightsIssueService) applicationContext.
getBean(RightsMappingDef
.issueBeanMap.get(rightsOption
.getBizType()))
return rightsIssueService
.issue(rightsOption)
}
public void sendMsg(RightsOption rightsOption,RightsResult rightsResult) {
RightMessageService rightMessageService = (RightMessageService) applicationContext.
getBean(RightsMappingDef
.messageBeanMap.get(rightsOption
.getBizType()))
rightMessageService
.sendMsg(rightsOption, rightsResult)
}
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this
.applicationContext = applicationContext
}
}
映射器
package com.taobao.upp.subcommon.bizlogic.rights.service;
import java.util.HashMap;
import java.util.Map;
/**
* 权益执行器映射
* @author jianghuiwen
*
*/
public class RightsMappingDef {
public static final Long RIGHTS_TYPE_COUPON =
1l;
public final static Map<Long,String> checkBeanMap =
new HashMap<Long,String>();
public final static Map<Long,String> issueBeanMap =
new HashMap<Long,String>();
public final static Map<Long,String> messageBeanMap =
new HashMap<Long,String>();
static{
checkBeanMap.put(RIGHTS_TYPE_COUPON,
"couponCheckServiceImpl");
}
static{
issueBeanMap.put(RIGHTS_TYPE_COUPON,
"couponIssueServiceImpl");
}
static{
messageBeanMap.put(RIGHTS_TYPE_COUPON,
"rightsMesasgeServiceImpl");
}
}