all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num=$page_size*($page_index-1); // $array=TravelUser::pluck('travel_id')->toArray();//报名的情况 $array=[1]; $image=TravelImageClass::where('is_deleted',0)->whereIn('travel_id',$array)->with(['get_image'=>function($q)use($array,$type){ $q->where('is_cover',1)->orderByDesc('created_at')->whereIn('travel_id',$array);//只展示用户报名的赛季 },'get_folder'=>function($q)use($array,$type){ $q->orderByDesc('created_at')->whereIn('travel_id',$array);//只展示用户报名的赛季 }])->orderByDesc('travel_id')->orderBy('img_type'); $count=$image->get()->count(); $image=$image->orderByDesc('created_at')->take($page_size)->skip($num)->get(); $re=[]; foreach ($image as $k=>$v){ if ($v->img_type==1){ $re[$k]['imgclass_name']=$v->imgclass_name; $re[$k]['created_at']=$v->created_at->toDateTimeString(); $re[$k]['count']=$v->count; $re[$k]['id']=$v->id; $re[$k]['op_name']=$v->op_name; $re[$k]['images']=$v->get_image; $re[$k]['img_type']=$v->img_type; $re[$k]['travel_id']=$v->travel_id; $re[$k]['is_old']=true; }else{ $re[$k]['imgclass_name']=$v->imgclass_name; $re[$k]['created_at']=$v->created_at->toDateTimeString(); $re[$k]['count']=$v->count; $re[$k]['id']=$v->id; $re[$k]['op_name']=$v->op_name; $re[$k]['images']=$v->get_image; $re[$k]['img_type']=$v->img_type; $re[$k]['travel_id']=$v->travel_id; $re[$k]['is_old']=true; } } return $this->success_list($re,'',$count); } /**查看所有*/ public function GetTravelImgDetail(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num=$page_size*($page_index-1); // $user_id=Auth::user()->id; // $res=TravelUser::where('dwbs_id',$user_id)->first(); // if (!$res){ // return $this->error('500214','','你没有权限查看'); // } // $ids=Like::where('user_id',Auth::user()->id)->where('activity_id',$request->activity_id)->pluck('image_id')->toArray(); $images=TravelImage::where('class_id',$request->id); $count=$images->get()->count(); $images=$images->orderByDesc('id')->take($page_size)->skip($num)->get(); return $this->success_list($images,'',$count); } public function get_folder(Request $request){ $id=$request->input('id',1); $type=$request->input('type')??0; if ($type==0){ $re=TravelImageFolder::where('travel_id',$id)->orderBy('sort')->OrderBy('id','desc')->get(); foreach ($re as $k=>$v){ if ($v->cover){ $re[$k]['cover']=['thumbnail'=>$v->cover]; }else{ $re[$k]['cover']=null; } // $re[$k]['cover']=TravelImage::where('img_folder_id',$v->id)->orderByDesc('created_at')->first(); } }else{ $re=TravelImage::where('travel_id',$id)->where('img_type',1)->get(); } return $this->success_list($re); } public function get_img_detail(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num=$page_size*($page_index-1); $id=$request->input('id'); $images=TravelImage::where('img_folder_id',$id); $count=$images->get()->count(); $re=$images->orderByDesc('id')->take($page_size)->skip($num)->get(); // foreach ($re as $k=>$v){ // $re[$k]->img_url=$re[$k]->img_url.'?imageView2/0/q/20'; //// $re[$k]->img_url=$re[$k]->img_url.'?imageMogr2/thumbnail/999999@'; //// $re[$k]->img_url=$re[$k]->img_url.'?imageMogr2/thumbnail/!40p'; // } return $this->success_list($re,'',$count); } /* * 获取openid */ public function getUserOpenid($Code){ $client=new Client(); $AppId=config('wechat.official_account.default.app_id'); $Secret=config('wechat.official_account.default.secret'); $url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$AppId.'&secret='.$Secret.'&code='.$Code.'&grant_type=authorization_code'; $data=$client->request('get',$url); $da=$data->getBody()->getContents(); $da=json_decode($da,true); $da=(array)$da; return $da; } public function wx_Login(Request $request){ $Code=$request->code; $data=$this->getUserOpenid($Code); if(isset($data['openid'])){ $user=User::where('openid',$data['openid'])->first(); if($user){ $id=TravelUser::where('id','>',0)->pluck('dwbs_id')->toArray(); if (!in_array($user->id,$id)){ return $this->error(500214,'','你没有权限访问!'); } $token = Auth::guard('api')->fromUser($user); $da['token'] = $token; $da['openid'] = $data['openid']; return $this->success($da); } return $this->error(450001,'','请先登录个人中心'); }else{ return $this->error(450001,$data,'你没有权限访问'); } } /***账号密码登录**/ public function Login(Request $request){ $mobile=$request->input('mobile'); $password=$request->input('password'); $user=User::where('mobile',$mobile)->first(); if (!$user){ return $this->error(50014,'','账号不存在'); } if (!$password){ return $this->error(500014,'','账号密码不正确'); } if ($user->password!=md5($password)){ return $this->error(500014,'','账号密码不正确'); } $token=Auth::guard('api')->fromUser($user); return $this->success(['token'=>$token]); } public function travel(){ return view('travel'); } /**获取每次活动的相册**/ public function GetTravelList(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num=$page_size*($page_index-1); $search_name=$input['search_name']; $re=TravelInfo::query(); $id=Auth::user()->id; $travel_id=TravelUser::where('dwbs_id',$id)->pluck('travel_id'); if ($search_name){ $re->where('travel_name','like',"%$search_name%"); } $re->whereIn('id',$travel_id); $count=$re->count(); $data=$re->select('travel_name','id','time_start','time_end','cover_url') ->with(['get_img'=>function($q){ $q->select('thumbnail','id','travel_id')->orderBy('id'); }])->orderByDesc('id')->take($page_size)->skip($num)->get()->map(function ($item) { $item->setRelation('get_img', $item->get_img->take(10)); return $item; });; return $this->success_list($data,'',$count); } /**上传相片**/ public function UploadImg(Request $request,ImageUploadHandler $handler){ $travel_id=$request->input('travel_id'); if (!$request->file('file')){ return $this->error(50214,'','请使用正确的参数'); } $re=$handler->save($request->file('file'),'headImg',Auth::user()->id); if (isset($re['path'])){ $res=$this->GetFaceInfo($travel_id,$re['path']); if (isset($res['group_id'])){ $face=TravelUser::where('dwbs_id',Auth::user()->id)->first(); $face->img_url=$re['path']; $face->group_id=$res['group_id']; $face->save(); return $this->success(['group_id'=>$res['group_id']]); } return $this->error($res['code'],'',$res['msg']); } } public function GetImg(Request $request){ $travel_id=$request->input('travel_id'); $re=TravelUser::where('travel_id',$travel_id)->where('dwbs_id',Auth::user()->id)->first(); $avatar=''; $group_id=''; $user=['nickname'=>Auth::user()->remark_name,'avatar'=>Auth::user()->headimgurl,'mobile'=>Auth::user()->mobile]; if ($re){ if (is_numeric($re->group_id)){ return $this->success(['url'=>$re->img_url,'group_id'=>$re->group_id,'user'=>$user]); } } return $this->success(['url'=>$avatar,'group_id'=>$group_id,'user'=>$user]); } public function GetUserImage(Request $request){ $page_index=$request->input('page_index'); $page_size=$request->input('page_size'); $group_id=$request->input('group_id'); $travel_id=$request->input('travel_id'); $ids=TravelFaceInfo::where('groupid',$group_id)->where('travel_id',$travel_id)->groupBy('img_id')->pluck('img_id'); $count=count($ids); $re=TravelImage::whereIn('id',$ids)->select('id','url','download_url','file_name','thumbnail','img_url','url')->take($page_size)->skip(($page_index-1)*$page_size)->orderBy('id')->get(); return $this->success_list($re,'',$count); } public function GetFaceInfo($travel_id,$url_img){ try { $re=TravelFaceName::where('travel_id',$travel_id)->first(); $msg='成功'; $code=200; if (!$re){ $msg='暂未开启相册聚类'; $code=3000; return ['msg'=>$msg,'code'=>$code]; } $facename=$re->face_name; $appkey=config('faceplus.api_key'); $appsecret=config('faceplus.api_secret'); $url='https://api-cn.faceplusplus.com/imagepp/v1/facealbum/addimage'; $client=new Client(); $array = [ 'form_params'=>[ 'api_secret'=>$appsecret, 'api_key'=>$appkey, 'facealbum_token'=>$facename, 'image_url'=>$url_img ] ]; try { $re=$client->post($url,$array); $res=$re->getBody()->getContents(); $ress=json_decode($res,true); }catch (\Exception $exception){ $error=$exception->getMessage(); $msg='识别失败,请重新上传'; $code=30001; return ['msg'=>$msg,'code'=>$code]; } $face_token=$ress['faces'][0]['face_token']; $url1='https://api-cn.faceplusplus.com/imagepp/v1/facealbum/groupface'; $client1=new Client(); $array1 = [ 'form_params'=>[ 'api_secret'=>$appsecret, 'api_key'=>$appkey, 'facealbum_token'=>$facename, ] ]; $re1=$client1->post($url1,$array1); $res1=$re1->getBody()->getContents(); $ress1=json_decode($res1,true); $task_id=$ress1['task_id']; sleep(5); $url2='https://api-cn.faceplusplus.com/imagepp/v1/facealbum/groupfacetaskquery'; $client2=new Client(); $array2 = [ 'form_params'=>[ 'api_secret'=>$appsecret, 'api_key'=>$appkey, 'task_id'=>$task_id, ] ]; $facess=$client2->post($url2,$array2); $face=$facess->getBody()->getContents(); $faces=json_decode($face,true); if ($faces['status']==0){ sleep(4); } if ($faces['status']==1){ $url2='https://api-cn.faceplusplus.com/imagepp/v1/facealbum/groupfacetaskquery'; $client2=new Client(); $array2 = [ 'form_params'=>[ 'api_secret'=>$appsecret, 'api_key'=>$appkey, 'task_id'=>$task_id, ] ]; $facess_1=$client2->post($url2,$array2); $face_1=$facess_1->getBody()->getContents(); Log::error($face_1); $faces_1=json_decode($face_1,true); } if (!isset($faces_1['group_result'])){ $msg='分组失败,请上传新的照片'; $code=30002; } $arr=$faces_1['group_result']; foreach ($arr as $k=>$v){ $s=TravelFaceInfo::where('face_token',$v['face_token'])->first(); if ($s){ $s->groupid=$v['group_id']; } if ($v['face_token']==$face_token){ $group_id=$v['group_id']; } } return ['group_id'=>$group_id,'msg'=>$msg,'code'=>200]; }catch (\Exception $exception){ $msg='识别失败,请上传新的照片'; $code=30002; return ['msg'=>$msg,'code'=>$code]; } } public function insert(){ $data=[19646, 36704, 69201, 83389, 1013, 23732, 127981, 10225, 51726, 109918, 10192, 3131, 55725, 14109, 109466, 107231, 78743, 5081, 35072, 136398, 11086, 31070, 81680, 64487, 92428, 24676, 82898, 57233, 56973, 73958, 13361, 25, 27912, 58229, 12947, 88111, 64688]; foreach ($data as $k=>$v){ $re=new TravelUser(); $re->dwbs_id=$v; $re->travel_id=3; $re->save(); } } }