# 7月迭代禅道研发需求拆分表 > 来源:禅道用户需求导出与7月迭代标准评审稿。 > 范围:只包含激活需求;草稿 #41/#51 和已关闭重复需求 #54 不创建研发需求。 > > 本文件用于总览、排期和关联关系,不用于逐条复制。实际录入禅道请使用:[7月迭代禅道研发需求逐条录入稿](./7月迭代禅道研发需求逐条录入稿.md)。录入稿中每条 FE/BE/INT 都有可独立复制的标题和完整描述。 ## 一、拆分规则 每条用户需求下创建两条研发需求: ```text [FE][UR#编号] 前端交付名称 [BE][UR#编号] 后端交付名称 ``` - FE、BE 研发需求分别指派给前端和后端,可并行进入开发。 - 研发需求必须描述可独立交付的页面或接口能力,不能只写“配合前端”“配合后端”。 - 联调属于研发需求完成后的交付活动,不为每条用户需求机械创建第三条研发需求。 - 跨页面、跨模块、异步任务或第三方系统场景,统一创建链路级联调任务。 - 简单搜索、字段展示等需求在 FE/BE 研发需求中完成自验,不单独创建联调任务。 推荐状态依赖: ```text 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、加载/空/错误状态;后端完成后只替换数据源并进入联调。 每组需求按以下顺序启动: ```text 1. FE/BE共同确认路径、方法、入参、返回和枚举 2. 后端先补DTO/OpenAPI契约或提供固定JSON示例 3. 前端按JSON示例完成页面和Mock请求 4. 后端实现真实查询、写入、权限、幂等和审计 5. 前端切换真实接口,进入对应INT联调任务 ``` 契约确认时必须标记字段是必返、可空还是仅特定状态返回,避免前端通过猜测补默认值。 ## 四、研发需求压缩总览 > 下表仅用于快速核对,不建议复制到禅道。前端页面结构、交互状态、接口入参和返回字段以[逐条录入稿](./7月迭代禅道研发需求逐条录入稿.md)为准。 | 用户需求 | 前端研发需求说明 | 后端研发需求与接口契约 | |---|---|---| | #98 换货新资产归属 | **标题:**换货新资产归属继承提示。
**页面:**换货创建、发货确认。选择新资产后展示“完成后归属到某店铺”,提交中禁止重复操作,失败展示后端原因。 | **标题:**换货新资产继承旧资产店铺。
**接口:**复用 `POST /api/admin/exchanges`、`POST /api/admin/exchanges/{id}/ship`、`POST /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/shops`、`PUT /api/admin/shops/{id}` 入参增加 `business_owner_account_id`;`GET /api/admin/shops` 增加同名筛选。
**返回:**`business_owner_account_id/business_owner_name`。只允许启用的平台账号。 | | #94 状态同步优化 | **标题:**资产同步状态与审计入口。
**页面:**资产详情展示活跃级别、最后活跃、下次轮询;保留原刷新按钮,增加“查看同步轨迹”跳转。 | **标题:**资产状态同步DDD收口。
**接口:**不新增刷新入口,复用 `POST /api/admin/assets/{identifier}/refresh`;`GET /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-mode`;`POST /api/admin/iot-cards/batch-update-realname-policy`;`POST /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-allocations`;`PATCH /api/admin/shop-package-allocations/{id}/expiry-base`。
**入参:**`expiry_base_override`,`null` 表示恢复默认。
**返回:**默认值、覆盖值和最终生效值。 | | #53 实名状态筛选 | **标题:**卡和设备实名状态筛选。
**页面:**两个资产列表增加全部/已实名/未实名筛选和状态列。 | **标题:**卡和设备实名状态查询。
**接口:**`GET /api/admin/iot-cards?real_name_status=0\|1`;`GET /api/admin/devices?real_name_status=0\|1`。
**返回:**`real_name_status/real_name_status_name`。 | | #49 设备批量分配 | **标题:**设备批量分配代理和套餐系列双入口。
**页面:**两个独立上传弹框,展示总数、成功数、失败数和失败原因。 | **标题:**设备两类批量分配任务。
**接口:**`POST /api/admin/devices/batch-assign-shop`、`POST /api/admin/devices/batch-assign-series`、`GET /api/admin/devices/batch-allocation/{task_id}`。
**入参:**文件和目标ID。
**返回:**任务状态及失败明细。 | | #48 支付方式限制 | **标题:**C端按资产展示支付方式。
**页面:**支付页只展示接口返回的支付方式;无可用方式时禁止提交。 | **标题:**资产支付方式配置与订单校验。
**接口:**`GET /api/c/v1/asset/info` 返回 `allowed_payment_methods`;`POST /api/c/v1/orders/create`、`POST /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_kbps`,0表示取消。
**返回:**资产标识、最终 `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/refunds`、`GET /api/admin/agent-recharges`、`GET /api/admin/exchanges`。
**返回:**`submitter_name/approval_status_name/current_approver_summary/processing_status_name`。 | | #43 系列批量授权 | **标题:**系列套餐批量选择与已授权置灰。
**页面:**首次和后续授权共用多选表格;已授权套餐置灰,展示公司成本、授权成本和建议售价。 | **标题:**系列套餐候选和批量授权。
**接口:**`GET /api/admin/shop-series-grants/{id}/package-options`;`PUT /api/admin/shop-series-grants/{id}/packages`。
**返回:**三类价格、`is_authorized`;重复授权幂等。 | | #42 导出功能 | **标题:**导出字段选择、权限和任务进度。
**页面:**导出弹框加载可选字段,提交后展示进度、失败和下载。 | **标题:**统一导出场景和字段权限。
**接口:**`GET /api/admin/export-fields?scene=`、`POST /api/admin/export-tasks`、`GET /api/admin/export-tasks/{id}`。
**入参:**`scene/format/query/fields`。
**返回:**任务进度和下载地址。 | | #40 下架套餐续费 | **标题:**C端当前套餐续费入口。
**页面:**当前套餐旁显示续费;下架套餐不出现在新购列表。 | **标题:**下架套餐续费资格。
**接口:**`GET /api/c/v1/asset/packages` 返回 `can_purchase/purchase_mode/disabled_reason`;`POST /api/c/v1/orders/create` 强校验资产所有人和历史使用记录。 | | #38 代理信用额度 | **标题:**角色默认信用和店铺实际额度管理。
**页面:**客户角色配置新建默认额度并提示不影响存量;店铺资金页单独调整实际额度。 | **标题:**代理主钱包信用额度。
**接口:**`PUT /api/admin/roles/{id}/default-credit`、`PUT /api/admin/shops/{id}/credit-limit`、`GET /api/admin/shops/fund-summary`。
**入参:**开关、额度、钱包版本。
**返回:**额度、可用金额、欠款和版本。 | | #37 企微审核流转 | **标题:**企微配置、账号绑定和审批详情。
**页面:**企微配置页、个人扫码绑定、审批运行列表;业务详情只读展示意见和附件。 | **标题:**企业微信审批接入。
**接口:**`GET /api/admin/wecom/status`、`POST /api/admin/wecom/account-binding/sessions`、`GET /api/admin/wecom/approvals`、`POST /api/admin/wecom/approvals/{id}/sync`。
**业务详情:**统一返回 `approval` 对象。 | | #36 批量订购套餐 | **标题:**批量订购上传、支付、进度和失败明细。
**页面:**沿用现有前端入口可见性;选择单个套餐和整批支付方式,CSV及线下凭证先直传对象存储;不选择代理,同一CSV可含不同代理资产,不接受Excel。 | **标题:**批量订购任务。
**接口:**`POST /api/admin/storage/upload-url`、`POST /api/admin/bulk-purchases`、`GET /api/admin/bulk-purchases/{task_id}`、`GET /api/admin/bulk-purchases/{task_id}/items`。
**权限:**后端仅复用现有后台认证,不新增权限码、账号类型拦截或任务创建人隔离。
**入参:**单个`package_id`、`payment_method=wallet|offline`、`file_key`、`voucher_keys`,无`shop_id`。`wallet`按CSV行号逐行扣结算代理主钱包,余额不足只失败当前行并继续。
**文件:**CSV仅一列“资产标识”;创建接口校验套餐和对象/类型/10MB,Worker校验编码、表头、语法、空文件及1000行,文件级错误整批失败且不下单。
**资产:**复用统一资产解析能力识别类型和ID,当前支持ICCID、卡`virtual_no`、MSISDN、设备`virtual_no`、IMEI和SN。
**判重:**按解析后的资产类型和资产ID判重,同一资产不同标识也仅首行处理。
**状态:**统一五态,部分成功由计数表达。
**返回:**任务和逐行结算代理结果。 | | #35 退款审核 | **标题:**退款企微审批和整单处理状态。
**页面:**创建只提交订单、固定申请金额、必填原因、可选备注及1~5个结构化附件,不提交实收金额或套餐使用记录;详情分区展示退款、审批和处理结果;拒绝后重新退款必须新建退款单;代理隐藏审批人、内部意见和审批附件。 | **标题:**退款企微终态与整单终结。
**接口:**`POST /api/admin/refunds`、`GET /api/admin/refunds`、`GET /api/admin/refunds/{id}`;下线原 `approve/reject/return/resubmit` 及任何 `manual-complete`。
**规则:**后端读取实收并校验固定申请金额;无论是否全额,通过后订单、该订单套餐和佣金均整单终结且不可再退差额。只有代理主钱包按原扣款流水自动回溯;其他方式系统外退款,资产钱包不回充。佣金结构化失效并可靠回扣,处理状态独立且可重试。代理按店铺层级权限查看。
**门禁:**可编程Adapter自动化和真实企微代理同意/平台拒绝两条链路均必过。 | | #34 充值审核流程 | **标题:**代理扫码充值与员工线下充值审批。
**页面:**在线充值展示支付方式、二维码、支付状态和钱包入账状态,不展示本地推算倒计时;线下充值展示只读企微审批状态。 | **标题:**代理在线充值和员工线下审批。
**接口:**`GET /api/admin/agent-recharges/payment-methods`、`POST /api/admin/agent-recharges`、`GET /api/admin/agent-recharges/{id}/payment-status`、`GET /api/admin/agent-recharges/{id}`。
**返回:**`qr_content`、支付/审批/统一处理状态,不返回支付 `expires_at`。支付与钱包两阶段可靠推进,到账后发送代理站内通知。 | | #33 套餐临期提醒 | **标题:**临期列表、各端高亮和续费入口。
**页面:**临期页3天内置顶;普通资产列表只高亮;代理首页显示数量;C端显示续费按钮。 | **标题:**预计最终到期临期Query和站内通知。
**接口:**`GET /api/admin/expiring-assets`、资产列表/详情增加临期字段、`GET /api/c/v1/asset/info`、通知接口。
**返回:**最终到期、剩余天数、颜色节点;15/7/3天通知防重。 | ## 五、前端Mock公共样例 资产详情扩展字段: ```json { "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 } } ``` 统一异步任务: ```json { "task_id": 1001, "status": 2, "status_name": "处理中", "total_count": 100, "success_count": 60, "failed_count": 3, "failed_items": [] } ``` 代理资金概况: ```json { "balance": 8000, "frozen_balance": 0, "cash_available": 8000, "credit_enabled": true, "credit_limit": 100000, "available_balance": 108000, "low_balance_warning": true, "version": 3 } ``` 企微审批摘要: ```json { "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-01~08 建成它的子研发需求。不要把同一条联调需求重复挂到每个业务用户需求下。 | 编号 | 联调任务名称 | 关联用户需求 | 参与工时 | 进入条件 | 主要验收链路 | |---|---|---|---|---|---| | INT-01 | 资产实名、复机与状态同步联调 | #94、#73、#62、#53 | FE 1~1.5h / BE 1~1.5h,已含 | 实名策略接口、同步任务和H5页面完成 | 不同运营商实名能力、先实名/先购买、0/3/5同步、回调后状态和筛选一致 | | INT-02 | 换货完整链路联调 | #98、#86、#57、#45 | FE 0.5~1h / BE 0.5~1h,已含 | 换货接口、详情和列表页面完成 | 退款拦截、新资产继承店铺、完成换货、列表搜索、前代/后代跳转 | | INT-03 | 套餐授权、购买、续费、到期与临期联调 | #55、#46、#43、#40、#33 | FE 1~1.5h / BE 1~1.5h,已含 | 套餐快照、授权候选和各端到期字段完成 | 批量授权、购买生效条件、下架续费、排队套餐最终到期、临期高亮和通知 | | INT-04 | CSV批量任务与导出联调 | #49、#36、#42 | FE 1~1.5h / BE 1~1.5h,已含 | 上传、任务详情、Worker和导出场景完成 | 模板校验、部分成功、失败明细、任务恢复、字段权限和文件下载 | | INT-05 | 支付、代理钱包、信用和余额预警联调 | #48、#38、#34、#36、#96、#97 | FE 1~1.5h / BE 1~1.5h,已含 | 支付配置、钱包领域和业务员接口完成 | 支付方式限制、扫码充值、信用扣款、角色默认额度、店铺调额、100元预警 | | INT-06 | 企业微信审批、退款和线下充值联调 | #37、#35、#34、#44 | FE 1.5~2h / BE 1.5~2h,已含 | 企微模板、绑定、回调、轮询和业务详情完成 | 扫码绑定、发起审批、意见附件、通过/驳回/撤销、退款/充值终态和列表摘要 | | INT-07 | Gateway卡限速联调 | #47 | FE 0.5~1h / BE 0.5~1h,已含 | Gateway联调配置和卡/设备入口完成 | 单卡限速、设备解析当前卡、取消限速、无当前卡、失败审计 | | INT-08 | 七月迭代全链路与停机发布验收 | 全部激活需求及三项公共技术需求 | FE 3~4h / BE 4~5h,额外 | INT-01~07、公共基础12、全局审计19、公共通知08及各业务发布门禁完成 | 权限、通知、全系统审计覆盖、正式Adapter、事件消费者、历史数据、旧入口关闭、Worker恢复、生产阈值和发布检查 | ## 七、联调任务责任方式 - 涉及企微、支付、Gateway、运营商回调和异步 Worker 的联调任务由后端主责,前端参与。 - 主要是页面与接口契约的批量、导出、套餐和换货联调可由前端主责,后端参与。 - 禅道只有一个指派人时,指派给主责人;另一人写入抄送和参与人,不拆成两条重复联调任务。 - 联调发现的代码问题回到对应 FE/BE 研发需求处理;联调任务只记录场景、阻塞和最终结论。 ## 八、研发需求描述模板 前端研发需求至少填写:页面入口、交互状态、调用接口、权限、异常状态、完成标准。 后端研发需求至少填写:业务规则、数据变更、API、权限、幂等/并发、事件与审计、完成标准。 联调任务至少填写:关联研发需求、环境和账号、测试数据、完整操作步骤、预期结果、阻塞项和最终结论。 ## 九、额外禅道项 当前用户需求 CSV 没有覆盖公共开发基础、公共站内通知和全局审计。建议补建三条技术用户需求: ```text 用户需求:七月迭代公共开发基础 用户需求:公共站内通知 用户需求:全局多视角审计与外部集成追踪 ``` 再分别拆分: ```text [FE][TECH] 七月迭代公共状态与异步任务交互(当前先调整导出任务列表/详情的统一字段、五态、轮询与恢复;系统配置和 Outbox 运维页面不在本票) [BE] 七月迭代公共迁移幂等与异步任务基础 [FE] 顶部通知铃铛与站内通知中心 [BE] 站内通知基础设施与受控跳转 [FE] 全局多视角审计中心 [BE] Audit Event与Integration Log统一审计 ``` 具体描述和工时直接使用[逐条录入稿](./7月迭代禅道研发需求逐条录入稿.md)。