0
点赞
收藏
分享

微信扫一扫

抖音实战~取关博主


抖音实战~取关博主_redis


抖音实战~取关博主_redis_02

文章目录

  • ​​一、需求分析​​
  • ​​1. 取关流程图​​
  • ​​2. 取关流程简述​​
  • ​​二、源码实战​​
  • ​​2.1. 取关~前端​​
  • ​​2.2. 取关~后端​​
  • ​​三、5217取关实战​​
  • ​​3.1. 取关前资料分析​​
  • ​​3.2. 账号5217取关​​
  • ​​四、账号0009取关实战​​
  • ​​4.1. 账号0009取关​​
  • ​​4.2. 数据变化​​
一、需求分析
1. 取关流程图

抖音实战~取关博主_数据_03

2. 取关流程简述
  • 1.前端携带用户ID和短视频发布者ID请求后端取关接口
  • 2.判断我们是否朋友关系
  • 2.1.非朋友关系,删除自己的关注关联表记录
  • 2.2.朋友关系,抹除双方的朋友关系,设置非朋友状态,更新数据库
  • 3.我关注总量-1(redis)
  • 4.博主粉丝量-1(redis)
  • 5.删除我和短视频博主的关系(redis)
二、源码实战
2.1. 取关~前端

// 取消关注
cancelFollow(vlogerId) {
var me = this;
var userId = getApp().getUserInfoSession().id;
var serverUrl = app.globalData.serverUrl;
uni.request({
method: "POST",
header: {
headerUserId: userId,
headerUserToken: app.getUserSessionToken()
},
url: serverUrl + "/fans/cancel?myId=" + userId + "&vlogerId=" + vlogerId,
success(result) {

if (result.data.status == 200) {
me.reFreshList(vlogerId, false);
} else {
uni.showToast({
title: result.data.msg,
icon: "none",
duration: 3000
});
}
}
});

},

2.2. 取关~后端

/**
* 取关
*
* @param myId 我的用户ID
* @param vlogerId 视频发布者ID
* @return
*/
@PostMapping("cancel")
public GraceJSONResult cancel(@RequestParam String myId,
@RequestParam String vlogerId) {

// 删除业务的执行
fansService.doCancel(myId, vlogerId);

// 博主的粉丝-1,我的关注-1
//我的关注总数
redis.decrement(REDIS_MY_FOLLOWS_COUNTS + ":" + myId, 1);
// 博主的粉丝总数
redis.decrement(REDIS_MY_FANS_COUNTS + ":" + vlogerId, 1);

// 我和博主的关联关系,依赖redis,不要存储数据库,避免db的性能瓶颈
redis.del(REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + myId + ":" + vlogerId);

return GraceJSONResult.ok();
}

/**
* 取关
*
* @param myId 我的用户ID
* @param vlogerId 视频发布者ID
* @return
*/
@Transactional
@Override
public void doCancel(String myId, String vlogerId) {

// 判断我们是否朋友关系,如果是,则需要取消双方的关系
Fans fan = queryFansRelationship(myId, vlogerId);
if (fan != null && fan.getIsFanFriendOfMine() == YesOrNo.YES.type) {
// 抹除双方的朋友关系,自己的关系删除即可
Fans pendingFan = queryFansRelationship(vlogerId, myId);
pendingFan.setIsFanFriendOfMine(YesOrNo.NO.type);
fansMapper.updateByPrimaryKeySelective(pendingFan);
}

// 删除自己的关注关联表记录
fansMapper.delete(fan);
}

三、5217取关实战
3.1. 取关前资料分析

尾号~0009

关注:1

粉丝:2

抖音实战~取关博主_数据_04


尾号~5217

关注:3

粉丝:2

抖音实战~取关博主_数据_05

抖音实战~取关博主_数据_06


抖音实战~取关博主_取消关注_07


抖音实战~取关博主_取消关注_08

3.2. 账号5217取关

尾号~0009

关注:1

粉丝:1 ->由2变成了1

抖音实战~取关博主_redis_09


尾号~5217

关注:2 ->由3变成了2

粉丝:2

抖音实战~取关博主_取消关注_10


我关注的那一条数据删除了,博主和我不是朋友关系了

抖音实战~取关博主_数据_11

四、账号0009取关实战
4.1. 账号0009取关

尾号~0009

关注:0 由1变成了0

粉丝:1

抖音实战~取关博主_取消关注_12


尾号~5217

关注:2 ->由3变成了2

粉丝:1 ->由2变成了1

抖音实战~取关博主_数据_13

4.2. 数据变化

0009账号关注的信息也删除了

抖音实战~取关博主_流程图_14


举报

相关推荐

0 条评论