GroupDataService.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. /**
  3. *
  4. * @author: xaboy<365615158@qq.com>
  5. * @day: 2018/01/15
  6. */
  7. namespace crmeb\services;
  8. use app\models\system\SystemGroupDataMerchant;
  9. class GroupDataService
  10. {
  11. /**
  12. * 获取单个组数据
  13. * @param string $config_name 配置名称
  14. * @param int $limit 获取条数
  15. * @param bool $isCaChe 是否读取缓存
  16. * @return array
  17. */
  18. public static function getGroupData(string $config_name, $limit = 0, bool $isCaChe = false, $mer_id = ''): array
  19. {
  20. $callable = function () use ($config_name, $limit) {
  21. try {
  22. $data = SystemGroupDataMerchant::getGroupData($config_name, $limit, $mer_id);
  23. if (is_object($data))
  24. $data = $data->toArray();
  25. return $data;
  26. } catch (\Exception $e) {
  27. return [];
  28. }
  29. };
  30. try {
  31. $cacheName = $limit ? "group_data_{$config_name}_{$limit}" : "data_{$config_name}";
  32. if ($isCaChe)
  33. return $callable();
  34. return CacheService::get($cacheName, $callable);
  35. } catch (\Throwable $e) {
  36. return $callable();
  37. }
  38. }
  39. /**
  40. * 获取单个值
  41. * @param string $config_name 配置名称
  42. * @param int $limit 截取多少条
  43. * @param bool $isCaChe 是否读取缓存
  44. * @return array
  45. */
  46. public static function getData(string $config_name, int $limit = 0, bool $isCaChe = false, $mer_id = ''): array
  47. {
  48. $callable = function () use ($config_name, $limit, $mer_id) {
  49. try {
  50. $data = SystemGroupDataMerchant::getAllValue($config_name, $limit, $mer_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 = $limit ? "data_{$config_name}_{$limit}" : "data_{$config_name}";
  60. if ($isCaChe)
  61. return $callable();
  62. return CacheService::get($cacheName, $callable);
  63. } catch (\Throwable $e) {
  64. return $callable();
  65. }
  66. }
  67. /**
  68. * 根据id 获取单个值
  69. * @param int $id
  70. * @param bool $isCaChe 是否读取缓存
  71. * @return array
  72. */
  73. public static function getDataNumber(int $id, bool $isCaChe = false): array
  74. {
  75. $callable = function () use ($id) {
  76. try {
  77. $data = SystemGroupDataMerchant::getDateValue($id);
  78. if (is_object($data))
  79. $data = $data->toArray();
  80. return $data;
  81. } catch (\Exception $e) {
  82. return [];
  83. }
  84. };
  85. try {
  86. $cacheName = "data_number_{$id}";
  87. if ($isCaChe)
  88. return $callable();
  89. return CacheService::get($cacheName, $callable);
  90. } catch (\Throwable $e) {
  91. return $callable();
  92. }
  93. }
  94. }