1
zj
2024-08-08 a9e9e1207ce417388b1d8f03df5833cea24939b7
websocketSerivce/src/main/java/org/example/controller/UserController.java
@@ -230,4 +230,66 @@
                .orderByDesc(Log::getLoginTime));
        return ServerResponse.createBySuccess(pageList);
    }
    @GetMapping("/addMark")
    public ServerResponse addMark(@RequestParam(value = "favorites") String favorites,
                                  HttpServletRequest request) {
        String token = request.getHeader("token");
        User user = JwtUtil.verify(token);
        if (user == null) {
            // 处理用户验证失败的情况,例如返回未授权错误
            return ServerResponse.createByErrorMsg("标记失败");
        }
        String mark = RedisUtil.get(user.getId() + "_mark");
        if (StringUtils.isNotEmpty(mark)) {
            // 使用 StringJoiner 或者 StringBuilder 来拼接字符串
            mark += "," + favorites;
        } else {
            mark = favorites;
        }
        // 更新 Redis 中的标记
        RedisUtil.set(user.getId() + "_mark", mark);
        // 返回操作成功的响应
        return ServerResponse.createBySuccess("标记成功");
    }
    @GetMapping("/deleteMark")
    public ServerResponse deleteMark(@RequestParam(value = "favorites") String favorites,
                                     HttpServletRequest request) {
        String token = request.getHeader("token");
        User user = JwtUtil.verify(token);
        String mark = RedisUtil.get(user.getId() + "_mark");
        if (StringUtils.isNotEmpty(mark)) {
            // 使用逗号分隔符将标记分割成数组
            String[] marks = mark.split(",");
            // 创建一个新的标记列表,用于存储没有要删除的标记
            List<String> updatedMarks = new ArrayList<>();
            // 遍历现有的标记,将不等于要删除的标记加入新列表
            for (String m : marks) {
                if (!m.equals(favorites)) {
                    updatedMarks.add(m);
                }
            }
            // 将新的标记列表转换为逗号分隔的字符串
            mark = String.join(",", updatedMarks);
            // 更新 Redis 中的标记
            RedisUtil.set(user.getId() + "_mark", mark);
        }
        // 返回操作成功的响应
        return ServerResponse.createBySuccess("取消标记成功");
    }
}