文件
mashangyoujiu/Application/Delivery/Controller/PosterPostController.class.php

178 行
5.6 KiB
PHP
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
namespace app\api\controller\delivery\poster;
use addons\paotui\service\Poster;
use app\admin\model\paotui\PosterLocation;
use think\Exception;
/**
* 快递接口
*/
class Post extends PosterApi
{
// 无需登录的接口,*表示全部
protected $noNeedLogin = [];
// 无需鉴权的接口,*表示全部
protected $noNeedRight = "*";
public function _initialize()
{
parent::_initialize();
}
/**
* 快递列表
* @throws Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function index()
{
$status = $this->request->post("type", ''); // 1待抢单 2待揽收 3运输中 4派送中 5已完成 6服务中(2,3,4) -1已取消
$page = $this->request->post('page', 0);
$limit = $this->request->post('limit', 0);
$where['poster_id'] = $this->auth->id;
//获取当前快递员的最近的经纬度
$posterLocationModel = new PosterLocation();
$posterLocationInfo = $posterLocationModel->where(['poster_id' => $this->auth->id])->find();
$lat = empty($posterLocationInfo['lat']) ? 0 : $posterLocationInfo['lat'];
$lng = empty($posterLocationInfo['lat']) ? 0 : $posterLocationInfo['lng'];
$postService = new \addons\paotui\service\Post();
$data = $postService->getPosterPostList($status, $where, $page, $limit, "*", $lng, $lat, $this->auth->id);
$this->success('请求成功', $data);
}
/**
* 拒单
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function refuse()
{
$order_no = $this->request->post('order_no', "");
$postService = new \addons\paotui\service\Post();
if ($postInfo = $postService->getInfoByPoster($order_no, $this->auth->id)) {
\addons\paotui\service\Post::refusePost($postInfo['id'], $this->auth->id);
$this->success("请求成功", $postInfo);
} else {
$this->error($postService->error);
}
}
/**
* 接受派单
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function accept()
{
$order_no = $this->request->post('order_no', "");
$postService = new \addons\paotui\service\Post();
if ($postInfo = $postService->getInfoByPoster($order_no, $this->auth->id)) {
$poster = $this->auth->getPoster();
\addons\paotui\service\Post::acceptPost($postInfo['id'], $poster);
$this->success("请求成功", $postInfo);
} else {
$this->error($postService->error);
}
}
/**
* 获取订单详情
*/
public function info()
{
$order_no = $this->request->post('order_no', "");
if (empty($order_no)) {
$this->error("参数异常");
}
$postService = new \addons\paotui\service\Post();
if ($postInfo = $postService->getInfoByPoster($order_no, $this->auth->id)) {
$this->success("请求成功", $postInfo);
} else {
$this->error($postService->error);
}
}
/**
* 快递员抢单
*/
public function beat()
{
$order_no = $this->request->post('order_no', "");
if (empty($order_no)) {
$this->error("参数异常");
}
$poster = $this->auth->getPoster();
$postService = new \addons\paotui\service\Post();
if ($postService->beatPost($order_no, $poster)) {
$this->success("抢单成功");
} else {
$this->error($postService->error);
}
}
/**
* 取件
*/
public function collect()
{
$send_store_id = $this->request->post('send_store_id', 0);
$order_no = $this->request->post('order_no', "");
$images = $this->request->post('images');
if (empty($order_no)) {
$this->error("参数异常");
}
$poster = $this->auth->getPoster();
$postService = new \addons\paotui\service\Post();
if ($postService->collectPost($order_no, $poster, $images, $send_store_id)) {
$this->success("取件成功");
} else {
$this->error($postService->error);
}
}
/**
* 送达
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function reach()
{
$order_no = $this->request->post('order_no', "");
$image = $this->request->post('image');
$lnglat = $this->request->post('lnglat');
if (empty($order_no)) {
$this->error("参数异常");
}
$poster = $this->auth->getPoster();
$postService = new \addons\paotui\service\Post();
if ($postService->reachPost($order_no, $poster, $lnglat, $image)) {
//计算快递员佣金
$posterService = new Poster();
$posterService->brokerage($order_no);
$this->success("送达成功");
} else {
$this->error($postService->error);
}
}
}