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()); } 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); } /** * 终止结束服务 - 上门费直接给工程师 * @return \think\response\Json * @author liugc <466014217@qq.com> * @date 2025/5/5 19:03 */ public function terminateService() { $params = (new ServiceOrderValidate())->post()->goCheck('terminateService', [ 'user_id' => $this->userId, 'user_info' => $this->userInfo ]); $params['isearnest'] = 0; $result = ServiceWorkLogic::terminateService($params); if (false === $result) { return $this->fail(ServiceWorkLogic::getError()); } return $this->success('终止服务成功', [], 1, 1); } }