id.'">'.$city->name.''; } return response($city_options); } /*未读通知数目*/ public function unreadNotifications() { $total = Notification::where('to_user_id','=',Auth()->user()->id)->where('is_read','=',0)->count(); $response = ''; if( $total > 0 ){ if($total > 99){ $total = '99+' ; } $response = ''.$total.''; } return response($response); } public function unreadMessages() { $total = Message::where('to_user_id','=',Auth()->user()->id)->where('is_read','=',0)->where("to_deleted","<>",1)->where("from_deleted","<>",1)->count(); $response = ''; if( $total > 0 ){ if($total > 99){ $total = '99+' ; } $response = ''.$total.''; } return response($response); } public function loadTags(Request $request) { $word = $request->input('word'); $tags = []; if( strlen($word) > 10 ){ return response()->json($tags); } $type = $request->input('type','all'); if(!$word){ $tags = Taggable::hottest($type,10); }else{ $tags = Tag::where('name','like',$word.'%')->take(10)->get(); } $selectTags = []; foreach ($tags as $tag){ $selectTag = []; $selectTag['id'] = $tag->name; $selectTag['text'] = $tag->name; $selectTags[] = $selectTag; } return response()->json($selectTags); } public function loadUsers(Request $request) { $word = $request->input('word'); $users = User::where('id','<>',$request->user()->id)->where('name','like',"$word%")->take(10)->get(); $users->map(function($user){ $user->avatar = get_user_avatar($user->id); $user->coins = $user->userData->coins; $user->answers = $user->userData->answers; $user->followers = $user->userData->followers; }); return response()->json($users->toArray()); } public function loadInviteUsers(Request $request) { $questionId = $request->input('question_id',0); $question = Question::find($questionId); if(!$question){ return $this->ajaxError(10004,'notFund'); } $tags = $question->tags()->get(); $tagIds = array_pluck($tags,"id"); if(!$tagIds){ return $this->ajaxError(10004,'noData'); } $word = $request->input('word',''); if(trim($word)){ $users = User::where('id','<>',$request->user()->id)->where('name','like',"$word%")->take(10)->get(); $users->map(function($user) use($tagIds,$question) { $user->tag_name = ''; $user->tag_answers = 0; $userTag = UserTag::where("user_id","=",$user->id)->whereIn("tag_id",$tagIds)->orderBy("answers","desc")->orderBy("created_at","desc")->first(); if($userTag){ $tag = Tag::find($userTag->tag_id); if($tag){ $user->tag_name = $tag->name; } $user->tag_answers = $userTag->answers; } $user->avatar = get_user_avatar($user->id); $user->url = route('auth.space.index',['user_id'=>$user->user_id]); $user->isInvited = 0; }); }else{ $invitations = $question->invitations()->get(); $invitedUserIds = array_pluck($invitations,'user_id'); $userTags = UserTag::whereIn("tag_id",$tagIds)->whereNotIn("user_id",$invitedUserIds)->orderBy("answers","desc")->orderBy("supports","desc")->select("user_id","tag_id","answers","supports")->take(16)->groupBy("user_id")->get(); $users = []; foreach($userTags as $userTag){ $user = User::find($userTag->user_id); if(!$user){ continue; } $user->tag_name = ''; $user->tag_answers = 0; $tag = Tag::find($userTag->tag_id); if($tag){ $user->tag_name = $tag->name; } $user->tag_answers = $userTag->answers; $user->avatar = get_user_avatar($userTag->user_id); $user->url = route('auth.space.index',['user_id'=>$userTag->user_id]); $user->isInvited = 0; $users[] = $user; } } return $this->ajaxSuccess($users); } public function sendSmsCode(Request $request){ if($request->isMethod('post')){ $validateRules['code'] = 'required|captcha'; $validator = Validator::make($request->all(),$validateRules); if($validator->fails()){ return $this->ajaxError(10003,'验证码错误'); } $mobile = $request->input('mobile',''); if(!is_mobile($mobile)){ return $this->ajaxError(10004,'手机号格式码错误'); } $sendType = $request->input('send_type',''); if($request->user() && $sendType=='bind'){ //绑定手机号绑定处理 /*黑名单校验*/ if( $request->user()->status == -1 ){ return $this->ajaxError(10011,'你无权进行该操作'); } /*避免重复发送短信校验*/ if($request->user()->mobile == $mobile && $request->user()->userData->mobile_status==1){ return $this->ajaxError(10008,'您的手机号已绑定,不能重复绑定'); } /*已注册手机号校验*/ if(User::where("mobile","=",$mobile)->where("id","<>",$request->user()->id)->count() > 0){ return $this->ajaxError(10009,'该手机号已注册,不能重复绑定'); } } if( $sendType =='register' && User::where("mobile","=",$mobile)->count() > 0){ //注册发送处理 return $this->ajaxError(10011,'该手机号已注册,不能重复注册'); }else if($sendType =='findPassword' && User::where("mobile","=",$mobile)->count() == 0){ //找回密码处理 return $this->ajaxError(10011,'该手机号不存在,请核实'); } /*次数限制*/ $sendTimes = $this->counter('send_sms_counter_'.$mobile); if($sendTimes > config('tipask.sms_limit_times',10)){ return $this->ajaxError(10005,'短信验证码发送数量已超出当日最大限制,请明天再试'); } if(!SmsService::sendSmsCode($mobile)){ return $this->ajaxError(10006,'短信发送失败,请稍后再试'); } $this->counter('send_sms_counter_'.$mobile,1); return $this->ajaxSuccess("success"); } return $this->ajaxError(10007,"请求错误"); } }