点赞列表查询列表

点赞列表查询列表

BlogController

java 复制代码
@GetMapping("/likes/{id}")
public Result queryBlogLikes(@PathVariable("id") Long id) {

    return blogService.queryBlogLikes(id);
}

BlogService

java 复制代码
@Override
public Result queryBlogLikes(Long id) {
    String key = BLOG_LIKED_KEY + id;
    // 1.查询top5的点赞用户 zrange key 0 4
    Set<String> top5 = stringRedisTemplate.opsForZSet().range(key, 0, 4);
    if (top5 == null || top5.isEmpty()) {
        return Result.ok(Collections.emptyList());
    }
    // 2.解析出其中的用户id
    List<Long> ids = top5.stream().map(Long::valueOf).collect(Collectors.toList());
    String idStr = StrUtil.join(",", ids);
    // 3.根据用户id查询用户 WHERE id IN ( 5 , 1 ) ORDER BY FIELD(id, 5, 1)
    List<UserDTO> userDTOS = userService.query()
            .in("id", ids).last("ORDER BY FIELD(id," + idStr + ")").list()
            .stream()
            .map(user -> BeanUtil.copyProperties(user, UserDTO.class))
            .collect(Collectors.toList());
    // 4.返回
    return Result.ok(userDTOS);
}

9、好友关注

9.1 好友关注-关注和取消关注

针对用户的操作:可以对用户进行关注和取消关注功能。

实现思路:

需求:基于该表数据结构,实现两个接口:

  • 关注和取关接口
  • 判断是否关注的接口

关注是User之间的关系,是博主与粉丝的关系,数据库中有一张tb_follow表来标示:

注意: 这里需要把主键修改为自增长,简化开发。

相关推荐
废弃的小码农1 小时前
功能测试--Day07--Python编程基础
开发语言·python
fengci.1 小时前
Microweber CMS 未授权路径穿越漏洞(CVE-2026-65694)
android·开发语言·前端·学习·php
程序员zgh2 小时前
C++ 拷贝赋值运算符 详解
c语言·开发语言·c++
念何架构之路2 小时前
restartmanager-重启管理子系统
java·开发语言
SomeB1oody3 小时前
【RustyML入门】2.0. 经典机器学习
开发语言·后端·机器学习·rust·教程
0566464 小时前
Python高级——解释器执行原理与虚拟环境工程化实战
开发语言·python
HJX_07244 小时前
嵌入式软件C语言八股文复习笔记5——编译、链接与底层硬核机制
c语言·开发语言·笔记
An_s4 小时前
rust(pdfium)底层开发实现wasm包给vue3调用
开发语言·rust·wasm
笨鸟先飞的橘猫5 小时前
c++面向对象编程
开发语言·c++
小玮看世界5 小时前
[Python]自动驾驶感知与决策练习题 (1-10)
开发语言·python·自动驾驶