You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
215 lines
5.5 KiB
215 lines
5.5 KiB
<?php
|
|
/**
|
|
* User: liuhao
|
|
* Date: 18-3-9
|
|
* Time: 上午9:50
|
|
*/
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
|
|
use App\Logics\OrderLogic;
|
|
use App\Models\Order;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Validator;
|
|
|
|
class OrdersController extends ApiController
|
|
{
|
|
//获取配送订单列表
|
|
public function deliveryOrderList(Request $request)
|
|
{
|
|
$userID = Auth::user()->id;
|
|
if (!$userID) {
|
|
return $this->failed('非法的用户请求', 401);
|
|
}
|
|
|
|
// 参数校验
|
|
$validator = Validator::make($request->all(),
|
|
[
|
|
'status' => 'required',
|
|
],
|
|
[
|
|
'status.required' => '订单状态缺失',
|
|
]
|
|
);
|
|
if ($validator->fails()) {
|
|
return $this->failed($validator->errors(), 401);
|
|
}
|
|
|
|
$orderStatus = $request->input('status');
|
|
|
|
$orderLogic = new OrderLogic();
|
|
|
|
// $userID = 7;
|
|
|
|
list($resaultFlag, $data) = $orderLogic->getDeliveryOrderList($userID, $orderStatus);
|
|
|
|
if ($resaultFlag) {
|
|
return $this->success($data);
|
|
} else {
|
|
list($code, $errMsg) = $this->transErrMsg($data);
|
|
return $this->failed($errMsg, $code);
|
|
}
|
|
}
|
|
|
|
//确认接收订单
|
|
public function receiveOrder(Request $request)
|
|
{
|
|
// $userID = 7;
|
|
$userID = Auth::user()->id;
|
|
if (!$userID) {
|
|
return $this->failed('非法的用户请求', 401);
|
|
}
|
|
|
|
// 参数校验
|
|
$validator = Validator::make($request->all(),
|
|
[
|
|
'orderID' => 'required',
|
|
],
|
|
[
|
|
'orderID.required' => 'orderID缺失',
|
|
]
|
|
);
|
|
if ($validator->fails()) {
|
|
return $this->failed($validator->errors(), 401);
|
|
}
|
|
|
|
$orderID = $request->input('orderID');
|
|
$orderLogic = new OrderLogic();
|
|
$orderLogic->isInSchool = true;
|
|
$orderLogic->optionUserID = $userID;
|
|
|
|
list($resaultFlag, $errMsg) = $orderLogic->receiveOrder($orderID);
|
|
if ($resaultFlag) {
|
|
return $this->success([]);
|
|
} else {
|
|
list($code, $msg) = $this->transErrMsg($errMsg);
|
|
return $this->failed($msg, $code);
|
|
}
|
|
}
|
|
|
|
|
|
//确认配送订单
|
|
public function deliveryOrder(Request $request)
|
|
{
|
|
$userID = Auth::user()->id;
|
|
if (!$userID) {
|
|
return $this->failed('非法的用户请求', 401);
|
|
}
|
|
|
|
// 参数校验
|
|
$validator = Validator::make($request->all(),
|
|
[
|
|
'orderID' => 'required',
|
|
],
|
|
[
|
|
'orderID.required' => 'orderID缺失',
|
|
]
|
|
);
|
|
if ($validator->fails()) {
|
|
return $this->failed($validator->errors(), 401);
|
|
}
|
|
|
|
$orderID = $request->input('orderID');
|
|
|
|
$orderLogic = new OrderLogic();
|
|
$orderLogic->isInSchool = true;
|
|
list($resaultFlag, $errMsg) = $orderLogic->deliveryOrder($orderID);
|
|
if ($resaultFlag) {
|
|
return $this->success([]);
|
|
} else {
|
|
list($code, $msg) = $this->transErrMsg($errMsg);
|
|
return $this->failed($msg, $code);
|
|
}
|
|
}
|
|
|
|
//订单详情
|
|
public function getOrderDetail(Request $request)
|
|
{
|
|
$userID = Auth::user()->id;
|
|
if (!$userID) {
|
|
return $this->failed('非法的用户请求', 401);
|
|
}
|
|
|
|
// 参数校验
|
|
$validator = Validator::make($request->all(),
|
|
[
|
|
'orderID' => 'required',
|
|
],
|
|
[
|
|
'orderID.required' => 'orderID缺失',
|
|
]
|
|
);
|
|
if ($validator->fails()) {
|
|
return $this->failed($validator->errors(), 401);
|
|
}
|
|
|
|
$orderID = $request->input('orderID');
|
|
$orderLogic = new OrderLogic();
|
|
|
|
$orderLogic->optionUserID = $userID;
|
|
|
|
list($resaultFlag, $data) = $orderLogic->getOrderDetail($orderID);
|
|
|
|
if ($resaultFlag) {
|
|
return $this->success($data);
|
|
} else {
|
|
list($code, $msg) = $this->transErrMsg($data);
|
|
return $this->failed($msg, $code);
|
|
}
|
|
|
|
}
|
|
|
|
//用户收货
|
|
public function completeOrder(Request $request)
|
|
{
|
|
$userID = Auth::user()->id;
|
|
if (!$userID) {
|
|
return $this->failed('非法的用户请求', 401);
|
|
}
|
|
|
|
// 参数校验
|
|
$validator = Validator::make($request->all(),
|
|
[
|
|
'orderID' => 'required',
|
|
],
|
|
[
|
|
'orderID.required' => 'orderID缺失',
|
|
]
|
|
);
|
|
if ($validator->fails()) {
|
|
return $this->failed($validator->errors(), 401);
|
|
}
|
|
|
|
$orderID = $request->input('orderID');
|
|
$orderLogic = new OrderLogic();
|
|
|
|
$orderLogic->optionUserID = $userID;
|
|
|
|
list($resaultFlag, $data) = $orderLogic->completeOrder($orderID);
|
|
if ($resaultFlag) {
|
|
return $this->success($data);
|
|
} else {
|
|
list($code, $msg) = $this->transErrMsg($data);
|
|
return $this->failed($msg, $code);
|
|
}
|
|
|
|
}
|
|
|
|
protected function transErrMsg($errMsg, $code = 401)
|
|
{
|
|
$msg = $errMsg;
|
|
|
|
if (is_string($errMsg)) {
|
|
$pos = strpos($errMsg, '|');
|
|
|
|
if ($pos !== false) {
|
|
$code = substr($errMsg, 0, $pos);
|
|
$msg = substr($errMsg, $pos + 1);
|
|
}
|
|
}
|
|
|
|
return [$code, $msg];
|
|
}
|
|
} |