二 亮点说明
1 订阅列表的拉取和更新
(1)拉取
拉取的书籍状态是确定的(原因见更新),直接读取,加入1小时的缓存服务即可(没有redis环境的代码可以不交)
排序条件要按产品原型来,因为最多只有5条,直接拉取,java代码实现置顶的排序变化
(2)更新
(a)小说主表更新后对订单表的状态影响
直接对更新的所有订阅状态数据,置为“未读”。暂不考虑异步实现
(b)用户的点击对订单表的状态影响
因为非正版上百本书籍的更新时间比较一致,加上业务的主动通知,会导致1000+用户的上万次集中点击,远大于服务器的正常流量。
方案:只要用户点击(书架或者详情页,只做接口),直接将对应的书籍订阅记录置成“已读”。
能力较好的同学,优化为redis 记录每本小说的5分钟内的点赞用户,5分钟后定时任务一致化到mysql(定时任务不用实现)
2 另外说一下,项目的登录逻辑
可以直接在这固定,也可以跟踪一下这个逻辑,自己生成一个token
三 数据表设计
1 yike_novel_bookshelf
1 yike_novel_subscribe_audit (时间来不及,把实习生的改了)
三 本次主要接口:
1 拉取订阅列表(不包含总的订阅次数)
2 用户点击变变更状态,单个小说 (加上流水表的逻辑,不用加事务)
3 置顶和取消置顶接口
4 用户点击变变更状态,redis批量小说更新 (加上流水表的逻辑,不用加事务)
5 订阅接口