ConfigService.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Services\Common;
  3. use App\Repositories\ConfigTypeRepository;
  4. /**
  5. * 系统配置
  6. * Class ConfigService
  7. * @package App\Services\Common
  8. * Auth Zhong
  9. * Date 2018/11/6
  10. */
  11. class ConfigService
  12. {
  13. /**
  14. * @var ConfigTypeRepository
  15. */
  16. protected $configTypeRepository;
  17. /**
  18. * ConfigService constructor.
  19. * @param ConfigTypeRepository $configTypeRepository
  20. */
  21. public function __construct(ConfigTypeRepository $configTypeRepository)
  22. {
  23. $this->configTypeRepository = $configTypeRepository;
  24. }
  25. public function getConfigs()
  26. {
  27. $types=$this->configTypeRepository->getParents();
  28. $configs=[];
  29. foreach ($types as $type) {
  30. $configs[$type->alias]=[];
  31. foreach ($type->subTypes as $secondType) {
  32. $configs[$type->alias][$secondType->alias]=[];
  33. foreach ($secondType->subTypes as $thirdType) {
  34. $configs[$type->alias][$secondType->alias][$thirdType->alias]=[];
  35. foreach ($thirdType->configs as $config) {
  36. $configs[$type->alias][$secondType->alias][$thirdType->alias][$config->alias]
  37. =$config->value?:$config->default_value;
  38. }
  39. }
  40. }
  41. }
  42. return $configs;
  43. }
  44. public function getTypeParents()
  45. {
  46. return $this->configTypeRepository->getParents();
  47. }
  48. }