Files
yingqing/core/backend/apps/adminpanel/urls.py
T
zycandClaude Sonnet 5 bf20de956c feat(billing): 计费商业化重构(积分制)+ 团队差异化调价
统一计价引擎 apps/billing/pricing.py:1积分=¥0.1,平台成本(¥)与用户价(积分)双记账,
视频按火山真实 usage.total_tokens 结算(true-up,终结¥1/段倒贴)+ 首发×1.5毛利系数。
Team.price_multiplier 差异化调价(jimeng同款):挂牌价×系数两步HALF_UP取整,视频类
按下单时的价格/汇率快照结算(中途改配不影响在途任务)。

BillingConfig 单例(汇率/毛利系数/预留buffer,admin可调即刻生效)。存量数据 ×10 rescale
迁移(RunPython+atomic,MySQL 迁移不可中断重跑)。开户赠送归零(DEFAULT_TRIAL_CREDITS=0,
商业决策)。audit_billing 加 I9(卖亏审计)。271 条测试 + tsc/build 全绿。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 10:04:00 +08:00

71 lines
3.3 KiB
Python

from django.urls import path
from .views import (
admin_asset_reviews,
admin_billing_config,
admin_asset_reviews_poll,
admin_asset_reviews_submit,
admin_invitations,
admin_ledger_adjust,
admin_ledgers,
admin_model_detail,
admin_model_set_default,
admin_models,
admin_integrity,
admin_projects,
admin_provider_detail,
admin_providers,
admin_quota_policies,
admin_quota_policy_detail,
admin_task_detail,
admin_task_retry,
admin_tasks,
admin_prompt_template_detail,
admin_prompt_templates,
admin_quality_word_detail,
admin_quality_words,
admin_revoke_invitation,
admin_team_detail,
admin_team_pricing,
admin_team_toggle,
admin_teams,
admin_user_reset_password,
admin_user_toggle,
admin_users,
)
urlpatterns = [
path("invitations/", admin_invitations, name="admin-invitations"),
path("invitations/<uuid:invite_id>/revoke/", admin_revoke_invitation, name="admin-invitation-revoke"),
path("teams/", admin_teams, name="admin-teams"),
path("teams/<uuid:team_id>/", admin_team_detail, name="admin-team-detail"),
path("teams/<uuid:team_id>/toggle/", admin_team_toggle, name="admin-team-toggle"),
path("teams/<uuid:team_id>/pricing/", admin_team_pricing, name="admin-team-pricing"),
path("users/", admin_users, name="admin-users"),
path("users/<uuid:user_id>/toggle/", admin_user_toggle, name="admin-user-toggle"),
path("users/<uuid:user_id>/reset-password/", admin_user_reset_password, name="admin-user-reset-password"),
path("quality-words/", admin_quality_words, name="admin-quality-words"),
path("quality-words/<uuid:word_id>/", admin_quality_word_detail, name="admin-quality-word-detail"),
path("prompt-templates/", admin_prompt_templates, name="admin-prompt-templates"),
path("prompt-templates/<uuid:template_id>/", admin_prompt_template_detail, name="admin-prompt-template-detail"),
path("asset-reviews/", admin_asset_reviews, name="admin-asset-reviews"),
path("asset-reviews/submit/", admin_asset_reviews_submit, name="admin-asset-reviews-submit"),
path("asset-reviews/poll/", admin_asset_reviews_poll, name="admin-asset-reviews-poll"),
path("tasks/", admin_tasks, name="admin-tasks"),
path("tasks/<uuid:task_id>/", admin_task_detail, name="admin-task-detail"),
path("tasks/<uuid:task_id>/retry/", admin_task_retry, name="admin-task-retry"),
path("ledgers/", admin_ledgers, name="admin-ledgers"),
path("ledgers/adjust/", admin_ledger_adjust, name="admin-ledger-adjust"),
path("billing-config/", admin_billing_config, name="admin-billing-config"),
path("quota-policies/", admin_quota_policies, name="admin-quota-policies"),
path("quota-policies/<uuid:policy_id>/", admin_quota_policy_detail, name="admin-quota-policy-detail"),
path("providers/", admin_providers, name="admin-providers"),
path("providers/<uuid:provider_id>/", admin_provider_detail, name="admin-provider-detail"),
path("models/", admin_models, name="admin-models"),
path("models/<uuid:model_id>/", admin_model_detail, name="admin-model-detail"),
path("models/<uuid:model_id>/set-default/", admin_model_set_default, name="admin-model-set-default"),
path("projects/", admin_projects, name="admin-projects"),
path("integrity/", admin_integrity, name="admin-integrity"),
]