123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- <?php
- namespace Modules\Manager\Http\Controllers;
- use App\Handlers\UploadFilesHandler;
- use Illuminate\Http\Request;
- use Dingo\Api\Routing\Helpers;
- use App\Http\Controllers\Controller;
- use App\Models\CompanyAudio;
- use Illuminate\Support\Facades\Auth;
- use getID3;
- class CompanyAudioController extends Controller
- {
- //
- use Helpers;
- /****
- * BaseController constructor.
- */
- public function __construct()
- {
- }
- //列表
- public function list(Request $request){
- $page_index=$request->input('page_index');
- $page_size=$request->input('page_size');
- $search_name=$request->input('search_name');
- $num=$page_size*($page_index-1);
- $status=$request->input('status');
- $data=CompanyAudio::query();
- if($status != 'all'){
- $data->where('status',$status);
- }
- if($search_name){
- $data->where('title','%'.$search_name.'%');
- }
- $count=$data->count();
- $list=$data->orderByDesc('rank')->orderByDesc('created_at')
- ->skip($num)->take($page_size)->get();
- return $this->success_list($list,'成功',$count);
- }
- //添加
- public function add(Request $request){
- $title=$request->input('title');
- $url=$request->input('url');
- $rank=$request->input('rank');
- $status=$request->input('status');
- $audio_url=$request->input('audio_url');
- $duration=$this->getTime($audio_url);
- $res=CompanyAudio::create([
- 'title'=>$title,
- 'url'=>$url,
- 'rank'=>$rank,
- 'audio_url'=>$audio_url,
- 'status'=>$status,
- 'op_name'=>Auth::user()->name,
- 'duration'=>$duration
- ]);
- if($res){
- return $this->success([]);
- }
- return $this->error();
- }
- //修改
- public function edit(Request $request){
- $id=$request->input('id');
- $title=$request->input('title');
- $url=$request->input('url');
- $rank=$request->input('rank');
- $status=$request->input('status');
- $audio_url=$request->input('audio_url');
- $duration=$this->getTime($audio_url);
- $res=CompanyAudio::where('id',$id)->update([
- 'title'=>$title,
- 'url'=>$url,
- 'rank'=>$rank,
- 'audio_url'=>$audio_url,
- 'status'=>$status,
- 'op_name'=>Auth::user()->name,
- 'duration'=>$duration
- ]);
- if($res){
- return $this->success([]);
- }
- return $this->error();
- }
- //删除
- public function delete(Request $request){
- $id=$request->input('id');
- $res=CompanyAudio::where('id',$id)->delete();
- if($res){
- return $this->success([]);
- }
- return $this->error();
- }
- //上传文件
- public function uploadFile(Request $request){
- $type=$request->input('type');
- $file= $request->file('file');
- if($type=='img'){
- $path_url='company_audio/image';
- $t="image";
- }else{
- $path_url='company_audio/audio';
- $t="audio";
- }
- $upload= new UploadFilesHandler();
- $result= $upload->save($file, $path_url, null, $t);
- if($result){
- return $this->success($result['path']);
- }
- return $this->error();
- // $type=$request->input('type');
- // if($type=='img'){
- // $path_url='company/image';
- // }else{
- // $path_url='company/audio';
- // }
- // $path = $request->file('file')->store($path_url);
- // $url = Storage::url($path);
- // if($url){
- // return $this->success($url);
- // }
- // return $this->error();
- }
- //详情
- public function detail(Request $request){
- $id=$request->input('id');
- $info=CompanyAudio::where('id',$id)->first();
- return $this->success($info);
- }
- //获取音频时长
- public function getTime($url){
- $getID3 = new getID3;
- $pathinfo=explode("storage/",$url);
- $fileUrl=storage_path('app/public/'.$pathinfo[1]);
- $ThisFileInfo = $getID3->analyze($fileUrl);
- // $fileduration = $ThisFileInfo['playtime_seconds']; //这个获得的便是音频文件的时长(秒)
- // $playtime_string = $ThisFileInfo['playtime_string']; //这个获得的便是音频文件的时长(分)
- if(array_key_exists('playtime_string',$ThisFileInfo)){
- return $ThisFileInfo['playtime_string'];
- }else{
- return 0;
- }
- }
- //客户端音频列表
- public function audio_list(Request $request){
- $page_index=$request->input('page_index');
- $page_size=$request->input('page_size');
- $num=$page_size*($page_index-1);
- $data=CompanyAudio::query()->where('status',1);
- $count=$data->count();
- $list=$data->orderByDesc('rank')->orderByDesc('created_at')
- ->skip($num)->take($page_size)->get();
- return $this->success_list($list,'成功',$count);
- }
- }
|