shanshanzhong147
0a897419a5
修复( #86 ): 排除永久订阅回归促销误判
...
Co-authored-by: multica-agent <github@multica.ai >
2026-05-27 01:44:11 -07:00
shanshanzhong147
b9192db042
feat: 文件上传接口直接返回完整 URL + 提现 content 改为非必填
...
Build docker and publish / build (20.15.1) (push) Failing after 8m29s
Build docker and publish / build (20.15.1) (pull_request) Successful in 8m3s
- FileUploadResponse / FileUploadCompleteResponse 精简为只返回 url
- S3Store.BuildObjectURL 拼接完整访问地址
- 提现 method=0 时 content 不再参与必填校验
- 新增用户端 API 接口文档
2026-05-27 00:57:21 -07:00
shanshanzhong147
48e507783e
新功能( #77 ): 套餐列表返回促销信息
...
Build docker and publish / build (20.15.1) (push) Failing after 8m34s
Build docker and publish / build (20.15.1) (pull_request) Successful in 8m4s
- 新增 SubscribePromo 响应结构,套餐列表每项追加 promo 字段
- 新增 promo.go 促销候选规则查询与资格评估逻辑
- 重构 authMiddleware 提取 authenticateRequest,新增 OptionalAuthMiddleware
- /v1/public/subscribe/list 改为可选鉴权,未登录仅展示 campaign 类型促销
- /node/list、/group/list 保持强制鉴权不变
- 每个规格只返回最高优先级命中的规则,promo_price 为单价,expires_at 为秒级时间戳
- 新增单测覆盖 campaign/new_user 命中、活动窗口判定等场景
Co-authored-by: multica-agent <github@multica.ai >
2026-05-26 22:40:58 -07:00
shanshanzhong147
d2f9289338
新功能( #76 ): 促销系统下单流程集成
...
Build docker and publish / build (20.15.1) (push) Has been cancelled
Build docker and publish / build (20.15.1) (pull_request) Successful in 8m28s
- 新增促销规则/规格促销价/使用记录模型与幂等迁移
- EvaluatePromo 支持 new_user/inactive_user/campaign 规则判定
- purchase/preCreate 接入促销判定:命中促销时跳过百分比折扣
- activate 激活后按 order_no 幂等写入 promo_usage
- 订单模型和响应结构新增 promo_rule_id、promo_discount 字段
Co-authored-by: multica-agent <github@multica.ai >
2026-05-26 22:18:44 -07:00
shanshanzhong147
92e303aaa7
修复( #80 ): 修复wrapf非常量格式串vet阻断
...
Build docker and publish / build (20.15.1) (push) Has been cancelled
Build docker and publish / build (20.15.1) (pull_request) Successful in 8m39s
Co-authored-by: multica-agent <github@multica.ai >
2026-05-26 22:18:26 -07:00
shanshanzhong147
54328b197d
新功能( #78 ): 预算订单 API 返回 promo_discount 字段
...
Build docker and publish / build (20.15.1) (push) Has been cancelled
Build docker and publish / build (20.15.1) (pull_request) Successful in 7m54s
PreOrderResponse 新增 promo_discount 字段,未接入促销时默认返回 0。
促销命中逻辑待 HIF-76 接入后生效。
Co-authored-by: multica-agent <github@multica.ai >
2026-05-26 22:13:40 -07:00
shanshanzhong147
f9fa4756e9
新功能( #41 ): 提现优化 — 收款方式选择 + 取消提现 + 收款码上传
...
Build docker and publish / build (20.15.1) (push) Failing after 8m37s
Co-authored-by: multica-agent <github@multica.ai >
2026-05-26 08:36:25 -07:00
shanshanzhong147
27f1203282
修复( #49 ): 修复清空备注时数据丢失 — RefererId 改为指针类型
...
Co-authored-by: multica-agent <github@multica.ai >
2026-05-26 08:35:45 -07:00
shanshanzhong147
b798f520c8
fix: add zero-value guard for RefererId to prevent clearing inviter on remark update
...
Build docker and publish / build (20.15.1) (push) Failing after 8m39s
Co-authored-by: multica-agent <github@multica.ai >
2026-05-25 20:04:22 -07:00
shanshanzhong147
bae234fe15
Merge remote-tracking branch 'remotes/origin/agent/agent/bfdd0bdd' into merge-to-internal
Build docker and publish / build (20.15.1) (push) Failing after 8m14s
2026-05-25 18:17:24 -07:00
shanshanzhong147
79ab4460bc
feat: add GET /v1/admin/log/message/detail endpoint
...
Adds a temporary admin endpoint to query log_message by ID,
returning the full record including context (JSON) and digest
fields that the existing /error_message/detail endpoint omits.
Co-authored-by: multica-agent <github@multica.ai >
2026-05-25 12:18:27 -07:00
shanshanzhong147
eba256bdc9
merge: sync internal with main
...
Build docker and publish / build (20.15.1) (push) Failing after 8m22s
Co-authored-by: multica-agent <github@multica.ai >
2026-05-25 10:32:06 -07:00
shanshanzhong147
0bd7560b64
fix: P1 activation path hardening - Bug 4-9
...
Bug 4: resolveRenewalActivationSubscription - add fallback by user_id+subscribe_id
with SELECT FOR UPDATE when token lookup fails
Bug 5: appleIAPNotifyLogic - return error on product ID mapping failure instead of
silently dropping the notification
Bug 6: NewPurchase fallback query - wrap in transaction with SELECT FOR UPDATE to
prevent concurrent duplicate subscription creation
Bug 7: appleIAPNotifyLogic - fix UserId=0 by reverse-lookup from original purchase
order; create renewal audit order record for DID_RENEW/SUBSCRIBED notifications
Bug 8: UpdateOrderStatus - pre-delete cache before DB write (double-delete) to
close TOCTOU window between DB update and cache invalidation
Bug 9: validateNewUserOnlyEligibilityAtActivation - add Redis distributed lock on
user_id to serialise concurrent new-user-only order activations
Co-authored-by: multica-agent <github@multica.ai >
2026-05-25 02:18:19 -07:00
shanshanzhong147
a0f2d8a7b8
fix: persist guest/redemption activation context to DB to survive Redis TTL expiry (Bug 1 + Bug 10)
...
- Add `activation_context` TEXT column to `order` table (migration 02150)
- purchaseLogic: write TemporaryOrderInfo JSON to order.ActivationContext in the same
insert transaction; Redis write is now best-effort (non-fatal)
- redeemCodeLogic: write redemption {type, redemption_code_id, unit_time, quantity} JSON
to order.ActivationContext at order creation; Redis write is now best-effort (non-fatal)
- getTempOrderInfo: on Redis miss, fall back to order.ActivationContext from DB;
logs CRITICAL and returns error if both are missing (old orders with no DB record)
- RedemptionActivate: on Redis miss, fall back to order.ActivationContext from DB;
same CRITICAL log path for legacy orders
Co-authored-by: multica-agent <github@multica.ai >
2026-05-25 02:18:19 -07:00
shanshanzhong147
80751eb8ef
fix: move withdrawal commission deduction from application to approval
...
Build docker and publish / build (20.15.1) (push) Failing after 8m28s
- commissionWithdrawLogic: remove upfront commission deduction;
balance check now includes sum of all pending withdrawals to prevent
double-spending; transaction only creates the withdrawal record (status=0)
- approveWithdrawal: add FOR UPDATE lock on user row, balance check before
deducting, atomic commission decrement and commission log inside one
transaction; clear user cache after commit
- rejectWithdrawal: remove commission refund and log — commission was never
deducted on application under the new flow
- add migration 02150: refund commission for existing status=0 withdrawals
that were deducted under the old logic; includes rollback script
Co-authored-by: multica-agent <github@multica.ai >
2026-05-24 20:26:42 -07:00
shanshanzhong147
3bbce5ce84
fix: 修复退款与仪表盘订单统计口径
...
Build docker and publish / build (20.15.1) (push) Failing after 8m16s
Co-authored-by: multica-agent <github@multica.ai >
2026-05-24 17:50:29 -07:00
shanshanzhong147
1726a584fa
feat: add admin order refund flow
...
Co-authored-by: multica-agent <github@multica.ai >
2026-05-24 17:50:23 -07:00
shanshanzhong147
fd522b6c71
path
Build docker and publish / build (20.15.1) (push) Successful in 8m56s
2026-05-19 19:35:44 -07:00
shanshanzhong147
a1184ef5ed
feat: add userinfo bind-email trial use status
Build docker and publish / build (20.15.1) (push) Successful in 9m2s
2026-05-18 03:02:35 -07:00
shanshanzhong147
f2033fd4b9
feat: add rustfs direct upload endpoint
Build docker and publish / build (20.15.1) (push) Failing after 8m36s
2026-05-14 23:33:50 -07:00
shanshanzhong147
4fa9fcd232
feat: add direct s3 upload flow
2026-05-13 11:24:13 -07:00
shanshanzhong147
f6911965dc
chore: snapshot current aws standby and backup tooling work
2026-05-13 10:59:03 -07:00
shanshanzhong147
c4b2ebf7e1
x
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-05-10 10:41:50 -07:00
shanshanzhong147
f946504cb8
x
2026-05-08 06:19:59 -07:00
shanshanzhong147
7d2f98b7c9
fix: 修复管理员更新用户信息时意外覆盖字段的问题
...
Build docker and publish / build (20.15.1) (push) Has been cancelled
- Enable/IsAdmin/OnlyFirstPurchase 改为 *bool,未传时不更新
- Avatar/Remark/ReferCode/ReferralPercentage 加空值保护
- getDeviceList: 恢复 hifastday@hifast.com 家庭成员受限逻辑
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-07 02:21:35 -07:00
shanshanzhong147
8bc8e81e95
补单逻辑
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-05-06 05:42:48 -07:00
shanshanzhong147
54daa923da
补单逻辑
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-05-06 04:59:04 -07:00
shanshanzhong147
463d3e2315
x
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-05-06 03:19:04 -07:00
shanshanzhong147
559d59b4f8
000000
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-05-06 03:09:15 -07:00
shanshanzhong147
d4f0d559cf
设备1
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-05-06 02:53:18 -07:00
shanshanzhong147
cbb451d18c
x
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-05-06 02:34:43 -07:00
shanshanzhong147
595e4c62f9
x
Build docker and publish / build (20.15.1) (push) Successful in 5m25s
2026-05-03 18:34:14 -07:00
shanshanzhong147
9dd5dcb9d2
fix(order): mark first renewal payments as new
Build docker and publish / build (20.15.1) (push) Failing after 5m32s
2026-05-02 16:48:45 -07:00
shanshanzhong147
110c97ada4
feat(auth): add test bypass code 202511 for bind_email_with_verification
...
Build docker and publish / build (20.15.1) (push) Failing after 5m30s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-02 08:00:39 -07:00
shanshanzhong147
d748a7e75d
fix(user): move bind-email subscriptions to owner
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-05-01 05:24:11 -07:00
shanshanzhong147
59b7056a20
fix family member renewal target
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-04-30 09:26:52 -07:00
shanshanzhong147
b52e01eaa2
fix(auth): grant trial only on email bind
...
Build docker and publish / build (20.15.1) (push) Successful in 5m17s
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-04-29 22:36:17 -07:00
shanshanzhong147
32e3dc3c73
fix(order): cover invite gifts and inactive renewals
Build docker and publish / build (20.15.1) (push) Successful in 5m36s
2026-04-29 21:52:28 -07:00
shanshanzhong147
47696b9e68
fix(order): reconcile subscriptions and grant device trials
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-04-29 21:00:46 -07:00
shanshanzhong147
bcefb274ab
perf(server): cache speed limit calculations
Build docker and publish / build (20.15.1) (push) Successful in 5m37s
2026-04-29 01:37:59 -07:00
shanshanzhong147
ab38cd4943
x
Build docker and publish / build (20.15.1) (push) Failing after 4m44s
2026-04-26 21:12:22 -07:00
shanshanzhong147
5b49aa8242
fix(auth): disable trial grants on public email flows
Build docker and publish / build (20.15.1) (push) Successful in 5m29s
2026-04-25 01:11:27 -07:00
shanshanzhong147
9db4762904
fix(order): prevent duplicate subscriptions and repair invite gifts
Build docker and publish / build (20.15.1) (push) Successful in 5m6s
2026-04-24 21:16:21 -07:00
shanshanzhong147
ae62ecc6b3
fix: 加入家庭组时无条件丢弃成员订阅,防止重复订阅
...
Build docker and publish / build (20.15.1) (push) Failing after 5m17s
加入家庭组前若成员已购买订阅,原逻辑将订阅转移给 owner,
导致 owner 同时持有自身订阅与成员转入订阅,违反单订阅模式。
修改 transferMemberSubscribesToOwner:
- 移除转移逻辑,改为无条件删除成员所有订阅
- 成员加入后通过 owner 的订阅使用服务
- 后续购买以 entitlement.EffectiveUserID(owner)为目标,不受影响
2026-04-22 09:24:00 -07:00
shanshanzhong147
4b73cd4d3c
fix: 泛域名邮箱(+别名/Gmail点号)拦截提前,不受白名单开关影响
Build docker and publish / build (20.15.1) (push) Successful in 5m38s
2026-04-21 09:44:00 -07:00
shanshanzhong147
23a7a292ef
fix: Gmail 泛域名邮箱(含点号/+别名)直接拒绝赠送试用
...
Build docker and publish / build (20.15.1) (push) Successful in 5m23s
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-04-21 01:09:34 -07:00
shanshanzhong147
9a8ae8b6fd
fix: 修复非单订阅模式下过期用户重复购买产生双订阅的问题
...
Build docker and publish / build (20.15.1) (push) Successful in 4m45s
1. purchaseLogic: 非单订阅模式下购买前查询已有订阅,路由为续费(type=2)
2. activateOrderLogic: 续费激活时触发节点分组重算,确保过期续费后权限生效
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-04-20 20:58:01 -07:00
shanshanzhong147
c8258dc93b
feat: 设备登录新增 base_payload 字段,前端传入后存储到 user_device 表
Build docker and publish / build (20.15.1) (push) Successful in 4m48s
2026-04-20 20:08:20 -07:00
shanshanzhong147
954b19c332
feat: 邮箱规范化(NormalizeEmail)与域名白名单检查(IsEmailDomainWhitelisted)
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-04-12 18:43:47 -07:00
shanshanzhong147
62cf68b49b
x
Build docker and publish / build (20.15.1) (push) Successful in 6m35s
2026-04-04 11:46:06 -07:00