Commit Graph

67 Commits

Author SHA1 Message Date
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