1.实现关注 取关功能 2.统计关注数 被关注 即粉丝数
不止可以关注用户 还可以关注题目帖子等等
一样是把数据存到redis
一样是要 设计生成key
followee:userid:entitytype
表示谁关注了什么类型的东西
follower:entitytype:entityid 表示什么类型的东西拥有的粉丝
都存入zset有序set 以时间排序以便后来扩展业务
关注方法follow(userid,entitytype,entityid)
要存两份数据 即关注的目标和粉丝 一个方法有两个存储业务 考虑需要使用事务管理
redistemplate.execute
先得到对应的KEY
再往opsforzset里存数据
取消关注大致相同 只是事务那一块是用opsforzset.remove删除
控制层: 异步的 就是点击关注 不刷新整个页面只刷新部分页面 这样的话需要加responsebody注解 异步请求就return json数据 用conmunityutil.getJSONString
获取当前用户 调用follow方法 返回JSON数据
取消关注 类似 调用方法为unfollow
查询实体的关注数量 构造key 再通过redistemplate去查zset就好
查询实体粉丝数量 构造key 再通过redistemplate去查zset就好
查询当前用户是否关注该实体 构造key 去查对应zset是否能通过entityid找到数据 null则没关注 反之
再去usercontroller 增加查询关注 粉丝数量 和是否已关注 的功能 大致类似 但得把数据传给model