$this->userId])->whereIn('service_status','0,1,2')->where('work_status','<>',1)->count(); $result['assign_work_count'] = ServiceWork::where(['master_worker_id'=>$this->userId,'work_status'=>1])->count(); $result['pick_work_count'] = 0; $result['return_work_count'] = ReturnWork::where(['master_worker_id'=>$this->userId])->where('return_work_status','<>',2)->count(); $result['issue_work_count'] = IssueWork::where(['master_worker_id'=>$this->userId])->whereIn('issue_approval','1,2,3')->count(); $result['review_work_count'] = ServiceWork::where(['master_worker_id'=>$this->userId,'work_status'=>7])->count(); return $this->data($result); } /** * 服务工单列表-全部 * @return \think\response\Json */ public function serviceWorkList() { return $this->dataLists(new ServiceWorkLists()); } /** * 派单 * @return \think\response\Json */ public function assignWorkList() { return $this->dataLists(new ServiceAssignWorkLists()); } /** * 历史工单 * @return \think\response\Json */ public function historyWorkList() { return $this->dataLists(new HistoryWorkLists()); } /** * 领取服务单 * @return \think\response\Json */ public function pickWork() { $params = (new ServiceWorkValidate())->post()->goCheck('pick', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceWorkLogic::pickWork($params); if (false === $result) { return $this->fail(ServiceWorkLogic::getError()); } // 用户订单被领单通知【给用户的通知】 $workDetail = ServiceWorkLogic::detail($params); event('Notice', [ 'scene_id' => 114, 'params' => [ 'user_id' => $workDetail['user_id'], ] ]); return $this->success('领取成功', [], 1, 1); } /** * 工单详情 * @return \think\response\Json */ public function detail() { $params = (new ServiceWorkValidate())->goCheck('detail',[ 'user_id' => $this->userId, ]); if(empty($params['id']) && empty($params['work_sn'])){ $this->fail('参数错误'); } $result = ServiceWorkLogic::detail($params); if (false === $result) { return $this->fail(ServiceWorkLogic::getError()); } return $this->data($result); } /** * * @return \think\response\Json */ public function getDetailWorkServiceStatus() { $params = (new ServiceWorkValidate())->goCheck('detail',[ 'user_id' => $this->userId, ]); $result = ServiceWorkLogic::getDetailWorkServiceStatus($params); if (false === $result) { return $this->fail(ServiceWorkLogic::getError()); } return $this->data($result); } /** * 预约上门 * @return \think\response\Json */ public function appointWork() { $params = (new ServiceWorkValidate())->post()->goCheck('appoint', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceWorkLogic::appointWork($params); if (false === $result) { return $this->fail(ServiceWorkLogic::getError()); } // 工程师预约上门通知【给用户的通知】 $workDetail = ServiceWorkLogic::detail($params); event('Notice', [ 'scene_id' => 115, 'params' => [ 'user_id' => $workDetail['user_id'], ] ]); // 工程师预约上门通知【给工程师的通知,仅限公众号】 event('Notice', [ 'scene_id' => 116, 'params' => [ 'user_id' => $workDetail['master_worker_id'], 'thing5' => $workDetail['title'], 'time10' => $workDetail['appointment_time'], 'thing3' => $workDetail['address'], ] ]); return $this->success('预约成功,等待上门', [], 1, 1); } /** * 工程师确认上门 * @return \think\response\Json */ public function confirmDoor() { $params = (new ServiceWorkValidate())->post()->goCheck('door', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceWorkLogic::confirmDoor($params); if (false === $result) { return $this->fail(ServiceWorkLogic::getError()); } return $this->success('操作成功,工程师已上门', [], 1, 1); } /** * 工程师确认报价单 * @return \think\response\Json */ public function confirmPrice() { $params = (new ServiceWorkValidate())->post()->goCheck('price', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceWorkLogic::confirmPrice($params); if (false === $result) { return $this->fail(ServiceWorkLogic::getError()); } return $this->success('操作成功,工程师已填写报价单,等待用户确认中', [], 1, 1); } /** * 工程师确认服务完成 * @return \think\response\Json */ public function confirmServiceFinish() { $params = (new ServiceWorkValidate())->post()->goCheck('finished', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceWorkLogic::confirmServiceFinish($params); if (false === $result) { return $this->fail(ServiceWorkLogic::getError()); } return $this->success('操作成功,工程师已确认服务完成,等待用户确认中', [], 1, 1); } /** * 配件列表 * @return \think\response\Json */ public function spareList() { // 查全部可选配件 return $this->dataLists(new SparePartLists()); } /** * 工单配件列表 * @return \think\response\Json */ public function serviceWorkSpareList() { // 查该订单的配件 (new ServiceWorkValidate())->get()->goCheck('spare', [ 'user_id' => $this->userId ]); return $this->dataLists(new ServiceWorkSparePartLists()); } /** * 工单收费标准列表 * @return \think\response\Json */ public function serviceFeeStandards() { // 查该订单的配件 (new GoodsFeeStandardsValidate())->get()->goCheck('standards', [ 'user_id' => $this->userId ]); return $this->dataLists(new GoodsFeeStandardsLists()); } }