mchctl.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace refill;
  3. class mchctl
  4. {
  5. private $mMchidMapCtls;
  6. public function __construct()
  7. {
  8. $this->load();
  9. }
  10. public function load()
  11. {
  12. $this->update_ctl();
  13. }
  14. private function update_ctl()
  15. {
  16. $this->mMchidMapCtls = [];
  17. $mod_merchant = Model('merchant');
  18. $merchants = $mod_merchant->getMerchantList(['merchant.mchid' => ['gt', 0]]);
  19. foreach ($merchants as $item)
  20. {
  21. $mchid = $item['mchid'];
  22. $quality = intval($item['quality']);
  23. $time_out = $item['time_out'];
  24. if ($quality == Quality::SlowNormal ||
  25. $quality == Quality::ThirdNormal ||
  26. $quality == Quality::DefSuccess ||
  27. $quality == Quality::NormalQuick ||
  28. $quality == Quality::SlowSixNormal) {
  29. } elseif ($quality >= Quality::LowestQuality && $quality <= Quality::HighestQuality) {
  30. } else {
  31. $quality = Quality::ThirdNormal;
  32. }
  33. $this->mMchidMapCtls[$mchid] = ['quality' => $quality,'time_out' => $time_out];
  34. }
  35. }
  36. public function getCtls($mchid)
  37. {
  38. if(array_key_exists($mchid,$this->mMchidMapCtls)) {
  39. $quality = $this->mMchidMapCtls[$mchid]['quality'];
  40. $time_out = $this->mMchidMapCtls[$mchid]['time_out'];
  41. return [true,$quality,$time_out];
  42. }
  43. else {
  44. return [false,0,0];
  45. }
  46. }
  47. public function mechants_quality()
  48. {
  49. $result = [];
  50. foreach ($this->mMchidMapCtls as $mchid => $item)
  51. {
  52. $quality = intval($item['quality']);
  53. if(PolicyUtil::mixed_quality($quality)) {
  54. $result[$mchid] = $quality;
  55. }
  56. }
  57. return $result;
  58. }
  59. }