allocatr/application/worker/controller/OrderDispatch.php
2025-05-28 15:51:55 +08:00

188 lines
5.4 KiB
PHP

<?php
namespace app\worker\controller;
use app\common\controller\WorkerApi;
class OrderDispatch extends WorkerApi
{
protected $noNeedLogin = [];
/**
* 待接单列表
* @return void
*/
public function index()
{
$res = $this->getOrderDispatchService()->dispatchList($this->user['id'], $this->request->request('page_size', 20));
$this->success('获取成功', $res);
}
/**
* 派单详情
* @return void
*/
public function info()
{
$params = $this->request->request();
$validate = $this->validate($params, \app\worker\validate\OrderDispatch::class . '.info');
if ($validate !== true) {
$this->error($validate);
}
$res = $this->getOrderDispatchService()->dispatchInfo($this->user['id'], $this->request->request('order_dispatch_id'));
$this->success('获取成功', $res);
}
/**
* 工作台订单列表
* @return void
*/
public function workbenchOrderList()
{
$params = $this->request->request();
$validate = $this->validate($params, \app\worker\validate\OrderDispatch::class . '.workbenchOrderList');
if ($validate !== true) {
$this->error($validate);
}
$pageSize = $this->request->request('page_size', 20);
$type = $this->request->request('workbench_type');
$needVisitType = $this->request->request('need_visit_type');
$res = $this->getOrderDispatchService()->workbenchOrderList($this->user['id'], $type, $pageSize, $needVisitType);
$this->success('获取成功', $res);
}
/**
* 统计工作台订单
*/
public function countWorkbenchOrder()
{
$res = $this->getOrderDispatchService()->countWorkbenchOrder($this->user['id']);
$this->success('获取成功', $res);
}
/**
* 接单/拒接
* @return void
*/
public function orderConfirm()
{
$params = $this->request->request();
$validate = $this->validate($params, \app\worker\validate\OrderDispatch::class . '.orderConfirm');
if ($validate !== true) {
$this->error($validate);
}
$res = $this->getOrderDispatchService()->orderConfirm($this->user['id'], $params);
$this->success('操作成功', $res);
}
/**
* 提交预约上门时间
* @return void
*/
public function appointmentTime()
{
$params = $this->request->request();
$validate = $this->validate($params, \app\worker\validate\OrderDispatch::class . '.appointmentTime');
if ($validate !== true) {
$this->error($validate);
}
$res = $this->getOrderDispatchService()->appointmentTime($this->user['id'], $params['order_dispatch_id'], $params['plan_time']);
$this->success('操作成功', $res);
}
/**
* 更新施工进度
* @return void
*/
public function updateProgress()
{
$params = $this->request->request();
$validate = $this->validate($params, \app\worker\validate\OrderDispatch::class . '.updateProgress');
if ($validate !== true) {
$this->error($validate);
}
$res = $this->getOrderDispatchService()->updateProgress($this->user['id'], $params);
$this->success('操作成功', $res);
}
/**
* 修改上门时间
* @return void
*/
public function updatePlanTime()
{
$params = $this->request->request();
$validate = $this->validate($params, \app\worker\validate\OrderDispatch::class . '.appointmentTime');
if ($validate !== true) {
$this->error($validate);
}
$res = $this->getOrderDispatchService()->updatePlanTime($this->user['id'], $params['order_dispatch_id'], $params['plan_time']);
$this->success('操作成功', $res);
}
/**
* 提交上门信息
* @return void
*/
public function arrivedOnSite()
{
$params = $this->request->request();
$validate = $this->validate($params, \app\worker\validate\OrderDispatch::class . '.arrivedOnSite');
if ($validate !== true) {
$this->error($validate);
}
$res = $this->getOrderDispatchService()->arrivedOnSite($this->user['id'], $params['order_dispatch_id'], $params['images']);
$this->success('操作成功', $res);
}
public function completeService()
{
$params = $this->request->request();
$validate = $this->validate($params, \app\worker\validate\OrderDispatch::class . '.completeService');
if ($validate !== true) {
$this->error($validate);
}
if ($params['final_payment_method'] == 1 && empty($params['offline_total_type'])) {
$this->error('线下尾款需选择尾款收款方');
}
$res = $this->getOrderDispatchService()->completeService($this->user['id'], $params);
$this->success('操作成功', $res);
}
/**
* 保存师傅备注
* @return void
*/
public function saveWorkerRemark()
{
$params = $this->request->request();
$validate = $this->validate($params, \app\worker\validate\OrderDispatch::class . '.saveWorkerRemark');
if ($validate !== true) {
$this->error($validate);
}
$res = $this->getOrderDispatchService()->saveWorkerRemark($this->user['id'], $params['order_dispatch_id'], $params['worker_remark']);
$this->success('操作成功', $res);
}
}