Commit ba468eb5 by 段启岩

Merge remote-tracking branch 'origin/zjx0201'

# Conflicts:
#	src/main/java/cn/meteor/beyondclouds/common/vo/PageVO.java
#	src/main/resources/application-prod.yml
#	src/main/resources/application.yml
parents ef034cc0 47131e39
package cn.meteor.beyondclouds.modules.user.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.core.bean.Subject;
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.form.UserBaseInfoFrom;
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.vo.UserInfoVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
......@@ -30,9 +36,15 @@ public class UserApi {
private IUserService userService;
private IUserBlacklistService userBlacklistService;
private IUserFollowService userFollowService;
@Autowired
public void setUserService(IUserService userService) {
public UserApi(IUserService userService, IUserBlacklistService userBlacklistService, IUserFollowService userFollowService) {
this.userService = userService;
this.userBlacklistService = userBlacklistService;
this.userFollowService = userFollowService;
}
@Anonymous
......@@ -122,4 +134,88 @@ public class UserApi {
// 返回结果
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){
// 根据userId获取粉丝并返回
IPage<UserFollow> fansPage = userFollowService.getFansPage(pageForm.getPage(), pageForm.getSize(), String.valueOf(subject.getId()));
PageVO<UserFollow> fansPageVo = new PageVO<>();
fansPageVo.setTotalPage(fansPage.getPages());
fansPageVo.setDataList(fansPage.getRecords());
return Response.success(fansPageVo);
}
@ApiOperation(("获取他人粉丝"))
@GetMapping("/user/{userId}/fans")
public Response otherFans(@Valid PageForm pageForm, @PathVariable(name = "userId") String userId){
// 根据userId获取粉丝并返回
IPage<UserFollow> fansPage = userFollowService.getFansPage(pageForm.getPage(), pageForm.getSize(),userId);
PageVO<UserFollow> fansPageVo = new PageVO<>();
fansPageVo.setTotalPage(fansPage.getPages());
fansPageVo.setDataList(fansPage.getRecords());
return Response.success(fansPageVo);
}
@ApiOperation(("获取我的关注"))
@GetMapping("/my/follower")
public Response myFollower(@Valid PageForm pageForm, @CurrentSubject Subject subject){
// 根据userId获取关注列表并返回
IPage<UserFollow> followersPage = userFollowService.getFollowersPage(pageForm.getPage(), pageForm.getSize(), String.valueOf(subject.getId()));
PageVO<UserFollow> followersPageVo = new PageVO<>();
followersPageVo.setTotalPage(followersPage.getPages());
followersPageVo.setDataList(followersPage.getRecords());
return Response.success(followersPageVo);
}
@ApiOperation(("获取他人关注"))
@GetMapping("/user/{userId}/follower")
public Response otherFollower(@Valid PageForm pageForm, @PathVariable(name = "userId") String userId){
// 根据userId获取关注列表并返回
IPage<UserFollow> followersPage = userFollowService.getFollowersPage(pageForm.getPage(), pageForm.getSize(), userId);
PageVO<UserFollow> followersPageVo = new PageVO<>();
followersPageVo.setTotalPage(followersPage.getPages());
followersPageVo.setDataList(followersPage.getRecords());
return Response.success(followersPageVo);
}
}
......@@ -13,5 +13,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IUserBlacklistService extends IService<UserBlacklist> {
/**
* 拉黑
* @param blackId
* @param userId
*/
void blacklist(String blackId, String userId);
}
package cn.meteor.beyondclouds.modules.user.service;
import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.entity.UserFollow;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @author 段启岩
......@@ -12,15 +11,40 @@ import java.util.List;
*/
public interface IUserFollowService extends IService<UserFollow> {
/**
* 关注
* @param userId
* @param myUserId
*/
void follower(String userId, String myUserId);
/**
* 取消关注
* @param userId
* @param myUserId
*/
void delFollower(String userId, String myUserId);
List<User> myFans(String userId);
List<User> Fans(String userId);
List<User> myFollower(String userId);
/**
* 根据userId查询粉丝
* @param pageNumber
* @param pageSize
* @param userId
* @return
*/
IPage<UserFollow> getFansPage(Integer pageNumber, Integer pageSize, String userId);
/**
* 根据userId查询关注的用户
* @param pageNumber
* @param pageSize
* @param userId
* @return
*/
IPage<UserFollow> getFollowersPage(Integer pageNumber, Integer pageSize, String userId);
List<User> otherFollower(String userId);
}
......@@ -17,6 +17,11 @@ import org.springframework.stereotype.Service;
@Service
public class UserBlacklistServiceImpl extends ServiceImpl<UserBlacklistMapper, UserBlacklist> implements IUserBlacklistService {
/**
* 拉黑
* @param blackId 拉黑用户的id
* @param userId
*/
@Override
public void blacklist(String blackId, String userId) {
UserBlacklist userBlacklist = new UserBlacklist();
......
......@@ -6,11 +6,13 @@ import cn.meteor.beyondclouds.modules.user.mapper.IUserFollowMapper;
import cn.meteor.beyondclouds.modules.user.service.IUserFollowService;
import cn.meteor.beyondclouds.modules.user.service.IUserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author 段启岩
......@@ -26,74 +28,80 @@ public class UserFollowServiceImpl extends ServiceImpl<IUserFollowMapper, UserFo
this.userService = userService;
}
/**
* 关注
* @param userId 被关注用户的userId
* @param myUserId 当前用户的userId
*/
@Override
public void follower(String userId, String myUserId) {
UserFollow userFollow = new UserFollow();
//1.查询被关注用户的基本信息
User user = userService.getById(userId);
//2.查询我的基本信息
User myUser = userService.getById(myUserId);
UserFollow userFollow = new UserFollow();
userFollow.setFollowedId(userId);
userFollow.setFollowedNick(user.getNickName());
userFollow.setFollowedAvatar(user.getUserAvatar());
//2.查询我的基本信息
User myUser = userService.getById(myUserId);
userFollow.setFollowerId(myUserId);
userFollow.setFollowerNick(myUser.getNickName());
userFollow.setFollowerAvatar(myUser.getUserAvatar());
userFollow.setFollowStatus(0);
save(userFollow);
}
/**
* 取消关注
* @param userId 被关注用户的userId
* @param myUserId 当前用户的userId
*/
@Override
public void delFollower(String userId, String myUserId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("follower_id", myUserId);
queryWrapper.eq("followed_id", userId);
//1.查找符合条件的关注信息
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.eq("follower_id", myUserId);
updateWrapper.eq("followed_id", userId);
remove(queryWrapper);
//2.将关注状态设置为-1并保存
updateWrapper.set("follow_status",-1);
update(updateWrapper);
}
/**
* 查询粉丝列表
* @param pageNumber
* @param pageSize
* @param userId 要查询用户的userId
* @return
*/
@Override
public List<User> myFans(String userId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("followed_id", userId);
return list(queryWrapper);
public IPage<UserFollow> getFansPage(Integer pageNumber, Integer pageSize, String userId) {
IPage<UserFollow> page = new Page<>(pageNumber, pageSize);
QueryWrapper<UserFollow> projectQueryWrapper = new QueryWrapper<>();
projectQueryWrapper.eq("followed_id", userId);
return page(page, projectQueryWrapper);
}
/**
* 查询关注列表
* @param pageNumber
* @param pageSize
* @param userId 要查询用户的userId
* @return
*/
@Override
public List<User> Fans(String userId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("followed_id", userId);
return list(queryWrapper);
}
@Override
public List<User> myFollower(String userId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("follower_id", userId);
return list(queryWrapper);
public IPage<UserFollow> getFollowersPage(Integer pageNumber, Integer pageSize, String userId) {
IPage<UserFollow> page = new Page<>(pageNumber, pageSize);
QueryWrapper<UserFollow> projectQueryWrapper = new QueryWrapper<>();
projectQueryWrapper.eq("follower_id", userId);
return page(page, projectQueryWrapper);
}
}
@Override
public List<User> otherFollower(String userId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("follower_id", userId);
return list(queryWrapper);
}
}
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