first commit

This commit is contained in:
wushumin
2026-04-16 11:17:18 +08:00
commit 5b9c398e68
98 changed files with 8701 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class AdminToken extends Model
{
protected $table = 'admin_tokens';
protected $guarded = [];
protected $hidden = ['token_hash', 'updated_at'];
protected $casts = [
'expired_at' => 'datetime',
];
}

View File

@@ -0,0 +1,17 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class AdminUser extends Model
{
protected $table = 'admin_users';
protected $guarded = [];
protected $hidden = ['password_hash', 'updated_at'];
public function roles()
{
return $this->belongsToMany(Role::class, 'admin_roles', 'admin_id', 'role_id');
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
protected $table = 'orders';
protected $guarded = [];
// 隐藏时间戳等不必要字段,保持前端接口整洁
protected $hidden = ['updated_at'];
// 关联订单流转日志 (时间轴)
public function logs()
{
return $this->hasMany(OrderLog::class, 'order_id', 'id')->orderBy('created_at', 'desc');
}
}

View File

@@ -0,0 +1,11 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class OrderLog extends Model
{
protected $table = 'order_logs';
protected $guarded = [];
}

View File

@@ -0,0 +1,15 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class PaymentTransaction extends Model
{
protected $table = 'payment_transactions';
protected $guarded = [];
protected $hidden = ['updated_at'];
protected $casts = [
'raw_json' => 'array',
];
}

View File

@@ -0,0 +1,12 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class Permission extends Model
{
protected $table = 'permissions';
protected $guarded = [];
protected $hidden = ['updated_at'];
}

View File

@@ -0,0 +1,26 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class Report extends Model
{
protected $table = 'reports';
protected $guarded = [];
// Cast JSON fields automatically
protected $casts = [
'flaws_json' => 'array',
'images_json' => 'array',
];
public function order()
{
return $this->belongsTo(Order::class, 'order_id');
}
public function inspector()
{
return $this->belongsTo(AdminUser::class, 'inspector_id');
}
}

17
app/common/model/Role.php Normal file
View File

@@ -0,0 +1,17 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
protected $table = 'roles';
protected $guarded = [];
protected $hidden = ['updated_at'];
public function permissions()
{
return $this->belongsToMany(Permission::class, 'role_permissions', 'role_id', 'permission_id');
}
}

12
app/common/model/User.php Normal file
View File

@@ -0,0 +1,12 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $table = 'users';
protected $guarded = [];
protected $hidden = ['updated_at'];
}

View File

@@ -0,0 +1,15 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class UserToken extends Model
{
protected $table = 'user_tokens';
protected $guarded = [];
protected $hidden = ['token_hash', 'updated_at'];
protected $casts = [
'expired_at' => 'datetime',
];
}

View File

@@ -0,0 +1,12 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class UserWechatIdentity extends Model
{
protected $table = 'user_wechat_identities';
protected $guarded = [];
protected $hidden = ['updated_at'];
}

View File

@@ -0,0 +1,12 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class WechatApp extends Model
{
protected $table = 'wechat_apps';
protected $guarded = [];
protected $hidden = ['updated_at', 'app_secret'];
}

View File

@@ -0,0 +1,11 @@
<?php
namespace app\common\model;
use Illuminate\Database\Eloquent\Model;
class WechatMerchant extends Model
{
protected $table = 'wechat_merchants';
protected $guarded = [];
protected $hidden = ['updated_at', 'api_v3_key', 'private_key_pem', 'apiclient_cert_path', 'apiclient_key_path'];
}