mchannel.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace refill;
  3. use mtopcard;
  4. class mchannel
  5. {
  6. private $mTQMchidChannels;
  7. public function __construct()
  8. {
  9. $this->load();
  10. }
  11. public function load()
  12. {
  13. $this->mTQMchidChannels = [];
  14. $mchannels = rcache('merchant_chname-cfg','refill-');
  15. $qtchannels = [];
  16. foreach ($mchannels as $type_quality => $channels) {
  17. $qtchannels[$type_quality] = unserialize($channels);
  18. }
  19. foreach ($qtchannels as $tq => $items)
  20. {
  21. $this->mTQMchidChannels[$tq] = [];
  22. foreach ($items as $mchid => $channels) {
  23. sort($channels);
  24. $this->mTQMchidChannels[$tq][$mchid] = $channels;
  25. }
  26. }
  27. }
  28. public function channels($mchid, $card_type, $quality)
  29. {
  30. $card_paper = mtopcard\card_paper($card_type);
  31. $key = "{$card_paper}-{$quality}";
  32. if (array_key_exists($key, $this->mTQMchidChannels))
  33. {
  34. $mchannels = $this->mTQMchidChannels[$key];
  35. if (array_key_exists($mchid, $mchannels)) {
  36. return [$card_paper, $mchannels[$mchid]];
  37. }
  38. }
  39. return [$card_paper, []];
  40. }
  41. }