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); } $allIds = $list->pluck('id'); $list = $list->paginate(10); if ($request->ajax()) { $view = view('admin.user.threads.data', compact('list','allIds'))->render(); return response()->json(['html' => $view]); } return view('admin.user.threads.index', compact('list','allIds')); } /** * 添加线索 */ 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'); $ip = $request->get('ip'); 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,'ip'=>$ip]); 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(); return Excel::download(new ThreadsExport($threads),'我的线索.xlsx'); } }