zerosaturation
3407e30395
refactor(assetService): CreateMintOrder 3-phase txn + orphan reconciliation (P0-2)
...
- CreateMintOrder 拆三段: txn1(PENDING→PROCESSING,不调RPC/不写asset)
→ 事务外 UpdateCrystalBalance 扣水晶 → txn2(建asset+registry→SUCCESS);
消除 DB 事务内嵌跨服务 gRPC(连接池占用+跨服务事务风险)。
- 任一步失败 markMintOrderFailed 独立事务标 FAILED(不回滚已扣水晶=审计流水,
重试靠 Task1 source_id 幂等 + Task2 入口短路防双扣); nil-cause 防御。
- 孤儿订单对账 ReconcileStuckMintOrders: 扫陈旧 PROCESSING 单,查 mint_cost 流水—
已扣未建→FOR UPDATE 行锁下幂等补完 SUCCESS(串行化并发防双建),未扣→FAILED,绝不退款。
- main.go 接线周期 worker(MINT_RECONCILE_INTERVAL_SEC 默认600s,0关,优雅退出)。
- 测试: RPC失败落FAILED / 对账未扣→FAILED / 已扣未建→补完(含幂等二次跑)。
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-23 12:28:57 +08:00
zerosaturation
b7022d2dc1
fix(backend): auth boundary — trusted identity from ctx (batch 2)
...
- 新增 pkg/authctx: 从 Dubbo attachment/gRPC metadata 提取可信 user_id/star_id,
统一覆盖 req 同名字段, 缺身份返 Unauthenticated。
- 各 provider 接入(堵身份伪造/越权):
* moderation SubmitReport 等 6 RPC(举报人伪造)
* asset CheckAssetLike/GetAssetQrcode/TrackShare(点赞/分享归因伪造)
* social CheckFriendship(修 starID=0 隐私预言机)
* activity PurchaseItem/BatchPurchaseItem(水晶扣费伪造)等 5 RPC
* gallery/aiChat/task/notification 迁移 authctx, 删散落 extractUserInfo*
- social 正确性: GetUserLikedAssets OR 显式分组(防御); GetRandomUsersByStar 真随机(去 rand.Seed)。
- gateway: /auth/validate 移入 AuthMiddleware 保护组(/refresh 保留,依赖注入身份)。
- 删 userService 已迁移死函数; notification 缺身份错误码统一为 Unauthenticated。
- 各 provider 单测(伪造身份被覆盖 + 缺身份拒绝)。
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-23 01:12:35 +08:00
zerosaturation
878bd46399
fix(backend): financial correctness — settlement/hours/mint idempotency (batch 1)
...
- settlement(1.1): exhibition_revenue_records 加 UNIQUE(exhibition_id,cycle_start_time)
+ CreateRevenueRecord ON CONFLICT DO NOTHING; MQ 用 settled_at 替代复用 is_processed;
恢复扫描器过滤改 settled_at IS NULL; created_at 统一毫秒; 删死代码 cleanup_worker.go。
- hours(1.2): 新增 exhibition_hours_log/asset_exhibition_hours_log(source_id 唯一)幂等表;
fan_profile/assetLevel 的 AddExhibitionHours 按 sourceID 幂等(事务包裹); 存量重算脚本。
- mint(1.4/1.5/1.6): crystal_transaction_records (source_id,change_type) 部分唯一索引
+ UpdateCrystalBalance/CreateMintOrder 幂等; 保底改 crypto/rand; 下线伪 tx_hash;
doMint Redis Lua 原子限流。
- migrations 001/002/003; 各服务单测(自包含, 缺 DB t.Skip)。
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-23 01:11:54 +08:00
zerosaturation
d554d7be83
feat:修改周边验证
2026-07-17 16:53:57 +08:00
zerosaturation
d900c0d8b2
feat:增加验证真伪访问次数和首次验证
2026-07-13 14:24:42 +08:00
zerosaturation
74853800b6
feat:增加二维码验证真伪的功能
2026-07-13 11:22:56 +08:00
zerosaturation
d12a84c1f0
feat:增加队列修改收益方面把轮询改为MQ队列,修改数据看板的数据问题出错
2026-07-03 12:34:55 +08:00
zerosaturation
3cd68acf6d
feat:完善计算点赞押注收益
2026-06-29 14:47:32 +08:00
c02e53fc0e
feat:修改h5地址
2026-06-26 18:10:51 +08:00
946e204573
feat:修改canvas合成图
2026-06-26 17:58:37 +08:00
zerosaturation
2032246fd0
feat:增加分享界面,完善的保存图片功能
2026-06-26 16:45:29 +08:00
zerosaturation
7074546959
feat:新增通知系统
2026-06-16 21:30:58 +08:00
zerosaturation
271e0350c7
feat:重构code状态码
2026-06-15 16:28:35 +08:00
zerosaturation
280b4bbee0
feat:docker新增统计的微服务
2026-06-11 16:35:56 +08:00
zerosaturation
dfb79af4b1
feat: 铸造菜单改为动态配置
2026-06-09 12:38:12 +08:00
zerosaturation
0029fb8cc8
feat(statistic): T9-T12 dashboard 7 RPCs - additional business-side service modifications
...
Modifications to 5 existing business services for TrackEvent integration:
- socialService/asset_like_service.go: TrackEvent(asset.like) after LikeAsset
- galleryService/exhibition_service.go: TrackEvent(exhibition.start) + (exhibition.end with duration)
- taskService/revenue_service.go: TrackEvent(exhibition.revenue) after OnExhibitionCompleted
- assetService/mint_service.go: TrackEvent(asset.mint) after CreateMintOrder
- assetService/asset_level_service.go: TrackEvent(asset.level_up) in logLevelChange
- userService/user_service.go: fireCrystalChangeEvent wrapper (call site TBD by service owner)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 17:20:53 +08:00
liulong
6ff8743c72
feat:修复合并问题
2026-06-03 23:25:08 +08:00
liulong
b9527bee70
feat:合并新
2026-06-03 22:41:19 +08:00
liulong
10168f8e6b
feat:实现AI生成镭射卡功能
2026-06-03 22:19:22 +08:00
4aa11903f4
fix: 样式修复、创作者头像修复
2026-06-03 18:13:16 +08:00
zerosaturation
44f368cda0
feat: 修改bug
2026-06-01 15:08:25 +08:00
zerosaturation
5e33bbb031
feat: 修改用户经验bug和收益记录bug
2026-05-31 20:38:58 +08:00
zerosaturation
d5a645eaea
feat: 给榜单增加字段
2026-05-29 19:47:09 +08:00
liulong
889c9232fb
feat:镭射新链路,旧链路清理,迁移脚本
2026-05-29 12:35:37 +08:00
zerosaturation
3f58a82a91
feat: 修改藏品展示等级和藏品没有同步问题
2026-05-29 12:18:40 +08:00
zerosaturation
e545f41c3b
feat:修改类型为复合类型
2026-05-25 19:03:36 +08:00
zerosaturation
0852f96436
feat:去掉重复的点赞约束
2026-05-25 19:03:35 +08:00
zerosaturation
7c5d5a7275
feat:修改藏品等级硬编码改为根据数据库的配置来定义
2026-05-25 19:03:32 +08:00
zerosaturation
8dce6ae11a
fix: add new models to autoMigrate and start season reset worker
2026-05-25 19:03:32 +08:00
zerosaturation
edfa5f1449
test: add asset level service unit tests
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 19:03:32 +08:00
zerosaturation
2a0db41dbf
fix: wire AssetLevelService into existing service constructors
2026-05-25 19:03:32 +08:00
zerosaturation
bee30a1824
feat: integrate asset level system with existing services
...
- mintService: Add AssetLevelService field and call GetOrCreateRecord after asset creation
- assetLikeService: Add AssetLevelService and call AddLikes/RemoveLikes in LikeAsset/UnlikeAsset
- revenueService: Add AssetLevelService and call AddExhibitionHours in OnExhibitionCompleted
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 19:03:31 +08:00
zerosaturation
c6a8c66e39
feat: add asset level provider for dependency injection
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 19:03:31 +08:00
zerosaturation
d88e7ac504
feat: add season reset worker
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 19:03:31 +08:00
zerosaturation
11a59b0632
feat: add asset level service with upgrade/downgrade logic
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 19:03:31 +08:00
zerosaturation
0753f0b168
feat: add asset level repositories
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 19:03:31 +08:00
zerosaturation
2855cd512d
feat: 修改自动领取收益关闭,修复下架时间的bug,修改的光栅卡陀螺仪
2026-05-25 11:08:35 +08:00
zerosaturation
ce4fd85926
fea: 修改下架移除点赞记录删除
2026-05-22 18:49:34 +08:00
zerosaturation
ee0433464f
feat: 修改铸造消耗确认框和新增批量购买道具的功能,修改回退按钮的颜色
2026-05-22 00:14:28 +08:00
zerosaturation
0d1631263e
feat: 修改当前点赞逻辑
2026-05-20 13:21:00 +08:00
zerosaturation
02598db333
feat: 修改当前点赞逻辑
2026-05-20 12:36:58 +08:00
zerosaturation
9ac75d034b
修改每小时收益的字段类型可以为小数
2026-05-19 12:38:12 +08:00
zerosaturation
ca832abb2c
feat: 新增每小时的收益字段
2026-05-19 12:17:57 +08:00
zerosaturation
2450fc1368
feat: 修改各种小bug
2026-05-17 23:33:45 +08:00
zerosaturation
45d3adc373
feat:添加光栅卡的选择
2026-05-17 19:03:34 +08:00
zerosaturation
cf8671b5bb
修改经验问题和光栅卡铸造bug修改
2026-05-16 04:32:43 +08:00
zerosaturation
afb235afd3
feat: 合并代码,解决冲突
2026-05-16 02:42:32 +08:00
zerosaturation
c5bf9df955
feat: 经济系统重构 - 任务服务与画廊服务解耦
...
- galleryService 独立启动,配置 task-service-url
- 新增 taskService 到 galleryService 的 RPC 调用
- 更新 proto 文件并重新生成代码
- 新增展览唯一约束迁移脚本
- 修复多个 service 的配置和依赖关系
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 23:12:02 +08:00
zerosaturation
74182ad662
feat: 新增经济系统
2026-05-14 15:59:07 +08:00
zerosaturation
e05769e79e
feat: 新增修改错误显示展出状态问题的功能
2026-05-09 19:44:53 +08:00