# 监听器解释

# 业务场景

# fhs监听器的几个名词

# 使用FHS监听器

  1. 首先确定被监听者的事件名和namespace,在事件发生的时候调用所有的监听器.
  1. //注入监听器注册中心
  2. @Autowired
  3. protected DistributedListenerRegister distributedListenerRegister;
  4. // 发送通知
  5. Map<String,Object> extMap = new HashMap<>();
  6. extMap.put(CommonConstant.USER_ID,changePricePO.getUpdateUser());
  7. try{
  8. distributedListenerRegister.callListener("user", "updatePassword", changePricePO,extMap);
  9. }catch (Exception e){
  10. LOGGER.error(JsonUtils.bean2json(changePricePO) + "自动提交失败",e);
  11. }
  1. FeignClient(name = "jiuzhou-module-bill-web", primary = false)
  2. public interface RegistingBaseReverseAuditListenerRpcService extends DistributedListener {
  3. /**
  4. * 目标业务namespace
  5. *
  6. * @return
  7. */
  8. @Override
  9. default Set<String> namespace() {
  10. Set<String> namespaceSet = new HashSet<>();
  11. namespaceSet.add("buyTaskOrder");
  12. return namespaceSet;
  13. /**
  14. * 事件类型
  15. *
  16. * @return 事件类型
  17. */
  18. @Override
  19. default String eventType() {
  20. return CommonConstant.LISTENER_TYPE_REVERSE_AUDIT;
  21. }
  22. /***
  23. * 采购订单反审核的时候触发的方法
  24. * @param param 参数
  25. * @return 如果返回结果包含errorMsg 代表有关联数据
  26. */
  27. @Override
  28. default Map<String, Object> onMessage(Map<String, Object> param) {
  29. return this.buyTaskOrderReverseAuditCheck(param);
  30. }
  31. /**
  32. * 采购订单反审核
  33. *
  34. */
  35. @PostMapping("/rpc/com.e6yun.project.jiuzhou.module.check.service.CheckBillRegistedBaseService/buyTaskOrderReverseAuditCheck")
  36. Map<String, Object> buyTaskOrderReverseAuditCheck(@RequestBody Map<String, Object> param);
  37. /**
  38. * 这里返回2 指的是我比其他的listener后执行,优先执行合同本模块的listener然后执行我
  39. * 不然那些本模块的报错的话,我无法回滚
  40. *
  41. * @return
  42. */
  43. @Override
  44. default int getOrder() {
  45. return 2;
  46. }
  47. @Override
  48. default Class<? extends DistributedListener> getRpcInterfaceClass() {
  49. return RegistingBaseReverseAuditListenerRpcService.class;
  50. }
  51. @Override
  52. default boolean isRpc() {
  53. return true;
  54. }