diff --git a/beike/Admin/Http/Controllers/ManufacturerController.php b/beike/Admin/Http/Controllers/ManufacturerController.php new file mode 100644 index 00000000..0698ee23 --- /dev/null +++ b/beike/Admin/Http/Controllers/ManufacturerController.php @@ -0,0 +1,48 @@ + + * @created 2022-07-27 21:17:04 + * @modified 2022-07-27 21:17:04 + */ + +namespace Beike\Admin\Http\Controllers; + +use Beike\Repositories\ManufacturerRepo; +use Illuminate\Http\Request; + +class ManufacturerController extends Controller +{ + public function index(Request $request) + { + $manufacturers = ManufacturerRepo::list($request->only('name', 'first', 'status')); + $data = [ + 'manufacturers' => $manufacturers, + ]; + + return view('admin::pages.manufacturers.index', $data); + } + + public function store(Request $request) + { + $manufacturer = ManufacturerRepo::create($request->all()); + return json_success("创建成功", $manufacturer); + } + + public function update(Request $request, int $customerId, int $id) + { + $manufacturer = ManufacturerRepo::update($id, $request->all()); + + return json_success("成功修改", $manufacturer); + } + + public function destroy(Request $request, int $customerId, int $addressId) + { + AddressRepo::delete($addressId); + + return json_success("已成功删除"); + } +} diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 8827ffc5..8d76f91c 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -38,6 +38,7 @@ Route::prefix($adminName) Route::post('design/builder/preview', [Controllers\DesignController::class, 'preview'])->name('design.module.preview'); Route::resource('files', Controllers\FileController::class); + Route::resource('manufacturers', Controllers\ManufacturerController::class); Route::get('file_manager', [Controllers\FileManagerController::class, 'index'])->name('file_manager.index'); Route::get('file_manager/files', [Controllers\FileManagerController::class, 'getFiles'])->name('file_manager.get_files'); diff --git a/beike/Models/Manufacturer.php b/beike/Models/Manufacturer.php new file mode 100644 index 00000000..96e4f008 --- /dev/null +++ b/beike/Models/Manufacturer.php @@ -0,0 +1,28 @@ + + * @created 2022-07-27 20:22:18 + * @modified 2022-07-27 20:22:18 + */ + +namespace Beike\Models; + +use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\HasMany; + +class Manufacturer extends Base +{ + use HasFactory; + + protected $fillable = ['name', 'country_id', 'code', 'sort_order', 'status']; + + public function zones(): HasMany + { + return $this->hasMany(Zone::class); + } +} + diff --git a/beike/Repositories/ManufacturerRepo.php b/beike/Repositories/ManufacturerRepo.php new file mode 100644 index 00000000..9ae49485 --- /dev/null +++ b/beike/Repositories/ManufacturerRepo.php @@ -0,0 +1,100 @@ + + * @created 2022-07-27 20:42:05 + * @modified 2022-07-27 20:42:05 + */ + +namespace Beike\Repositories; + +use Beike\Models\Manufacturer; + +class ManufacturerRepo +{ + /** + * 创建一个记录 + * @param $data + * @return int + */ + public static function create($data) + { + $manufacturer = Manufacturer::query()->create($data); + return $manufacturer; + } + + /** + * @param $manufacturer + * @param $data + * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Eloquent\Model|mixed + * @throws \Exception + */ + public static function update($manufacturer, $data) + { + if (!$manufacturer instanceof Manufacturer) { + $manufacturer = Manufacturer::query()->find($manufacturer); + } + if (!$manufacturer) { + throw new \Exception("品牌id {$manufacturer} 不存在"); + } + $manufacturer->update($data); + return $manufacturer; + } + + /** + * @param $id + * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Eloquent\Model|null + */ + public static function find($id) + { + return Manufacturer::query()->find($id); + } + + /** + * @param $id + * @return void + */ + public static function delete($id) + { + $manufacturer = Manufacturer::query()->find($id); + if ($manufacturer) { + $manufacturer->delete(); + } + } + + /** + * @param $data + * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator + */ + public static function list($data) + { + $builder = Manufacturer::query(); + + if (isset($data['name'])) { + $builder->where('name', 'like', "%{$data['name']}%"); + } + if (isset($data['first'])) { + $builder->where('first', $data['email']); + } + if (isset($data['status'])) { + $builder->where('status', $data['status']); + } + + return $builder->paginate(20)->withQueryString(); + } + + public static function listGroupByFirst() + { + $manufacturers = Manufacturer::query()->where('status', true)->get(); + + $results = []; + foreach ($manufacturers as $manufacturer) { + $results[$manufacturer->first][] = $manufacturer; + } + + return $results; + } +} diff --git a/database/migrations/2022_07_27_123325_create_manufacturers.php b/database/migrations/2022_07_27_123325_create_manufacturers.php new file mode 100644 index 00000000..87a8b087 --- /dev/null +++ b/database/migrations/2022_07_27_123325_create_manufacturers.php @@ -0,0 +1,36 @@ +id(); + $table->string('name'); + $table->char('first'); + $table->string('logo'); + $table->integer('sort_order'); + $table->integer('status'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('manufacturers'); + } +} diff --git a/resources/beike/admin/views/pages/manufacturers/index.blade.php b/resources/beike/admin/views/pages/manufacturers/index.blade.php new file mode 100644 index 00000000..5dadfeda --- /dev/null +++ b/resources/beike/admin/views/pages/manufacturers/index.blade.php @@ -0,0 +1,40 @@ +@extends('admin::layouts.master') + +@section('title', '品牌管理') + +@section('content') +
+
+
+ 创建 +
+ + + + + + + + + + + + + @foreach ($manufacturers as $manufacturer) + + + + + + + + + @endforeach + +
#名称图标排序状态操作
{{ $manufacturer['id'] }}{{ $manufacturer['name'] }}{{ $manufacturer['logo'] }}{{ $manufacturer['sort_order'] }}{{ $manufacturer['status'] }} + 编辑 +
+
+
+@endsection