|
|
78564e2a1d
|
feat: 增加自定义头像上传、自动压缩与自动清理功能,统一全站头像路径读取逻辑
|
2026-03-12 15:26:54 +08:00 |
|
|
|
246d89fef6
|
fix(chat): 修复五子棋配置 Seeder 的字段报错,撤销错误的表结构修改
|
2026-03-12 08:39:02 +08:00 |
|
|
|
1c42f05e20
|
feat(chat): 完善五子棋功能,包含AI对战、PvP邀请、断线重连及界面美化
|
2026-03-12 08:35:21 +08:00 |
|
|
|
27371fe321
|
新增:双色球彩票系统后端基础(阶段一)
📦 数据库
- lottery_issues(期次表)
- lottery_tickets(购票记录表)
- lottery_pool_logs(奖池流水表,透明展示)
🔩 核心组件
- LotteryIssue / LotteryTicket / LotteryPoolLog 完整 Model
- LotteryService:购票/机选/开奖/奖池派发/滚存/超级期预热/公屏广播
- LotteryController:current/buy/quickPick/history/my 五个接口
- DrawLotteryJob(每日定时开奖)/ OpenLotteryIssueJob(初始化首期)
💰 货币日志
- CurrencySource 新增 LOTTERY_BUY / LOTTERY_WIN
- 所有金币变动均通过 UserCurrencyService::change() 记录流水
🗓️ 调度器
- 每分钟检查停售/开奖时机
- 每日 18:00 超级期预热广播
🔧 配置
- GameConfigSeeder 追加 lottery 默认配置(默认关闭)
- /games/enabled 接口追加 lottery 开关状态
- 新增 /lottery/* 路由组(auth 保护)
|
2026-03-04 15:38:02 +08:00 |
|
|
|
602dcd7cf1
|
feat: 神秘箱子系统完整实现 + 婚姻状态弹窗 + 工具栏优化
## 新功能
- 神秘箱子系统(MysteryBox)完整实现:
- 新增 MysteryBox / MysteryBoxClaim 模型及迁移文件
- DropMysteryBoxJob / ExpireMysteryBoxJob 队列作业
- MysteryBoxController(/mystery-box/status + /mystery-box/claim)
- 支持三种类型:普通箱(500~2000金)/ 稀有箱(5000~20000金)/ 黑化箱(陷阱扣200~1000金)
- 调度器自动投放 + 管理员手动投放
- CurrencySource 新增 MYSTERY_BOX / MYSTERY_BOX_TRAP 枚举
- 婚姻状态弹窗(工具栏「婚姻」按钮):
- 工具栏「呼叫」改为「婚姻」,点击打开婚姻状态弹窗
- 动态渲染三种状态:单身 / 求婚中 / 已婚
- 被求婚方可直接「答应 / 婉拒」;已婚可申请离婚(含二次确认)
## 优化修复
- frame.blade.php:Alpine.js CDN 补加 defer,修复所有组件初始化报错
- scripts.blade.php:神秘箱子暗号主动拦截(不依赖轮询),领取成功后弹 chatDialog 展示结果,更新金币余额
- MysteryBoxController:claim() 时 change() 补传 room_id 记录来源房间
- 后台游戏管理页(game-configs):投放箱子按钮颜色修复;弹窗替换为 window.adminDialog
- admin/layouts:新增全局 adminDialog 弹窗组件(替代原生 alert/confirm)
- baccarat-panel:FAB 拖动重构为 Alpine.js baccaratFab() 组件,与 slotFab 一致
- GAMES_TODO.md:神秘箱子移入已完成区,补全修复记录
|
2026-03-03 19:29:43 +08:00 |
|
|
|
03ec3a9fbb
|
功能:钓鱼游戏后台管理系统
一、钓鱼全局开关
- 钓鱼纳入 GameConfig(game_key=fishing),游戏管理页可一键开关
- cast() 接口加开关校验,关闭时返回 403 友好提示
- GameConfigSeeder 新增 fishing 配置(含4个参数)
二、钓鱼事件数据库化
- 新建 fishing_events 表(emoji/name/message/exp/jjb/weight/is_active/sort)
- FishingEvent 模型含 rollOne() 加权随机方法
- FishingEventSeeder 填充7条初始事件(经验降低、金币提升)
- FishingController::randomFishResult() 改为读数据库事件
三、钓鱼参数迁移至 GameConfig
- fishing_cost/wait_min/wait_max/cooldown 改为 GameConfig::param() 读取
- 保留 Sysparam fallback 兼容旧数据
四、后台管理页面
- 新建 FishingEventController(CRUD + AJAX toggle)
- 新建 admin/fishing/index.blade.php(事件列表+概率显示+编辑弹窗)
- 侧边栏「游戏管理」下方新增「🎣 钓鱼事件」入口
- 游戏管理视图 gameParamLabels 新增钓鱼参数标签
|
2026-03-03 16:46:36 +08:00 |
|
|
|
8a74bfd639
|
新增游戏管理系统:①game_configs表+模型(forGame/isEnabled/param静态方法) ②GameConfigSeeder初始化5款游戏参数 ③后台卡片式管理页(开关+参数表单) ④侧边栏菜单「游戏管理」
|
2026-03-01 20:17:18 +08:00 |
|
|
|
a60a2c8173
|
修正:强制离婚间隔允许设置为0,解除后台HTML5表单效验使得修改其它参数时因其值为0导致拦截保存失败的问题
|
2026-03-01 18:27:19 +08:00 |
|
|
|
03e7f260b2
|
功能:自动钓鱼卡新增 72小时卡(15000金币)
|
2026-03-01 16:20:34 +08:00 |
|
|
|
63679a622f
|
功能:随机浮漂钓鱼防挂机 + 商店自动钓鱼卡
核心变更:
1. FishingController 重写
- cast(): 生成随机浮漂坐标(x/y%) + 一次性 token
- reel(): 必须携带 token 才能收竿(防脚本绕过)
- 检测自动钓鱼卡剩余时间并返回给前端
2. 前端钓鱼逻辑重写
- 抛竿后显示随机位置 🪝 浮漂动画(全屏飘动)
- 鱼上钩时浮漂「下沉」动画,8秒内点击浮漂才能收竿
- 超时未点击:鱼跑了,token 也失效
- 持有自动钓鱼卡:自动点击,紫色提示剩余时间
3. 商店新增「🎣 自动钓鱼卡」分组
- 3档:2h(800金)/8h(2500金)/24h(6000金)
- 图标徽章显示剩余有效时间(紫色)
- 购买后即时激活,无需手动操作
4. 数据库
- shop_items.type 加 auto_fishing 枚举
- shop_items.duration_minutes 新字段(分钟精度)
- Seeder 写入 3 张卡数据
防挂机原理:按钮 → 浮漂随机位置,脚本无法固定坐标点击
|
2026-03-01 16:19:45 +08:00 |
|
|
|
29e43507ac
|
功能:商店完善戒指板块
迁移:
- 2026_03_01_153959:shop_items 增加 intimacy_bonus/charm_bonus 字段
Seeder(RingItemsSeeder):
- 银质戒指 500金 亲密+10 魅力+30
- 黄金戒指 2000金 亲密+30 魅力+80
- 红宝石戒指 8000金 亲密+80 魅力+200
- 钻石戒指 30000金 亲密+200 魅力+500
- 传说神戒 100000金 亲密+500 魅力+1000
ShopService:
- buyItem() 分支加 ring 类型
- buyRing():扣金币 + 写入 active UserPurchase(背包持有)
ShopController::items():
- 返回 intimacy_bonus/charm_bonus
- 统计 ring_counts(各戒指持有数量)
shop-panel.blade.php:
- 新增「💍 求婚戒指」分组(排在最后)
- 图标右上角红色数字徽章(持有时)
- 卡片下方显示亲密度/魅力加成
- 购买按钮与现有逻辑复用
|
2026-03-01 15:42:25 +08:00 |
|
|
|
11dcb03924
|
功能:婚姻系统第1-3步(枚举/迁移/Seeder)
Step 1 - 枚举扩展:
- 新增 IntimacySource 枚举(7种亲密度来源)
- CurrencySource 追加7个婚姻相关来源
Step 2 - 数据库迁移(6张表):
- marriage_configs(约30条可配置参数)
- marriage_intimacy_logs(亲密度变更日志)
- wedding_tiers(5档婚礼配置)
- wedding_ceremonies(婚礼仪式记录)
- wedding_envelope_claims(红包领取记录)
- marriages 表改良(新增全部业务字段)
- users.frozen_jjb(定时婚礼金币冻结)
- shop_items.type 枚举添加 ring 类型
Step 3 - Seeder:
- 28条婚姻参数默认配置
- 5个婚礼档位
- 3种戒指道具(银/金/钻)
|
2026-03-01 14:56:47 +08:00 |
|
|
|
5f30220609
|
feat: 任命/撤销通知系统 + 用户名片UI优化
- 任命/撤销事件增加 type 字段区分类型
- 任命:全屏礼花 + 紫色弹窗 + 紫色系统消息
- 撤销:灰色弹窗 + 灰色系统消息,无礼花
- 消息分发:操作者/被操作者显示在私聊面板,其他人显示在公屏
- 系统消息加随机鼓励语(各5条轮换)
- ChatStateService 修复 Redis key 前缀扫描问题(getAllActiveRoomIds)
- 用户名片折叠优化:管理员视野、职务履历均可折叠
- 管理操作 + 职务操作合并为「🔧 管理操作」折叠区
- 悄悄话改为「🎁 送礼物」按钮,礼物面板内联展开
|
2026-02-28 23:44:38 +08:00 |
|
|
|
7fb86bfe21
|
Feat: 商店功能完整实现(单次特效卡888/周卡8888/改名卡5000,含购买、周卡覆盖、改名黑名单)
|
2026-02-27 15:57:12 +08:00 |
|
|
|
d884853968
|
修复:排行榜/留言板缺失布局、退出登录跳转、WebSocket 配置与部署文档
- 修复 LeaderboardController 查询不存在的 sign 字段导致 500 错误
- 修复 leaderboard/index 和 guestbook/index 引用不存在的 layouts.app 布局
- 将排行榜和留言板改为独立 HTML 页面结构(含 Tailwind CDN)
- 修复退出登录返回 JSON 而非重定向的问题,现在会正确跳转回登录页
- 将 REDIS_CLIENT 从 phpredis 改为 predis(兼容无扩展环境)
- 新增 RoomSeeder 自动创建默认公共大厅房间
- 新增 Nginx 生产环境配置示例(含 WebSocket 反向代理)
- 重写 README.md 为完整的中文部署指南
- 修复 rooms/index 和 chat/frame 中 Alpine.js 语法错误
- 将 chat.js 加入 Vite 构建配置
- 新增验证码配置文件
|
2026-02-26 14:57:24 +08:00 |
|
|
|
50fc804402
|
feat: 实现挂机修仙、排行榜、大厅重构与全站留言板系统
- (Phase 8) 后台各维度管理与配置
- (Phase 9) 全自动静默挂机修仙升级
- (Phase 9) 四大维度风云排行榜页面
- (Phase 10) 全站留言板与悄悄话私信功能
- 运行 Pint 代码格式化
|
2026-02-26 13:35:38 +08:00 |
|
|
|
7d6423902d
|
first commit
|
2026-02-26 12:02:00 +08:00 |
|