CardModel.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. namespace app\model;
  3. use think\db\exception\DataNotFoundException;
  4. use think\db\exception\DbException;
  5. use think\db\exception\ModelNotFoundException;
  6. use think\facade\Cache;
  7. use think\Model;
  8. class CardModel extends Model
  9. {
  10. protected $name = "card";
  11. protected $pk = "id";
  12. static array $stopCard = [];
  13. public static function cardStatus($name_en = ''): bool
  14. {
  15. $config = self::$stopCard;
  16. if (count($config) == 0) {
  17. $config = self::cache('cardList', 60 * 60)->select()->toArray();
  18. self::$stopCard = $config;
  19. }
  20. foreach ($config as $item) {
  21. if ($item['name_en'] == $name_en) {
  22. if ($item['status'] === 1) {
  23. return true;
  24. }
  25. }
  26. }
  27. return false;
  28. }
  29. public static function cardInfo($name_en = '')
  30. {
  31. $config = self::$stopCard;
  32. if (count($config) == 0) {
  33. $config = self::cache('cardList', 60 * 60)->select()->toArray();
  34. self::$stopCard = $config;
  35. }
  36. foreach ($config as $item) {
  37. if ($item['name_en'] == $name_en) {
  38. return $item;
  39. }
  40. }
  41. return false;
  42. }
  43. /**
  44. * 获取单个配置信息
  45. * @param string $cardName
  46. * @param string $key
  47. * @param string $default
  48. * @return mixed|string|null
  49. */
  50. public static function config(string $cardName = '', string $key = '', string $default = '')
  51. {
  52. $card = self::where('name_en', $cardName)->value('dict_option');
  53. if ($card) {
  54. try {
  55. $json = json_decode($card, true);
  56. if (isset($json[$key])) {
  57. return $json[$key];
  58. }
  59. } catch (\Exception $e) {
  60. }
  61. if ($default) {
  62. return $default;
  63. }
  64. return null;
  65. }
  66. return null;
  67. }
  68. /**
  69. * 获取整个配置信息 返回数组对象
  70. * @param string $cardName
  71. * @return mixed|string|null
  72. */
  73. public static function configs(string $cardName = '')
  74. {
  75. $card = self::where('name_en', $cardName)->value('dict_option');
  76. if ($card) {
  77. try {
  78. return json_decode($card, true);
  79. } catch (\Exception $e) {
  80. }
  81. return [];
  82. }
  83. return [];
  84. }
  85. /**
  86. * 保存配置信息,完整的配置数组
  87. * @param string $cardName
  88. * @param array $option
  89. * @return bool
  90. * @throws DataNotFoundException
  91. * @throws DbException
  92. * @throws ModelNotFoundException
  93. */
  94. public static function saveConfigs(string $cardName = '', array $option = []): bool
  95. {
  96. $card = self::where('name_en', $cardName)->find();
  97. if ($card) {
  98. try {
  99. $json = json_encode($option);
  100. $card->save(['dict_option' => $json]);
  101. return true;
  102. } catch (\Exception $e) {
  103. }
  104. }
  105. return false;
  106. }
  107. /**
  108. * 保存单个配置信息,不存在则创建
  109. * @param string $cardName
  110. * @param string $key
  111. * @param $value
  112. * @return bool
  113. * @throws DataNotFoundException
  114. * @throws DbException
  115. * @throws ModelNotFoundException
  116. */
  117. public static function saveConfig(string $cardName = '', string $key = '', $value=''): bool
  118. {
  119. $card = self::where('name_en', $cardName)->find();
  120. if ($card) {
  121. $config = self::configs($cardName);
  122. $config[$key] = $value;
  123. $card->save(['dict_option' => json_encode($config)]);
  124. return true;
  125. }
  126. return false;
  127. }
  128. }