feat: 增加自定义头像上传、自动压缩与自动清理功能,统一全站头像路径读取逻辑

This commit is contained in:
2026-03-12 15:26:54 +08:00
parent ec95d69e92
commit 78564e2a1d
57 changed files with 569 additions and 350 deletions
@@ -48,21 +48,21 @@ return new class extends Migration
['alias' => 'level_warn', 'body' => '5', 'guidetxt' => '警告所需等级', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'level_mute', 'body' => '50', 'guidetxt' => '禁言所需等级', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'level_kick', 'body' => '60', 'guidetxt' => '踢人所需等级', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'level_announcement','body' => '60', 'guidetxt' => '设置公告所需等级', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'level_announcement', 'body' => '60', 'guidetxt' => '设置公告所需等级', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'level_ban', 'body' => '80', 'guidetxt' => '封号所需等级', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'level_banip', 'body' => '90', 'guidetxt' => '封IP所需等级', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'level_freeze', 'body' => '14', 'guidetxt' => '冻结账号所需等级', 'created_at' => $now, 'updated_at' => $now],
// ── 随机事件 ──────────────────────────────────────────────
['alias' => 'auto_event_chance','body' => '10', 'guidetxt' => '随机事件触发概率(百分比,1-100)', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'auto_event_chance', 'body' => '10', 'guidetxt' => '随机事件触发概率(百分比,1-100)', 'created_at' => $now, 'updated_at' => $now],
// ── 魅力系统 ──────────────────────────────────────────────
['alias' => 'charm_cross_sex', 'body' => '2', 'guidetxt' => '异性聊天每条消息增加的魅力值', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'charm_same_sex', 'body' => '1', 'guidetxt' => '同性聊天每条消息增加的魅力值', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'charm_hourly_limit','body' => '20', 'guidetxt' => '每小时通过聊天获取的魅力值上限(防刷屏)', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'charm_hourly_limit', 'body' => '20', 'guidetxt' => '每小时通过聊天获取的魅力值上限(防刷屏)', 'created_at' => $now, 'updated_at' => $now],
// ── 排行榜 ────────────────────────────────────────────────
['alias' => 'leaderboard_limit','body' => '20', 'guidetxt' => '🏆 排行榜每榜显示人数', 'created_at' => $now, 'updated_at' => $now],
['alias' => 'leaderboard_limit', 'body' => '20', 'guidetxt' => '🏆 排行榜每榜显示人数', 'created_at' => $now, 'updated_at' => $now],
]);
}
@@ -7,6 +7,7 @@
* username_blacklist 用户改名后的旧名称保留黑名单
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
@@ -5,6 +5,7 @@
* 记录所有用户经验/金币/魅力的变动来源与金额,支持今日排行与活动统计
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
@@ -30,7 +30,7 @@ return new class extends Migration
public function down(): void
{
// 先把现有 NULL 行补一个兜底值,再改回 NOT NULL
DB::statement("UPDATE `username_blacklist` SET `reserved_until` = NOW() + INTERVAL 365 DAY WHERE `reserved_until` IS NULL");
DB::statement("ALTER TABLE `username_blacklist` MODIFY `reserved_until` TIMESTAMP NOT NULL");
DB::statement('UPDATE `username_blacklist` SET `reserved_until` = NOW() + INTERVAL 365 DAY WHERE `reserved_until` IS NULL');
DB::statement('ALTER TABLE `username_blacklist` MODIFY `reserved_until` TIMESTAMP NOT NULL');
}
};
@@ -12,42 +12,42 @@ return new class extends Migration
{
DB::table('marriage_configs')->insertOrIgnore([
[
'group' => '时间规则',
'key' => 'divorce_mutual_cooldown',
'value' => 70,
'label' => '协议离婚冷静期(天)',
'group' => '时间规则',
'key' => 'divorce_mutual_cooldown',
'value' => 70,
'label' => '协议离婚冷静期(天)',
'description' => '协议离婚成功后,多少天内不能再次结婚 (支持设置为 0)',
'min' => 0,
'max' => 365,
'created_at' => now(),
'updated_at' => now(),
'min' => 0,
'max' => 365,
'created_at' => now(),
'updated_at' => now(),
],
[
'group' => '时间规则',
'key' => 'divorce_auto_cooldown',
'value' => 70,
'label' => '系统强制离婚冷静期(天)',
'group' => '时间规则',
'key' => 'divorce_auto_cooldown',
'value' => 70,
'label' => '系统强制离婚冷静期(天)',
'description' => '单方面申请协议离婚但对方不管,导致超时后系统强制离婚的冷静期',
'min' => 0,
'max' => 365,
'created_at' => now(),
'updated_at' => now(),
'min' => 0,
'max' => 365,
'created_at' => now(),
'updated_at' => now(),
],
]);
// 由于离婚有 mutual, auto, forced 等,我们同时添加 forced 参数的插入以防遗漏
DB::table('marriage_configs')->insertOrIgnore([
[
'group' => '时间规则',
'key' => 'divorce_forced_cooldown',
'value' => 70,
'label' => '单方强制离婚冷静期(天)',
'group' => '时间规则',
'key' => 'divorce_forced_cooldown',
'value' => 70,
'label' => '单方强制离婚冷静期(天)',
'description' => '通过单方面强制解除契约功能导致的离婚冷静期',
'min' => 0,
'max' => 365,
'created_at' => now(),
'updated_at' => now(),
]
'min' => 0,
'max' => 365,
'created_at' => now(),
'updated_at' => now(),
],
]);
}
@@ -7,6 +7,7 @@
* red_packet_claims:红包领取记录(先到先得,每人只能领一次)
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
@@ -7,6 +7,7 @@
* 默认 gold,兼容已有记录。
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
@@ -6,6 +6,7 @@
* 记录每次系统/管理员投放的神秘箱信息,包含类型、暗号、奖惩范围及领取状态。
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
@@ -6,6 +6,7 @@
* 记录每个箱子被哪位用户在何时用什么暗号领取,以及实际奖励金额。
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
@@ -6,6 +6,7 @@
* 记录每期彩票的开奖状态、号码、奖池金额、派奖结果。
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
@@ -6,6 +6,7 @@
* 透明记录每期奖池的每笔变动(售票入池、派奖扣除、滚存、系统注入)。
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
@@ -6,6 +6,7 @@
* 记录每用户每注的选号、中奖等级、派奖金额。
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/