CardModel.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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. try {
  54. $json = json_decode($card, true);
  55. if (isset($json[$key])) {
  56. return $json[$key];
  57. }
  58. } catch (\Exception $e) {
  59. }
  60. if ($default) {
  61. return $default;
  62. }
  63. return null;
  64. }
  65. /**
  66. * 获取整个配置信息 返回数组对象
  67. * @param string $cardName
  68. * @return mixed|string|null
  69. */
  70. public static function configs(string $cardName = '')
  71. {
  72. $card = self::where('name_en', $cardName)->value('dict_option');
  73. if ($card) {
  74. try {
  75. return json_decode($card, true);
  76. } catch (\Exception $e) {
  77. }
  78. return [];
  79. }
  80. return [];
  81. }
  82. /**
  83. * 保存配置信息,完整的配置数组
  84. * @param string $cardName
  85. * @param array $option
  86. * @return bool
  87. * @throws DataNotFoundException
  88. * @throws DbException
  89. * @throws ModelNotFoundException
  90. */
  91. public static function saveConfigs(string $cardName = '', array $option = []): bool
  92. {
  93. $card = self::where('name_en', $cardName)->find();
  94. if ($card) {
  95. try {
  96. $json = json_encode($option);
  97. $card->save(['dict_option' => $json]);
  98. return true;
  99. } catch (\Exception $e) {
  100. }
  101. }
  102. return false;
  103. }
  104. /**
  105. * 保存单个配置信息,不存在则创建
  106. * @param string $cardName
  107. * @param string $key
  108. * @param $value
  109. * @return bool
  110. * @throws DataNotFoundException
  111. * @throws DbException
  112. * @throws ModelNotFoundException
  113. */
  114. public static function saveConfig(string $cardName = '', string $key = '', $value = ''): bool
  115. {
  116. $card = self::where('name_en', $cardName)->find();
  117. if ($card) {
  118. $config = self::configs($cardName);
  119. $config[$key] = $value;
  120. $card->save(['dict_option' => json_encode($config)]);
  121. return true;
  122. }
  123. return false;
  124. }
  125. }