AbstractCusDeclare.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.emato.cuspay.wx.declare;
  2. import com.emato.cuspay.base.merch.MerchCusService;
  3. import com.emato.cuspay.base.merch.MerchPaymentService;
  4. import com.emato.cuspay.dto.merch.MerchCusCfg;
  5. import com.emato.cuspay.dto.merch.MerchNoti;
  6. import com.emato.cuspay.dto.merch.MerchPayCfg;
  7. import com.google.common.collect.Maps;
  8. import org.springframework.beans.BeansException;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.config.BeanPostProcessor;
  11. import javax.annotation.PostConstruct;
  12. import java.util.List;
  13. import java.util.Map;
  14. /**
  15. * @author zx
  16. * @version 1.0
  17. * 2018-05-18 14:21
  18. */
  19. public abstract class AbstractCusDeclare implements CusDeclare{
  20. @Autowired
  21. private MerchPaymentService paymentService;
  22. //商户支付信息缓存
  23. private Map<String, MerchPayCfg> payCaches = Maps.newHashMap();
  24. //重新加载缓存
  25. @PostConstruct
  26. private void reloadPayCaches() {
  27. if (this.paymentService == null)
  28. throw new NullPointerException("paymentService is null");
  29. List<MerchPayCfg> list = this.paymentService.loadMerchPayCfg();
  30. if (list != null && !list.isEmpty()) {
  31. list.forEach(cfg ->{
  32. payCaches.put(cfg.getMerchSn(), cfg);
  33. });
  34. }
  35. }
  36. //获取商户支付数据
  37. protected MerchPayCfg getMerchPayCfgCache(String sn) {
  38. MerchPayCfg merchPayCfg = payCaches.get(sn);
  39. if(merchPayCfg == null) {
  40. this.reloadPayCaches();
  41. return payCaches.get(sn);
  42. }
  43. return merchPayCfg;
  44. }
  45. public MerchPaymentService getPaymentService() {
  46. return paymentService;
  47. }
  48. public void setPaymentService(MerchPaymentService paymentService) {
  49. this.paymentService = paymentService;
  50. }
  51. }