3.4.0技术评审
1 首页内容运营&记一笔之后的定投页面展示
1.1 需求概述
首页展示运营资源位,以及新老用户在记一笔之后的浮层展示
1.2 需求描述
- 在用户首次进入到账本首页,切换到新账本,或由其他页面返回到当前账本首页时,在首页固定位置通过浮层/浮标的形式展示后台配置的运营消息。
- 新用户在完成记一笔之后,回到首页展示《账户安全险》浮窗
- 老用户在完成记一笔之后,回到首页展示《出行意外险》浮窗
- 浮层/浮标支持H5和原生两种方式进行跳转
1.3 业务处理流程
- 在首次进入账本首页,切换到其他账本首页,或者由其他页面返回到账本首页时,根据当前用户的id,sheetId,以及对应的lastUpdateTime数据,请求运营列表数据。
- 后台根据客户端上报的usrId,判断出用户所在的群组,再根据lastUpdateTime和账本sheetId,来返回给客户端运营列表数据。
- 需考虑到游客模式下,用户userId为null的场景。应返回该账本下通用群组的运营消息列表
- 客户端不考虑离线存储到本地的场景,只需要把服务器返回的运营列表数据缓存到内存,根据已读状态表过滤出未读的消息,进行页面展示即可。
- 在浮层/浮标展示前判断,当前系统时间是否在运营消息的有效时间内,没有则不展示该条消息。
- 一次只展示一条运营消息,用户触发close或者跳转时才消失;
- 记一笔之后返回账本首页,优先展示新老用户的定投浮层
1.4 数据库设计
1.4.1 本地消息状态表 table_message_notice_status
名称 |
类型 |
是否必填 |
描述 |
_id |
long |
是 |
数据库表记录id |
userId |
long |
否 |
用户id,考虑到游客模式的场景下为null |
messageId |
long |
是 |
消息唯一id |
isRead |
int |
是 |
已读未读标识 0:未读 1:已读 |
1.5 请求接口设计
1.5.1 查询运营内容列表
url |
action |
描述 |
/xxx/xx |
Post |
根据账本id和最后更新时间查询运营内容列表数据 |
请求参数
名称 |
类型 |
是否必填 |
描述 |
userId |
long |
否 |
用户id |
sheetId |
long |
是 |
账本id |
lastUpdateTime |
long |
否 |
上一次请求接口返回的服务器更新时间 |
platform |
String |
是 |
平台id |
versionName |
String |
是 |
应用版本号 |
packageName |
String |
是 |
应用包名 |
响应字段
名称 |
类型 |
是否必填 |
描述 |
sheetId |
long |
是 |
请求的账本id |
lastUpdateTime |
long |
是 |
服务端最后更新的时间 |
floatLayer |
OperateData |
否 |
浮层活动数据 |
floatIcon |
OperateData |
否 |
浮标活动数据 |
floatAfterRecord |
OperateData |
否 |
用户记一笔之后的显示浮层列表,新老用户由后台根据id判断 |
字段描述
名称 |
类型 |
是否必填 |
描述 |
OperateData |
json |
- |
通用的运营数据对象模版 |
OperateData.id |
long |
是 |
运营内容唯一id |
OperateData.displayType |
int |
是 |
展示类型 0:文本 1:图片url |
OperateData.title |
String |
否 |
运营标题 |
OperateData.titleColor |
String |
否 |
运营标题颜色 |
OperateData.content |
String |
否 |
运营内容,支持html展示 |
OperateData.contentColor |
String |
否 |
运营内容颜色 |
OperateData.bgColor |
String |
否 |
运营背景颜色 |
OperateData.contentImgUrl |
String |
否 |
运营内容区域图片url |
OperateData.imgUrl |
String |
否 |
运营背景填充图片,用于支持图片类型下的背景填充 |
OperateData.btnVisible |
int |
否 |
运营区域是否展示按钮 0:不展示 1:展示 |
OperateData.btnText |
String |
否 |
运营内容底部按钮文案 |
OperateData.btnTextColor |
String |
否 |
内容底部按钮文案颜色 |
OperateData.btnBgColor |
String |
否 |
内容底部按钮背景颜色 |
OperateData.linkType |
int |
是 |
点击button或者可视区域之后的事件响应类型 0:h5 1:native |
OperateData.linkUrl |
String |
是 |
点击button或者可视区域之后的事件响应url,跳转原生需要配置schema |
OperateData.startTime |
long |
是 |
运营内容有效起始时间 |
OperateData.endTime |
long |
是 |
运营内容有效截止时间 |
OperateData.displayTime |
long |
是 |
运营内容展示时间 |
OperateData.needLogin |
int |
是 |
跳转前是否要求用户登录 0:不要求 1:要求 |
错误码描述
错误吗 |
描述 |
200 |
接口请求成功 |
400 |
Bad Request |
401 |
Unauthorized |
404 |
Not Found |
500 |
Server Error |
1.6 UI展示:
- 首页浮层 以弹框形式展现
* 固定位置、尺寸,具体由给定的设计图决定
* 背景支持纯色或者图片全填充展示
* 按钮文案/颜色可配
* 背景填充图片支持url
- 首页浮标 以ImageView形式浮动展示
* 展示位置客户端固定,不支持后台配置
* 大小根据图片自适应
* 展示期间不支持手动隐藏
* 根据展示时间进行自动隐藏
1.7 事件响应
- 浮层
* close按钮事件:用户点击关闭浮层,根据当前用户id,查找到状态表中对应记录,设置isRead为1
* 浮层可视区域点击事件:根据运营消息的跳转字段标识,判断是否跳转H5显示页面,还是原生页面,需和ios/后台定好schema规则
- 浮标
* 浮标控件点击:根据跳转标识,决定跳H5还是原生
* 浮标隐藏:根据当前用户id和operateId,查找到状态表中对应记录,设置isRead为1
2 首页增加收支建议
2.1 需求概述
在用户登录的前提下,在账单首页的列表上方区域展示投资建议,由后台根据用户的账单记录、收支情况进行数据分析,产生收支建议列表进行下发。
2.2 需求描述
- 在用户登录的前提下,账本首页根据后台下发的收支建议数据进行逐条展示
- 收支建议点击支持H5和原生页面跳转
- 游客模式下不显示收支建议
2.3 业务处理流程
- 应用切换到前台时,如果当前用户已经登录,根据userId,及对应接口的lastUpdateTime(内存),访问后台获取收支建议列表数据,返回数据包含当前用户所有账本下的收支建议数据。
- 收支建议不考虑客户端的离线存储,收支建议数据缓存在内存当中,本地数据库只保存该条消息的已读状态。
- 当用户切换到账本首页时,根据当前账本sheetId,本地通知状态表中的已读状态进行过滤,获取到待显示收支建议列表。
- 展示前判断当前手机系统时间是否在消息的有效时间之内,不在则不展示。
- 逐条展示收支建议,如果存在多条待展示的消息,用户在close当前建议或当前建议 展示时间超过消息的displayTime时,自动展示下一条。最后一条需要用户手动触发隐藏,隐藏的消息本地设置状态为已读。
2.4 数据库设计
2.4.1 本地消息状态表 同1.4.1中设计的表
2.5 请求接口设计
2.5.1 查询当前用户所有账本下的收支建议列表
url |
action |
描述 |
/xxx/xx |
Post |
根据用户userId和最后更新时间获取用户收支建议列表数据 |
请求参数
名称 |
类型 |
是否必填 |
描述 |
userId |
long |
是 |
用户id |
lastUpdateTime |
long |
否 |
上一次请求接口返回的服务器更新时间,没有则不传 |
platform |
String |
是 |
平台id |
versionName |
String |
是 |
应用版本号 |
packageName |
String |
是 |
应用包名 |
响应字段
名称 |
类型 |
是否必填 |
描述 |
userId |
long |
是 |
用户id |
lastUpdateTime |
long |
是 |
服务器最后更新时间 |
sheetSuggestList |
List<SheetSuggest> |
否 |
以账单为维度的收支建议列表 |
字段描述
名称 |
类型 |
是否必填 |
描述 |
SheetSuggest |
json |
- |
账本维度下的收支建议对象模版 |
sheetId |
long |
是 |
账本id |
sheetImageUrl |
String |
否 |
该账本下收支建议展示logo的url,没有则用客户端默认图片 |
sheetBkgColor |
String |
否 |
该账本下收支建议的背景颜色 |
suggestList |
List<Suggest> |
否 |
收支建议列表数据 |
名称 |
类型 |
是否必填 |
描述 |
Suggest |
json |
- |
收支建议数据对象模版 |
Suggest.id |
long |
是 |
收支建议数据唯一id |
Suggest.title |
String |
是 |
利益点文案 |
Suggest.titleColor |
String |
是 |
利益点文案颜色 |
Suggest.content |
String |
是 |
行动点文案 |
Suggest.contentColor |
String |
是 |
行动点文案颜色 |
Suggest.linkType |
int |
是 |
可视视图点击事件响应类型 0:H5 1:native |
Suggest.link |
String |
是 |
可视视图点击事件响应url,跳转原生需定义好schema |
Suggest.startTime |
long |
是 |
收支建议有效起始时间 |
Suggest.endTime |
long |
是 |
收支建议有效结束时间 |
Suggest.displayTime |
long |
是 |
收支建议展示时长 |
2.6 UI展示
- 收支建议
* 展示在账本首页列表区域的上方
* 背景/logo支持后台配置,图片大小固定且全填充展示
* title和content文案和颜色支持后台配置
* 高度自适应
* 多条收支建议切换有动效,由交互给出视觉稿
2.6 事件响应
- close按钮事件:用户关闭当前收支建议,设置已读状态为1。如果有下一条则显示下一条,没有则隐藏控件
- 控件的非close区域:根据跳转标识linkType,决定跳H5还是原生
- 自动隐藏:需设置已读状态为1
3 增加常见问题入口
3.1 需求概述
在设置的意见反馈页面的顶部增加常见问题的页面入口
3.2 需求描述
- 隐藏关于我们页面中的常见问题
- 将常见问题的页面入口移到意见反馈的上方
- 主要是UI上的调整,需要等新的UI设计稿
4 游客模式下记账,弹窗提示用户进行注册
4.1 需求概述
游客模式下,当用户记账达到一定次数时,进行引导注册的弹窗提示
4.2 业务处理流程
- 游客模式下,当用户完成记一笔回到账本首页时,根据当前账单的记录数进行弹窗判断,当记录数超过5次、15次、30次时,各提示一次,总共提示3次。
- 规则由客户端定义,不支持后台下发
- 客户端本地保存已经进行提示的次数表示registPromtCount,当满足提示条件时,registPromtCount+1保存,值超过3时不提示,用户重新切换到游客模式下时,清空registPromtCount字段,重新执行注册弹窗判断
- 用户点击关闭按钮,registPromtCount赋值为3,不再进行展示
4.3 UI展示
4.4 事件触发
- close按钮click事件:关闭对话框,registPromtCount赋值3
- 弹窗按钮click事件:跳转注册页面
- 可视区域以外click事件:隐藏对话框
5 多账户混淆问题优化
5.1 需求概述
三方登录的场景下,当用户记账达到一定次数时,进行引导绑定手机号的弹窗提示
5.2 业务处理流程
- 三方登录模式下,当用户完成记一笔回到账本首页时,根据当前账单的记录数进行弹窗判断,当记录数超过5次、15次、30次时,各提示一次,总共提示3次。
- 客户端本地保存已经进行提示的次数表示bindPromtCount,当满足提示条件时,bindPromtCount +1保存,值超过3时不提示
- 用户点击关闭按钮,bindPromtCount赋值为3,不再进行展示
- 用户切换到三方登录模式时,清空bindPromtCount值
5.3 UI展示
5.4 事件触发
- close按钮click事件:关闭对话框,bindPromtCount赋值3
- 弹窗按钮click事件:跳转手机绑定页面
- 可视区域以外click事件:隐藏对话框
6 记账提醒优化
6.1 需求描述
- 每日记账提醒由客户端在用户设定时间,准时发出
- 提醒的前台展示、交互方式,不做修改
- 每日提醒的文案,由服务端配置,方便运营。 本地默认文案【今日开支,今日记哦】