123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?php
- namespace App\Http\Controllers\Api\Base;
- use App\Http\Controllers\Controller;
- use App\Repositories\Enums\ResponseCodeEnum;
- use App\Repositories\Models\Base\Resource;
- use App\Repositories\Models\Base\Setting;
- use Illuminate\Http\Request;
- use Jiannei\Response\Laravel\Support\Facades\Response;
- use Prettus\Validator\Contracts\ValidatorInterface;
- use App\Contracts\Repositories\Base\SettingRepository;
- use App\Repositories\Validators\Base\SettingValidator;
- class SettingsController extends Controller
- {
-
- protected $repository;
-
- protected $validator;
-
- public function __construct(SettingRepository $repository, SettingValidator $validator)
- {
- parent::__construct();
- $this->repository = $repository;
- $this->validator = $validator;
- }
-
- public function tree()
- {
- $departments = $this->repository->orderByDesc('sort')->get()->append('parent_name')->toArray();
- return Response::success(toTree($departments));
- }
-
- public function setting(Request $request)
- {
- $this->validate($request, ['key' => 'required']);
- $key = $request->get('key');
- $setting = Setting::query()->where('key', strtoupper($key))->first();
- return Response::success($setting);
- }
-
- public function settings(Request $request)
- {
- $this->validate($request, ['keys' => 'required']);
- $keys = str2arr($request->get('keys'));
- $settings = Setting::query()->whereIn('key', $keys)->get();
- $data = [];
- foreach ($settings as $setting) {
- switch ($setting->type) {
- case 0:
- $data[$setting['key']] = $setting->body;
- break;
- case 1:
- $data[$setting['key']] = Resource::query()->where('id', $setting->body)->select(['url', 'path'])->first();
- break;
- }
- }
- return Response::success($data);
- }
- }
|