Files
junhong_cmp_fiber/docs/7月迭代/7月迭代禅道研发需求拆分表.md
2026-07-17 16:39:41 +08:00

25 KiB
Raw Blame History

7月迭代禅道研发需求拆分表

来源禅道用户需求导出与7月迭代标准评审稿。 范围:只包含激活需求;草稿 #41/#51 和已关闭重复需求 #54 不创建研发需求。

本文件用于总览、排期和关联关系,不用于逐条复制。实际录入禅道请使用:7月迭代禅道研发需求逐条录入稿。录入稿中每条 FE/BE/INT 都有可独立复制的标题和完整描述。

一、拆分规则

每条用户需求下创建两条研发需求:

[FE][UR#编号] 前端交付名称
[BE][UR#编号] 后端交付名称
  • FE、BE 研发需求分别指派给前端和后端,可并行进入开发。
  • 研发需求必须描述可独立交付的页面或接口能力,不能只写“配合前端”“配合后端”。
  • 联调属于研发需求完成后的交付活动,不为每条用户需求机械创建第三条研发需求。
  • 跨页面、跨模块、异步任务或第三方系统场景,统一创建链路级联调任务。
  • 简单搜索、字段展示等需求在 FE/BE 研发需求中完成自验,不单独创建联调任务。

推荐状态依赖:

FE/BE 研发需求开发完成
  -> 接口契约冻结
  -> 进入对应联调任务
  -> 问题回到原 FE/BE 研发需求修复
  -> 联调任务验收通过

二、用户需求到研发需求映射

用户需求 前端研发需求 后端研发需求 联调归属
#98 换货管理新资产归属 [FE][UR#98] 换货新资产归属继承提示:选择新资产后展示将继承的店铺 [BE][UR#98] 换货新资产继承旧资产店铺:事务内迁移归属、租户标签和分配记录 INT-02 换货链路
#97 代理钱包阈值提醒 [FE][UR#97] 代理现金余额不足100元展示与通知跳转 [BE][UR#97] 主钱包固定100元余额预警:跨越阈值、重新布防、站内通知 INT-05 钱包支付
#96 员工作为发展人进行标识 [FE][UR#96] 店铺业务员选择、展示和筛选 [BE][UR#96] 店铺业务员关联与查询:只绑定启用平台账号 INT-05 钱包支付
#94 系统状态同步优化以及回调处理 [FE][UR#94] 资产同步状态与审计入口展示 [BE][UR#94] 资产状态同步DDD收口轮询、0/3/5事件、回调防腐层 INT-01 实名与同步
#86 资产详情中换货标识 [FE][UR#86] 资产详情前代/后代换货标识与跳转 [BE][UR#86] 资产换货链Query:返回 previous/next asset并校验权限 INT-02 换货链路
#73 行业卡操作停复机 [FE][UR#73] 复机实名校验结果与错误提示适配 [BE][UR#73] 按运营商实名能力控制复机 INT-01 实名与同步
#62 H5设置先充值后实名 [FE][UR#62] H5实名与购买顺序流程:先实名/先购买/无需实名 [BE][UR#62] 资产实名顺序策略与批量配置接口 INT-01 实名与同步
#60 店铺联系电话检索 [FE][UR#60] 店铺联系电话搜索控件 [BE][UR#60] 店铺联系电话精确查询 不单建FE/BE自验
#57 退款中禁止换货 [FE][UR#57] 换货退款拦截错误展示 [BE][UR#57] 换货前活跃退款校验 INT-02 换货链路
#55 套餐生效条件 [FE][UR#55] 套餐分配生效条件选择与恢复默认 [BE][UR#55] 套餐分配生效条件覆盖与购买快照 INT-03 套餐生命周期
#53 资产实名状态筛选 [FE][UR#53] 卡和设备实名状态筛选 [BE][UR#53] 卡/设备实名状态查询与设备快照维护 INT-01 实名与同步
#49 设备批量分配代理和套餐系列 [FE][UR#49] 设备批量分配代理/套餐系列双入口 [BE][UR#49] 两类设备批量分配任务与失败明细 INT-04 批量与导出
#48 不同资产使用不同支付方式 [FE][UR#48] C端按资产展示允许支付方式 [BE][UR#48] 支付方式配置与订单二次校验 INT-05 钱包支付
#47 限速规则 [FE][UR#47] 卡/设备手动设置与取消限速 [BE][UR#47] Gateway按cardNo限速统一接口 INT-07 Gateway限速
#46 资产信息详情字段新增 [FE][UR#46] 预计最终到期时间与临期高亮 [BE][UR#46] 当前及排队套餐最终到期Query INT-03 套餐生命周期
#45 换货管理 [FE][UR#45] 换货新旧资产展示与独立搜索 [BE][UR#45] 换货标识快照修正与新旧资产查询 INT-02 换货链路
#44 列表字段新增 [FE][UR#44] 退款/充值/换货提交人与审批摘要展示 [BE][UR#44] 提交人快照与企微审批摘要批量查询 INT-06 企微审批
#43 代理系列授权 [FE][UR#43] 系列套餐批量选择与已授权置灰 [BE][UR#43] 系列套餐候选Query与重复授权幂等 INT-03 套餐生命周期
#42 导出功能 [FE][UR#42] 导出字段选择、权限展示和任务进度 [BE][UR#42] 导出场景、角色字段权限与30天到期筛选 INT-04 批量与导出
#40 套餐设计 [FE][UR#40] C端下架套餐续费入口 [BE][UR#40] 下架套餐历史用户续费资格校验 INT-03 套餐生命周期
#38 不同渠道额度处理 [FE][UR#38] 角色默认信用和店铺实际额度管理 [BE][UR#38] 代理主钱包信用额度与并发资金不变量 INT-05 钱包支付
#37 审核流转 [FE][UR#37] 企微审批状态、意见附件和结果通知展示 [BE][UR#37] 企微审批模板、账号绑定、回调和轮询补偿 INT-06 企微审批
#36 批量订购套餐 [FE][UR#36] 批量订购上传、支付方式、进度和失败明细 [BE][UR#36] 批量订购任务、逐行幂等下单和钱包扣款 INT-04 批量与导出、INT-05 钱包支付
#35 退款审核 [FE][UR#35] 退款企微审批详情与业务处理状态 [BE][UR#35] 退款企微终态、人工退款和代理钱包回溯 INT-06 企微审批
#34 充值审核流程 [FE][UR#34] 代理扫码充值与员工线下审批状态页面 [BE][UR#34] 微信/支付宝充值入账和线下充值企微终态 INT-05 钱包支付、INT-06 企微审批
#33 套餐临期提醒 [FE][UR#33] 临期列表、各端高亮、3天置顶和续费入口 [BE][UR#33] 最终到期临期Query与15/7/3站内通知 INT-03 套餐生命周期

三、前后端并行约定

研发需求创建前先冻结本表中的接口契约。前端按 Mock 数据开发页面,后端按同一契约实现接口。

  • 响应统一为 {code,msg,data,timestamp},下表只描述 data
  • 分页统一返回 {items,total,page,size}
  • 金额入参和返回均使用分;前端显示元。
  • 生命周期判断使用 status,展示使用 status_name
  • 字段允许增加但不能改名或改变类型;确需调整时,必须同步修改 FE、BE 两条研发需求。
  • 前端先完成页面、交互、Mock、加载/空/错误状态;后端完成后只替换数据源并进入联调。

每组需求按以下顺序启动:

1. FE/BE共同确认路径、方法、入参、返回和枚举
2. 后端先补DTO/OpenAPI契约或提供固定JSON示例
3. 前端按JSON示例完成页面和Mock请求
4. 后端实现真实查询、写入、权限、幂等和审计
5. 前端切换真实接口进入对应INT联调任务

契约确认时必须标记字段是必返、可空还是仅特定状态返回,避免前端通过猜测补默认值。

四、研发需求压缩总览

下表仅用于快速核对,不建议复制到禅道。前端页面结构、交互状态、接口入参和返回字段以逐条录入稿为准。

用户需求 前端研发需求说明 后端研发需求与接口契约
#98 换货新资产归属 **标题:**换货新资产归属继承提示。
**页面:**换货创建、发货确认。选择新资产后展示“完成后归属到某店铺”,提交中禁止重复操作,失败展示后端原因。
**标题:**换货新资产继承旧资产店铺。
**接口:**复用 POST /api/admin/exchangesPOST /api/admin/exchanges/{id}/shipPOST /api/admin/exchanges/{id}/complete
**入参:**旧/新资产标识、换货类型、是否迁移资料。
**返回:**换货单及 inherited_shop_id/inherited_shop_name
**规则:**平台库存新资产继承旧店铺;其他店铺资产拒绝。
#97 钱包100元预警 **标题:**代理现金余额不足100元展示。
**页面:**资金概况显示红色预警;顶部通知和通知中心支持跳转店铺资金页,不提供阈值配置。
**标题:**代理主钱包固定100元余额预警。
接口:GET /api/admin/shops/fund-summary 增加 cash_available/low_balance_warning;通知复用 /api/admin/notifications
规则:balance-frozen_balance<=10000,不含信用额度;只在跨越阈值时通知,回升后重新布防。
#96 店铺业务员 **标题:**店铺业务员选择、展示与筛选。
**页面:**店铺新建/编辑增加平台业务员下拉,列表和详情展示业务员,筛选栏支持按业务员查询。
**标题:**店铺业务员关联与查询。
接口:POST /api/admin/shopsPUT /api/admin/shops/{id} 入参增加 business_owner_account_idGET /api/admin/shops 增加同名筛选。
返回:business_owner_account_id/business_owner_name。只允许启用的平台账号。
#94 状态同步优化 **标题:**资产同步状态与审计入口。
**页面:**资产详情展示活跃级别、最后活跃、下次轮询;保留原刷新按钮,增加“查看同步轨迹”跳转。
**标题:**资产状态同步DDD收口。
**接口:**不新增刷新入口,复用 POST /api/admin/assets/{identifier}/refreshGET /api/admin/assets/resolve/{identifier} 返回 polling;轨迹使用 GET /api/admin/audit/integrations
**规则:**轮询、0/3/5事件和回调统一应用状态。
#86 资产换货标识 **标题:**资产详情换货前代/后代展示。
**页面:**显示“换货新资产”“已换出旧资产”标签,可查看前代和后代;无权限时不可点击。
**标题:**资产换货链Query。
接口:GET /api/admin/assets/resolve/{identifier} 增加 exchange_trace.previous_asset/next_asset
**返回:**资产类型、ID、标识、换货单号和 can_view
#73 行业卡复机 **标题:**复机实名结果和错误提示。
**页面:**沿用资产详情复机按钮;未满足实名条件时展示后端中文原因。
**标题:**按运营商实名能力控制复机。
**接口:**复用 POST /api/admin/assets/{identifier}/start
**返回:**最新资产状态。
**规则:**只看运营商 realname_link_type,不按行业卡类型统一放行。
#62 H5实名顺序 **标题:**H5先实名/先购买流程及后台批量配置。
**页面:**C端按接口策略跳转后台卡和设备列表提供批量修改入口。
**标题:**资产实名顺序策略。
接口:PATCH /api/admin/assets/{identifier}/realname-modePOST /api/admin/iot-cards/batch-update-realname-policyPOST /api/admin/devices/batch-update-realname-policy
**入参:**资产标识列表、policy=none/before_order/after_order
**返回:**生效策略及成功数量。
#60 联系电话搜索 **标题:**店铺联系电话搜索。
**页面:**店铺列表新增11位联系电话输入框支持清空和重新查询。
**标题:**店铺联系电话精确查询。
接口:GET /api/admin/shops?contact_phone=
**入参:**11位手机号。
**返回:**原店铺分页结构。
#57 退款中禁止换货 **标题:**换货退款拦截提示。
**页面:**创建换货失败时原地展示“该资产存在退款申请”,不自行判断退款状态。
**标题:**换货前活跃退款校验。
**接口:**复用 POST /api/admin/exchanges
**规则:**审批中、已退回或退款处理未完成时返回业务错误;已拒绝、撤销或处理完成后放行。
#55 套餐生效条件 **标题:**套餐分配生效条件选择。
**页面:**授权/分配弹框提供跟随默认、购买生效、实名生效三选一;已分配记录支持修改和恢复默认。
**标题:**套餐分配生效条件覆盖与快照。
接口:POST /api/admin/shop-package-allocationsPATCH /api/admin/shop-package-allocations/{id}/expiry-base
入参:expiry_base_overridenull 表示恢复默认。
**返回:**默认值、覆盖值和最终生效值。
#53 实名状态筛选 **标题:**卡和设备实名状态筛选。
**页面:**两个资产列表增加全部/已实名/未实名筛选和状态列。
**标题:**卡和设备实名状态查询。
接口:GET /api/admin/iot-cards?real_name_status=0|1GET /api/admin/devices?real_name_status=0|1
返回:real_name_status/real_name_status_name
#49 设备批量分配 **标题:**设备批量分配代理和套餐系列双入口。
**页面:**两个独立上传弹框,展示总数、成功数、失败数和失败原因。
**标题:**设备两类批量分配任务。
接口:POST /api/admin/devices/batch-assign-shopPOST /api/admin/devices/batch-assign-seriesGET /api/admin/devices/batch-allocation/{task_id}
**入参:**文件和目标ID。
**返回:**任务状态及失败明细。
#48 支付方式限制 **标题:**C端按资产展示支付方式。
**页面:**支付页只展示接口返回的支付方式;无可用方式时禁止提交。
**标题:**资产支付方式配置与订单校验。
接口:GET /api/c/v1/asset/info 返回 allowed_payment_methodsPOST /api/c/v1/orders/createPOST /api/c/v1/orders/{id}/pay 再次校验。
后台:PUT /api/admin/system/config/{config_key}
#47 Gateway限速 **标题:**卡和设备手动限速。
**页面:**详情页提供设置、取消入口设备显示最终使用的当前卡ICCID。
**标题:**Gateway按cardNo统一限速。
接口:POST /api/admin/assets/{identifier}/speed-limit
入参:speed_kbps0表示取消。
**返回:**资产标识、最终 card_no、目标值和执行结果。
#46 预计最终到期 **标题:**预计套餐到期时间和临期高亮。
**页面:**资产详情只显示一个最终到期字段;不可预计时显示“待激活后起算”。
**标题:**当前及排队套餐最终到期Query。
接口:GET /api/admin/assets/resolve/{identifier}
返回:estimated_final_expires_at/days_until_final_expiry/expiry_estimate_status/is_expiring
#45 换货管理 **标题:**换货新旧资产展示和独立搜索。
**页面:**列表分别搜索旧资产、新资产展示统一卡ICCID或设备号。
**标题:**换货标识快照和查询。
接口:GET /api/admin/exchanges?old_asset_keyword=&new_asset_keyword=
**返回:**新旧资产类型、ID、标识及换货状态。新建换货统一保存规范化标识。
#44 列表字段新增 **标题:**退款、充值、换货列表提交人与审批摘要。
**页面:**增加提交人、企微状态、当前审批人摘要和业务处理状态。
**标题:**提交人快照与企微摘要查询。
**接口:**复用 GET /api/admin/refundsGET /api/admin/agent-rechargesGET /api/admin/exchanges
返回:submitter_name/approval_status_name/current_approver_summary/processing_status_name
#43 系列批量授权 **标题:**系列套餐批量选择与已授权置灰。
**页面:**首次和后续授权共用多选表格;已授权套餐置灰,展示公司成本、授权成本和建议售价。
**标题:**系列套餐候选和批量授权。
接口:GET /api/admin/shop-series-grants/{id}/package-optionsPUT /api/admin/shop-series-grants/{id}/packages
**返回:**三类价格、is_authorized;重复授权幂等。
#42 导出功能 **标题:**导出字段选择、权限和任务进度。
**页面:**导出弹框加载可选字段,提交后展示进度、失败和下载。
**标题:**统一导出场景和字段权限。
接口:GET /api/admin/export-fields?scene=POST /api/admin/export-tasksGET /api/admin/export-tasks/{id}
入参:scene/format/query/fields
**返回:**任务进度和下载地址。
#40 下架套餐续费 **标题:**C端当前套餐续费入口。
**页面:**当前套餐旁显示续费;下架套餐不出现在新购列表。
**标题:**下架套餐续费资格。
接口:GET /api/c/v1/asset/packages 返回 can_purchase/purchase_mode/disabled_reasonPOST /api/c/v1/orders/create 强校验资产所有人和历史使用记录。
#38 代理信用额度 **标题:**角色默认信用和店铺实际额度管理。
**页面:**客户角色配置新建默认额度并提示不影响存量;店铺资金页单独调整实际额度。
**标题:**代理主钱包信用额度。
接口:PUT /api/admin/roles/{id}/default-creditPUT /api/admin/shops/{id}/credit-limitGET /api/admin/shops/fund-summary
**入参:**开关、额度、钱包版本。
**返回:**额度、可用金额、欠款和版本。
#37 企微审核流转 **标题:**企微配置、账号绑定和审批详情。
**页面:**企微配置页、个人扫码绑定、审批运行列表;业务详情只读展示意见和附件。
**标题:**企业微信审批接入。
接口:GET /api/admin/wecom/statusPOST /api/admin/wecom/account-binding/sessionsGET /api/admin/wecom/approvalsPOST /api/admin/wecom/approvals/{id}/sync
**业务详情:**统一返回 approval 对象。
#36 批量订购套餐 **标题:**批量订购上传、支付、进度和失败明细。
**页面:**选择代理和整批支付方式上传Excel及线下凭证展示部分成功。
**标题:**批量订购任务。
接口:POST /api/admin/bulk-purchasesGET /api/admin/bulk-purchases/{task_id}GET /api/admin/bulk-purchases/{task_id}/items
**入参:**代理、支付方式、文件、凭证。
**返回:**任务和逐行结果。
#35 退款审核 **标题:**退款企微审批和退款处理状态。
**页面:**创建时上传备注附件;详情展示审批、人工退款说明和业务处理结果。
**标题:**退款企微终态处理。
接口:POST /api/admin/refundsGET /api/admin/refunds/{id}POST /api/admin/refunds/{id}/resubmit
**返回:**退款数据、approvalprocessing_status。代理钱包通过后幂等回溯。
#34 充值审核流程 **标题:**代理扫码充值与员工线下充值审批。
**页面:**在线充值展示支付方式、二维码和支付状态;线下充值展示只读企微审批状态。
**标题:**代理在线充值和员工线下审批。
接口:GET /api/admin/agent-recharges/payment-methodsPOST /api/admin/agent-rechargesGET /api/admin/agent-recharges/{id}/payment-statusGET /api/admin/agent-recharges/{id}
**返回:**二维码、过期时间、支付/审批/入账状态。
#33 套餐临期提醒 **标题:**临期列表、各端高亮和续费入口。
**页面:**临期页3天内置顶普通资产列表只高亮代理首页显示数量C端显示续费按钮。
**标题:**预计最终到期临期Query和站内通知。
接口:GET /api/admin/expiring-assets、资产列表/详情增加临期字段、GET /api/c/v1/asset/info、通知接口。
**返回:**最终到期、剩余天数、颜色节点15/7/3天通知防重。

五、前端Mock公共样例

资产详情扩展字段:

{
  "estimated_final_expires_at": "2026-08-01T23:59:59+08:00",
  "days_until_final_expiry": 15,
  "expiry_estimate_status": "exact",
  "is_expiring": true,
  "allowed_payment_methods": ["alipay", "wallet"],
  "polling": {
    "enabled": true,
    "activity_level": "active",
    "last_activity_at": "2026-07-17T10:00:00+08:00",
    "next_poll_at": "2026-07-17T10:03:00+08:00"
  },
  "exchange_trace": {
    "previous_asset": null,
    "next_asset": null
  }
}

统一异步任务:

{
  "task_id": 1001,
  "status": 2,
  "status_name": "处理中",
  "total_count": 100,
  "success_count": 60,
  "failed_count": 3,
  "failed_items": []
}

代理资金概况:

{
  "balance": 8000,
  "frozen_balance": 0,
  "cash_available": 8000,
  "credit_enabled": true,
  "credit_limit": 100000,
  "available_balance": 108000,
  "low_balance_warning": true,
  "version": 3
}

企微审批摘要:

{
  "source": "wecom",
  "instance_id": 123,
  "sp_no": "202607170001",
  "status": 1,
  "status_name": "审批中",
  "current_approver_summary": "财务审批",
  "approvers": [],
  "attachments": [],
  "business_process_result": "pending"
}

六、联调任务拆分

联调项建议创建为项目执行任务,而不是研发需求。每个任务可关联多条 FE/BE 研发需求和用户需求。

如果团队流程强制要求联调也必须使用“研发需求”类型则先新增一条技术用户需求“7月迭代跨模块联调与发布验收”再将下列 INT-0108 建成它的子研发需求。不要把同一条联调需求重复挂到每个业务用户需求下。

编号 联调任务名称 关联用户需求 参与工时 进入条件 主要验收链路
INT-01 资产实名、复机与状态同步联调 #94、#73、#62、#53 FE 11.5h / BE 11.5h,已含 实名策略接口、同步任务和H5页面完成 不同运营商实名能力、先实名/先购买、0/3/5同步、回调后状态和筛选一致
INT-02 换货完整链路联调 #98、#86、#57、#45 FE 0.51h / BE 0.51h已含 换货接口、详情和列表页面完成 退款拦截、新资产继承店铺、完成换货、列表搜索、前代/后代跳转
INT-03 套餐授权、购买、续费、到期与临期联调 #55、#46、#43、#40、#33 FE 11.5h / BE 11.5h,已含 套餐快照、授权候选和各端到期字段完成 批量授权、购买生效条件、下架续费、排队套餐最终到期、临期高亮和通知
INT-04 Excel批量任务与导出联调 #49、#36、#42 FE 11.5h / BE 11.5h,已含 上传、任务详情、Worker和导出场景完成 模板校验、部分成功、失败明细、任务恢复、字段权限和文件下载
INT-05 支付、代理钱包、信用和余额预警联调 #48、#38、#34、#36、#96、#97 FE 11.5h / BE 11.5h,已含 支付配置、钱包领域和业务员接口完成 支付方式限制、扫码充值、信用扣款、角色默认额度、店铺调额、100元预警
INT-06 企业微信审批、退款和线下充值联调 #37、#35、#34、#44 FE 1.52h / BE 1.52h已含 企微模板、绑定、回调、轮询和业务详情完成 扫码绑定、发起审批、意见附件、通过/驳回/撤销、退款/充值终态和列表摘要
INT-07 Gateway卡限速联调 #47 FE 0.51h / BE 0.51h已含 Gateway联调配置和卡/设备入口完成 单卡限速、设备解析当前卡、取消限速、无当前卡、失败审计
INT-08 七月迭代全链路与停机发布验收 全部激活需求 FE 34h / BE 45h额外 INT-0107完成 权限、通知、审计、历史数据、旧入口关闭、Worker恢复和发布检查

七、联调任务责任方式

  • 涉及企微、支付、Gateway、运营商回调和异步 Worker 的联调任务由后端主责,前端参与。
  • 主要是页面与接口契约的批量、导出、套餐和换货联调可由前端主责,后端参与。
  • 禅道只有一个指派人时,指派给主责人;另一人写入抄送和参与人,不拆成两条重复联调任务。
  • 联调发现的代码问题回到对应 FE/BE 研发需求处理;联调任务只记录场景、阻塞和最终结论。

八、研发需求描述模板

前端研发需求至少填写:页面入口、交互状态、调用接口、权限、异常状态、完成标准。

后端研发需求至少填写业务规则、数据变更、API、权限、幂等/并发、事件与审计、完成标准。

联调任务至少填写:关联研发需求、环境和账号、测试数据、完整操作步骤、预期结果、阻塞项和最终结论。

九、额外禅道项

当前用户需求 CSV 没有覆盖公共开发基础、公共站内通知和全局审计。建议补建三条技术用户需求:

用户需求:七月迭代公共开发基础
用户需求:公共站内通知
用户需求:全局多视角审计与外部集成追踪

再分别拆分:

[FE] 七月迭代公共状态与异步任务交互
[BE] 七月迭代公共迁移幂等与异步任务基础
[FE] 顶部通知铃铛与站内通知中心
[BE] 站内通知基础设施与受控跳转
[FE] 全局多视角审计中心
[BE] Audit Event与Integration Log统一审计

具体描述和工时直接使用逐条录入稿