# 监听器解释
# 业务场景
# fhs监听器的几个名词
# 使用FHS监听器
- 首先确定被监听者的事件名和namespace,在事件发生的时候调用所有的监听器.
//注入监听器注册中心
@Autowired
protected DistributedListenerRegister distributedListenerRegister;
// 发送通知
Map<String,Object> extMap = new HashMap<>();
extMap.put(CommonConstant.USER_ID,changePricePO.getUpdateUser());
try{
distributedListenerRegister.callListener("user", "updatePassword", changePricePO,extMap);
}catch (Exception e){
LOGGER.error(JsonUtils.bean2json(changePricePO) + "自动提交失败",e);
}
FeignClient(name = "jiuzhou-module-bill-web", primary = false)
public interface RegistingBaseReverseAuditListenerRpcService extends DistributedListener {
/**
* 目标业务namespace
*
* @return
*/
@Override
default Set<String> namespace() {
Set<String> namespaceSet = new HashSet<>();
namespaceSet.add("buyTaskOrder");
return namespaceSet;
/**
* 事件类型
*
* @return 事件类型
*/
@Override
default String eventType() {
return CommonConstant.LISTENER_TYPE_REVERSE_AUDIT;
}
/***
* 采购订单反审核的时候触发的方法
* @param param 参数
* @return 如果返回结果包含errorMsg 代表有关联数据
*/
@Override
default Map<String, Object> onMessage(Map<String, Object> param) {
return this.buyTaskOrderReverseAuditCheck(param);
}
/**
* 采购订单反审核
*
*/
@PostMapping("/rpc/com.e6yun.project.jiuzhou.module.check.service.CheckBillRegistedBaseService/buyTaskOrderReverseAuditCheck")
Map<String, Object> buyTaskOrderReverseAuditCheck(@RequestBody Map<String, Object> param);
/**
* 这里返回2 指的是我比其他的listener后执行,优先执行合同本模块的listener然后执行我
* 不然那些本模块的报错的话,我无法回滚
*
* @return
*/
@Override
default int getOrder() {
return 2;
}
@Override
default Class<? extends DistributedListener> getRpcInterfaceClass() {
return RegistingBaseReverseAuditListenerRpcService.class;
}
@Override
default boolean isRpc() {
return true;
}