补充接口

main
liutk 2024-05-21 10:36:15 +08:00
parent f4e380739d
commit 9d0da4ea96
6 changed files with 87 additions and 5 deletions

View File

@ -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);
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Arr;
use App\Http\Requests\SettingRequest;
class SettingController extends ApiController
{
public function info(SettingRequest $request)
{
$key = $request->input('key', null);
return $this->success([$key=> settings()->get($key)]);
}
}

View File

@ -0,0 +1,44 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Contracts\Validation\Validator;
class SettingRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'key' => '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]]));
}
}

View File

@ -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,
];
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -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(){