You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace crmeb\services;
  3. use app\services\system\config\SystemGroupDataServices;
  4. /**
  5. * 获取组合数据配置
  6. * Class GroupDataService
  7. */
  8. class GroupDataService
  9. {
  10. /**
  11. * 获取单个值
  12. * @param string $config_name 配置名称
  13. * @param int $limit 截取多少条
  14. * @param bool $isCaChe 是否读取缓存
  15. * @return array
  16. */
  17. public static function getData(string $config_name, int $limit = 0, bool $isCaChe = false): array
  18. {
  19. $callable = function () use ($config_name, $limit) {
  20. event('get.config');
  21. try {
  22. /** @var SystemGroupDataServices $service */
  23. $service = app()->make(SystemGroupDataServices::class);
  24. return $service->getConfigNameValue($config_name, $limit);
  25. } catch (\Exception $e) {
  26. return [];
  27. }
  28. };
  29. try {
  30. $cacheName = $limit ? "data_{$config_name}_{$limit}" : "data_{$config_name}";
  31. if ($isCaChe)
  32. return $callable();
  33. return CacheService::get($cacheName, $callable);
  34. } catch (\Throwable $e) {
  35. return $callable();
  36. }
  37. }
  38. /**
  39. * 根据id 获取单个值
  40. * @param int $id
  41. * @param bool $isCaChe 是否读取缓存
  42. * @return array
  43. */
  44. public static function getDataNumber(int $id, bool $isCaChe = false): array
  45. {
  46. $callable = function () use ($id) {
  47. try {
  48. /** @var SystemGroupDataServices $service */
  49. $service = app()->make(SystemGroupDataServices::class);
  50. $data = $service->getDateValue($id);
  51. if (is_object($data))
  52. $data = $data->toArray();
  53. return $data;
  54. } catch (\Exception $e) {
  55. return [];
  56. }
  57. };
  58. try {
  59. $cacheName = "data_number_{$id}";
  60. if ($isCaChe)
  61. return $callable();
  62. return CacheService::get($cacheName, $callable);
  63. } catch (\Throwable $e) {
  64. return $callable();
  65. }
  66. }
  67. }