代码调试与BUG更改(Bug1和Bug2)

代码调试与BUG更改

Bug1:删除非本用户的新闻时,弹出删除成功的提示

目标:删除非本用户的新闻时,弹出“只能删除自己的新闻”,是本用户的新闻才能删除。

首先deleteNews的返回缺少判断

img

后端的删除逻辑,返回的也是统一封装的Result

img

更改前端的判断

img

改为如下图所示的代码,加上对返回数据的判断。

img

Bug2:用户发布新闻后,new_count没有增加

img

检查发布新闻相关的功能

后端中NewsController中的addNews方法,修改为如下:

 @Autowired
    private UserService userService;

    // 发布新闻
    @PostMapping("/add")
    public Result<?> addNews(@RequestBody NewsAddDTO dto) {
        // 1. 插入新闻
        Integer userId = UserContext.getCurrentUserId();
        System.out.println("当前用户ID:" + userId);
        if (userId == null) return Result.error("请先登录");
        News news = new News();
        news.setUserId(userId);
        news.setTitle(dto.getTitle());
        news.setContent(dto.getContent());
        news.setViewCount(0);
        boolean saved = newsService.save(news);
        // 2. 更新用户的 news_count + 1
        LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
        wrapper.eq(User::getId, userId)
                .setSql("news_count = news_count + 1");
        boolean updated = userService.update(wrapper);

        if (saved && updated) {
            return Result.success("发布成功");
        } else {
            return Result.error("发布失败");
        }
    }

添加位置:NewsController中加入

img

排查代码时发现前端发布新闻的addNews方法中的userId设置不对

img

在后端插个log,看后端的userId是否一直是1

img

运行前后端工程,用id=2的张三登录,发布一条新闻,看一下后端控制台的输出log

img

log显示的id没有错,说明用户id不是这传过来的,所以不用改。

刷新一下user表,id=2的用户,如果new_count已经是1了,那么Bug2就修复了。

img

posted @ 2026-06-25 13:42  睡醒再说  阅读(0)  评论(0)    收藏  举报