diff --git a/app/Admin/Controllers/SettingController.php b/app/Admin/Controllers/SettingController.php index 9a30057..f1b7956 100644 --- a/app/Admin/Controllers/SettingController.php +++ b/app/Admin/Controllers/SettingController.php @@ -10,9 +10,13 @@ use Slowlyo\OwlAdmin\Renderers\Alert; use Slowlyo\OwlAdmin\Renderers\InputKV; use Slowlyo\OwlAdmin\Renderers\TextControl; use Slowlyo\OwlAdmin\Controllers\AdminController; +use App\Admin\Components; +use App\Traits\UploadTrait; class SettingController extends AdminController { + use UploadTrait; + public function index() { $page = $this->basePage()->body([ @@ -41,7 +45,12 @@ class SettingController extends AdminController amis()->TextControl('oss_config.endpoint', '对象存储endpoint')->required(true)->size('lg')->visibleOn('${upload_disk == "oss"}')->remark('示例: oss-cn-shanghai.aliyuncs.com'), amis()->TextControl('oss_config.domain', '自有域名')->size('lg')->visibleOn('${upload_disk == "oss"}')->remark('填写即启用 示例: my-domain.com'), amis()->SwitchControl('oss_config.use_ssl', '开启SSL')->value(false)->visibleOn('${upload_disk == "oss"}'), - ]), + ]), + Tab::make()->title('小程序配置')->body([ + Components::make()->cropImageControl('mini_logo', '小程序logo'), + Components::make()->fuEditorControl('user_agreement', '用户协议'), + Components::make()->fuEditorControl('privacy_policy', '隐私政策'), + ]), ]) ); } @@ -50,11 +59,15 @@ class SettingController extends AdminController { $data = $request->only([ 'upload_disk', - 'oss_config' + 'oss_config', + 'mini_logo', + 'user_agreement', + 'privacy_policy' ]); //上传设置-修改env文件内配置; if(!empty($data['upload_disk'])){ + $envData = array(); $envData['FILESYSTEM_DISK'] = $data['upload_disk']; if($envData['FILESYSTEM_DISK'] == 'oss'){//如果设置为OSS驱动,则配置env变量 $envData['OSS_ACCESS_KEY_ID'] = Arr::get($data['oss_config'], 'access_key_id'); @@ -84,8 +97,11 @@ class SettingController extends AdminController $content = implode("\n", $contentArray->toArray()); \File::put($envPath, $content); } + //处理图片上传 + if(!empty($data['mini_logo'])){ + $data['mini_logo'] = $this->saveImage('mini_logo', 'settings')[0] ?? ''; + } - return settings()->adminSetMany($data); } } diff --git a/app/Http/Controllers/Api/SettingController.php b/app/Http/Controllers/Api/SettingController.php new file mode 100644 index 0000000..f12c76a --- /dev/null +++ b/app/Http/Controllers/Api/SettingController.php @@ -0,0 +1,18 @@ +input('key', null); + + return $this->success([$key=> settings()->get($key)]); + } +} \ No newline at end of file diff --git a/app/Http/Requests/SettingRequest.php b/app/Http/Requests/SettingRequest.php new file mode 100644 index 0000000..a868d83 --- /dev/null +++ b/app/Http/Requests/SettingRequest.php @@ -0,0 +1,44 @@ + 'required|string|max:100', + ]; + } + + public function messages(){ + $message = [ + 'key.required' => 'key必填', + ]; + return $message; + } + + protected function failedValidation(Validator $validator){ + $error = $validator->errors()->all(); + throw new HttpResponseException(response()->json(['data' => null, 'code' => 400, 'message' => $error[0]])); + } +} diff --git a/app/Http/Resources/Api/UserResource.php b/app/Http/Resources/Api/UserResource.php index 7b40d5b..a77de19 100644 --- a/app/Http/Resources/Api/UserResource.php +++ b/app/Http/Resources/Api/UserResource.php @@ -4,6 +4,7 @@ namespace App\Http\Resources\Api; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Storage; class UserResource extends JsonResource { @@ -16,9 +17,10 @@ class UserResource extends JsonResource public function toArray($request) { return [ - 'nick_name' => $this->nick_name ??'', - 'avatar' => $this->avatar ??'', + 'nick_name' => $this->nick_name ?? '微信用户', + 'avatar' => $this->avatar ?? env('APP_URL').'/default-avatar.png', 'phone' => $this->phone ??'', + 'is_need_bind_phone' => empty($this->phone) ? true:false, ]; } diff --git a/public/default-avatar.png b/public/default-avatar.png new file mode 100644 index 0000000..2c0baf1 Binary files /dev/null and b/public/default-avatar.png differ diff --git a/routes/api.php b/routes/api.php index 96819dd..73bf5de 100644 --- a/routes/api.php +++ b/routes/api.php @@ -37,6 +37,8 @@ Route::group(['prefix' => 'miniprogram', 'namespace' => 'Api\Miniprogram'], func // 绑定接口 Route::post('users/bind-phone', [App\Http\Controllers\Api\UserController::class, 'bindPhone']); + // 获取配置内容; + Route::get('config-info', [App\Http\Controllers\Api\SettingController::class, 'info']); // 已授权绑定手机号 Route::middleware([HasBindPhone::class])->group(function(){