all()); return $this->renderSubsys('psi', 'psi/orders', ['orders' => $all], \subsys_nav('psi'), 'orders'); } /** 详情:订单信息 + 付款记录 */ public function show($id) { $order = new Order(); $o = $order->find($id); if (!$o) { \Core\App::notFound(); return; } $payments = (new Payment())->whereAll('order_no', $o['order_no']); return $this->renderSubsys('psi', 'psi/order_show', [ 'o' => $o, 'payments' => $payments, ], \subsys_nav('psi'), 'orders'); } /** 标记为已支付(仅 PSI 管理员) */ public function markPaid($id) { subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { $order = new Order(); $o = $order->find($id); if ($o && $o['status'] !== 'paid') { OrderService::markPaid($o['order_no'], 'MANUAL' . time(), $o['channel'] ?: 'manual'); $this->flash('订单已标记为已支付', 'ok'); } } return $this->redirect('PSI/orders/show/' . $id); } /** 删除订单(仅 PSI 管理员) */ public function destroy($id) { subsys_admin('psi') or \Core\App::forbidden('需要 PSI 管理员权限'); if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_check()) { (new Order())->delete($id); $this->flash('订单已删除', 'ok'); } return $this->redirect('PSI/orders'); } }