权益分发

xiaoxiao2021-02-28  58

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; /** * 权益分发 * 目标:新发放权益对框架、流程均无需改造,实现接口、配置化即可完成新权益发放 * @author jianghuiwen * */ @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; //鉴权bean public final static Map<Long,String> checkBeanMap = new HashMap<Long,String>(); //发放bean public final static Map<Long,String> issueBeanMap = new HashMap<Long,String>(); //消息bean 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"); } }
转载请注明原文地址: https://www.6miu.com/read-85042.html

最新回复(0)