Commit Graph

62 Commits

Author SHA1 Message Date
700ab9def4 feat: 好友系统全实现
后端:
- FriendController:add/remove/status/index 四个接口
- FriendAdded / FriendRemoved 广播事件(私有频道)
- channels.php 注册 user.{username} 私有频道鉴权
- routes/web.php 注册好友路由
- ChatController::init() 修复 DutyLog 在 return 后执行的 bug
- ChatController::notifyFriendsOnline() 上线时悄悄话通知好友

前端:
- user-actions:写私信 → 加好友/删好友按钮(动态状态)
- toggleFriend() 方法 + fetchUser 后加载好友状态
- scripts:监听私有频道 FriendAdded/FriendRemoved
- showFriendToast() 右下角浮窗通知(5秒自动消失)
- global-dialog 加 fdSlideIn 动画
2026-03-01 00:48:51 +08:00
76fd17c727 功能:存点时自动同步在职用户勤务日志
- heartbeat 手动存点:调用 tickDutyLog()
- AutoSaveExp 自动存点:调用 tickDutyLog()
- 逻辑:今日已有开放日志则刷新 duration_seconds,无则新建(login_at 取 in_time 进房时间)
- 修复:TIMESTAMPDIFF 结果用 GREATEST(0, ...) 防 unsigned 溢出
- 修复:database.php MySQL 连接加 timezone=+08:00,与 PHP Asia/Shanghai 时区对齐
2026-03-01 00:04:59 +08:00
5f30220609 feat: 任命/撤销通知系统 + 用户名片UI优化
- 任命/撤销事件增加 type 字段区分类型
- 任命:全屏礼花 + 紫色弹窗 + 紫色系统消息
- 撤销:灰色弹窗 + 灰色系统消息,无礼花
- 消息分发:操作者/被操作者显示在私聊面板,其他人显示在公屏
- 系统消息加随机鼓励语(各5条轮换)
- ChatStateService 修复 Redis key 前缀扫描问题(getAllActiveRoomIds)
- 用户名片折叠优化:管理员视野、职务履历均可折叠
- 管理操作 + 职务操作合并为「🔧 管理操作」折叠区
- 悄悄话改为「🎁 送礼物」按钮,礼物面板内联展开
2026-02-28 23:44:38 +08:00
7643740eda 功能:今日风云榜独立页 /leaderboard/today,导航新增「今日榜」按钮 2026-02-28 13:50:51 +08:00
72d23af335 功能:ChatController 新人礼包 6666 金币接入积分流水,记录 newbie_bonus 来源 2026-02-28 13:34:40 +08:00
0c5e218aa8 功能:新增用户积分流水系统
- 新建 user_currency_logs 流水表 (Migration)
- App\Enums\CurrencySource 来源枚举(可扩展)
- App\Models\UserCurrencyLog 流水模型
- App\Services\UserCurrencyService 统一积分变更服务
- FishingController:抛竿/收竿接入流水记录
- AutoSaveExp:自动存点接入流水记录
- Admin/UserManagerController:管理员调整接入流水记录
- LeaderboardController:新增今日三榜(经验/金币/魅力)+ 个人流水日志页
- Admin/CurrencyStatsController:后台活动统计页
- views:新增个人日志页、后台统计页;排行榜新增今日榜数据传递
- routes:新增个人日志路由 /my/currency-logs、后台路由 /admin/currency-stats
2026-02-28 12:49:26 +08:00
ffe35c048d 修复:历史消息服务端过滤,只加载与当前用户相关的记录,避免他人私聊和系统通知混入包厢窗 2026-02-28 11:54:29 +08:00
9a98bdfbe6 修复:聊天室初次加载时附带历史消息,解决因网络延迟错失入场欢迎语的问题 2026-02-28 11:17:09 +08:00
4ef95eaa27 新增:新人首次入住聊天室大礼包自动发放功能(6666金币 + 满场烟花 + 公屏欢迎) 2026-02-27 17:21:33 +08:00
3ad67a1610 优化:修改单次特效卡的公屏广播文案,避免让大家误以为是赠送了道具卡实体 2026-02-27 17:00:26 +08:00
43956d286e 修复:礼物系统消息字段名改为 from_user/to_user/sent_at 与前端 appendMessage() 匹配,触发金色边框样式 2026-02-27 16:30:41 +08:00
157aee3812 修复:confirmGift null错误(先保存item再关弹框);MessageSent改为ShouldBroadcastNow立即广播;修复route()引号冲突 2026-02-27 16:26:16 +08:00
6a8ba4fbc8 功能:单次特效卡支持赠送——送礼弹框、广播给指定用户/全员、公屏系统消息、购买后关闭商店展示特效 2026-02-27 16:19:21 +08:00
7fb86bfe21 Feat: 商店功能完整实现(单次特效卡888/周卡8888/改名卡5000,含购买、周卡覆盖、改名黑名单) 2026-02-27 15:57:12 +08:00
b366c9888f Feat: 后台用户列表增加金币/魅力列,表头支持点击排序(等级/经验/金币/魅力) 2026-02-27 15:31:29 +08:00
4668c163aa Feat: 管理员进入聊天室自动触发烟花+公屏欢迎公告 2026-02-27 14:34:04 +08:00
4da2d19b1f Feat: 新增下雪特效,加强烟花/下雨在浅色背景的显色(发光粒子+深色雨线) 2026-02-27 14:22:13 +08:00
709e0d4975 Feat: 实现全屏特效系统(烟花/下雨/雷电),管理员一键触发全房间广播 2026-02-27 14:14:35 +08:00
dc9294207b Fix: ip2region改用包自带内置数据库,避免自定义xdb格式不兼容问题 2026-02-27 12:26:37 +08:00
e1dbd9889d Fix: 修正ip2region调用方式,改用getIpInfo()兼容各版本,并正确传入xdb路径 2026-02-27 12:24:46 +08:00
cb25e5b408 Feat: 切换IP归属地解析引擎为ip2region,原生返回中文省市运营商,精度到市级 2026-02-27 12:22:46 +08:00
96712df9cf Fix: 强制Flex横排三列显示,修复GeoLite2本地库返回英文省市名改为中文翻译 2026-02-27 12:08:38 +08:00
1834a8e9ff Fix: 修正名片资产格子在部分环境下垂直堆叠的BUG改为Flex布局,并修复省市所在地因为缓存匹配不上导致不显示的问题 2026-02-27 12:05:57 +08:00
006da4f5d6 Feat: 切换 IP 归属地解析引擎至本地离线库 MaxMind GeoLite2 并开启原生中文支持 2026-02-27 12:00:20 +08:00
63f7cfbb25 UI&Feat: 压缩资产数据显示在一行以节省空间,同时增加 IP 归属地中英文本地化翻译映射 2026-02-27 11:56:29 +08:00
d73dda6cd2 Fix: 防止生产环境未运行 composer install 导致 Location facade 找不到引发 500 错误 2026-02-27 11:44:28 +08:00
731792fab6 Feature: 权限优化 - 名片弹窗按等级展示资料,高管可查IP及归属地 2026-02-27 11:29:48 +08:00
74217896d1 Feature: 调整AI聊天机器人的形象为“AI小班长”并更新了军人卡通风格头像 2026-02-27 10:54:41 +08:00
5c2172c2af 增强:完善用户考勤记录机制,增加进出房间时间和登录次数统计 2026-02-27 10:11:09 +08:00
ea7331dd98 增强:聊天室内修改绑定邮箱时强制要求邮件验证码校验,并增加 60 秒发送频率限制防滥发机制 2026-02-27 10:02:33 +08:00
02356666ca 修复:增强 SMTP 连通性测试容错,加入 10 秒超时限制避免端口不通导致页面死锁,并捕获 Throwable 防止致命异常 2026-02-27 09:53:46 +08:00
baae2cc26f 特性:增加创始人专享的在线 SMTP 配置系统并在 AppServiceProvider 中动态加载以拦截系统发件 2026-02-27 09:47:47 +08:00
5e6101483d UI调整:在系统参数配置中移除 chatbot_enabled 显示,统一由AI厂商配置专用入口管理 2026-02-27 09:41:47 +08:00
44ac4742d8 增强:实现真正的创始人(ID=1)特权控制:限制非 ID=1 管理员访问部分后台模块及修改他人等级的能力 2026-02-27 09:39:26 +08:00
4c48530a4f 优化:登录豁免等级改为动态读取 sysparam 中的 superlevel (管理员级别) 2026-02-27 09:34:24 +08:00
3925ecaeb2 增强:登录接口增加封号和封IP拦截检测,并为管理员提供强登豁免 2026-02-27 09:30:14 +08:00
fefa275771 功能:留言板新建留言改为弹窗形式,并新增用户选择下拉列表
- GuestbookController::index() 追加传入 $users 用户名列表
- 顶部内联展开表单改为居中 Modal 弹窗,带遮罩层和过渡动画
- 收件人从普通文本输入改为下拉选择器(含全部注册用户)
- 悄悄话改为 toggle 开关样式
- 增加顶级渐变色标题栏
2026-02-27 02:02:38 +08:00
f745db3990 功能:聊天获取魅力值(方案 B)
- 对指定用户发言时根据性别给魅力:异性 +2,同性 +1(后台可配)
- Redis 每小时上限 20(后台可配 charm_hourly_limit)
- 系统用户、对'大家'发言、悄悄话不触发
- 新增 sysparam:charm_cross_sex / charm_same_sex / charm_hourly_limit
2026-02-27 01:14:24 +08:00
b72e2a5936 优化:送花消息改为普通通知样式 + 在收花人私聊屏显示
- from_user 从'系统传音'改为'送花播报',不再使用红色公告样式
- to_user 从'大家'改为收花人用户名,消息在收花人 say2 显示
- 礼物图片渲染逻辑移到普通系统用户分支
2026-02-27 01:09:26 +08:00
c5cc55fc84 功能:送花/礼物系统完整开发
- 新增 Gift 模型和 gifts 数据表(7种默认花卉,各有图片/金币/魅力配置)
- 7张花卉图片生成并存放于 public/images/gifts/
- 名片弹窗新增送礼物 UI:图片选择列表、金币/魅力标注、数量选择
- sendFlower 控制器方法:按 gift_id 查找礼物、扣金币、加魅力、广播消息
- 聊天消息渲染支持显示礼物图片(含弹跳动画效果)
- 后台可在 gifts 表中管理花卉类型(名称、图标、图片、金币、魅力、排序、启禁用)
2026-02-27 01:01:56 +08:00
a2190f7b88 优化:存点称号改为后端动态返回
- 后端根据 VIP 等级/管理员身份返回 title 字段
- 前端移除硬编码的等级-称号映射,直接使用返回值
- 管理员显示'管理员',VIP 显示会员名称,其他显示'普通会员'
2026-02-27 00:49:35 +08:00
4cc2982d9f 功能:自动存点增加金币奖励 + VIP 加成
- heartbeat 增加金币奖励逻辑,读取 jjb_per_heartbeat 配置
- 支持固定值('5')和范围('1-10')两种奖励配置格式
- VIP 会员自动应用经验和金币加成倍率
- 前端手动存点显示金币余额和本次获得的奖励增量
- 新增迁移文件插入 jjb_per_heartbeat 配置项(默认 1-3)
- 更新 exp_per_heartbeat 描述说明支持范围格式
2026-02-27 00:44:45 +08:00
b72330342b 优化:排行榜显示人数改为后台可配置
- 新增 sysparam leaderboard_limit 配置项,默认 20
- 后台修改后清缓存即可生效
2026-02-27 00:36:26 +08:00
8c05e0fb83 优化排行榜:隐藏管理员 + 盖世神豪榜单位改为枚
- 所有榜单查询排除 user_level >= superLevel 的管理员
- 盖世神豪榜单位从'万'改为'枚'
- 缓存的查询也会过滤管理员(缓存到期后自动生效)
2026-02-27 00:33:25 +08:00
add92488a6 修复:UserController::show 返回格式改为 {status, data} 包装
- 匹配 Alpine.js fetchUser 期望的 data.status === 'success' 判断
- 这是双击用户名弹窗不显示的根本原因
2026-02-27 00:05:31 +08:00
bba47d2698 美化:私聊查看页面从原始 JSON 改为美观的 HTML 页面
- 新增 admin/whispers.blade.php 暗色主题聊天气泡样式
- 控制器支持 JSON(弹窗用)和 HTML(新窗口用)双模式
- 区分发出/收到方向,显示时间和消息数量
2026-02-26 23:59:17 +08:00
718d6901ac 修复:心跳存点经验增加加入30秒冷却间隔
- 用 Redis setex 设置30秒冷却,防止频繁点击存点刷经验
- 冷却期内点击存点仍正常保存数据,但不增加经验
2026-02-26 23:49:55 +08:00
bfd90ca882 统一:所有图片后缀从 .GIF 改为 .gif
- headface 目录 371 个文件重命名为小写后缀
- 代码中所有 .GIF 引用改为 .gif(User.php/AuthController/channels.php/frame.blade/scripts.blade)
- 新增迁移:将 users 表 usersf 列中的 .GIF 批量替换为 .gif
- 解决 Linux 大小写敏感导致图片加载失败的问题
2026-02-26 23:27:35 +08:00
2d45e52591 优化:禁言提示显示操作者 + 被禁言发言改用持久提示
- UserMuted 事件增加 operator 字段,禁言通知显示管理员名字
- 输入框 placeholder 显示操作者名字
- 被禁言用户发言时改为在包厢窗口显示红色持久提示(替代 alert 弹窗)
2026-02-26 23:12:55 +08:00
66f68bab85 功能:管理员全员清屏 + 离开提示趣味风格
- 新增 ScreenCleared 广播事件
- AdminCommandController 添加 clearScreen 方法(站长权限)
- ChatStateService 添加 clearMessages 方法
- chat.js 添加 ScreenCleared Echo 监听
- 前端:全员清屏按钮(红色🧹)+ 清屏处理逻辑(保留悄悄话)
- 离开提示改为与进入一致的趣味随机语风格(橙色【离开】标签)
2026-02-26 23:05:56 +08:00