repository) $this->repository = $repository; } /** * 列表页 */ function index(Request $request) { $user_id = \Auth::guard('admin')->user()->id; $search = $request->all(); $search['keyword'] = $request->input('keyword'); if(is_numeric($search['keyword'])){ $list = UserThreadsModel::whereHas('contact', function ($query) use ($search) { $query->where('phone', 'like', '%' . $search['keyword'] . '%'); })->where('ower_id',$user_id)->orderBy('updated_at','desc'); }else{ $list = UserThreadsModel::whereHas('company', function ($query) use ($search) { $query->where('companyName', 'like', '%' . $search['keyword'] . '%') ->orWhere('regNo', 'like', '%' . $search['keyword'] . '%'); })->where('ower_id',$user_id)->orderBy('updated_at','desc'); } if(isset($search['process']) && $search['process'] ==1 ){ $list = $list->has('progress'); } if(isset($search['process']) && $search['process'] == 2){ $list = $list->has('progress','=',0); } $list = $list->paginate(20); if ($request->ajax()) { $view = view('admin.user.threads.data', compact('list'))->render(); return response()->json(['html' => $view]); } return view('admin.user.threads.index', compact('list')); } /** * 添加线索 */ public function create(Request $request) { $data['ower_id'] = \Auth::guard('admin')->user()->id; $data['company_id'] = $request->get('company_id'); $data['contact_id'] = $request->get('contact_id'); $data['status'] = 0; $res = $this->repository->create($data); /*添加初始化跟进备注*/ if($request->get('remark')){ ThreadsProgressModel::create(['threads_id'=>$res->id,'remark'=>$request->get('remark')]); } if ($res) { $url[] = array('url' => U('User/Threads/index'), 'title' => '我的线索'); $this->showMessage('添加成功', $url); } else { $url[] = array('url' => U('User/Threads/index'), 'title' => '我的线索'); return $this->showWarning('添加失败', $url); } } /** * 添加线索跟进 */ public function update(Request $request) { if ($request->method() == 'POST') { return $this->_updateSave(); } $data = $this->repository->find($request->get('id')); $progress = $data->progress()->orderBy('id', 'desc')->get(); return view('admin.user.threads.edit', compact('data', 'progress')); } /** * 保存修改 */ private function _updateSave() { $data = (array)request('data'); ThreadsProgressModel::create($data); $progress = ThreadsProgressModel::where('threads_id', $data['threads_id'])->orderBy('id', 'desc')->get(); $view = view('admin.user.threads.progress', compact('progress'))->render(); return response()->json(['html' => $view]); } public function view(Request $request) { $data = $this->repository->find(request('id')); return view('admin.user.threads.view', compact('data')); } /** * 删除 */ public function destroy(Request $request) { $bool = $this->repository->destroy($request->get('id')); if ($bool) { return $this->showMessage('操作成功'); } else { return $this->showWarning("操作失败"); } } /* * 添加到AI电话拨打列表 * */ public function addCallList(Request $request){ $thread_ids = $request->get('contact_ids'); foreach ($thread_ids as $thread_id){ $thread = $this->repository->find($thread_id); if($thread->contact()->count()){ $phone = $thread->contact->phone; $hasAdd = CallListModel::where('phone',$phone)->where('sync',0)->count(); if(!$hasAdd){ CallListModel::create(['phone'=>$phone,'sync'=>0]); ThreadsProgressModel::create(['threads_id'=>$thread->id,'remark'=>'添加到AI电话列表']); } } } return 200; } /*** * 导出我的线索 * @param Request $request * @return int|\Symfony\Component\HttpFoundation\BinaryFileResponse */ public function export_threads(Request $request){ $type = $request->get('type'); if($type){ return 200; } $thread_ids = $request->get('threads_ids'); \Log::info($thread_ids); $threads = UserThreadsModel::whereIn('id',$thread_ids)->get(); $objPHPExcel = new \PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //5.设置表格头(即excel表格的第一行) $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '联系方式') ->setCellValue('B1', '线索拥有者') ->setCellValue('C1', '企业名字') ->setCellValue('D1', '企业网站') ->setCellValue('E1', '注册资本(万)') ->setCellValue('F1', '最新跟进') ->setCellValue('G1', '领取时间'); foreach ($threads as $key=> $item){ $contact = $item->contact?$item->contact->phone:'暂无联系人信息'; $ower_name = $item->ower->real_name; $companyName = $item->company->companyName; $companyWebsite = $item->company->website; $regCapital = $item->company->regCapital; $lastest = $item->latestProgress(); $created_at = $item->created_at; $objPHPExcel->getActiveSheet()->setCellValue('A'.($key+2),$contact); $objPHPExcel->getActiveSheet()->setCellValue('B'.($key+2),$ower_name); $objPHPExcel->getActiveSheet()->setCellValue('C'.($key+2),$companyName); $objPHPExcel->getActiveSheet()->setCellValue('D'.($key+2),$companyWebsite); $objPHPExcel->getActiveSheet()->setCellValue('E'.($key+2),$regCapital); $objPHPExcel->getActiveSheet()->setCellValue('F'.($key+2),$lastest); $objPHPExcel->getActiveSheet()->setCellValue('G'.($key+2),$created_at); } //7.设置保存的Excel表格名称 $filename = '我的线索'.date('ymd',time()).'.xls'; //8.设置当前激活的sheet表格名称; $objPHPExcel->getActiveSheet()->setTitle('我的线索'); //9.设置浏览器窗口下载表格 header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="'.$filename.'"'); //生成excel文件 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //下载文件在浏览器窗口 $objWriter->save('php://output'); exit; //return Excel::download(new ThreadsExport($threads),'我的线索.xlsx'); } }