|
|
1e12c58986
|
tg
Build docker and publish / build (20.15.1) (push) Successful in 7m22s
|
2026-03-18 03:52:26 -07:00 |
|
|
|
fdfadca57f
|
赠送逻辑
Build docker and publish / build (20.15.1) (push) Successful in 6m57s
|
2026-03-18 02:04:34 -07:00 |
|
|
|
50f6995d60
|
redis
Build docker and publish / build (20.15.1) (push) Successful in 7m33s
|
2026-03-18 00:53:35 -07:00 |
|
|
|
282e1e4087
|
deviceno
Build docker and publish / build (20.15.1) (push) Successful in 7m26s
|
2026-03-17 09:12:56 -07:00 |
|
|
|
dcdbabdb13
|
注销
Build docker and publish / build (20.15.1) (push) Successful in 7m34s
|
2026-03-17 07:12:42 -07:00 |
|
|
|
3cd22d8538
|
x
Build docker and publish / build (20.15.1) (push) Successful in 8m3s
|
2026-03-16 00:59:49 -07:00 |
|
|
|
1d2f2a594a
|
feat: 增强用户搜索功能,支持通过设备ID哈希进行查找。
Build docker and publish / build (20.15.1) (push) Successful in 8m42s
|
2026-03-15 22:02:23 -07:00 |
|
|
|
79a1eeca1f
|
feat: 自动生成并更新用户缺失的推荐码
Build docker and publish / build (20.15.1) (push) Successful in 7m33s
|
2026-03-15 19:43:53 -07:00 |
|
|
|
3d732c0361
|
feat: 为用户设备添加 DeviceNo 字段并实现 ID 混淆,同时在迁移脚本中新增 ID 重建逻辑。
Build docker and publish / build (20.15.1) (push) Has been cancelled
|
2026-03-15 19:38:37 -07:00 |
|
|
|
ad578883e4
|
feat: 添加付费用户数据迁移脚本、报告及相关管理逻辑调整。
Build docker and publish / build (20.15.1) (push) Successful in 7m49s
|
2026-03-14 22:37:03 -07:00 |
|
|
|
2cc1124dd8
|
fix: 任何人注销账号都解散整个家庭组,删除所有成员的登录方式和订阅
Build docker and publish / build (20.15.1) (push) Successful in 7m41s
统一 member/owner 注销逻辑:无论谁注销,都解散家庭、
删除所有成员的 AuthMethods + Subscribe、踢出所有设备、清除所有缓存。
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-12 06:23:11 -07:00 |
|
|
|
b6405c8f28
|
fix: IAP attach 后立即清除订阅缓存,修复 App 查到旧数据;返回值改用累计到期时间
Build docker and publish / build (20.15.1) (push) Successful in 7m33s
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-12 04:56:17 -07:00 |
|
|
|
add27aa4d9
|
fix: Apple IAP attach 支持家庭成员购买场景
Build docker and publish / build (20.15.1) (push) Successful in 7m15s
member 发起购买后订阅归属于 owner,但 attach 交易时校验
orderSub.UserId != u.Id 报"订单订阅与当前用户不匹配"。
现在通过 ResolveEntitlementUser 获取 EffectiveUserID,
允许 member 绑定属于其家庭 owner 的订阅。
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-12 03:38:42 -07:00 |
|
|
|
2f33e1e680
|
fix: 踢其他设备时不再清除踢人者自己的 session
Build docker and publish / build (20.15.1) (push) Successful in 7m29s
logoutUnbind 循环清理家庭成员时,踢人者(kicker)也在成员列表中,
导致 kicker 的设备被踢、session 被清,自己也下线了。
现在跳过 kickerUserID,只清缓存不踢设备不清 session。
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-12 03:05:34 -07:00 |
|
|
|
e4ec85c176
|
fix: clearAllSessions 改用 SCAN 查找 session,修复会话清理无效
Build docker and publish / build (20.15.1) (push) Successful in 7m37s
根因:登录时只写了 auth:session_id:{sessionId} (Redis SET),
从未写入 auth:user_sessions:{userId} sorted set,
导致 clearAllSessions 用 ZRange 永远返回空,session 根本没被清除。
修复:改用 SCAN auth:session_id:* 遍历所有 session key,
按 value 匹配 userId 找出该用户的全部 session 后删除,
同时清理关联的 device cache key。
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-12 02:47:32 -07:00 |
|
|
|
dddb8c7fe2
|
fix: 平级踢人后更新被踢设备 online 状态为 false
Build docker and publish / build (20.15.1) (push) Has been cancelled
unbindDeviceLogic.logoutUnbind 中 KickDevice 后缺少
device.Online = false + UpdateDevice,导致后台仍显示在线
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-12 02:37:12 -07:00 |
|
|
|
384c8df506
|
fix: 踢出用户时清除所有 session,确保旧 token 立即失效
Build docker and publish / build (20.15.1) (push) Successful in 7m43s
- kickOfflineByUserDeviceLogic: 管理员踢设备后新增 clearAllSessions,
之前只清单个 WebSocket session,用户可用旧 token 继续访问
- unbindDeviceLogic: 家庭成员被踢时增加踢设备+清 session;
补全 session detail key 清理
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-12 02:19:35 -07:00 |
|
|
|
9b6efe2901
|
DefaultFamilyMaxSize
Build docker and publish / build (20.15.1) (push) Successful in 7m32s
|
2026-03-12 01:41:39 -07:00 |
|
|
|
7d5b4fcb84
|
邮箱修复
Build docker and publish / build (20.15.1) (push) Successful in 7m13s
|
2026-03-12 01:24:21 -07:00 |
|
|
|
a3cc23bbd4
|
feat: 绑定新邮箱时创建独立邮箱用户并转移订阅,而非挂在设备用户上
Build docker and publish / build (20.15.1) (push) Successful in 8m5s
- bindEmailWithVerificationLogic: 新邮箱路径改为创建独立 email user + joinFamily
- familyBindingHelper: clearMemberSubscribes → transferMemberSubscribesToOwner,订阅转移给 owner 而非删除
- accountMergeHelper: 同步更新调用点
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-12 00:52:50 -07:00 |
|
|
|
ec39579c39
|
fix: 注册 /v1/common/client/download 路由,修复客户端下载链接 404
Build docker and publish / build (20.15.1) (push) Successful in 8m8s
handler 和 logic 代码已迁移但 routes.go 漏注册该端点。
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-11 22:34:03 -07:00 |
|
|
|
772c12f821
|
fix: 注销后 device login 补回被删除的 device auth_method,修复前端按钮显示异常
Build docker and publish / build (20.15.1) (push) Successful in 7m18s
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-11 10:07:14 -07:00 |
|
|
|
3f56fc6def
|
feat: Owner 退出登录时转移订阅/邮箱/家庭权限给 member,而非解散家庭
Build docker and publish / build (20.15.1) (push) Successful in 7m45s
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-11 09:00:35 -07:00 |
|
|
|
bb80df5786
|
权限问题
Build docker and publish / build (20.15.1) (push) Has been cancelled
|
2026-03-11 08:06:13 -07:00 |
|
|
|
fafb229295
|
feat: 为折扣计算函数 getDiscount 引入新用户判断逻辑以支持新用户专属折扣。
Build docker and publish / build (20.15.1) (push) Successful in 7m37s
|
2026-03-11 03:56:48 -07:00 |
|
|
|
6557d06d59
|
feat: 添加兼容路由别名,修复前端 404 问题
Build docker and publish / build (20.15.1) (push) Successful in 7m16s
为 invite/stats, invite/sales, agent/downloads, agent/realtime
添加斜杠格式路由别名,兼容老项目前端请求路径。
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-11 01:51:32 -07:00 |
|
|
|
76a1500d3c
|
x
Build docker and publish / build (20.15.1) (push) Successful in 7m55s
|
2026-03-11 01:13:56 -07:00 |
|
|
|
48383fa0a9
|
更新支付方式相关业务逻辑。
Build docker and publish / build (20.15.1) (push) Successful in 7m31s
|
2026-03-10 21:42:02 -07:00 |
|
|
|
7c2eddf9c3
|
feat: 为订单表添加 app_account_token 字段并增强 Apple IAP 对账逻辑,支持通过交易历史记录查找。
Build docker and publish / build (20.15.1) (push) Successful in 7m25s
|
2026-03-10 20:47:24 -07:00 |
|
|
|
26f6400e74
|
feat: 苹果支付uuid 及设备逻辑
Build docker and publish / build (20.15.1) (push) Successful in 8m3s
|
2026-03-10 19:53:19 -07:00 |
|
|
|
662ef6edb3
|
15分钟修改成5分钟
Build docker and publish / build (20.15.1) (push) Successful in 7m38s
|
2026-03-09 22:29:30 -07:00 |
|
|
|
a542a6df46
|
fix: 修复 退出登录 auth问题
Build docker and publish / build (20.15.1) (push) Successful in 7m45s
|
2026-03-09 09:04:47 -07:00 |
|
|
|
5f884ed737
|
fix: 修复 读写不一致 appleiap 的问题
Build docker and publish / build (20.15.1) (push) Successful in 7m39s
|
2026-03-09 05:17:26 -07:00 |
|
|
|
1372510abf
|
feat: 后台管理新增手动激活订单接口
Build docker and publish / build (20.15.1) (push) Successful in 7m53s
POST /v1/admin/order/activate { "order_no": "xxx" }
- 支持对 pending(1) 或 closed(3) 状态的订单手动激活
- 强制更新为 paid(2) 并 enqueue 激活任务
- 用于处理 IAP 被误关闭或客户端未成功回调的订单
|
2026-03-09 03:58:57 -07:00 |
|
|
|
57fa2b4d69
|
fix: IAP 重复交易检测优化,防止续期误拦和孤儿订单
Build docker and publish / build (20.15.1) (push) Successful in 7m33s
1. 关闭孤儿订单:检测到重复交易时,立即关闭新的 pending 订单(status=3)
2. tradeNo 候选改为只用 transactionId,不再用 originalTransactionId
- originalTransactionId 是整个订阅族共享的,续期时会误命中旧订单
- originalTransactionId 仍用于 IAP 事务表幂等检查(FindByOriginalId)
|
2026-03-09 02:32:42 -07:00 |
|
|
|
b303f16525
|
fix: 退出登录不删除用户订阅,保留订阅数据
Build docker and publish / build (20.15.1) (push) Successful in 7m52s
|
2026-03-09 01:48:54 -07:00 |
|
|
|
9c197442a6
|
fix: 退出登录时删除用户订阅并清理订阅缓存
Build docker and publish / build (20.15.1) (push) Successful in 7m45s
- 事务内删除用户所有订阅记录
- 事务后清理订阅缓存、套餐缓存、节点缓存
|
2026-03-09 01:31:04 -07:00 |
|
|
|
d6437f043f
|
fix: 退出登录时解绑邮箱和家庭组,清除所有session
Build docker and publish / build (20.15.1) (push) Successful in 7m54s
- logoutUnbind 新增删除非 device 类型的 auth_methods(解绑邮箱)
- 清除用户所有 session 而非仅当前 session
- 事务前收集家庭成员 ID,事务后清理成员缓存
- 清理邮箱相关 Redis 缓存
|
2026-03-09 01:12:38 -07:00 |
|
|
|
130fb702ab
|
fix: IAP 支付流程优化与关键 bug 修复
Build docker and publish / build (20.15.1) (push) Successful in 7m42s
- getStatusLogic 类型断言修复(*user.User)
- restoreLogic 事务拆分为单条处理 + appAccountToken 解析
- attachTransactionLogic 提取 ParseProductIdDuration 共享函数
- 新增 config_helper.go 统一 Apple API 配置加载
- reconcileLogic 补充 BundleID 配置读取
- activateOrderLogic 邀请赠送天数逻辑完善
Co-Authored-By: claude-flow <ruv@ruv.net>
|
2026-03-09 00:27:16 -07:00 |
|
|
|
dcfcd036de
|
x
Build docker and publish / build (20.15.1) (push) Successful in 7m46s
|
2026-03-08 22:37:58 -07:00 |
|
|
|
f792157d6e
|
邀请记录
Build docker and publish / build (20.15.1) (push) Successful in 7m22s
|
2026-03-08 21:57:20 -07:00 |
|
|
|
79a97ec569
|
限制套餐具体到 档位
Build docker and publish / build (20.15.1) (push) Successful in 7m45s
|
2026-03-08 21:25:07 -07:00 |
|
|
|
69028898a4
|
搜索
Build docker and publish / build (20.15.1) (push) Successful in 7m52s
|
2026-03-08 08:05:26 -07:00 |
|
|
|
4907853667
|
邀请 N天配置
|
2026-03-08 07:31:11 -07:00 |
|
|
|
7a3a53f1a9
|
ipa
Build docker and publish / build (20.15.1) (push) Successful in 7m47s
|
2026-03-08 05:12:28 -07:00 |
|
|
|
94f5d0c07d
|
map对齐
Build docker and publish / build (20.15.1) (push) Successful in 7m29s
|
2026-03-07 07:42:09 -08:00 |
|
|
|
1e14e2dbd9
|
map对齐
Build docker and publish / build (20.15.1) (push) Successful in 7m7s
|
2026-03-07 07:16:01 -08:00 |
|
|
|
a0ae7b1c8d
|
map对齐
Build docker and publish / build (20.15.1) (push) Successful in 8m21s
|
2026-03-07 05:54:49 -08:00 |
|
|
|
71f4bd1f5f
|
双倍
Build docker and publish / build (20.15.1) (push) Successful in 7m33s
|
2026-03-07 04:10:58 -08:00 |
|
|
|
03573d2e65
|
双倍时间bug
Build docker and publish / build (20.15.1) (push) Successful in 8m33s
|
2026-03-07 02:05:48 -08:00 |
|