李帅

1.临境新增字段。

......@@ -4,6 +4,7 @@ namespace App\Http\Controllers\V1;
use App\Http\Controllers\Controller;
use App\Models\Immerse;
use App\Models\OnePoem;
use App\Models\PackPoem;
use Illuminate\Http\Request;
use Jiannei\Response\Laravel\Support\Facades\Response;
......@@ -69,4 +70,13 @@ class HomeController extends Controller
return Response::success($packpoems);
}
public function poem($id)
{
try{
return Response::success(OnePoem::query()->find($id));
}catch (\Exception $exception){
return Response::fail($exception->getMessage());
}
}
}
......
......@@ -101,6 +101,38 @@ class SettingController extends Controller
]);
}
public function uploadAudio(Request $request)
{
$validator = Validator::make($request->all(),[
'audio' => 'required|mimes:aac,mp3,wav,m4a,amr'
]);
if ($validator->fails()){
return Response::fail('',500,$validator->errors());
}
$hashName = $request->file('audio')->hashName();
$hash_hex = md5($hashName);
// 16进制表示的字符串一共32字节,表示16个二进制字节。
// 前16个字符用来第一级求摸,后16个用做第二级
$hash_hex_l1 = substr($hash_hex, 0, 8);
$hash_hex_l2 = substr($hash_hex, 8, 8);
$dir_l1 = hexdec($hash_hex_l1) % 256;
$dir_l2 = hexdec($hash_hex_l2) % 512;
$dir = 'uploads/'. $dir_l1. '/' . $dir_l2;
if( !Storage::disk('public')->exists($dir)) Storage::disk('public')->makeDirectory($dir);
$file = $request->file('audio')->store($dir,'public');
return Response::success([
'relative_path' => $file,
'absolute_path' => Storage::disk('public')->url($file),
]);
}
public function protocol()
{
......
......@@ -46,6 +46,13 @@ class Immerse extends Model
return Storage::disk('public')->url($url);
}
public function getHuangliAttribute($huangli)
{
if ($huangli == null) return '';
return $huangli;
}
public function poem()
{
return $this->hasOne(OnePoem::class,'id','poem_id');
......
......@@ -45,6 +45,9 @@ Route::prefix('v1')->namespace('App\Http\Controllers\V1')->group(function (Route
/** 视频上传 */
$api->post('/upload/video', 'SettingController@uploadVideo');
/** 音频上传 */
$api->post('/upload/audio', 'SettingController@uploadAudio');
/** 会员页 */
$api->get('/membership', 'MembershipController@index');
});
......@@ -73,6 +76,9 @@ Route::prefix('v1')->namespace('App\Http\Controllers\V1')->middleware('auth:sanc
/** 作品详情 */
$api->delete('/my/videos/{id}', 'UserController@deleteVideo');
/** 查询一言 */
$api->get('/poem/{id}', 'HomeController@poem');
/** 临境 */
$api->apiResource('/immersive', 'ImmerseController');
......