This commit is contained in:
gaofeng
2026-08-11 11:06:09 +08:00
parent 202ad2cac5
commit 23527c71f3
3 changed files with 51 additions and 0 deletions

View File

@@ -25,6 +25,21 @@ class Order extends Base
return $this->ok($result['data'] ?? []);
}
public function latestEvus()
{
$userId = $this->requireLogin();
if (!is_int($userId)) {
return $userId;
}
$result = (new OrderService())->latestEvus($userId);
if (intval($result['code'] ?? 0) !== 1) {
return $this->fail((string)($result['msg'] ?? '操作失败'));
}
return $this->ok($result['data'] ?? null);
}
public function detail()
{
$userId = $this->requireLogin();

View File

@@ -80,6 +80,41 @@ class OrderService
return ['code' => 1, 'msg' => 'ok', 'data' => $data];
}
public function latestEvus(int $userId): array
{
$orders = [];
foreach (['pay', 'nopay'] as $payStatus) {
$result = $this->lists('evus', $payStatus, $userId);
foreach ((array)($result['data'] ?? []) as $order) {
if (is_array($order)) {
$order['pay_status_group'] = $payStatus;
$orders[] = $order;
}
}
}
if (empty($orders)) {
return ['code' => 1, 'msg' => 'ok', 'data' => null];
}
usort($orders, static fn(array $left, array $right): int => (int)($right['id'] ?? 0) <=> (int)($left['id'] ?? 0));
$latest = $orders[0];
$orderSn = trim((string)($latest['order_sn'] ?? $latest['order_no'] ?? $latest['ordersn'] ?? ''));
if ($orderSn === '') {
return ['code' => 1, 'msg' => 'ok', 'data' => null];
}
$detail = $this->detail('evus', $orderSn, $userId);
if (intval($detail['code'] ?? 0) === 1 && is_array($detail['data'] ?? null)) {
$latest = array_replace($latest, $detail['data']);
}
$latest['order_sn'] = $orderSn;
$latest['business'] = 'evus';
$latest['business_text'] = 'EVUS';
return ['code' => 1, 'msg' => 'ok', 'data' => $latest];
}
public function payMoney(array $detail): string
{
$scopes = [$detail];

View File

@@ -29,6 +29,7 @@ Route::group('miniapi', function () {
Route::get('help/faqs', 'Help/faqs');
Route::get('order/lists', 'Order/lists');
Route::get('order/latest-evus', 'Order/latestEvus');
Route::get('order/detail', 'Order/detail');
Route::post('order/pay', 'Order/pay');
Route::post('order/addInvoice', 'Order/addInvoice');