diff --git a/book-api/src/main/java/com/imooc/controller/FansController.java b/book-api/src/main/java/com/imooc/controller/FansController.java index 9604118..4ab50a6 100644 --- a/book-api/src/main/java/com/imooc/controller/FansController.java +++ b/book-api/src/main/java/com/imooc/controller/FansController.java @@ -37,6 +37,12 @@ public class FansController extends BaseInfoProperties { return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_RESPONSE_NO_INFO); } + // 是否已经存在关系 + Boolean flow = fansService.queryDoIFollowVloger(myId,vlogerId); + if(flow){ + return GraceJSONResult.errorCustom(ResponseStatusEnum.FANS_INFO_UPDATED_ISFAN_EXIST_ERROR); + } + // 判断两个id对应的用户是否存在 Users vloger = userService.getUser(vlogerId); Users myInfo = userService.getUser(myId); @@ -63,6 +69,11 @@ public class FansController extends BaseInfoProperties { public GraceJSONResult cancel(@RequestParam String myId, @RequestParam String vlogerId) { + // 是否已经存在关系 + Boolean flow = fansService.queryDoIFollowVloger(myId,vlogerId); + if(!flow){ + return GraceJSONResult.errorCustom(ResponseStatusEnum.FANS_INFO_UPDATED_ISFLOW_EXIST_ERROR); + } // 删除业务的执行 fansService.doCancel(myId, vlogerId); diff --git a/book-common/src/main/java/com/imooc/grace/result/ResponseStatusEnum.java b/book-common/src/main/java/com/imooc/grace/result/ResponseStatusEnum.java index 1565413..26832b1 100644 --- a/book-common/src/main/java/com/imooc/grace/result/ResponseStatusEnum.java +++ b/book-common/src/main/java/com/imooc/grace/result/ResponseStatusEnum.java @@ -22,6 +22,8 @@ public enum ResponseStatusEnum { USER_INACTIVE_ERROR(509,false,"请前往[账号设置]修改信息激活后再进行后续操作!"), USER_INFO_UPDATED_ERROR(5091,false,"用户信息修改失败!"), USER_INFO_UPDATED_NICKNAME_EXIST_ERROR(5092,false,"昵称已经存在!"), + FANS_INFO_UPDATED_ISFAN_EXIST_ERROR(5092,false,"已关注"), + FANS_INFO_UPDATED_ISFLOW_EXIST_ERROR(5092,false,"未关注"), USER_INFO_UPDATED_IMOOCNUM_EXIST_ERROR(5092,false,"视频号已经存在!"), USER_INFO_CANT_UPDATED_IMOOCNUM_ERROR(5092,false,"视频号无法修改!"), FILE_UPLOAD_NULL_ERROR(510,false,"文件不能为空,请选择一个文件再上传!"), diff --git a/book-service/src/main/java/com/imooc/service/impl/UserServiceImpl.java b/book-service/src/main/java/com/imooc/service/impl/UserServiceImpl.java index f90a337..3b96d90 100644 --- a/book-service/src/main/java/com/imooc/service/impl/UserServiceImpl.java +++ b/book-service/src/main/java/com/imooc/service/impl/UserServiceImpl.java @@ -346,12 +346,39 @@ public class UserServiceImpl extends BaseInfoProperties implements UserService { } // userList.forEach(usersVO -> { - + // 当前用户是否关注博主 Boolean isFollowed = fansService.queryDoIFollowVloger(currentUserId,usersVO.getId()); + // 我的粉丝总数 + String myFansCountsStr = redis.get(REDIS_MY_FANS_COUNTS + ":" + usersVO.getId()); + // 获赞总数 + String likedVlogerCountsStr = redis.get(REDIS_VLOGER_BE_LIKED_COUNTS + ":" + usersVO.getId()); + + int fansCount = 0; + int likeCount = 0; + if (myFansCountsStr != null) { + try { + fansCount = Integer.parseInt(myFansCountsStr); + } catch (NumberFormatException e) { + // 可选:记录日志或处理异常 + fansCount = 0; + } + } + if (likedVlogerCountsStr != null) { + try { + likeCount = Integer.parseInt(likedVlogerCountsStr); + } catch (NumberFormatException e) { + // 可选:记录日志或处理异常 + likeCount = 0; + } + } + + usersVO.setMyFansCounts(fansCount); + usersVO.setTotalLikeMeCounts(likeCount); + if (isFollowed) { String relationship = redis.get(REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + usersVO.getId() + ":" + currentUserId); if (StringUtils.isNotBlank(relationship) && relationship.equalsIgnoreCase("1")) { - usersVO.setFollowStatus("互相关注"); // 假设 UsersVO 有此方法设置展示状态 + usersVO.setFollowStatus("互相关注"); }else { usersVO.setFollowStatus("已关注"); }