Browse Source

特殊车位前缀更改

master
wanghongjun 4 days ago
parent
commit
4957a5b6d6
  1. 6
      app/Exports/ParkingVipListExport.php
  2. 2
      app/Exports/ParkingVipListImportTemplateExport.php
  3. 12
      app/Http/Controllers/Admin/VipAccessRecordController.php
  4. 32
      app/Http/Controllers/Admin/VipListController.php
  5. 14
      app/Imports/ParkingVipListImport.php
  6. 4
      app/Models/ParkingVipAccessRecord.php
  7. 4
      app/Models/ParkingVipList.php
  8. 14
      app/Services/ParkingVipListService.php
  9. 2
      database/migrations/2026_03_02_110943_create_parking_list_vip_table.php
  10. 2
      database/migrations/2026_03_04_160517_create_parking_vip_access_record_table.php

6
app/Exports/AdminVipListExport.php → app/Exports/ParkingVipListExport.php

@ -3,19 +3,19 @@
namespace App\Exports;
use App\Models\AdminUsers;
use App\Models\AdminVipList;
use App\Models\ParkingVipList;
use Illuminate\Database\Eloquent\Collection;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
class AdminVipListExport implements FromCollection, WithHeadings
class ParkingVipListExport implements FromCollection, WithHeadings
{
/**
* @return Collection
*/
public function collection(): Collection
{
return AdminVipList::all()->each(function ($item) {
return ParkingVipList::all()->each(function ($item) {
$item['user_id'] = AdminUsers::getUsername(
$item['user_id']
);

2
app/Exports/AdminVipListImportTemplateExport.php → app/Exports/ParkingVipListImportTemplateExport.php

@ -4,7 +4,7 @@ namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromArray;
class AdminVipListImportTemplateExport implements FromArray
class ParkingVipListImportTemplateExport implements FromArray
{
public function array(): array

12
app/Http/Controllers/Admin/VipAccessRecordController.php

@ -3,8 +3,8 @@
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\AdminVipAccessRecord;
use App\Models\AdminVipList;
use App\Models\ParkingVipAccessRecord;
use App\Models\ParkingVipList;
use App\Models\ParkingSpaceType;
use App\Services\ApiResponseService;
use Exception;
@ -31,7 +31,7 @@ class VipAccessRecordController extends Controller
public function index(Request $request): JsonResponse
{
try {
$query = AdminVipAccessRecord::query();
$query = ParkingVipAccessRecord::query();
if ($request->has('space_type')) {
$space_type = $request->input('space_type');
@ -54,7 +54,7 @@ class VipAccessRecordController extends Controller
if ($request->has('license')) {
$license = $request->input('license');
if (!empty($license)) {
$vipIds = AdminVipList::query()->where(
$vipIds = ParkingVipList::query()->where(
'license',
'like',
"%{$license}%"
@ -125,7 +125,7 @@ class VipAccessRecordController extends Controller
protected function optionItem($item)
{
$item['license_number'] = AdminVipList::query()->where(
$item['license_number'] = ParkingVipList::query()->where(
'id',
$item['vip_list_id']
)->value('license');
@ -146,7 +146,7 @@ class VipAccessRecordController extends Controller
public function show(string $id): JsonResponse
{
try {
$data = AdminVipAccessRecord::query()->find($id)->toArray();
$data = ParkingVipAccessRecord::query()->find($id)->toArray();
return $this->responseService->success($this->optionItem($data));
} catch (Exception $e) {
return $this->responseService->systemError(

32
app/Http/Controllers/Admin/VipListController.php

@ -3,12 +3,12 @@
namespace App\Http\Controllers\Admin;
use App\Exceptions\CustomException;
use App\Exports\AdminVipListExport;
use App\Exports\AdminVipListImportTemplateExport;
use App\Imports\AdminVipListImport;
use App\Exports\ParkingVipListExport;
use App\Exports\ParkingVipListImportTemplateExport;
use App\Imports\ParkingVipListImport;
use App\Models\AdminUsers;
use App\Models\AdminVipList;
use App\Services\AdminVipListService;
use App\Models\ParkingVipList;
use App\Services\ParkingVipListService;
use App\Services\ApiResponseService;
use Exception;
use Illuminate\Http\JsonResponse;
@ -23,17 +23,17 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
class VipListController extends BaseController
{
/**
* @var AdminVipListService
* @var ParkingVipListService
*/
protected AdminVipListService $vipListService;
protected ParkingVipListService $vipListService;
/**
* @param ApiResponseService $responseService
* @param AdminVipListService $vipListService
* @param ApiResponseService $responseService
* @param ParkingVipListService $vipListService
*/
public function __construct(
ApiResponseService $responseService,
AdminVipListService $vipListService
ParkingVipListService $vipListService
) {
parent::__construct($responseService);
$this->vipListService = $vipListService;
@ -46,7 +46,7 @@ class VipListController extends BaseController
public function index(Request $request): JsonResponse
{
try {
$query = AdminVipList::query();
$query = ParkingVipList::query();
if ($request->has('license')) {
$license = $request->input('license');
@ -124,7 +124,7 @@ class VipListController extends BaseController
'license.max' => __('validation.admin_list_vip.l_max')
];
if ($id) {
$this->validateId($id, AdminVipList::class);
$this->validateId($id, ParkingVipList::class);
}
$validator = Validator::make($data, $rules, $messages);
@ -142,7 +142,7 @@ class VipListController extends BaseController
public function destroy(string $id): JsonResponse
{
try {
$this->validateId($id, AdminVipList::class);
$this->validateId($id, ParkingVipList::class);
$this->vipListService->deleteModel($id);
return $this->responseService->success(
null,
@ -208,7 +208,7 @@ class VipListController extends BaseController
// 4. 执行导入(使用存储后的绝对路径)
// storage_path('app') 获取 storage/app 的绝对路径
Excel::import(
new AdminVipListImport(),
new ParkingVipListImport(),
storage_path('app/' . $path)
);
@ -260,7 +260,7 @@ class VipListController extends BaseController
public function importTemplate(): BinaryFileResponse
{
return Excel::download(
new AdminVipListImportTemplateExport(),
new ParkingVipListImportTemplateExport(),
__('exports.vip_list.import_template') . time() .'.xlsx'
);
}
@ -271,7 +271,7 @@ class VipListController extends BaseController
public function export(): BinaryFileResponse
{
return Excel::download(
new AdminVipListExport(),
new ParkingVipListExport(),
__('exports.vip_list.list') . time() . '.xlsx'
);
}

14
app/Imports/AdminVipListImport.php → app/Imports/ParkingVipListImport.php

@ -2,24 +2,24 @@
namespace App\Imports;
use App\Models\AdminVipList;
use App\Models\ParkingVipList;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class AdminVipListImport implements ToModel, WithHeadingRow
class ParkingVipListImport implements ToModel, WithHeadingRow
{
/**
* @param array $row
* @return AdminVipList
* @return ParkingVipList
*/
public function model(array $row): AdminVipList
public function model(array $row): ParkingVipList
{
foreach ($row as $license) {
if (!AdminVipList::query()->where('license', $license)
if (!ParkingVipList::query()->where('license', $license)
->exists()
) {
return new AdminVipList([
return new ParkingVipList([
'license' => $license,
'user_id' => Auth::guard('sanctum')->user()['id'],
'created_at' => get_datetime()
@ -27,6 +27,6 @@ class AdminVipListImport implements ToModel, WithHeadingRow
}
break;
}
return new AdminVipList();
return new ParkingVipList();
}
}

4
app/Models/AdminVipAccessRecord.php → app/Models/ParkingVipAccessRecord.php

@ -5,11 +5,11 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class AdminVipAccessRecord extends Model
class ParkingVipAccessRecord extends Model
{
use HasFactory;
protected $table = 'admin_vip_access_record';
protected $table = 'parking_vip_access_record';
protected $fillable = [
'license'

4
app/Models/AdminVipList.php → app/Models/ParkingVipList.php

@ -6,11 +6,11 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class AdminVipList extends Model
class ParkingVipList extends Model
{
use HasFactory, SoftDeletes;
protected $table = 'admin_vip_list';
protected $table = 'parking_vip_list';
protected $fillable = [
'license',

14
app/Services/AdminVipListService.php → app/Services/ParkingVipListService.php

@ -2,14 +2,14 @@
namespace App\Services;
use App\Models\AdminVipList;
use App\Models\ParkingVipList;
use Exception;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class AdminVipListService
class ParkingVipListService
{
@ -38,7 +38,7 @@ class AdminVipListService
try {
DB::beginTransaction();
if (AdminVipList::query()->where('license', $data['license'])
if (ParkingVipList::query()->where('license', $data['license'])
->exists()
) {
throw new Exception(
@ -46,7 +46,7 @@ class AdminVipListService
);
}
$model = AdminVipList::query()->create([
$model = ParkingVipList::query()->create([
'license' => $data['license'],
'user_id' => Auth::guard('sanctum')->user()['id'],
'created_at' => get_datetime()
@ -80,12 +80,12 @@ class AdminVipListService
['license', '=', $data['license']],
['id', '<>', $id]
];
if (AdminVipList::query()->where($existsWhere)->exists()) {
if (ParkingVipList::query()->where($existsWhere)->exists()) {
throw new Exception(__('service.admin_vip_list.license_exists'));
}
// 更新
$model = AdminVipList::query()->findOrFail($id);
$model = ParkingVipList::query()->findOrFail($id);
$oldValues = $model->toArray();
$model->update([
@ -114,7 +114,7 @@ class AdminVipListService
try {
DB::beginTransaction();
$model = AdminVipList::query()->findOrFail($id);
$model = ParkingVipList::query()->findOrFail($id);
$this->logService->logDeleted($model, '删除VIP名单');

2
database/migrations/2026_03_02_110943_create_admin_list_vip_table.php → database/migrations/2026_03_02_110943_create_parking_list_vip_table.php

@ -11,7 +11,7 @@ return new class extends Migration
*/
public function up(): void
{
Schema::create('admin_list_vip', function (Blueprint $table) {
Schema::create('parking_list_vip', function (Blueprint $table) {
$table->id();
$table->string('license', 20)->comment('车牌号码');
$table->integer('user_id')->comment('管理员id');

2
database/migrations/2026_03_04_160517_create_admin_vip_access_record_table.php → database/migrations/2026_03_04_160517_create_parking_vip_access_record_table.php

@ -11,7 +11,7 @@ return new class extends Migration
*/
public function up(): void
{
Schema::create('admin_vip_access_record', function (Blueprint $table) {
Schema::create('parking_vip_access_record', function (Blueprint $table) {
$table->id();
$table->integer('parking_space_id')->index('parking_space_id')->comment('车位类型');
$table->integer('parking_number_id')->comment('车位编号');
Loading…
Cancel
Save