feat(database): 添加用户角色权限系统及相关监控功能

- 创建用户表(users)包含基本信息和认证字段
- 创建角色表(roles)用于权限控制
- 创建权限表(permissions)定义系统权限
- 创建用户角色关联表(user_roles)建立用户与角色关系
- 创建角色权限关联表(role_permissions)建立角色与权限关系
- 创建迁移记录表(migrations)追踪数据库变更
- 添加AdminController提供管理员面板功能
- 实现系统监控、配置管理、缓存清理等功能
- 添加AOP切面编程支持的各种通知类型
- 实现告警管理AlertManager支持多渠道告警
- 添加文档注解接口规范
This commit is contained in:
Lawson
2026-04-08 17:00:28 +08:00
commit 2782d765fb
270 changed files with 107192 additions and 0 deletions

View File

@@ -0,0 +1,143 @@
<?php
declare(strict_types=1);
use Fendx\Database\Seeder\Seeder;
use Fendx\Database\Connection\DB;
/**
* 用户种子数据
*/
class UserSeeder extends Seeder
{
public function run(): void
{
$users = [
[
'username' => 'admin',
'email' => 'admin@fendx.com',
'password' => password_hash('admin123', PASSWORD_DEFAULT),
'nickname' => '系统管理员',
'avatar' => null,
'phone' => '13800138000',
'gender' => 'other',
'birthday' => null,
'bio' => '系统默认管理员账号',
'status' => 'active',
'email_verified' => true,
'phone_verified' => true,
'email_verified_at' => date('Y-m-d H:i:s'),
'phone_verified_at' => date('Y-m-d H:i:s'),
'last_login_at' => date('Y-m-d H:i:s'),
'last_login_ip' => '127.0.0.1',
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
],
[
'username' => 'test_user',
'email' => 'test@fendx.com',
'password' => password_hash('test123', PASSWORD_DEFAULT),
'nickname' => '测试用户',
'avatar' => null,
'phone' => '13800138001',
'gender' => 'male',
'birthday' => '1990-01-01',
'bio' => '这是一个测试用户账号',
'status' => 'active',
'email_verified' => true,
'phone_verified' => false,
'email_verified_at' => date('Y-m-d H:i:s'),
'phone_verified_at' => null,
'last_login_at' => date('Y-m-d H:i:s'),
'last_login_ip' => '127.0.0.1',
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
],
[
'username' => 'developer',
'email' => 'dev@fendx.com',
'password' => password_hash('dev123', PASSWORD_DEFAULT),
'nickname' => '开发者',
'avatar' => null,
'phone' => '13800138002',
'gender' => 'male',
'birthday' => '1985-05-15',
'bio' => '系统开发者账号',
'status' => 'active',
'email_verified' => true,
'phone_verified' => true,
'email_verified_at' => date('Y-m-d H:i:s'),
'phone_verified_at' => date('Y-m-d H:i:s'),
'last_login_at' => date('Y-m-d H:i:s'),
'last_login_ip' => '127.0.0.1',
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
],
[
'username' => 'moderator',
'email' => 'mod@fendx.com',
'password' => password_hash('mod123', PASSWORD_DEFAULT),
'nickname' => '内容管理员',
'avatar' => null,
'phone' => '13800138003',
'gender' => 'female',
'birthday' => '1992-08-20',
'bio' => '负责内容审核和管理的版主',
'status' => 'active',
'email_verified' => true,
'phone_verified' => false,
'email_verified_at' => date('Y-m-d H:i:s'),
'phone_verified_at' => null,
'last_login_at' => date('Y-m-d H:i:s'),
'last_login_ip' => '127.0.0.1',
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
],
[
'username' => 'user001',
'email' => 'user001@fendx.com',
'password' => password_hash('user123', PASSWORD_DEFAULT),
'nickname' => '普通用户1',
'avatar' => null,
'phone' => '13800138004',
'gender' => 'male',
'birthday' => '1995-03-10',
'bio' => '普通注册用户',
'status' => 'active',
'email_verified' => true,
'phone_verified' => false,
'email_verified_at' => date('Y-m-d H:i:s'),
'phone_verified_at' => null,
'last_login_at' => date('Y-m-d H:i:s'),
'last_login_ip' => '127.0.0.1',
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
],
[
'username' => 'user002',
'email' => 'user002@fendx.com',
'password' => password_hash('user123', PASSWORD_DEFAULT),
'nickname' => '普通用户2',
'avatar' => null,
'phone' => '13800138005',
'gender' => 'female',
'birthday' => '1993-11-25',
'bio' => '普通注册用户',
'status' => 'active',
'email_verified' => true,
'phone_verified' => false,
'email_verified_at' => date('Y-m-d H:i:s'),
'phone_verified_at' => null,
'last_login_at' => date('Y-m-d H:i:s'),
'last_login_ip' => '127.0.0.1',
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
],
];
foreach ($users as $user) {
DB::table('users')->insert($user);
}
$this->command->info('用户种子数据插入完成');
}
}