getUser(); // 关注的梦想 $arr = $user->UserCareDream; // $arr = UserInfoModel::where('id',$user->id)->whereHas('UserCareDream', function ($query) { // $query->where('interaction_number', '>', 0); // })->get(); $users = [] ; $arr1 = []; foreach ($arr as $k => $v){ if ($v->pivot->interaction_number > 0) { if (!array_key_exists($v->pivot->dream_user_id,$arr1)) { $arr1[$v->pivot->dream_user_id] = $v->pivot->interaction_number; }else{ $arr1[$v->pivot->dream_user_id] += $v->pivot->interaction_number; } } } foreach ($arr1 as $k => $v){ $a = UserInfoModel::find($k); $users[$k] =[$a->allInteraction,$a->pic,$v] ; } $type = $request->type; if ($type == 'trend') { $dreams = DreamInfoModel::orderBy('score','desc')->offset(20)->limit(100)->paginate(20); return $this->api(compact('users','dreams')); } elseif ($type == 'news') { $dreams = DreamInfoModel::orderBy('score','desc')->offset(100)->limit(500)->paginate(20); return $this->api(compact('users','dreams')); } else{ $banner = $this->getBanner(); // 获取其他用户信息 及梦想 $dreams = DreamInfoModel::orderBy('score','desc')->limit(20)->paginate(20); return $this->api(compact('banner','users','dreams')); } } /** * @api {get} /api/index/search 搜索(search) * @apiDescription 搜索(search) * @apiGroup Index * @apiPermission none * @apiVersion 0.1.0 * @apiParam {string} keyword 关键字可选 (ha) * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * get *{ * "status": true, * "status_code": 0, * "message": "", * "data": { * "arr": { // 热门搜索 * ... * }, * "data1": [ * { * "search": "ha", // 历史搜索 * } * ] * } *} * post * { * "status": true, * "status_code": 0, * "message": "", * "data": { * "data1": [ * ... //用户 * ], * "data2": [ * ... //梦想 * ], * "data3": [ * ... //标签 * ] * } *} * @apiErrorExample {json} Error-Response: * HTTP/1.1 400 Bad Request */ public function search(Request $request) { $user = $this->getUser(); $keyword ='%'.$request->keyword.'%'; $data1 = UserInfoModel::where('nickname','like',$keyword)->get(); $data2 = DreamInfoModel::where('dream','like',$keyword)-> orWhere('sign','like',$keyword)->get(); $data3 = BaseSettingsModel::where('category','sign')->where('value','like',$keyword)->get(); if (empty($request->keyword)) { // 历史搜索 $data1 = $user->search()->orderBy('id','desc')->limit(10)->get(); // 热门搜索 $data2 = SearchInfoModel::get(); $arr = []; foreach ($data2 as $k => $v) { if (count($arr) == 8) { break; } if (!array_key_exists($v->search,$arr)) { $arr[$v->search] = $v->times; }else{ $arr[$v->search] += $v->times; } } arsort($arr); return $this->api(compact('arr','data1')); } // 写入搜索记录 $this->insertSearchTable($user->id,$request->keyword); return $this->api(compact('data1','data2','data3')); } /** * @api {get} /api/index/user_search 用户搜索(search) * @apiDescription 用户搜索(search) * @apiGroup Index * @apiPermission none * @apiVersion 0.1.0 * @apiParam {string} keyword 关键字 * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK *{ * "status": true, * "status_code": 0, * "message": "", * "data": { * "data1": [ * "nickname": "ha", 昵称 * "pic": "", 头像 * ... * ] * } *} * @apiErrorExample {json} Error-Response: * HTTP/1.1 400 Bad Request */ public function userSearch(Request $request) { $user = $this->getUser(); if (empty($request->keyword)) { return $this->api(''); } $keyword ='%'.$request->keyword.'%'; $data1 = UserInfoModel::where('nickname','like',$keyword)->get(); $this->insertSearchTable($user->id,$request->keyword); return $this->api(compact('data1')); } /** * @api {get} /api/index/dream_search 梦想搜索(search) * @apiDescription 梦想搜索(search) * @apiGroup Index * @apiPermission none * @apiVersion 0.1.0 * @apiParam {string} keyword 关键字 * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK *{ * "status": true, * "status_code": 0, * "message": "", * "data": { * "data": [ * { * "dream": "haha", 梦想名 * "user_pic": [ * { * "pic": "", 用户头像 * } * ], * "dream_img": "", 梦想图片 * } * ] * } *} * @apiErrorExample {json} Error-Response: * HTTP/1.1 400 Bad Request */ public function dreamSearch(Request $request) { $user = $this->getUser(); if (empty($request->keyword)) { return $this->api(''); } $keyword ='%'.$request->keyword.'%'; $data = DreamInfoModel::where('dream','like',$keyword)-> orWhere('sign','like',$keyword)->get(); foreach ($data as $k => $value) { $value->user_pic = $value->dreamFindUser; $value->dream_img = $value->dreamImgsFirst->pic; } $this->insertSearchTable($user->id,$request->keyword); return $this->api(compact('data')); } //获取轮播图 public function getBanner() { $banner = BaseSettingsModel::where(['category' => 'banner'])->where(['status' => '1']) ->orderBy('sort')->get()->toArray(); return $banner; } // 完善梦想信息 public function dreams($dreams) { foreach ($dreams as $k => $dream) { $dream->dream_user = $dream->dreamUser; // 计算被关注总人数 $user_id = $dream->user_id; $data = UserCareUser::where('other_user_id',$user_id)->get(); $dream->care_num = count($data); $dream->dream_imgs_first = $dream->dreamImgsFirst?$dream->dreamImgsFirst->pic:''; // 梦想详情 detailed 图片 ,评论 ,回复 $arr = [] ; $arr['dream_imgs'] = $dream->dreamImgs; $arr['comments'] = $dream->DreamInfo; foreach ( $arr['comments'] as $k => $v){ $v->pic = UserInfoModel::find($v->user_id)->pic; $v->replay = $v->replay; foreach ($v->replay as $k1 => $v1){ $v1->pic = UserInfoModel::find($v1->user_id)->pic; } } $dream->dream_detailed = $arr; } } // 查看关注用户的最新动态 /** * @api {get} /api/index/news_info 关注用户动态详情 * @apiDescription 关注用户动态详情 * @apiGroup Index * @apiPermission none * @apiVersion 0.1.0 * @apiParam {int} id 被点击用户ID * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK *{ * "status": true, * "status_code": 0, * "message": "", * "data": [ * { * "id": 1, * "dream_id": 2, * "title": "梦想动态有力来了", * "pic1": "http\"//www.baidu.com", * "pic2": "", * "pic3": "", * "pic4": "", * "pic5": "", * "pic6": "", * "pic7": "", * "pic8": "", * "pic9": "", * "status": 1, * "created_at": "2017-06-22 21:09:14", * "updated_at": "2017-06-22 21:09:14", * "deleted_at": null, * "user_id": 2, * "comments": [ * { * "interaction_id": 1, * "user_id": 2, * "level": 0, * "content": "EST评论", * "updated_at": null, * "pic": "http://www.wsfjq.com/photos/bd119684755.jpg", * "replay": [ * { * "user_id": 2, * "level": 0, * "content": "拉了", * "updated_at": null, * "pic": "http://www.wsfjq.com/photos/bd119684755.jpg" * }, * { * "user_id": 3, * "level": 0, * "content": "userid3回复了你的消息", * "updated_at": null, * "pic": "http://www.wsfjq.com/photos/bd119684755.jpg" * } * ] * }, * { * "interaction_id": 1, * "user_id": 6, * "level": 0, * "content": "梦想ID1的第二条评论", * "updated_at": null, * "pic": "http://www.wsfjq.com/photos/bd119684755.jpg", * "replay": [ * { * "user_id": 2, * "level": 0, * "content": "回复评论", * "updated_at": null, * "pic": "http://www.wsfjq.com/photos/bd119684755.jpg" * } * ] * } * ] * }, * ] *} * @apiErrorExample {json} Error-Response: * HTTP/1.1 400 Bad Request */ public function newsInfo(Request $request) { // 查看后user_care_user dream_info 更新为零 首页不再显示 $user = $this->getUser(); $other_id = $request->id; if (empty($other_id)) return $this->error(ErrorCode::MEMBER_NOT_EXIST); UserCareDream::where('user_id',$user->id)->where('dream_user_id',$other_id)->update(['interaction_number'=>0]); $data = UserInfoModel::find($other_id)->allInteraction; foreach ($data as $item) { $item->comments = $item->comments; foreach ($item->comments as $k => $v) { $v->pic = UserInfoModel::find($v->user_id)->pic; $v->replay = $v->replay; foreach ($v->replay as $k1 => $v1) { $v1->pic = UserInfoModel::find($v1->user_id)->pic; } } } return $this->api($data); } public function insertSearchTable($id,$keyword) { $info = SearchInfoModel::where('user_id',$id)-> where('search',trim($keyword))->first(); if (count($info) == 0) { SearchInfoModel::create(['user_id'=>$id,'search'=>trim($keyword),'times'=>1]); }else{ $info->times += 1; $info->save(); } } }