Files
one-pipe-system/openspec/changes/add-package-management-system/specs/package-management/spec.md
sexygoat 841cf0442b
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 3m30s
fetch(add): 订单管理-企业设备
2026-01-29 15:43:45 +08:00

4.7 KiB
Raw Blame History

Package Management Specification

ADDED Requirements

Requirement: 套餐列表查询

系统 SHALL 提供套餐列表查询功能,支持分页和多条件筛选。

Scenario: 查询所有套餐

  • WHEN 用户访问套餐管理页面
  • THEN 系统显示套餐列表包含套餐编码、套餐名称、系列ID、套餐类型、流量、价格、状态、上架状态等
  • AND 支持按套餐名称模糊搜索
  • AND 支持按系列ID筛选
  • AND 支持按状态筛选(启用/禁用)
  • AND 支持按上架状态筛选(上架/下架)
  • AND 支持按套餐类型筛选formal/addon
  • AND 支持分页每页最多100条记录

Scenario: 多条件组合查询

  • WHEN 用户同时使用多个筛选条件
  • THEN 系统返回满足所有条件的套餐列表

Requirement: 创建套餐

系统 SHALL 允许管理员创建新的套餐。

Scenario: 成功创建套餐

  • WHEN 用户填写必填字段(套餐编码、套餐名称、套餐类型、套餐时长、套餐价格)
  • AND 可选填写系列ID、流量信息、成本价、建议售价等
  • AND 提交表单
  • THEN 系统创建套餐,默认状态为启用,默认上架状态为下架
  • AND 返回创建的套餐详情

Scenario: 套餐编码唯一性验证

  • WHEN 用户使用已存在的套餐编码创建套餐
  • THEN 系统返回错误提示"套餐编码已存在"

Scenario: 验证套餐时长范围

  • WHEN 套餐时长小于1个月或大于120个月
  • THEN 系统返回验证错误"套餐时长必须在1-120个月之间"

Scenario: 流量类型与流量额度关系

  • WHEN 流量类型为真流量real

  • THEN 真流量额度real_data_mb必须大于0

  • AND 总流量额度data_amount_mb等于真流量额度

  • WHEN 流量类型为虚流量virtual

  • THEN 虚流量额度virtual_data_mb必须大于0

  • AND 真流量额度和虚流量额度之和等于总流量额度

Requirement: 查看套餐详情

系统 SHALL 允许用户查看单个套餐的详细信息。

Scenario: 查询存在的套餐

  • WHEN 用户通过套餐ID查询详情
  • THEN 系统返回该套餐的完整信息,包括所有字段

Scenario: 查询不存在的套餐

  • WHEN 用户查询不存在的套餐ID
  • THEN 系统返回404错误

Requirement: 更新套餐

系统 SHALL 允许管理员更新套餐信息。

Scenario: 成功更新套餐

  • WHEN 用户修改套餐的可变字段(名称、时长、价格、流量等)
  • AND 提交更新
  • THEN 系统更新套餐信息
  • AND 返回更新后的套餐详情

Scenario: 套餐编码不可修改

  • WHEN 用户尝试修改套餐编码
  • THEN 系统忽略该字段,不允许修改

Requirement: 删除套餐

系统 SHALL 允许管理员删除套餐。

Scenario: 成功删除套餐

  • WHEN 用户删除未被使用的套餐
  • THEN 系统删除该套餐
  • AND 返回成功状态

Scenario: 删除被分配的套餐

  • WHEN 用户删除已被分配给代理商的套餐
  • THEN 系统返回错误提示"该套餐已被分配,无法删除"

Requirement: 套餐状态管理

系统 SHALL 支持套餐启用/禁用状态管理。

Scenario: 启用套餐

  • WHEN 用户将禁用状态的套餐切换为启用
  • THEN 系统更新状态为启用status=1

Scenario: 禁用套餐

  • WHEN 用户将启用状态的套餐切换为禁用
  • THEN 系统更新状态为禁用status=2
  • AND 该套餐将不可用于新的分配或充值

Requirement: 套餐上架状态管理

系统 SHALL 支持套餐上架/下架状态管理。

Scenario: 上架套餐

  • WHEN 用户将下架状态的套餐切换为上架
  • THEN 系统更新上架状态为上架shelf_status=1
  • AND 该套餐将对代理商可见

Scenario: 下架套餐

  • WHEN 用户将上架状态的套餐切换为下架
  • THEN 系统更新上架状态为下架shelf_status=2
  • AND 该套餐将对代理商不可见

Requirement: 套餐类型支持

系统 SHALL 支持两种套餐类型。

Scenario: 正式套餐

  • WHEN 创建套餐类型为 formal 的套餐
  • THEN 系统记录为正式套餐

Scenario: 附加套餐

  • WHEN 创建套餐类型为 addon 的套餐
  • THEN 系统记录为附加套餐

Requirement: 权限控制

系统 SHALL 对套餐管理功能实施权限控制。

Scenario: 未认证用户访问

  • WHEN 未登录用户访问套餐管理接口
  • THEN 系统返回401未认证错误

Scenario: 无权限用户访问

  • WHEN 已登录但无权限的用户访问套餐管理接口
  • THEN 系统返回403无权访问错误