123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <?php
- namespace app\model;
- use think\db\exception\DataNotFoundException;
- use think\db\exception\DbException;
- use think\db\exception\ModelNotFoundException;
- use think\facade\Cache;
- use think\Model;
- class CardModel extends Model
- {
- protected $name = "card";
- protected $pk = "id";
- static array $stopCard = [];
- public static function cardStatus($name_en = ''): bool
- {
- $config = self::$stopCard;
- if (count($config) == 0) {
- $config = self::cache('cardList', 60 * 60)->select()->toArray();
- self::$stopCard = $config;
- }
- foreach ($config as $item) {
- if ($item['name_en'] == $name_en) {
- if ($item['status'] === 1) {
- return true;
- }
- }
- }
- return false;
- }
- public static function cardInfo($name_en = '')
- {
- $config = self::$stopCard;
- if (count($config) == 0) {
- $config = self::cache('cardList', 60 * 60)->select()->toArray();
- self::$stopCard = $config;
- }
- foreach ($config as $item) {
- if ($item['name_en'] == $name_en) {
- return $item;
- }
- }
- return false;
- }
- /**
- * 获取单个配置信息
- * @param string $cardName
- * @param string $key
- * @param string $default
- * @return mixed|string|null
- */
- public static function config(string $cardName = '', string $key = '', string $default = '')
- {
- $card = self::where('name_en', $cardName)->value('dict_option');
- try {
- $json = json_decode($card, true);
- if (isset($json[$key])) {
- return $json[$key];
- }
- } catch (\Exception $e) {
- }
- if ($default) {
- return $default;
- }
- return null;
- }
- /**
- * 获取整个配置信息 返回数组对象
- * @param string $cardName
- * @return mixed|string|null
- */
- public static function configs(string $cardName = '')
- {
- $card = self::where('name_en', $cardName)->value('dict_option');
- if ($card) {
- try {
- return json_decode($card, true);
- } catch (\Exception $e) {
- }
- return [];
- }
- return [];
- }
- /**
- * 保存配置信息,完整的配置数组
- * @param string $cardName
- * @param array $option
- * @return bool
- * @throws DataNotFoundException
- * @throws DbException
- * @throws ModelNotFoundException
- */
- public static function saveConfigs(string $cardName = '', array $option = []): bool
- {
- $card = self::where('name_en', $cardName)->find();
- if ($card) {
- try {
- $json = json_encode($option);
- $card->save(['dict_option' => $json]);
- return true;
- } catch (\Exception $e) {
- }
- }
- return false;
- }
- /**
- * 保存单个配置信息,不存在则创建
- * @param string $cardName
- * @param string $key
- * @param $value
- * @return bool
- * @throws DataNotFoundException
- * @throws DbException
- * @throws ModelNotFoundException
- */
- public static function saveConfig(string $cardName = '', string $key = '', $value = ''): bool
- {
- $card = self::where('name_en', $cardName)->find();
- if ($card) {
- $config = self::configs($cardName);
- $config[$key] = $value;
- $card->save(['dict_option' => json_encode($config)]);
- return true;
- }
- return false;
- }
- }
|