@RestController
@RequestMapping("/follow")
public class FollowController {
@Resource
private IFollowService followService;
@PutMapping("/{id}/{isFollow}")
public Result follow(@PathVariable("id") Long followUserId, @PathVariable("isFollow")Boolean isFollow){
return followService.follow(followUserId,isFollow);
}
@GetMapping ("/or/not/{id}")
public Result isFollowfollow(@PathVariable("id") Long followUserId){
return followService.isFollow(followUserId);
}
}
@Service
public class FollowServiceImpl extends ServiceImpl<FollowMapper, Follow> implements IFollowService {
@Override
public Result follow(Long followUserId, Boolean isFollow) {
//1.获取登录用户
Long userId = UserHolder.getUser().getId();
//1.判断是关注还是取关
if (isFollow) {
//2.关注,新增数据
Follow follow = new Follow();
follow.setUserId(userId);
follow.setFollowUserId(userId);
save(follow);
}else {
//3.取关,删除 delete from tb_follow where user_id =? and follow_user_id =?
remove(new QueryWrapper<Follow>()
.eq("user_id",userId)
.eq("follow_user_id",followUserId));
}
return Result.ok();
}
@Override
public Result isFollow(Long followUserId) {
//1.获取登录用户
Long userId = UserHolder.getUser().getId();
//2.查询是否关注 select count(*) from tb_follow where user_id =? and follow_user_id =?
Integer count = query().eq("user_id", userId)
.eq("follow_user_id", followUserId).count();
//3.判断
return Result.ok(count > 0);
}
}