feat: 实现挂机修仙、排行榜、大厅重构与全站留言板系统

- (Phase 8) 后台各维度管理与配置
- (Phase 9) 全自动静默挂机修仙升级
- (Phase 9) 四大维度风云排行榜页面
- (Phase 10) 全站留言板与悄悄话私信功能
- 运行 Pint 代码格式化
This commit is contained in:
2026-02-26 13:35:38 +08:00
parent 7d6423902d
commit 50fc804402
85 changed files with 5776 additions and 30 deletions
+31
View File
@@ -0,0 +1,31 @@
<?php
/**
* 文件功能:动作表情模型
*
* 对应原 ASP 文件:action
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Action extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'act_name',
'alias',
'toall',
'toself',
'toother',
];
}
+60
View File
@@ -0,0 +1,60 @@
<?php
/**
* 文件功能:管理员操作统计模型
*
* 对应原 ASP 文件:admincz
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class AdminLog extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'username',
'uu_level',
'in_time',
'out_time',
'caozuo',
'fs_sl',
'fs_name',
'tr_sl',
'tr_name',
'jg_sl',
'jg_name',
'dj_sl',
'dj_name',
'yjdj_sl',
'yjdj_name',
'fip_sl',
'fip_name',
'fjj_sl',
'fjy_sl',
'flh_sl',
'jl_time',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'in_time' => 'datetime',
'jl_time' => 'datetime',
];
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
/**
* 文件功能:操作日志模型
*
* 对应原 ASP 文件:record
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class AuditLog extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'occ_time',
'occ_env',
'stype',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'occ_time' => 'datetime',
];
}
}
+44
View File
@@ -0,0 +1,44 @@
<?php
/**
* 文件功能:好友呼叫模型
*
* 对应原 ASP 文件:calls
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class FriendCall extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'who',
'towho',
'callmess',
'calltime',
'read',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'calltime' => 'datetime',
'read' => 'boolean',
];
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
/**
* 文件功能:好友申请模型
*
* 对应原 ASP 文件:friendrq
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class FriendRequest extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'who',
'towho',
'sub_time',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'sub_time' => 'datetime',
];
}
}
+49
View File
@@ -0,0 +1,49 @@
<?php
/**
* 文件功能:留言板模型
*
* 对应原 ASP 文件:guestbook
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Guestbook extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'who',
'towho',
'secret',
'ip',
'email',
'web',
'addr',
'post_time',
'text_title',
'text_body',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'post_time' => 'datetime',
'secret' => 'boolean',
];
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
/**
* 文件功能:IP 封禁模型
*
* 对应原 ASP 文件:ip_lock
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class IpLock extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'ip',
'end_time',
'act_level',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'end_time' => 'datetime',
];
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
/**
* 文件功能:IP 登录日志模型
*
* 对应原 ASP 文件:ip
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class IpLog extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'ip',
'sdate',
'uuname',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'sdate' => 'datetime',
];
}
}
+44
View File
@@ -0,0 +1,44 @@
<?php
/**
* 文件功能:婚姻关系模型
*
* 对应原 ASP 文件:hy / lh
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Marriage extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'hyname',
'hyname1',
'hytime',
'hygb',
'hyjb',
'i',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'hytime' => 'datetime',
];
}
}
+47
View File
@@ -0,0 +1,47 @@
<?php
/**
* 文件功能:聊天消息模型
*
* 对应原 ASP 文件:内存 Application("_says") 变量 (用数据库做持久化归档)
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Message extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'room_id',
'from_user',
'to_user',
'content',
'is_secret',
'font_color',
'action',
'sent_at',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'sent_at' => 'datetime',
'is_secret' => 'boolean',
];
}
}
+57
View File
@@ -0,0 +1,57 @@
<?php
/**
* 文件功能:聊天房间模型
*
* 对应原 ASP 文件:room
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Room extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'room_name',
'room_auto',
'room_owner',
'room_des',
'room_top',
'room_title',
'room_keep',
'room_time',
'room_tt',
'room_html',
'room_exp',
'build_time',
'permit_level',
'door_open',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'room_time' => 'datetime',
'build_time' => 'datetime',
'room_keep' => 'boolean',
'room_tt' => 'boolean',
'room_html' => 'boolean',
'door_open' => 'boolean',
];
}
}
+28
View File
@@ -0,0 +1,28 @@
<?php
/**
* 文件功能:房间描述模板模型
*
* 对应原 ASP 文件:room_des
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class RoomDescription extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'alias',
'describ',
];
}
+41
View File
@@ -0,0 +1,41 @@
<?php
/**
* 文件功能:滚动广告/公告模型
*
* 对应原 ASP 文件:scrollad
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ScrollAd extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'ad_title',
'ad_link',
'ad_new_flag',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'ad_new_flag' => 'boolean',
];
}
}
+29
View File
@@ -0,0 +1,29 @@
<?php
/**
* 文件功能:系统参数模型
*
* 对应原 ASP 文件:sysparam
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class SysParam extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'alias',
'guidetxt',
'body',
];
}
+30 -6
View File
@@ -1,36 +1,52 @@
<?php
/**
* 文件功能:主用户模型
*
* 对应原 ASP 文件:user
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
/** @use HasFactory<\Database\Factories\UserFactory> */
use HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var list<string>
* @var array<int, string>
*/
protected $fillable = [
'name',
'email',
'username',
'password',
'email',
'sex',
'user_level',
'room_id',
'first_ip',
'last_ip',
];
/**
* The attributes that should be hidden for serialization.
*
* @var list<string>
* @var array<int, string>
*/
protected $hidden = [
'password',
'remember_token',
'temppass',
'ppass',
'userpassword',
];
/**
@@ -43,6 +59,14 @@ class User extends Authenticatable
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
'log_time' => 'datetime',
'in_time' => 'datetime',
'out_time' => 'datetime',
'hy_time' => 'datetime',
'xr_time' => 'datetime',
'yx_time' => 'datetime',
'sj' => 'datetime',
'q3_time' => 'datetime',
];
}
}
+43
View File
@@ -0,0 +1,43 @@
<?php
/**
* 文件功能:用户道具模型
*
* 对应原 ASP 文件:gg
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class UserItem extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'name',
'times',
'gg',
'dayy',
'lx',
];
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'times' => 'datetime',
];
}
}