feat: enhance plan validation, traffic system and email verification

- feat: add plan price validation
- feat: make traffic packages stackable
- feat: add commission and invite info to admin order details
- feat: apply email whitelist to verification code API
- fix: subscription link copy compatibility for non-HTTPS
- fix: resolve route editing 500 error in certain cases
- refactor: restructure traffic reset logic
This commit is contained in:
xboard
2025-06-22 01:18:38 +08:00
parent 7bab761db6
commit 4fe2f35183
34 changed files with 2176 additions and 539 deletions
+16 -1
View File
@@ -7,6 +7,7 @@
"Currency conversion has timed out, please try again later": "Currency conversion has timed out, please try again later",
"Email already exists": "Email already exists",
"Email suffix is not in the Whitelist": "Email suffix is not in the Whitelist",
"Email suffix is not in whitelist": "Email suffix is not in whitelist",
"Email verification code": "Email verification code",
"Email verification code cannot be empty": "Email verification code cannot be empty",
"Email verification code has been sent, please request again later": "Email verification code has been sent, please request again later",
@@ -129,5 +130,19 @@
"update.code_update_failed": "Code update failed: :error",
"update.migration_failed": "Database migration failed: :error",
"update.cache_clear_failed": "Cache clearing failed: :error",
"update.flag_create_failed": "Failed to create update flag: :error"
"update.flag_create_failed": "Failed to create update flag: :error",
"traffic_reset.reset_type.monthly": "Monthly Reset",
"traffic_reset.reset_type.first_day_month": "First Day of Month Reset",
"traffic_reset.reset_type.yearly": "Yearly Reset",
"traffic_reset.reset_type.first_day_year": "First Day of Year Reset",
"traffic_reset.reset_type.manual": "Manual Reset",
"traffic_reset.reset_type.purchase": "Purchase Reset Package",
"traffic_reset.source.auto": "Auto Trigger",
"traffic_reset.source.manual": "Manual Trigger",
"traffic_reset.source.api": "API Call",
"traffic_reset.source.cron": "Cron Job",
"traffic_reset.source.user_access": "User Access",
"traffic_reset.reset_success": "Traffic reset successful",
"traffic_reset.reset_failed": "Traffic reset failed, please check logs for details",
"traffic_reset.user_cannot_reset": "User cannot reset traffic (user not activated or no valid plan)"
}
+16 -1
View File
@@ -51,6 +51,7 @@
"Invalid coupon": "优惠券无效",
"Invalid code is incorrect": "验证码有误",
"Email suffix is not in the Whitelist": "邮箱后缀不处于白名单中",
"Email suffix is not in whitelist": "邮箱后缀不在白名单中",
"Gmail alias is not supported": "不支持 Gmail 别名邮箱",
"Registration has closed": "本站已关闭注册",
"You must use the invitation code to register": "必须使用邀请码才可以注册",
@@ -129,5 +130,19 @@
"update.code_update_failed": "代码更新失败: :error",
"update.migration_failed": "数据库迁移失败: :error",
"update.cache_clear_failed": "缓存清理失败: :error",
"update.flag_create_failed": "创建更新标记失败: :error"
"update.flag_create_failed": "创建更新标记失败: :error",
"traffic_reset.reset_type.monthly": "按月重置",
"traffic_reset.reset_type.first_day_month": "每月1号重置",
"traffic_reset.reset_type.yearly": "按年重置",
"traffic_reset.reset_type.first_day_year": "每年1月1日重置",
"traffic_reset.reset_type.manual": "手动重置",
"traffic_reset.reset_type.purchase": "购买重置包",
"traffic_reset.source.auto": "自动触发",
"traffic_reset.source.manual": "手动触发",
"traffic_reset.source.api": "API调用",
"traffic_reset.source.cron": "定时任务",
"traffic_reset.source.user_access": "用户访问",
"traffic_reset.reset_success": "流量重置成功",
"traffic_reset.reset_failed": "流量重置失败,请查看日志获取详细信息",
"traffic_reset.user_cannot_reset": "该用户当前不能重置流量(用户未激活或无有效套餐)"
}
+16 -1
View File
@@ -51,6 +51,7 @@
"Invalid coupon": "優惠券無效",
"Invalid code is incorrect": "驗證碼有誤",
"Email suffix is not in the Whitelist": "郵箱後綴不處於白名單中",
"Email suffix is not in whitelist": "郵箱後綴不在白名單中",
"Gmail alias is not supported": "不支持 Gmail 別名郵箱",
"Registration has closed": "本站已關閉註冊",
"You must use the invitation code to register": "必須使用邀請碼才可以註冊",
@@ -129,5 +130,19 @@
"update.code_update_failed": "代碼更新失敗: :error",
"update.migration_failed": "數據庫遷移失敗: :error",
"update.cache_clear_failed": "緩存清理失敗: :error",
"update.flag_create_failed": "創建更新標記失敗: :error"
"update.flag_create_failed": "創建更新標記失敗: :error",
"traffic_reset.reset_type.monthly": "按月重置",
"traffic_reset.reset_type.first_day_month": "每月1號重置",
"traffic_reset.reset_type.yearly": "按年重置",
"traffic_reset.reset_type.first_day_year": "每年1月1日重置",
"traffic_reset.reset_type.manual": "手動重置",
"traffic_reset.reset_type.purchase": "購買重置包",
"traffic_reset.source.auto": "自動觸發",
"traffic_reset.source.manual": "手動觸發",
"traffic_reset.source.api": "API調用",
"traffic_reset.source.cron": "定時任務",
"traffic_reset.source.user_access": "用戶訪問",
"traffic_reset.reset_success": "流量重置成功",
"traffic_reset.reset_failed": "流量重置失敗,請查看日誌獲取詳細信息",
"traffic_reset.user_cannot_reset": "該用戶當前不能重置流量(用戶未激活或無有效套餐)"
}