generated from liutk/owl-admin-base
补充更新用户信息接口
parent
e6bb448140
commit
4601be715e
|
|
@ -62,7 +62,7 @@ class ActivityGameController extends ApiController
|
||||||
$res = $this->service->join($activityGame, $request->user(), $request->input('score'));
|
$res = $this->service->join($activityGame, $request->user(), $request->input('score'));
|
||||||
|
|
||||||
if($res['status']){
|
if($res['status']){
|
||||||
return $this->success(null, '参与成功');
|
return $this->success(null, '竞猜成功');
|
||||||
}else{
|
}else{
|
||||||
return $this->error($res['message']);
|
return $this->error($res['message']);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,13 @@ use Cache;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Http\Requests\CodeRequest;
|
use App\Http\Requests\CodeRequest;
|
||||||
|
use App\Http\Requests\UserInfoRequest;
|
||||||
use App\Services\Api\UserService;
|
use App\Services\Api\UserService;
|
||||||
use App\Http\Resources\Api\UserResource;
|
use App\Http\Resources\Api\UserResource;
|
||||||
use Overtrue\LaravelWeChat\EasyWeChat;
|
use Overtrue\LaravelWeChat\EasyWeChat;
|
||||||
use Illuminate\Support\Arr;
|
use Illuminate\Support\Arr;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Slowlyo\OwlAdmin\Admin;
|
||||||
|
|
||||||
class UserController extends ApiController
|
class UserController extends ApiController
|
||||||
{
|
{
|
||||||
|
|
@ -48,8 +51,100 @@ class UserController extends ApiController
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateUserInfo()
|
public function updateUserInfo(UserInfoRequest $request)
|
||||||
{
|
{
|
||||||
|
$user = $request->user();
|
||||||
|
$nickName = $request->input('nick_name');
|
||||||
|
$avatar = $request->input('avatar');
|
||||||
|
//处理头像;
|
||||||
|
$avatarName = substr( $avatar , strrpos($avatar , '/')+1);
|
||||||
|
$filePath = 'avatars/'.$avatarName;
|
||||||
|
$file = file_get_contents($avatar);
|
||||||
|
Storage::disk(Admin::config('admin.upload.disk'))->put($filePath, $file);
|
||||||
|
$avatar = Storage::disk(Admin::config('admin.upload.disk'))->url($filePath);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'avatar' => $avatar,
|
||||||
|
'nick_name' => $nickName
|
||||||
|
]);
|
||||||
|
|
||||||
|
return $this->success(null, '修改成功');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行资源上传
|
||||||
|
*/
|
||||||
|
public function uploadResource(Request $request)
|
||||||
|
{
|
||||||
|
$path = $request->input('path', 'uploads') . '/temporary/' . date('Y-m-d');
|
||||||
|
$result = [];
|
||||||
|
|
||||||
|
// file 文件
|
||||||
|
$files = $request->file();
|
||||||
|
if($files){
|
||||||
|
foreach ($files as $key => $fileData) {
|
||||||
|
$item = null;
|
||||||
|
if (is_array($fileData)) {
|
||||||
|
foreach ($fileData as $file) {
|
||||||
|
if($_save_res = $this->saveFile($path, $file)){
|
||||||
|
$file_path = Storage::disk(Admin::config('admin.upload.disk'))->url($_save_res);
|
||||||
|
}else{
|
||||||
|
$file_path = '';
|
||||||
|
}
|
||||||
|
$item[] = $file_path;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if($save_res = $this->saveFile($path, $fileData)){
|
||||||
|
$file_path = Storage::disk(Admin::config('admin.upload.disk'))->url($save_res);
|
||||||
|
}else{
|
||||||
|
$file_path = '';
|
||||||
|
}
|
||||||
|
$item = $file_path;
|
||||||
|
}
|
||||||
|
$result[$key] = $item;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$data = $request->except(['path']);
|
||||||
|
foreach ($data as $key => $files) {
|
||||||
|
$item = null;
|
||||||
|
if (is_array($files)) {
|
||||||
|
// $_stop = 0;
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$item[] = Storage::disk(Admin::config('admin.upload.disk'))->url($this->saveFile($path, $file));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$item = Storage::disk(Admin::config('admin.upload.disk'))->url($this->saveFile($path, $files));
|
||||||
|
}
|
||||||
|
$result[$key] = $item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->json($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function saveFile($path, $file = null)
|
||||||
|
{
|
||||||
|
if (gettype($file) == 'object') {
|
||||||
|
//获取文件大小
|
||||||
|
if($size = $file->getSize() > 2*1024*1024){//大于2M
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$type = $file->getClientOriginalExtension();
|
||||||
|
if (in_array($type, array('jpeg', 'jpg', 'bmp', 'png'))) {
|
||||||
|
$file = Storage::disk(Admin::config('admin.upload.disk'))->putFile($path, $file);
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)) {
|
||||||
|
$type = $result[2];
|
||||||
|
if (in_array($type, array('jpeg', 'jpg', 'bmp', 'png'))) {
|
||||||
|
$savePath = $path . '/' . uniqid() . '.' . $type;
|
||||||
|
Storage::disk(Admin::config('admin.upload.disk'))->put($savePath, base64_decode(str_replace($result[1], '', $file)));
|
||||||
|
$file = $savePath;
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $file;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Http\Exceptions\HttpResponseException;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
|
||||||
|
class UserInfoRequest 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 [
|
||||||
|
//
|
||||||
|
'avatar'=> 'required|url',
|
||||||
|
'nick_name' => 'required|max:10',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function messages(){
|
||||||
|
$messages = [
|
||||||
|
'avatar.required'=>'请选择头像',
|
||||||
|
'avatar.url'=>'头像参数错误',
|
||||||
|
'nick_name.required'=>'昵称必填',
|
||||||
|
'nick_name.max'=>'昵称长度不能超过10位',
|
||||||
|
];
|
||||||
|
return $messages;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function failedValidation(Validator $validator){
|
||||||
|
$error = $validator->errors()->all();
|
||||||
|
throw new HttpResponseException(response()->json(['data' => [], 'code' => 400, 'message' => $error[0]]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -112,7 +112,7 @@ trait UploadTrait
|
||||||
}else{
|
}else{
|
||||||
$fileValue = $file['value'];
|
$fileValue = $file['value'];
|
||||||
}
|
}
|
||||||
Storage::disk(Admin::config('admin.upload.disk'))->move($file['value'], $filePath);
|
Storage::disk(Admin::config('admin.upload.disk'))->move($fileValue, $filePath);
|
||||||
$fileArr[] = Storage::disk(Admin::config('admin.upload.disk'))->url($filePath);
|
$fileArr[] = Storage::disk(Admin::config('admin.upload.disk'))->url($filePath);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -36,13 +36,16 @@ Route::group(['prefix' => 'miniprogram', 'namespace' => 'Api\Miniprogram'], func
|
||||||
Route::get('games', [App\Http\Controllers\Api\ActivityGameController::class, 'index']);
|
Route::get('games', [App\Http\Controllers\Api\ActivityGameController::class, 'index']);
|
||||||
|
|
||||||
// 绑定接口
|
// 绑定接口
|
||||||
Route::put('users/bind-phone', [App\Http\Controllers\Api\UserController::class, 'bindPhone']);
|
Route::post('users/bind-phone', [App\Http\Controllers\Api\UserController::class, 'bindPhone']);
|
||||||
|
|
||||||
// 已授权绑定手机号
|
// 已授权绑定手机号
|
||||||
Route::middleware([HasBindPhone::class])->group(function(){
|
Route::middleware([HasBindPhone::class])->group(function(){
|
||||||
//参与竞猜
|
//参与竞猜
|
||||||
Route::post('games/{game}/join', [App\Http\Controllers\Api\ActivityGameController::class, 'joinGame']);
|
Route::post('games/{game}/join', [App\Http\Controllers\Api\ActivityGameController::class, 'joinGame']);
|
||||||
//更新资料
|
//资源上传;
|
||||||
|
Route::post('upload-avatar', [App\Http\Controllers\Api\UserController::class, 'uploadResource']);
|
||||||
|
//更新头像昵称
|
||||||
|
Route::post('user/update-info', [App\Http\Controllers\Api\UserController::class, 'updateUserInfo']);
|
||||||
//竞猜记录
|
//竞猜记录
|
||||||
//中奖记录
|
//中奖记录
|
||||||
//领奖
|
//领奖
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue