Commit bdbab16b by 张晋雄

粉丝

parent 5e04066c
package cn.meteor.beyondclouds.modules.user.api; package cn.meteor.beyondclouds.modules.user.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.core.annotation.Anonymous; import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject; import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response; import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.core.bean.Subject; import cn.meteor.beyondclouds.core.bean.Subject;
import cn.meteor.beyondclouds.modules.user.entity.User; import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.entity.UserFollow;
import cn.meteor.beyondclouds.modules.user.exception.UserServiceException; import cn.meteor.beyondclouds.modules.user.exception.UserServiceException;
import cn.meteor.beyondclouds.modules.user.form.UserBaseInfoFrom; import cn.meteor.beyondclouds.modules.user.form.UserBaseInfoFrom;
import cn.meteor.beyondclouds.modules.user.form.UserRegisterFrom; import cn.meteor.beyondclouds.modules.user.form.UserRegisterFrom;
import cn.meteor.beyondclouds.modules.user.service.IUserBlacklistService;
import cn.meteor.beyondclouds.modules.user.service.IUserFollowService;
import cn.meteor.beyondclouds.modules.user.service.IUserService; import cn.meteor.beyondclouds.modules.user.service.IUserService;
import cn.meteor.beyondclouds.modules.user.vo.UserInfoVO; import cn.meteor.beyondclouds.modules.user.vo.UserInfoVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -30,9 +35,15 @@ public class UserApi { ...@@ -30,9 +35,15 @@ public class UserApi {
private IUserService userService; private IUserService userService;
private IUserBlacklistService userBlacklistService;
private IUserFollowService userFollowService;
@Autowired @Autowired
public void setUserService(IUserService userService) { public UserApi(IUserService userService, IUserBlacklistService userBlacklistService, IUserFollowService userFollowService) {
this.userService = userService; this.userService = userService;
this.userBlacklistService = userBlacklistService;
this.userFollowService = userFollowService;
} }
@Anonymous @Anonymous
...@@ -122,4 +133,68 @@ public class UserApi { ...@@ -122,4 +133,68 @@ public class UserApi {
// 返回结果 // 返回结果
return Response.success(userInfoVO); return Response.success(userInfoVO);
} }
@ApiOperation(("拉黑"))
@PostMapping("/my/blacklist/{userId}")
public Response blacklist(@PathVariable(name = "userId") String userId, @CurrentSubject Subject subject){
userBlacklistService.blacklist(userId,String.valueOf(subject.getId()));
return Response.success();
}
@ApiOperation(("关注"))
@PostMapping("/user/{userId}/follower")
public Response follower(@PathVariable(name = "userId") String userId, @CurrentSubject Subject subject){
userFollowService.follower(userId, String.valueOf(subject.getId()));
return Response.success();
}
@ApiOperation(("取消关注"))
@DeleteMapping("/user/{userId}/follower")
public Response delFollower(@PathVariable(name = "userId") String userId, @CurrentSubject Subject subject){
userFollowService.delFollower(userId, String.valueOf(subject.getId()));
return Response.success();
}
@ApiOperation(("获取我的粉丝"))
@GetMapping("/my/fans")
public Response myFans(@Valid PageForm pageForm, @CurrentSubject Subject subject){
// 根据用户获取列表并返回
IPage<UserFollow> projectPage = userFollowService.getFansPage(pageForm.getPage(), pageForm.getSize(), String.valueOf(subject.getId()));
return Response.success(userFollowService.myFans(String.valueOf(subject.getId())));
}
@ApiOperation(("获取他人粉丝"))
@GetMapping("/user/{userId}/fans")
public Response otherFans(@PathVariable(name = "userId") String userId){
return Response.success(userFollowService.Fans(userId));
}
@ApiOperation(("获取我的关注"))
@GetMapping("/my/follower")
public Response myFollower(@CurrentSubject Subject subject){
return Response.success(userFollowService.myFollower(String.valueOf(subject.getId())));
}
@ApiOperation(("获取他人关注"))
@GetMapping("/user/{userId}/follower")
public Response otherFollower(@PathVariable(name = "userId") String userId){
return Response.success(userFollowService.otherFollower(userId));
}
} }
...@@ -2,6 +2,7 @@ package cn.meteor.beyondclouds.modules.user.service; ...@@ -2,6 +2,7 @@ package cn.meteor.beyondclouds.modules.user.service;
import cn.meteor.beyondclouds.modules.user.entity.User; import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.entity.UserFollow; import cn.meteor.beyondclouds.modules.user.entity.UserFollow;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List; import java.util.List;
...@@ -12,15 +13,50 @@ import java.util.List; ...@@ -12,15 +13,50 @@ import java.util.List;
*/ */
public interface IUserFollowService extends IService<UserFollow> { public interface IUserFollowService extends IService<UserFollow> {
/**
* 关注
* @param userId
* @param myUserId
*/
void follower(String userId, String myUserId); void follower(String userId, String myUserId);
/**
* 取消关注
* @param userId
* @param myUserId
*/
void delFollower(String userId, String myUserId); void delFollower(String userId, String myUserId);
/**
* 查看我的粉丝
* @param userId
* @return
*/
List<User> myFans(String userId); List<User> myFans(String userId);
/**
* 查看其他用户的粉丝
* @param userId
* @return
*/
List<User> Fans(String userId); List<User> Fans(String userId);
/**
* 查看我关注的人
* @param userId
* @return
*/
List<User> myFollower(String userId); List<User> myFollower(String userId);
/**
* 查看其他用户关注的人
* @param userId
* @return
*/
List<User> otherFollower(String userId); List<User> otherFollower(String userId);
IPage<UserFollow> getFansPage(Integer pageNumber, Integer pageSize, String userId);
} }
...@@ -6,6 +6,8 @@ import cn.meteor.beyondclouds.modules.user.mapper.IUserFollowMapper; ...@@ -6,6 +6,8 @@ import cn.meteor.beyondclouds.modules.user.mapper.IUserFollowMapper;
import cn.meteor.beyondclouds.modules.user.service.IUserFollowService; import cn.meteor.beyondclouds.modules.user.service.IUserFollowService;
import cn.meteor.beyondclouds.modules.user.service.IUserService; import cn.meteor.beyondclouds.modules.user.service.IUserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -96,4 +98,13 @@ public class UserFollowServiceImpl extends ServiceImpl<IUserFollowMapper, UserFo ...@@ -96,4 +98,13 @@ public class UserFollowServiceImpl extends ServiceImpl<IUserFollowMapper, UserFo
} }
@Override
public IPage<UserFollow> getFansPage(Integer pageNumber, Integer pageSize, String userId) {
IPage<UserFollow> page = new Page<>(pageNumber, pageSize);
QueryWrapper<UserFollow> projectQueryWrapper = new QueryWrapper<>();
projectQueryWrapper.eq("user_id", userId);
return page(page, projectQueryWrapper);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment