Commit 7a39e9b3 by 张晋雄

用户模块

parent 49a8fc46
...@@ -8,6 +8,8 @@ import cn.meteor.beyondclouds.modules.user.entity.User; ...@@ -8,6 +8,8 @@ import cn.meteor.beyondclouds.modules.user.entity.User;
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 io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -27,10 +29,14 @@ import javax.validation.Valid; ...@@ -27,10 +29,14 @@ import javax.validation.Valid;
public class UserApi { public class UserApi {
private IUserService userService; private IUserService userService;
private IUserFollowService userFollowService;
private IUserBlacklistService userBlacklistService;
@Autowired @Autowired
public void setUserService(IUserService userService) { public UserApi(IUserService userService, IUserFollowService userFollowService, IUserBlacklistService userBlacklistService) {
this.userService = userService; this.userService = userService;
this.userFollowService = userFollowService;
this.userBlacklistService = userBlacklistService;
} }
@Anonymous @Anonymous
...@@ -51,19 +57,6 @@ public class UserApi { ...@@ -51,19 +57,6 @@ public class UserApi {
} }
} }
@ApiOperation("修改我的基本信息")
@PutMapping("/my/baseinfo")
public Response alterBaseinfo(@RequestBody @Valid UserBaseinfoFrom userBaseinfoFrom, BindingResult result,
@CurrentSubject Subject subject){
if (result.hasErrors()) {
return Response.fieldError(result.getFieldError());
}
userService.alterBaseinfo(userBaseinfoFrom.getNickName(),userBaseinfoFrom.getUserAvatar(),
userBaseinfoFrom.getGender(),userBaseinfoFrom.getMobile(),userBaseinfoFrom.getSignature(),
userBaseinfoFrom.getQqNumber(),userBaseinfoFrom.getWxNumber(), String.valueOf(subject.getId()));
return Response.success();
}
@Anonymous @Anonymous
@ApiOperation("修改密码") @ApiOperation("修改密码")
@PutMapping("/my/password") @PutMapping("/my/password")
...@@ -82,6 +75,19 @@ public class UserApi { ...@@ -82,6 +75,19 @@ public class UserApi {
} }
} }
@ApiOperation("修改我的基本信息")
@PutMapping("/my/baseinfo")
public Response alterBaseinfo(@RequestBody @Valid UserBaseinfoFrom userBaseinfoFrom, BindingResult result,
@CurrentSubject Subject subject){
if (result.hasErrors()) {
return Response.fieldError(result.getFieldError());
}
userService.alterBaseinfo(userBaseinfoFrom.getNickName(),userBaseinfoFrom.getUserAvatar(),
userBaseinfoFrom.getGender(),userBaseinfoFrom.getMobile(),userBaseinfoFrom.getSignature(),
userBaseinfoFrom.getQqNumber(),userBaseinfoFrom.getWxNumber(), String.valueOf(subject.getId()));
return Response.success();
}
@ApiOperation(("获取我的基本信息")) @ApiOperation(("获取我的基本信息"))
@GetMapping("/my/baseinfo") @GetMapping("/my/baseinfo")
public Response myBaseinfo(@CurrentSubject Subject subject){ public Response myBaseinfo(@CurrentSubject Subject subject){
...@@ -96,6 +102,61 @@ public class UserApi { ...@@ -96,6 +102,61 @@ public class UserApi {
} }
@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(@CurrentSubject Subject subject){
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));
}
} }
package cn.meteor.beyondclouds.modules.user.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author 段启岩
* @since 2020-01-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="UserBlacklist对象", description="")
public class UserBlacklist implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "bl_id", type = IdType.AUTO)
private Integer blId;
@ApiModelProperty(value = "用户ID")
private String userId;
@ApiModelProperty(value = "被拉黑的用户的ID")
private String blackedId;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}
package cn.meteor.beyondclouds.modules.user.mapper;
import cn.meteor.beyondclouds.modules.user.entity.UserBlacklist;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 段启岩
* @since 2020-01-31
*/
public interface UserBlacklistMapper extends BaseMapper<UserBlacklist> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.meteor.beyondclouds.modules.user.mapper.UserBlacklistMapper">
</mapper>
package cn.meteor.beyondclouds.modules.user.service;
import cn.meteor.beyondclouds.modules.user.entity.UserBlacklist;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author 段启岩
* @since 2020-01-31
*/
public interface IUserBlacklistService extends IService<UserBlacklist> {
void blacklist(String blackId, String userId);
}
package cn.meteor.beyondclouds.modules.user.service; package cn.meteor.beyondclouds.modules.user.service;
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.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/** /**
* @author 段启岩 * @author 段启岩
* @since 2020-01-18 * @since 2020-01-18
*/ */
public interface IUserFollowService extends IService<UserFollow> { public interface IUserFollowService extends IService<UserFollow> {
void follower(String userId, String myUserId);
void delFollower(String userId, String myUserId);
List<User> myFans(String userId);
List<User> Fans(String userId);
List<User> myFollower(String userId);
List<User> otherFollower(String userId);
} }
...@@ -5,6 +5,7 @@ import cn.meteor.beyondclouds.modules.user.exception.UserServiceException; ...@@ -5,6 +5,7 @@ import cn.meteor.beyondclouds.modules.user.exception.UserServiceException;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* @author meteor * @author meteor
...@@ -42,4 +43,5 @@ public interface IUserService extends IService<User> { ...@@ -42,4 +43,5 @@ public interface IUserService extends IService<User> {
User myBaseinfo(String id); User myBaseinfo(String id);
User otherBaseinfo(String nickName); User otherBaseinfo(String nickName);
} }
package cn.meteor.beyondclouds.modules.user.service.impl;
import cn.meteor.beyondclouds.modules.user.entity.UserBlacklist;
import cn.meteor.beyondclouds.modules.user.mapper.UserBlacklistMapper;
import cn.meteor.beyondclouds.modules.user.service.IUserBlacklistService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 段启岩
* @since 2020-01-31
*/
@Service
public class UserBlacklistServiceImpl extends ServiceImpl<UserBlacklistMapper, UserBlacklist> implements IUserBlacklistService {
@Override
public void blacklist(String blackId, String userId) {
UserBlacklist userBlacklist = new UserBlacklist();
userBlacklist.setBlackedId(blackId);
userBlacklist.setUserId(userId);
save(userBlacklist);
}
}
package cn.meteor.beyondclouds.modules.user.service.impl; package cn.meteor.beyondclouds.modules.user.service.impl;
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 cn.meteor.beyondclouds.modules.user.mapper.IUserFollowMapper; 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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* @author 段启岩 * @author 段启岩
* @since 2020-01-18 * @since 2020-01-18
...@@ -13,4 +19,81 @@ import org.springframework.stereotype.Service; ...@@ -13,4 +19,81 @@ import org.springframework.stereotype.Service;
@Service @Service
public class UserFollowServiceImpl extends ServiceImpl<IUserFollowMapper, UserFollow> implements IUserFollowService { public class UserFollowServiceImpl extends ServiceImpl<IUserFollowMapper, UserFollow> implements IUserFollowService {
private IUserService userService;
@Autowired
public void setUserService(IUserService userService) {
this.userService = userService;
}
@Override
public void follower(String userId, String myUserId) {
//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());
userFollow.setFollowerId(myUserId);
userFollow.setFollowerNick(myUser.getNickName());
userFollow.setFollowerAvatar(myUser.getUserAvatar());
userFollow.setFollowStatus(0);
save(userFollow);
}
@Override
public void delFollower(String userId, String myUserId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("follower_id", myUserId);
queryWrapper.eq("followed_id", userId);
remove(queryWrapper);
}
@Override
public List<User> myFans(String userId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("followed_id", userId);
return list(queryWrapper);
}
@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);
}
@Override
public List<User> otherFollower(String userId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("follower_id", userId);
return list(queryWrapper);
}
} }
...@@ -4,10 +4,12 @@ import cn.meteor.beyondclouds.common.helper.IRedisHelper; ...@@ -4,10 +4,12 @@ import cn.meteor.beyondclouds.common.helper.IRedisHelper;
import cn.meteor.beyondclouds.core.redis.RedisKey; import cn.meteor.beyondclouds.core.redis.RedisKey;
import cn.meteor.beyondclouds.modules.user.entity.User; import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.entity.UserAuthLocal; import cn.meteor.beyondclouds.modules.user.entity.UserAuthLocal;
import cn.meteor.beyondclouds.modules.user.entity.UserFollow;
import cn.meteor.beyondclouds.modules.user.enums.UserErrorCode; import cn.meteor.beyondclouds.modules.user.enums.UserErrorCode;
import cn.meteor.beyondclouds.modules.user.exception.UserServiceException; import cn.meteor.beyondclouds.modules.user.exception.UserServiceException;
import cn.meteor.beyondclouds.modules.user.mapper.IUserMapper; import cn.meteor.beyondclouds.modules.user.mapper.IUserMapper;
import cn.meteor.beyondclouds.modules.user.service.IUserAuthLocalService; import cn.meteor.beyondclouds.modules.user.service.IUserAuthLocalService;
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.util.Md5Utils; import cn.meteor.beyondclouds.util.Md5Utils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...@@ -18,6 +20,7 @@ import org.springframework.stereotype.Service; ...@@ -18,6 +20,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* @author meteor * @author meteor
...@@ -30,7 +33,7 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I ...@@ -30,7 +33,7 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
private IRedisHelper redisHelper; private IRedisHelper redisHelper;
@Autowired @Autowired
public void setUserAuthLocalService(IUserAuthLocalService userAuthLocalService, IRedisHelper redisHelper) { public UserServiceImpl(IUserAuthLocalService userAuthLocalService, IRedisHelper redisHelper ) {
this.userAuthLocalService = userAuthLocalService; this.userAuthLocalService = userAuthLocalService;
this.redisHelper = redisHelper; this.redisHelper = redisHelper;
} }
...@@ -124,7 +127,6 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I ...@@ -124,7 +127,6 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId); queryWrapper.eq("user_id", userId);
System.out.println(userId);
return getOne(queryWrapper); return getOne(queryWrapper);
} }
...@@ -133,9 +135,10 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I ...@@ -133,9 +135,10 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
QueryWrapper queryWrapper = new QueryWrapper<>(); QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId); queryWrapper.eq("user_id", userId);
return getOne(queryWrapper); return getOne(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