'webman']); } /** * @Apidoc\Title("1.0 获取首页轮播图") * @Apidoc\Url("Apiv1/get_carousel") * @Apidoc\Method("POST") */ public function get_carousel(Request $request) { // return json(['code' => 0, 'msg' => 'ok']); $res['carousel'] = Carousel::all(); $res['carouselad'] = Carouselad::all(); return ApiResponse::success(200, $res); } /** * @Apidoc\Title("1.0 获取所有项目") * @Apidoc\Url("Apiv1/get_project") * @Apidoc\Method("POST") */ public function get_project(Request $request) { //志愿者人数 // $tmp=Project::all(); // foreach($tmp as $k=>$v){ // $res_volunteer=ProjectRegister::where('projectid',$v->id)->where('type',0)->count(); // //被服务者人数 // $res_servants=ProjectRegister::where('projectid',$v->id)->where('type',1)->count(); // $ProjectDetailed = ProjectDetailed::where('projectid',$v->id)->first(); // $data = array( // "id" => $v->id, // "created_at" => $v->created_at, // "updated_at" => $v->updated_at, // "img" => $v->img, // "start_time" => $v->start_time, // "end_time" => $v->end_time, // "address" => $v->address, // "title" => $v->title, // "type" => $v->type, // "volunteer_max"=>$ProjectDetailed->recruitingpersonnel, // "servants_max"=>$ProjectDetailed->registerserve, // "volunteer"=>$res_volunteer, // "servants"=>$res_servants // ); // $res[]=$data; // } /** * ?优化 */ $res = Db::table('project') ->leftJoin('project_register as pr', 'project.id', '=', 'pr.projectid') ->leftJoin('project_detailed as pd', 'project.id', '=', 'pd.projectid') ->select( 'project.*', 'pd.recruitingpersonnel', 'pd.registerserve', Db::raw('COUNT(CASE WHEN pr.type = 0 THEN 1 END) as volunteer'), Db::raw('COUNT(CASE WHEN pr.type = 1 THEN 1 END) as servants') ) ->groupBy('project.id') ->orderBy('project.id', 'DESC') ->get(); // 转换为期望的数据结构 foreach ($res as &$v) { $v->volunteer_max = $v->recruitingpersonnel; $v->servants_max = $v->registerserve; unset($v->recruitingpersonnel, $v->registerserve); // 清理不需要的字段 } return ApiResponse::success(200, $res); } /** * @Apidoc\Title("1.0 获取项目详细信息根据id") * @Apidoc\Url("Apiv1/get_projectdetailed") * @Apidoc\Method("POST") * @Apidoc\Query("projectid", type="int",require=true, desc="项目id",default="1") * @Apidoc\Returned("projectdetailed", type="string", desc="项目详细信息") */ public function get_projectdetailed(Request $request) { $data = $request->post(); $res['project'] = Project::where('id', $data['projectid'])->first(); $res['projectdetailed'] = ProjectDetailed::where('projectid', $data['projectid'])->first(); //志愿者人数 $res_volunteer = ProjectRegister::where('projectid', $data['projectid'])->where('type', 0)->count(); //被服务者人数 $res_servants = ProjectRegister::where('projectid', $data['projectid'])->where('type', 1)->count(); $res['projectRegister'] = ProjectRegister::where('projectid', $data['projectid'])->get(); $res['volunteer'] = $res_volunteer; $res['servants'] = $res_servants; $res['volunteer_max'] = $res['projectdetailed']->recruitingpersonnel; $res['servants_max'] = $res['projectdetailed']->registerserve; return ApiResponse::success(200, $res); } /** * @Apidoc\Title("1.0 获取所有养老机构") * @Apidoc\Url("Apiv1/get_mechanism_list") * @Apidoc\Method("POST") */ public function get_mechanism_list(Request $request) { $res = Mechanism::all(); return ApiResponse::success(200, $res); } /** * @Apidoc\Title("1.0 获取养老机构详细信息") * @Apidoc\Url("Apiv1/get_mechanism") * @Apidoc\Query("mechanism", type="int",require=true, desc="养老机构id",default="1") * @Apidoc\Method("POST") */ public function get_mechanism(Request $request) { $data = $request->post(); $res = Mechanism::where('id', $data['id'])->get(); return ApiResponse::success(200, $res); } }