Files
sexygoat 2ecab976f5
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m22s
fix: 新增: 修改资产套餐已用量, 修改资产套餐过期时间
2026-06-13 10:41:10 +08:00

5.9 KiB

ADDED Requirements

Requirement: Package List Adjustment Actions

The asset information package list SHALL provide operator actions to update a package usage record's real used data and expiration time.

Scenario: Render adjustment actions in the package list

  • GIVEN 用户正在查看资产信息页的“套餐列表”
  • AND 当前登录账号满足对应操作的可见性规则
  • WHEN 页面渲染套餐列表操作列
  • THEN 系统 MUST 显示“修改已用量”操作
  • AND 系统 MUST 显示“修改过期时间”操作

Scenario: Open used-data adjustment form

  • GIVEN 用户可见“修改已用量”操作
  • WHEN 用户点击某条套餐记录的“修改已用量”
  • THEN 系统 MUST 打开修改已用量弹窗
  • AND 弹窗 MUST 展示当前套餐记录上下文
  • AND 表单 MUST 要求输入新的套餐真实已用量 MB

Scenario: Open expiration adjustment form

  • GIVEN 用户可见“修改过期时间”操作
  • WHEN 用户点击某条套餐记录的“修改过期时间”
  • THEN 系统 MUST 打开修改过期时间弹窗
  • AND 弹窗 MUST 展示当前套餐记录上下文
  • AND 表单 MUST 要求输入新的套餐过期时间

Requirement: Used Data Update API Integration

The frontend SHALL update a package usage record's real used data through PATCH /api/admin/assets/{identifier}/packages/{package_usage_id}/used-data.

Scenario: Submit valid used-data update

  • GIVEN 用户正在修改某条套餐记录的已用量
  • AND 当前资产标识符为 identifier
  • AND 当前套餐使用记录 ID 为 package_usage_id
  • WHEN 用户输入非负整数 data_usage_mb 并提交
  • THEN 系统 MUST send PATCH /api/admin/assets/{identifier}/packages/{package_usage_id}/used-data
  • AND 请求体 MUST be JSON with data_usage_mb
  • AND data_usage_mb MUST be a non-negative integer MB value

Scenario: Reject invalid used-data input

  • GIVEN 用户正在修改套餐已用量
  • WHEN 用户未输入值、输入负数或输入非整数
  • THEN 系统 MUST block submission
  • AND 系统 MUST show a validation message explaining that the used data must be a non-negative integer MB value
  • AND 系统 MUST NOT call the PATCH endpoint

Scenario: Used-data update succeeds

  • GIVEN used-data PATCH request returns code=0
  • WHEN 系统收到响应
  • THEN 系统 MUST show a success message
  • AND 系统 MUST close the edit dialog
  • AND 系统 MUST refresh the asset package list so the latest package usage data is displayed

Requirement: Expiration Time Update API Integration

The frontend SHALL update a package usage record's expiration time through PATCH /api/admin/assets/{identifier}/packages/{package_usage_id}/expires-at.

Scenario: Submit valid expiration update

  • GIVEN 用户正在修改某条套餐记录的过期时间
  • AND 当前资产标识符为 identifier
  • AND 当前套餐使用记录 ID 为 package_usage_id
  • WHEN 用户输入有效的 expires_at 并提交
  • THEN 系统 MUST send PATCH /api/admin/assets/{identifier}/packages/{package_usage_id}/expires-at
  • AND 请求体 MUST be JSON with expires_at
  • AND expires_at MUST be formatted as YYYY-MM-DD HH:MM:SS or another backend-accepted RFC3339 string

Scenario: Reject missing expiration input

  • GIVEN 用户正在修改套餐过期时间
  • WHEN 用户未选择或未输入过期时间
  • THEN 系统 MUST block submission
  • AND 系统 MUST show a validation message explaining that expiration time is required
  • AND 系统 MUST NOT call the PATCH endpoint

Scenario: Expiration update succeeds

  • GIVEN expires-at PATCH request returns code=0
  • WHEN 系统收到响应
  • THEN 系统 MUST show a success message
  • AND 系统 MUST close the edit dialog
  • AND 系统 MUST refresh the asset package list so the latest expiration time is displayed

Requirement: Environment And Account Visibility Gate

The frontend SHALL gate both package adjustment actions by environment, current account user_type, and production button permissions.

Scenario: Production platform user with permission sees matching action

  • GIVEN 当前运行环境为线上环境
  • AND 当前登录账号的 user_type2
  • AND 当前登录账号拥有“修改已用量”的按钮权限
  • WHEN 页面渲染套餐列表操作列
  • THEN 系统 MUST show “修改已用量”

Scenario: Production platform user without permission cannot see matching action

  • GIVEN 当前运行环境为线上环境
  • AND 当前登录账号的 user_type2
  • AND 当前登录账号缺少“修改过期时间”的按钮权限
  • WHEN 页面渲染套餐列表操作列
  • THEN 系统 MUST NOT show “修改过期时间”

Scenario: Production super admin cannot see adjustment actions

  • GIVEN 当前运行环境为线上环境
  • AND 当前登录账号的 user_type1
  • WHEN 页面渲染套餐列表操作列
  • THEN 系统 MUST NOT show “修改已用量”
  • AND 系统 MUST NOT show “修改过期时间”

Scenario: Test environment super admin sees actions without permissions

  • GIVEN 当前运行环境为测试或开发环境
  • AND 当前登录账号的 user_type1
  • AND 当前登录账号没有两个调整操作的按钮权限
  • WHEN 页面渲染套餐列表操作列
  • THEN 系统 MUST show “修改已用量”
  • AND 系统 MUST show “修改过期时间”

Scenario: Test environment non-super-admin cannot see actions

  • GIVEN 当前运行环境为测试或开发环境
  • AND 当前登录账号的 user_type is not 1
  • WHEN 页面渲染套餐列表操作列
  • THEN 系统 MUST NOT show “修改已用量”
  • AND 系统 MUST NOT show “修改过期时间”