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.
- *
- * @package namespace App\Http\Controllers\Base;
- */
- class SettingsController extends Controller
- {
- /**
- * @var SettingRepository
- */
- protected $repository;
- /**
- * @var SettingValidator
- */
- protected $validator;
- /**
- * SettingsController constructor.
- *
- * @param SettingRepository $repository
- * @param SettingValidator $validator
- */
- public function __construct(SettingRepository $repository, SettingValidator $validator)
- {
- parent::__construct();
- $this->repository = $repository;
- $this->validator = $validator;
- }
- /**
- * 配置列表
- * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\Resource
- * Author: Mead
- */
- public function tree()
- {
- $departments = $this->repository->orderByDesc('sort')->get()->append('parent_name')->toArray();
- return Response::success(toTree($departments));
- }
- /**
- * 获取某个配置
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\Resource
- * Author: Mead
- */
- 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);
- }
- /**
- * 获取配置项
- * @param Request $request
- * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
- * Author: Mead
- */
- 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);
- }
- }
|