redis->exists($key,RedisCode::SYSTEM_DB)) return json_decode($this->redis->get($key,RedisCode::SYSTEM_DB),true); $data = $this->configModel->where('pid', $pid)->pluck('value','key')->toArray(); if (empty($data)) return []; $this->redis->set($key,json_encode($data),RedisCode::SYSTEM_DB); return $data; } /** * @param $key * @return mixed|string * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function getConfigValue($key): mixed { $arr = $this->setConfigCache(); return $arr[$key] ?? ''; } /** * @param $key * @param int $isRedis //默认走缓存 可以关闭 * @param int $expire * @return false|HigherOrderTapProxy|mixed|\Redis|string * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function getConfigValueByKey($key, int $isRedis = 1,int $expire = 600): mixed { $redisKey = CommonRedisKey::getConfigKey($key); if (!$this->redis->exists($redisKey,RedisCode::SYSTEM_DB)) { $value = $this->configModel->where('key',$key)->value('value'); // 做转换 $value = match ($key) { ConfigCode::APP_LOGO => $this->getOssObjectById($value), default => $value, }; if ($isRedis == 1) { $this->redis->setEx($redisKey, $value ?? ConfigCode::DEFAULT_VALUE[$key], $expire,RedisCode::SYSTEM_DB); } return $value ?? ConfigCode::DEFAULT_VALUE[$key]; } return $this->redis->get($redisKey,RedisCode::SYSTEM_DB) ?? ConfigCode::DEFAULT_VALUE[$key]; } /** * @return array|mixed * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ private function setConfigCache(): mixed { $key = CommonRedisKey::getSystemConfigList(); if ($this->redis->exists($key,RedisCode::SYSTEM_DB)) return json_decode($this->redis->get($key,RedisCode::SYSTEM_DB),true); $data = $this->configModel->pluck('value','key')->toArray(); if (empty($data)) return []; $this->redis->set($key,json_encode($data),RedisCode::SYSTEM_DB); return $data; } }