推广中心模板1前端联调说明
1. 接口入口
推广中心模板1首页数据接口入口:
- 控制器:app/frontend/modules/finance/controllers/IncomePageController.php
- 服务:app/frontend/modules/finance/services/ExtensionCenterService.php
当命中推广中心模板1时,接口返回结构如下:
{
"result": 1,
"msg": "",
"data": {
"template_set": {
"status": 1,
"json": ""
},
"income_page": {
"...": "模板1首页数据"
}
}
}
2. 默认值规则
即使后台没有保存“推广中心模板1设置”,接口也会按默认值返回,不会出现 null。
默认配置定义位置:
- 后台设置页默认值:plugins/decorate/src/admin/TemplateSetController.php
- 前端接口默认值:app/frontend/modules/finance/services/ExtensionCenterService.php
默认规则如下:
2.1 身份标识
- 默认显示:
会员等级 - 默认不显示:所有插件身份
2.2 统计数据
默认显示:
-
累计收入 -
已提现收入 -
未提现收入 -
提现中的收入 -
直推粉丝
默认不显示:
-
总粉丝
2.3 区块开关
默认显示:
-
收入动态图表 -
收入占比图表 -
我的权限 -
粉丝裂变图表 -
粉丝转化图表 -
推广工具 -
带货订单 -
我的粉丝
默认不显示:
-
未开通权限
3. income_page 返回字段说明
income_page 可能返回以下字段。
3.1 固定返回字段
这些字段默认都会返回:
-
set -
jump_link -
small_jump_link -
small_extension_link -
button_enabled -
button -
info -
identity -
income_statistic -
tips -
service -
withdraw_limit -
member_auth_pop_switch -
extension_basic_set
3.2 按后台开关决定是否返回的字段
这些字段在对应区块关闭时,后端会直接不返回:
-
income_dynamic -
income_proportion -
available -
unavailable -
fans_fission -
fans_conversion -
plugin_data -
extension_order -
extension_fans
前端联调时必须按“字段是否存在”决定是否渲染,不能假设字段一定有。
4. 字段详细说明
4.1 identity
类型:
["普通会员", "推客(分销)"]
说明:
- 顶部身份标识文案数组
-
member_level=1时才返回会员等级 - 只有后台勾选的、且插件实现了
incomePageIdentity()的插件身份才会返回
注意:
- 后台配置保存的是“插件标识”,不是身份文案
- 接口实际返回给前端的仍然是“身份文案数组”
4.2 income_statistic
类型:
[
{
"title": "累计收入",
"url": "incomedetails",
"mini_url": "/packageA/member/extension/incomedetails/incomedetails",
"value": 100
}
]
说明:
- 统计卡片列表
- 会按后台勾选项裁剪返回
当前基础统计标题可能有:
-
累计收入 -
已提现收入 -
未提现收入 -
提现中的收入 -
总粉丝 -
直推粉丝
注意:
- 原接口里的“团队粉丝”已调整为“总粉丝”
4.3 tips
类型:
string
说明:
- 后台“提示文字”配置内容
- 直接返回给前端展示
默认值:
本页收入统计仅包含已经结算部分,不含未结算部分
已提现收入,未提现收入,提现中收入,总粉丝不随周期变化
4.4 income_dynamic
返回条件:
-
sections.income_dynamic = 1
结构:
{
"x_axis": ["06/01", "06/02"],
"income_count": [1, 2],
"total_amount": [10, 20]
}
4.5 income_proportion
返回条件:
-
sections.income_proportion = 1
结构:
[
{
"name": "分销佣金",
"value": 100
},
{
"name": "其他",
"value": 20
}
]
4.6 available
返回条件:
-
sections.my_rights = 1
说明:
- 我的权限列表
4.7 unavailable
返回条件:
-
sections.unopened_rights = 1
说明:
- 未开通权限列表
4.8 fans_fission
返回条件:
-
sections.fans_overview = 1
结构:
{
"data": [
{
"title": "粉丝总数",
"value": 10
}
],
"x_axis": [],
"totalFansSeries": [],
"fansNewSeries": []
}
4.9 fans_conversion
返回条件:
-
sections.fans_chart = 1
结构:
{
"data": [
{
"title": "推广订单总数",
"value": 10
}
],
"x_axis": [],
"orderCountSeries": [],
"orderPriceSeries": []
}
4.10 plugin_data
返回条件:
-
sections.promotion_tools = 1
说明:
- 推广工具区块数据
4.11 extension_order
返回条件:
-
sections.delivery_order = 1
说明:
- 带货订单列表
- 为分页结构
4.12 extension_fans
返回条件:
-
sections.my_fans = 1
说明:
- 我的粉丝列表
- 为分页结构
5. 前端联调要求
前端渲染时请按下面规则处理。
5.1 区块渲染规则
-
identity不存在或为空:整个身份标识区不显示 -
income_statistic不存在或为空:整个统计区不显示 -
income_dynamic不存在:收入动态图表区不显示 -
income_proportion不存在:收入占比图表区不显示 -
available不存在:我的权限区不显示 -
unavailable不存在:未开通权限区不显示 -
fans_fission不存在:粉丝裂变图表区不显示 -
fans_conversion不存在:粉丝转化图表区不显示 -
plugin_data不存在:推广工具区不显示 -
extension_order不存在:带货订单区不显示 -
extension_fans不存在:我的粉丝区不显示
核心原则:
- 后端关闭某块 = 前端整个区块不渲染
- 不做空白占位
- 不假设字段一定存在
5.2 文案兼容
统计区关于粉丝文案以接口返回为准:
-
总粉丝 -
直推粉丝
不要再写死旧文案 团队粉丝
6. 后台设置与接口字段对应关系
后台设置页:
6.1 身份标识
-
identity.member_level- 控制是否显示会员等级
-
identity.plugin_identity[]- 控制哪些插件身份允许返回
- 保存值是插件标识,不是身份文案
6.2 统计数据
-
statistics.total_income -
statistics.withdrawn_income -
statistics.pending_withdraw_income -
statistics.withdrawing_income -
statistics.total_fans -
statistics.direct_fans
6.3 区块开关
-
sections.income_dynamic -
sections.income_proportion -
sections.my_rights -
sections.unopened_rights -
sections.fans_overview -
sections.fans_chart -
sections.promotion_tools -
sections.delivery_order -
sections.my_fans
6.4 提示文字
-
tips
说明:
- 后台配置什么,接口就原样返回什么
7. 联调建议
建议前端按以下顺序联调:
- 先确认模板1首页接口已命中
newIndex()分支 - 再看
income_page里各可选字段是否存在 - 每个区块都用“字段存在即显示、字段不存在即隐藏”的方式处理
- 对
identity、income_statistic使用接口原始返回,不要在前端二次写死固定项
如果后续接口字段有新增,以后端实际返回为准。