shanshanzhong147
87ebfa1fac
修复( #137 ): DeferCloseOrder 关单前反查支付网关 (启用 confirmationPayment)
...
Build docker and publish / build (20.15.1) (push) Failing after 18m47s
Build docker and publish / build (20.15.1) (pull_request) Failing after 19m31s
Squash merge of fix/137-defer-close-反查网关 (1367c4f ).
DeferCloseOrder 直接将 status=1 订单关单,会把已经在网关侧完成支付但
notify 静默失败的订单错误关闭。本次在关单前调用 EPay 的网关查询接口
(confirmationPayment) 拿到三态结果:
- Paid: 原子化把 status 1->2,写回 trade_no,再投递 asynq 走激活流程
- Unpaid: 继续原来的 close 事务,把 status 改为 cancelled
- Unknown / 网关失败: 保持 status=1,下一轮 DeferClose 再试
新增 closeOrderLogic_test.go (232 行),覆盖三态分支 + recoverPaidOrder
的并发幂等。单测全量 PASS, go build + go vet 均干净。E2E 验收因测试环境
访问受限暂未跑,QA 已在 issue 上注明阻塞原因 (qa_partial_blocked_on_e2e_access)。
Co-authored-by: multica-agent <github@multica.ai >
2026-06-02 20:24:32 -07:00
架构师
54379976ec
修复( #138 ): 补齐 errMsg 漏掉的错误码映射
...
Build docker and publish / build (20.15.1) (push) Failing after 20m57s
Build docker and publish / build (20.15.1) (pull_request) Failing after 19m44s
新增 UserCommissionNotEnough、SendSmsError、AreaCodeIsEmpty、
DeviceBindLimitExceeded、ExistAvailableTraffic 五个错误码的中文映射,
修复管理后台审批提现等接口业务校验失败时 msg 被误显为
"Internal Server Error" 的问题。
Co-authored-by: multica-agent <github@multica.ai >
2026-06-01 22:29:36 -07:00
shanshanzhong147
197fed7d12
新功能( #102 ): 新增邀请记录接口并删除旧邀请销售接口
...
Build docker and publish / build (20.15.1) (push) Failing after 10m56s
Build docker and publish / build (20.15.1) (pull_request) Successful in 8m50s
Co-authored-by: multica-agent <github@multica.ai >
2026-05-27 22:50:16 -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
1726a584fa
feat: add admin order refund flow
...
Co-authored-by: multica-agent <github@multica.ai >
2026-05-24 17:50:23 -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
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
a9205cc3fc
feat: 用户订阅显示节点分组名及限速起止时间
...
Build docker and publish / build (20.15.1) (push) Successful in 7m28s
- UserSubscribe/UserSubscribeDetail 新增 node_group_id/node_group_name 字段
- 管理员查询用户订阅列表批量填充分组名
- 管理员查询单个订阅详情填充分组名
- ThrottleResult/UserSubscribeDetail 新增 throttle_start/throttle_end 字段
- 限速时返回限速窗口起止时间(秒级 Unix 时间戳)
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-29 10:07:17 -07:00
shanshanzhong147
3b4e882965
feat: 根据 X-App-Id 判断是否裁剪套餐列表,老版客户端去掉最后一个
Build docker and publish / build (20.15.1) (push) Successful in 7m37s
2026-03-28 23:21:00 -07:00
shanshanzhong147
eb414749c3
fix: apiversion.UseLatest 阈值判断改为 >= 避免误判新版本为老版本
...
Build docker and publish / build (20.15.1) (push) Successful in 8m26s
原 compare > 0 要求严格大于阈值,导致 header=1.0.0 被判为老版本,
去掉最后一个套餐后列表为空。改为 >= 0,有 header 且版本 >= 阈值均视为新版本。
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-28 20:42:57 -07:00
shanshanzhong147
2db2bc0860
feat: 限速状态可视化 - 后台订阅详情展示实际限速与降速状态
...
Build docker and publish / build (20.15.1) (push) Successful in 8m7s
- 新增 pkg/speedlimit/calculator.go 公共限速计算函数
- UserSubscribeDetail 响应新增 effective_speed/is_throttled/throttle_rule 字段
- GetUserSubscribeById 接口查询时实时计算并返回限速状态
- 重构 getServerUserListLogic 的 calculateEffectiveSpeedLimit,改用共享函数
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-28 08:14:07 -07:00
shanshanzhong147
b43dcd8dab
merge: 同步 origin/master 新功能到定制版本
Build docker and publish / build (20.15.1) (push) Successful in 8m8s
2026-03-24 01:03:56 -07:00
EUForest
7fe7243c24
feat: Add slider verification code
2026-03-23 02:42:12 +08:00
shanshanzhong147
f703b5089a
分组概念
Build docker and publish / build (20.15.1) (push) Successful in 7m58s
2026-03-19 03:21:47 -07:00
shanshanzhong147
e5e9f93f68
Merge remote-tracking branch 'origin/master' into internal
2026-03-19 01:55:01 -07:00
shanshanzhong147
de6fbcb518
device_no
Build docker and publish / build (20.15.1) (push) Successful in 7m22s
2026-03-18 10:28:55 -07:00
EUForest
bc721b0ba6
update: Adding interference to CAPTCHA
2026-03-18 12:45:09 +08:00
shanshanzhong147
4b528184ea
devicd_no
Build docker and publish / build (20.15.1) (push) Successful in 7m58s
2026-03-17 08:37:36 -07:00
shanshanzhong147
dcdbabdb13
注销
Build docker and publish / build (20.15.1) (push) Successful in 7m34s
2026-03-17 07:12:42 -07:00
shanshanzhong147
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
shanshanzhong147
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
EUForest
0f6fddc36d
feat(error): add PermissionDenied error code
...
- Add error code 40008 for permission denied scenarios
- Add corresponding error message for admin permission checks
2026-03-09 22:53:59 +08:00
EUForest
0dbcff85f1
feat(captcha): add captcha service interface and implementations
...
- Add captcha service interface with Generate and Verify methods
- Implement local image captcha using base64Captcha library
- Implement Cloudflare Turnstile verification wrapper
- Support Redis-based captcha storage with 5-minute expiration
- Add factory method for creating captcha service instances
2026-03-09 22:53:13 +08:00
shanshanzhong147
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
EUForest
39310d5b9a
Features:
...
- Node group CRUD operations with traffic-based filtering
- Three grouping modes: average distribution, subscription-based, and traffic-based
- Automatic and manual group recalculation with history tracking
- Group assignment preview before applying changes
- User subscription group locking to prevent automatic reassignment
- Subscribe-to-group mapping configuration
- Group calculation history and detailed reports
- System configuration for group management (enabled/mode/auto_create)
Database:
- Add node_group table for group definitions
- Add group_history and group_history_detail tables for tracking
- Add node_group_ids (JSON) to nodes and subscribe tables
- Add node_group_id and group_locked fields to user_subscribe table
- Add migration files for schema changes
2026-03-08 23:22:38 +08:00
shanshanzhong147
1e14e2dbd9
map对齐
Build docker and publish / build (20.15.1) (push) Successful in 7m7s
2026-03-07 07:16:01 -08:00
shanshanzhong147
4d913c1728
修复缓存
Build docker and publish / build (20.15.1) (push) Successful in 7m26s
2026-03-06 21:58:29 -08:00
shanshanzhong147
7308aa9191
无订阅 支付后出现两个订阅
Build docker and publish / build (20.15.1) (push) Failing after 7m37s
2026-03-05 21:53:36 -08:00
shanshanzhong147
2215df8c0b
各种配置项修复,优化到后台管理端配置
2026-03-04 19:42:21 -08:00
shanshanzhong147
4752f844ef
各种配置项修复,优化到后台管理端配置
Build docker and publish / build (20.15.1) (push) Has been cancelled
2026-03-04 17:58:40 -08:00
shanshanzhong147
a01570b59d
fix gitea workflow path and runner label
Build docker and publish / build (20.15.1) (push) Failing after 8m21s
2026-03-04 06:33:14 -08:00
shanshanzhong147
0c544268e5
refactor payment platform canonicalization and order method consistency
Build docker and publish / build (20.15.1) (push) Failing after 8m1s
2026-03-04 02:15:32 -08:00
shanshanzhong147
b0eb6595ac
add: 新增ci diamanté
2026-03-03 17:29:45 -08:00
shanshanzhong147
4d8516b2e1
同步历史版本代码
2026-03-03 09:32:22 -08:00
EUForest
31e75efacb
Merge upstream/master into master
2026-02-13 23:06:43 +08:00
EUForest
7197f5dcf6
feat(stripe): update webhook event construction to ignore API version mismatches
2026-02-11 17:29:53 +08:00
Chang lue Tsen
ea94f3c9f9
feat(stripe): update webhook event construction to ignore API version mismatches
2026-02-08 06:43:34 -05:00
Chang lue Tsen
58caa497c3
fix(exchange): update exchange rate API endpoint and adjust request parameters
2026-01-07 09:35:09 -05:00
EUForest
80ee9a6acf
Merge upstream/master into develop
...
Sync upstream changes from perfect-panel/server
Includes updates from v1.0.1 to v1.2.5:
- Currency configuration support
- Subscribe improvements (short token, inventory check, etc.)
- Node management enhancements
- Database migrations
- Bug fixes and optimizations
2026-01-02 12:51:55 +08:00
Tension
fb6adc9ae3
feat(subscribe): add inventory check and update logic for subscription plans
2025-12-28 22:44:14 +08:00
Tension
495c4529ed
fix(gorm): adjust caller skip for logging methods to improve stack trace accuracy
2025-12-28 21:52:54 +08:00
EUForest
76ff9a658d
Merge branch perfect-panel/master/server into develop
2025-12-11 23:53:32 +08:00
Tension
143445a2fc
feat(commission): implement commission withdrawal logic and logging
2025-11-29 14:33:05 +08:00
EUForest
d22659ff04
update: encryption
2025-11-24 15:59:03 +08:00
Chang lue Tsen
e3999ba75f
feat(subscribe): add short token generation and validation logic
2025-11-18 12:03:14 -05:00
EUForest
ff2d3f85f3
new features: Based on IP user registration restrictions
2025-11-13 14:52:02 +08:00