校园商户
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\PostRoute;
|
||||
use Modules\AnnoRoute\Attribute\PutRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Merchant\Http\Requests\MerchantCategoryFormRequest;
|
||||
use Modules\Merchant\Models\MerchantCategoryModel;
|
||||
|
||||
#[RequestAttribute('/merchant/category', 'merchant.category')]
|
||||
class MerchantCategoryController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'status' => '=',
|
||||
];
|
||||
|
||||
protected array $quickSearchField = ['name', 'slug'];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = MerchantCategoryModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[PostRoute(authorize: 'create')]
|
||||
public function create(MerchantCategoryFormRequest $request): JsonResponse
|
||||
{
|
||||
MerchantCategoryModel::create($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[PutRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'update',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function update(int $id, MerchantCategoryFormRequest $request): JsonResponse
|
||||
{
|
||||
$model = MerchantCategoryModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('分类不存在');
|
||||
}
|
||||
$model->update($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = MerchantCategoryModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('分类不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\PostRoute;
|
||||
use Modules\AnnoRoute\Attribute\PutRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Merchant\Http\Requests\MerchantProductFormRequest;
|
||||
use Modules\Merchant\Models\MerchantProductModel;
|
||||
|
||||
#[RequestAttribute('/merchant/product', 'merchant.product')]
|
||||
class MerchantProductController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'status' => '=',
|
||||
'is_recommend' => '=',
|
||||
'merchant_id' => '=',
|
||||
'category_id' => '=',
|
||||
];
|
||||
|
||||
protected array $quickSearchField = ['name'];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = MerchantProductModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[PostRoute(authorize: 'create')]
|
||||
public function create(MerchantProductFormRequest $request): JsonResponse
|
||||
{
|
||||
MerchantProductModel::create($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[PutRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'update',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function update(int $id, MerchantProductFormRequest $request): JsonResponse
|
||||
{
|
||||
$model = MerchantProductModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('商品不存在');
|
||||
}
|
||||
$model->update($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = MerchantProductModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('商品不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\PostRoute;
|
||||
use Modules\AnnoRoute\Attribute\PutRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Merchant\Http\Requests\MerchantStoreFormRequest;
|
||||
use Modules\Merchant\Models\MerchantStoreModel;
|
||||
|
||||
#[RequestAttribute('/merchant/store', 'merchant.store')]
|
||||
class MerchantStoreController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'status' => '=',
|
||||
'category_id' => '=',
|
||||
];
|
||||
|
||||
protected array $quickSearchField = ['name', 'contact_name', 'contact_mobile'];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = MerchantStoreModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[PostRoute(authorize: 'create')]
|
||||
public function create(MerchantStoreFormRequest $request): JsonResponse
|
||||
{
|
||||
MerchantStoreModel::create($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[PutRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'update',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function update(int $id, MerchantStoreFormRequest $request): JsonResponse
|
||||
{
|
||||
$model = MerchantStoreModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('商户不存在');
|
||||
}
|
||||
$model->update($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = MerchantStoreModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('商户不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Merchant\Models\PrintTaskModel;
|
||||
|
||||
#[RequestAttribute('/merchant/print-task', 'merchant.print-task')]
|
||||
class PrintTaskController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'status' => '=',
|
||||
'printer_id' => '=',
|
||||
];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = PrintTaskModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = PrintTaskModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('打印任务不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\PostRoute;
|
||||
use Modules\AnnoRoute\Attribute\PutRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Merchant\Http\Requests\PrinterFormRequest;
|
||||
use Modules\Merchant\Models\PrinterModel;
|
||||
|
||||
#[RequestAttribute('/merchant/printer', 'merchant.printer')]
|
||||
class PrinterController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'status' => '=',
|
||||
'merchant_id' => '=',
|
||||
];
|
||||
|
||||
protected array $quickSearchField = ['name', 'brand', 'model'];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = PrinterModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[PostRoute(authorize: 'create')]
|
||||
public function create(PrinterFormRequest $request): JsonResponse
|
||||
{
|
||||
PrinterModel::create($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[PutRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'update',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function update(int $id, PrinterFormRequest $request): JsonResponse
|
||||
{
|
||||
$model = PrinterModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('打印机不存在');
|
||||
}
|
||||
$model->update($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = PrinterModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('打印机不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\AnnoRoute\Attribute\DeleteRoute;
|
||||
use Modules\AnnoRoute\Attribute\GetRoute;
|
||||
use Modules\AnnoRoute\Attribute\PostRoute;
|
||||
use Modules\AnnoRoute\Attribute\PutRoute;
|
||||
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
||||
use Modules\Common\Http\Controllers\BaseController;
|
||||
use Modules\Merchant\Http\Requests\ProductCategoryFormRequest;
|
||||
use Modules\Merchant\Models\ProductCategoryModel;
|
||||
|
||||
#[RequestAttribute('/merchant/product-category', 'merchant.product-category')]
|
||||
class ProductCategoryController extends BaseController
|
||||
{
|
||||
protected array $searchField = [
|
||||
'status' => '=',
|
||||
'merchant_id' => '=',
|
||||
];
|
||||
|
||||
protected array $quickSearchField = ['name', 'slug'];
|
||||
|
||||
#[GetRoute(authorize: 'query')]
|
||||
public function query(Request $request): JsonResponse
|
||||
{
|
||||
$params = $request->all();
|
||||
$pageSize = $params['pageSize'] ?? 10;
|
||||
$query = ProductCategoryModel::query();
|
||||
$data = $this->buildSearch($params, $query)
|
||||
->paginate($pageSize)
|
||||
->toArray();
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
#[PostRoute(authorize: 'create')]
|
||||
public function create(ProductCategoryFormRequest $request): JsonResponse
|
||||
{
|
||||
ProductCategoryModel::create($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[PutRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'update',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function update(int $id, ProductCategoryFormRequest $request): JsonResponse
|
||||
{
|
||||
$model = ProductCategoryModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('分类不存在');
|
||||
}
|
||||
$model->update($request->validated());
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
#[DeleteRoute(
|
||||
route: '/{id}',
|
||||
authorize: 'delete',
|
||||
where: ['id' => '[0-9]+']
|
||||
)]
|
||||
public function delete(int $id): JsonResponse
|
||||
{
|
||||
$model = ProductCategoryModel::find($id);
|
||||
if (empty($model)) {
|
||||
return $this->error('分类不存在');
|
||||
}
|
||||
$model->delete();
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class MerchantCategoryFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
if (!$this->isUpdate()) {
|
||||
return [
|
||||
'name' => 'required|max:50',
|
||||
'slug' => 'required|max:50|unique:merchant_categories,slug',
|
||||
'description' => 'nullable|max:255',
|
||||
'icon' => 'nullable|max:255',
|
||||
'sort' => 'nullable|integer',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
];
|
||||
}
|
||||
|
||||
$id = $this->route('id');
|
||||
return [
|
||||
'name' => 'required|max:50',
|
||||
'slug' => [
|
||||
'required',
|
||||
'max:50',
|
||||
Rule::unique('merchant_categories', 'slug')->ignore($id),
|
||||
],
|
||||
'description' => 'nullable|max:255',
|
||||
'icon' => 'nullable|max:255',
|
||||
'sort' => 'nullable|integer',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'name.required' => '分类名称不能为空',
|
||||
'slug.required' => '分类标识不能为空',
|
||||
'slug.unique' => '分类标识已存在',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Requests;
|
||||
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class MerchantProductFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'merchant_id' => 'required|integer',
|
||||
'category_id' => 'nullable|integer',
|
||||
'name' => 'required|max:100',
|
||||
'description' => 'nullable',
|
||||
'images' => 'nullable|array',
|
||||
'price' => 'required|numeric',
|
||||
'original_price' => 'nullable|numeric',
|
||||
'stock' => 'nullable|integer',
|
||||
'unit' => 'nullable|max:20',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
'is_recommend' => 'nullable|integer|in:0,1',
|
||||
'sort' => 'nullable|integer',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'merchant_id.required' => '所属商户不能为空',
|
||||
'name.required' => '商品名称不能为空',
|
||||
'price.required' => '售价不能为空',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Requests;
|
||||
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class MerchantStoreFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'user_id' => 'required|integer',
|
||||
'category_id' => 'nullable|integer',
|
||||
'name' => 'required|max:50',
|
||||
'logo' => 'nullable|max:255',
|
||||
'banner' => 'nullable|max:255',
|
||||
'description' => 'nullable',
|
||||
'contact_name' => 'nullable|max:30',
|
||||
'contact_mobile' => 'nullable|max:20',
|
||||
'province' => 'nullable|max:30',
|
||||
'city' => 'nullable|max:30',
|
||||
'district' => 'nullable|max:30',
|
||||
'address' => 'nullable|max:255',
|
||||
'latitude' => 'nullable|max:20',
|
||||
'longitude' => 'nullable|max:20',
|
||||
'business_hours' => 'nullable|max:100',
|
||||
'min_price' => 'nullable|numeric',
|
||||
'status' => 'nullable|integer|in:0,1,2,3',
|
||||
'reject_reason' => 'nullable|max:255',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'name.required' => '店铺名称不能为空',
|
||||
'user_id.required' => '所属用户不能为空',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Requests;
|
||||
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class PrinterFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'merchant_id' => 'required|integer',
|
||||
'name' => 'required|max:50',
|
||||
'brand' => 'nullable|max:50',
|
||||
'model' => 'nullable|max:50',
|
||||
'device_no' => 'nullable|max:100',
|
||||
'secret_key' => 'nullable|max:255',
|
||||
'status' => 'nullable|integer|in:0,1,2',
|
||||
'config' => 'nullable|array',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'merchant_id.required' => '所属商户不能为空',
|
||||
'name.required' => '打印机名称不能为空',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Http\Requests;
|
||||
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class ProductCategoryFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'merchant_id' => 'required|integer',
|
||||
'parent_id' => 'nullable|integer',
|
||||
'name' => 'required|max:50',
|
||||
'slug' => 'required|max:50',
|
||||
'description' => 'nullable|max:255',
|
||||
'icon' => 'nullable|max:255',
|
||||
'sort' => 'nullable|integer',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'merchant_id.required' => '所属商户不能为空',
|
||||
'name.required' => '分类名称不能为空',
|
||||
'slug.required' => '分类标识不能为空',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class MerchantCategoryModel extends Model
|
||||
{
|
||||
protected $table = 'merchant_categories';
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'slug',
|
||||
'description',
|
||||
'icon',
|
||||
'sort',
|
||||
'status',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'sort' => 'integer',
|
||||
'status' => 'integer',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class MerchantProductModel extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $table = 'merchant_products';
|
||||
|
||||
protected $fillable = [
|
||||
'merchant_id',
|
||||
'category_id',
|
||||
'name',
|
||||
'description',
|
||||
'images',
|
||||
'price',
|
||||
'original_price',
|
||||
'stock',
|
||||
'unit',
|
||||
'sales',
|
||||
'status',
|
||||
'is_recommend',
|
||||
'sort',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'merchant_id' => 'integer',
|
||||
'category_id' => 'integer',
|
||||
'images' => 'array',
|
||||
'price' => 'decimal:2',
|
||||
'original_price' => 'decimal:2',
|
||||
'stock' => 'integer',
|
||||
'sales' => 'integer',
|
||||
'status' => 'integer',
|
||||
'is_recommend' => 'integer',
|
||||
'sort' => 'integer',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class MerchantStoreModel extends Model
|
||||
{
|
||||
protected $table = 'merchants';
|
||||
|
||||
protected $fillable = [
|
||||
'user_id',
|
||||
'category_id',
|
||||
'name',
|
||||
'logo',
|
||||
'banner',
|
||||
'description',
|
||||
'contact_name',
|
||||
'contact_mobile',
|
||||
'province',
|
||||
'city',
|
||||
'district',
|
||||
'address',
|
||||
'latitude',
|
||||
'longitude',
|
||||
'business_hours',
|
||||
'balance',
|
||||
'total_income',
|
||||
'min_price',
|
||||
'status',
|
||||
'reject_reason',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'user_id' => 'integer',
|
||||
'category_id' => 'integer',
|
||||
'balance' => 'decimal:2',
|
||||
'total_income' => 'decimal:2',
|
||||
'min_price' => 'decimal:2',
|
||||
'status' => 'integer',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class PrintTaskModel extends Model
|
||||
{
|
||||
protected $table = 'print_tasks';
|
||||
|
||||
protected $fillable = [
|
||||
'printer_id',
|
||||
'order_id',
|
||||
'content',
|
||||
'copies',
|
||||
'status',
|
||||
'error_msg',
|
||||
'printed_at',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'printer_id' => 'integer',
|
||||
'order_id' => 'integer',
|
||||
'copies' => 'integer',
|
||||
'status' => 'integer',
|
||||
'printed_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class PrinterModel extends Model
|
||||
{
|
||||
protected $table = 'printers';
|
||||
|
||||
protected $fillable = [
|
||||
'merchant_id',
|
||||
'name',
|
||||
'brand',
|
||||
'model',
|
||||
'device_no',
|
||||
'secret_key',
|
||||
'status',
|
||||
'config',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'merchant_id' => 'integer',
|
||||
'status' => 'integer',
|
||||
'config' => 'array',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ProductCategoryModel extends Model
|
||||
{
|
||||
protected $table = 'product_categories';
|
||||
|
||||
protected $fillable = [
|
||||
'merchant_id',
|
||||
'parent_id',
|
||||
'name',
|
||||
'slug',
|
||||
'description',
|
||||
'icon',
|
||||
'sort',
|
||||
'status',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'merchant_id' => 'integer',
|
||||
'parent_id' => 'integer',
|
||||
'sort' => 'integer',
|
||||
'status' => 'integer',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Merchant\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Modules\AnnoRoute\AnnoRoute;
|
||||
|
||||
class MerchantServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function boot(AnnoRoute $annoRoute): void
|
||||
{
|
||||
$annoRoute->register(base_path('modules/Merchant/Http/Controllers'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user