49 lines
1.2 KiB
PHP
49 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Client;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Crm\Customer;
|
|
use App\Models\Finance\AccountTransaction;
|
|
use App\Models\Finance\CustomerAccount;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class AccountController extends Controller
|
|
{
|
|
/**
|
|
* 我的账户列表
|
|
*/
|
|
public function index(Request $request): JsonResponse
|
|
{
|
|
/** @var Customer $customer */
|
|
$customer = $request->user();
|
|
|
|
$accounts = CustomerAccount::withoutGlobalScope('store')
|
|
->where('customer_id', $customer->id)
|
|
->get();
|
|
|
|
return $this->success($accounts);
|
|
}
|
|
|
|
/**
|
|
* 账户流水记录(分页)
|
|
*/
|
|
public function transactions(Request $request): JsonResponse
|
|
{
|
|
/** @var Customer $customer */
|
|
$customer = $request->user();
|
|
|
|
$query = AccountTransaction::withoutGlobalScope('store')
|
|
->whereHas('account', fn ($q) => $q->where('customer_id', $customer->id));
|
|
|
|
if ($request->filled('account_id')) {
|
|
$query->where('customer_account_id', (int) $request->input('account_id'));
|
|
}
|
|
|
|
return $this->paginate(
|
|
$query->orderByDesc('id')->paginate(20)
|
|
);
|
|
}
|
|
}
|