86 lines
2.4 KiB
PHP
86 lines
2.4 KiB
PHP
<?php
|
|
namespace app\admin\controller;
|
|
|
|
use support\Request;
|
|
use app\common\model\Order;
|
|
|
|
class OrderController
|
|
{
|
|
public function list(Request $request)
|
|
{
|
|
$status = $request->get('status', 'all');
|
|
$page = max(1, intval($request->get('page', 1)));
|
|
$pageSize = min(50, max(1, intval($request->get('page_size', 10))));
|
|
|
|
$query = Order::query();
|
|
if ($status !== 'all') {
|
|
$query->where('status', $status);
|
|
}
|
|
|
|
if ($orderNo = $request->get('order_no')) {
|
|
$query->where('order_no', 'like', "%{$orderNo}%");
|
|
}
|
|
|
|
$total = $query->count();
|
|
$items = $query->orderBy('id', 'desc')
|
|
->offset(($page - 1) * $pageSize)
|
|
->limit($pageSize)
|
|
->get();
|
|
|
|
return jsonResponse([
|
|
'items' => $items,
|
|
'total' => $total,
|
|
'page' => $page,
|
|
'page_size' => $pageSize
|
|
]);
|
|
}
|
|
|
|
public function detail(Request $request)
|
|
{
|
|
$id = (int)$request->get('id');
|
|
$order = Order::with(['logs'])->find($id);
|
|
|
|
if (!$order) {
|
|
return jsonResponse(null, '订单不存在', 404);
|
|
}
|
|
|
|
return jsonResponse($order);
|
|
}
|
|
|
|
public function receive(Request $request)
|
|
{
|
|
$id = (int)$request->post('id');
|
|
$order = Order::find($id);
|
|
|
|
if (!$order) {
|
|
return jsonResponse(null, '订单不存在', 404);
|
|
}
|
|
|
|
try {
|
|
\app\common\service\OrderFlowService::adminReceive($order, $request->admin->id);
|
|
return jsonResponse(null, '确认收件成功,已进入鉴定状态');
|
|
} catch (\Exception $e) {
|
|
return jsonResponse(null, $e->getMessage(), 400);
|
|
}
|
|
}
|
|
|
|
public function returnShip(Request $request)
|
|
{
|
|
$id = (int)$request->post('id');
|
|
$expressCompany = trim((string)$request->post('express_company', ''));
|
|
$expressNo = trim((string)$request->post('express_no', ''));
|
|
|
|
$order = Order::find($id);
|
|
if (!$order) {
|
|
return jsonResponse(null, '订单不存在', 404);
|
|
}
|
|
|
|
try {
|
|
\app\common\service\OrderFlowService::adminReturnShip($order, $request->admin->id, $expressCompany, $expressNo);
|
|
return jsonResponse(null, '回寄信息已提交');
|
|
} catch (\Exception $e) {
|
|
return jsonResponse(null, $e->getMessage(), 400);
|
|
}
|
|
}
|
|
}
|