5.8 KiB
商务与 OA 对接
商务应用负责展示和发起申请,OA 负责商务账号管理、SDK 绑定审核、渠道激活审核与渠道操作。OA 使用 oa/server,不依赖尚未迁移业务的 oa-new。
部署顺序与连接
- 先升级新商务,完成自动迁移和原商务数据迁移。新商务用户表为
sys_users,角色表为sys_authorities,用户角色关系为sys_user_authority。本次新增用户备注列及激活接口权限迁移。 - OA 的
db-list中保留连接别名shangwu,把该连接的数据库指向迁移后的新商务主库。lx、hw、yq仍指向对应 SDK 数据库。OA 启动会检查shangwu.sys_users,避免误连旧库。 - 新商务
data.database_list的oa连接指向 OA 主库;lx、hw、yq指向对应 SDK 数据库。新商务只读取这些外部表,不创建它们。 - 两边设置同一服务间密钥。OA 配置使用
service-credentials.business-integration-key;新商务可使用环境变量KRA_BUSINESS_OA_KEY,或配置文件中的business_oa.key。密钥只保存在部署环境,不提交版本库。 - 新商务设置
KRA_BUSINESS_OA_URL(或business_oa.url),值为 OA 服务地址,包含 OA 配置的router-prefix,末尾无需添加接口路径。例如 OA 前缀为/api时,基地址以/api结尾。 - 升级 OA。启动迁移新增 OA 激活申请字段,并在已配置的三个 SDK 库创建
tab_promote_business_event。部署账号需要对应的建表/改表权限。应用不会把旧库用户字段自动改造成新商务结构。
接口与行为
| 功能 | 新商务接口 | OA 行为 |
|---|---|---|
| 激活列表 | GET /sw/promoteActivePool/bindList |
读取 OA 的绑定记录,按当前用户已通过的 SDK 绑定限定范围 |
| 激活流水 | GET /sw/promoteActivePool/bindSpendDetail |
绑定起算至实际解绑;达标不中止累计;跨平台关联渠道来自申请时的快照,流水和注册读取 OA 使用的 SDK 库 |
| 可申请渠道 | GET /sw/promoteActivePool/pool |
仅可认领渠道,状态来自 SDK 库;不返回联系方式、注册详情、充值金额或充值详情 |
| 本人商务选项 | GET /sw/promoteActivePool/options |
仅本人审核通过的 SDK 商务;申请平台必须匹配 |
| 申请 | POST /sw/promoteActivePool/apply |
后端转发到 POST /internal/business/activation/apply,再次校验申请人及其绑定权限 |
| 流失记录 | GET /sw/promoteActivePool/churn |
按 SDK 渠道换绑事件展示离开原商务的一侧;从池返回不新增回流记录 |
| 工作台 | 原工作台概览接口 | 锁定/解除合作按事件发生时间、发生时归属商务统计渠道数,解锁不抹去历史 |
服务间申请接口以 HMAC-SHA256 校验方法、完整路径、时间戳和请求体,允许前后五分钟时钟偏差。X-Business-Timestamp 为 Unix 秒,X-Business-Signature 为十六进制签名。签名串为 METHOD\nPATH\nTIMESTAMP\nBODY。业务 ID 使用十进制 JSON 字符串。密钥未配置时拒绝服务间申请。
OA 商务创建/编辑兼容旧请求的 roleId 字段,但忽略该值,按 sys_authorities.business_level 唯一解析角色。新增账号使用新商务自增 ID、UUID、密码更新时间和默认偏好;锁定同时设置 business_status 与 enable。调整等级会校验整棵子树并同步角色,不允许把已有 SDK 绑定的账号变成非三级商务。
OA SDK 绑定审核继续使用原接口。审批遇到重复 SDK 绑定时返回已有账号提示,调用方确认后需传 confirmDuplicate: true。通过、驳回、解绑与新商务申请共用平台商务键锁。
OA 激活审核接口新增 bindAt(YYYY-MM-DD,省略时取审核当天)、reason(驳回必填)及 restoreCooperation(明确确认恢复合作时传 true)。审核通过只进入观察期,不改变渠道商务归属;累计流水达标后才变更主渠道及下级的商务归属,并从池中移除关联渠道。ownershipPending 表示达标后的跨库归属同步尚待完成;定时扫描会重试,同步成功前关联渠道仍保持认领锁定。观察期内主动解绑或到期未达标,只解除认领,不改渠道归属;已达标记录保持原 OA 规则,不能通过观察期解绑接口退回。
绑定扫描只在观察期内判定达标,迟到的观察期外流水不能使过期申请达标;达标后的展示统计继续累计。外部换绑会结束原激活关系,新商务读取流水时也会依据换绑事件截断,防止读到新归属期间数据。
累计注册统计仅包含绑定期间新增的主账号;身份证去重开启时跨平台按非空实名身份证合并,缺实名不计入。流水不受身份证去重影响。
免预警名单自动移出依据 OA 实际入池记录,避免本地流水不足却被 OA 豁免的渠道被误移出。预警列表的实时流失风险指标仍按其原型定义计算,历史预警快照不更改。
历史与校验
渠道事件从本版本部署后开始记录。SDK 事件表保存首次启用时间;工作台查询或同比区间早于该时间时显示历史不完整,而不把缺失记录当成真实零值。现有 SDK 表仅保留当前状态,不能可靠还原过去每次锁定/解除合作与人工换绑,因此不以当前状态伪造历史事件。既有激活记录继续可读;没有关联快照的历史申请按原平台渠道统计。
联调应覆盖:新建商务登录、锁定/解锁、SDK 绑定冲突确认、申请→审核→观察期→达标→归属同步、驳回重提、达标后继续累计、到期解绑、跨库暂时不可用后的同步重试,以及不同商务/平台的访问隔离。单元测试使用临时 SQLite 数据库,真实部署还需按上述连接配置验证实际 OA 和 SDK 数据源。