黑马Redis实战项目——黑马点评笔记05 | 达人探店

重点:


1、发布探店笔记

使用springboot框架整合mybatisplus实现


2、查看探店笔记

请求接口: 一种实现方式是返回一个包含blog和user信息的Dto对象,但是过程繁琐。 因此简化为直接在Blog实体类,添加用户头像和用户名称两个属性,并加上mp提供的注解@TableField(exist = false) //当前属性不属于表中字段

//BlogController类中调用queryBlogById方法
	@GetMapping("/{id}")
    public Result queryBlogById(@PathVariable("id") Long id){
          
   
        return blogService.queryBlogById(id);
    }

//IBlogService接口中定义queryBlogById方法
public interface IBlogService extends IService<Blog> {
          
   

    Result queryHotBlog(Integer current);

    Result queryBlogById(Long id);
}

//BlogServiceImpl类中实现queryBlogById方法
	@Override
    public Result queryBlogById(Long id) {
          
   
        //1 查询blog
        Blog blog = getById(id);
        if(blog==null){
          
   
            return Result.fail("笔记不存在!");
        }
        //2 查询blog有关用户
        queryBlogUser(blog);
        return Result.ok(blog);
    }

    private void queryBlogUser(Blog blog) {
          
   
        Long userId = blog.getUserId();
        User user = userService.getById(userId);
        blog.setName(user.getNickName());
        blog.setIcon(user.getIcon());
    }

3、点赞

请求接口: 代码实现: 1、给Blog对象增加isLike属性

2、调用likeBlog方法

@Override
    public Result queryHotBlog(Integer current) {
          
   
        // 根据用户查询
        Page<Blog> page = query()
                .orderByDesc("liked")
                .page(new Page<>(current, SystemConstants.MAX_PAGE_SIZE));
        // 获取当前页数据
        List<Blog> records = page.getRecords();
        // 查询用户
        records.forEach(blog -> {
          
   
            this.queryBlogUser(blog);
            this.isBlogLiked(blog);
        });
        return Result.ok(records);
    }

4、点赞排行榜

2、修改查询(根据id查,查询详情)


经验分享 程序员 微信小程序 职场和发展