dataLists(new ServiceOrderLists()); } /** * 订单详情 * @return \think\response\Json */ public function detail() { $params = (new ServiceOrderValidate())->goCheck('detail',[ 'user_id' => $this->userId, 'user_info' => $this->userInfo, 'domain'=>$this->request->domain() ]); $result = ServiceOrderLogic::detail($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->data($result); } public function getDetailStatus() { $params = (new ServiceOrderValidate())->goCheck('detail',[ 'user_id' => $this->userId, ]); $result = ServiceOrderLogic::getDetailStatus($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->data($result); } /** * 订单支付详情 * @return \think\response\Json */ public function orderPayInfo() { $params = (new ServiceOrderValidate())->goCheck('detail',[ 'user_id' => $this->userId, ]); $result = ServiceOrderLogic::orderPayInfo($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->data($result); } public function getMasterWorker() { $params = (new ServiceOrderValidate())->goCheck('worker',[ 'user_id' => $this->userId, ]); $result = ServiceOrderLogic::getMasterWorker($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->data($result); } /** * 提交订单 * @return \think\response\Json */ public function submitOrder() { $params = (new ServiceOrderValidate())->post()->goCheck('add', [ 'user_id' => $this->userId, 'terminal' => $this->userInfo['terminal'], 'user_info' => $this->userInfo ]); Log::write(json_encode($params,JSON_UNESCAPED_UNICODE)); $result = ServiceOrderLogic::submitOrder($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } ActivityLogic::createPropertyOrder($params,$result); return $this->data($result); } /** * 取消订单 * @return \think\response\Json */ public function cancelOrder() { $params = (new ServiceOrderValidate())->post()->goCheck('cancel', [ 'user_id' => $this->userId, 'terminal' => $this->userInfo['terminal'], 'user_info' => $this->userInfo ]); $result = ServiceOrderLogic::cancelOrder($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->success('取消成功', [], 1, 1); } /** * 确认报价订单 * @return \think\response\Json */ public function confirmOrder() { $params = (new ServiceOrderValidate())->post()->goCheck('price', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceOrderLogic::confirmOrder($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->success('已确认报价,工程师即将开始服务', [], 1, 1); } /** * 用户确认服务完成 * @return \think\response\Json */ public function confirmServiceFinish() { $params = (new ServiceOrderValidate())->post()->goCheck('finished', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceOrderLogic::confirmServiceFinish($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } // 订单完成通知【给用户】 - 全款 -通知 ServiceOrderLogic::serviceFinishNotice($params); // 工程师完单的时候设置该规则关闭,以及短信通知工程师 ServiceOrderLogic::orderQuantityRule($params); return $this->success('已确认服务完成', [], 1, 1); } /** * 提交尾款订单 * @return \think\response\Json */ public function submitFinalOrder() { $params = (new ServiceOrderValidate())->post()->goCheck('final', [ 'user_id' => $this->userId, 'terminal' => $this->userInfo['terminal'], 'user_info' => $this->userInfo ]); Log::write(json_encode($params,JSON_UNESCAPED_UNICODE)); $result = ServiceOrderLogic::submitFinalOrder($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->data($result); } /** * 重置订单优惠券 * @return \think\response\Json */ public function cancelOrderCoupon() { $params = (new ServiceOrderValidate())->post()->goCheck('cancelOrderCoupon', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceOrderLogic::cancelOrderCoupon($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->success('保存成功', [], 1, 1); } /** * 查询是否在服务区内 * @return \think\response\Json */ public function isServiceWithin() { $params = (new ServiceOrderValidate())->get()->goCheck('LonLat', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceOrderLogic::isService($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError(),['is_service'=>0]); } return $this->success('服务区域内', ['is_service'=>1], 1, 1); } /** * 申请改价 * @return \think\response\Json */ public function approvalChangePrice() { $params = (new ServiceOrderValidate())->post()->goCheck('changePrice', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceOrderLogic::approvalChangePrice($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->success('已提交改价申请,等待工程师确认', [], 1, 1); } /** * 申请改约 * @return \think\response\Json */ public function approvalChangeAppointment() { $params = (new ServiceOrderValidate())->post()->goCheck('changeAppointment', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceOrderLogic::approvalChangeAppointment($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } $order = ServiceOrderLogic::orderPayInfo($params); $workDetail = ServiceWorkAppointmentLog::where(['work_id'=>$order['work_id']])->order('id desc')->findOrEmpty(); $masterDetail = MasterWorkerLogic::detail(['id'=>$result['master_worker_id']]); // 修改预约时间通知【给用户的通知】 $res = event('Notice', [ 'scene_id' => 117, 'params' => [ 'user_id' => $result['user_id'], 'date' => $params['appointment_time'], 'tel' => asteriskString($masterDetail['mobile']), ] ]); // 修改预约时间通知【给工程师的通知,仅限公众号】 $res = event('Notice', [ 'scene_id' => 118, 'params' => [ 'user_id' => $result['master_worker_id'], 'order_id' => $order['work_id'], 'thing4' => $result['title'], 'time5' => date('Y-m-d H:i:s',$workDetail['last_appointment_time']), 'time6' => date('Y-m-d H:i:s',$workDetail['this_appointment_time']), 'thing11' => (iconv_strlen($result['address'])>15)?(mb_substr($result['address'],0,15,'UTF-8').'...'):$result['address'], 'phone_number8' => asteriskString($result['mobile']), ] ]); return $this->success('已提交改约', [], 1, 1); } /** * 提交退款申请 * @return \think\response\Json */ public function approvalRefund() { $params = (new ServiceOrderValidate())->post()->goCheck('changePrice', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceOrderLogic::approvalRefund($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->success('已提交申请,等待客服确认中', [], 1, 1); } public function firmOrderLists() { return $this->dataLists(new ServiceOrderLists()); } public function firmOrderSave() { $params = (new ServiceOrderValidate())->post()->goCheck('firmOrderSave', [ 'user_id' => $this->userId, 'terminal' => $this->userInfo['terminal'], 'user_info' => $this->userInfo ]); Log::write(json_encode($params,JSON_UNESCAPED_UNICODE)); if(count($params['order_goods']) == 0){ return $this->fail('请选择商品'); }else{ $params['goods_id'] = $params['order_goods'][0]['id']; } $result = ServiceOrderLogic::firmSubmitOrder($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->data($result); } /** * 绑定工程师-设置为加单 * @return \think\response\Json */ public function bindWorkerAndWork() { $params = (new ServiceOrderValidate())->post()->goCheck('bindWorkerAndWork', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $result = ServiceOrderLogic::bindWorkerAndWork($params); if (false === $result) { return $this->fail(ServiceOrderLogic::getError()); } return $this->success('绑定成功', [], 1, 1); } }