修改用户
This commit is contained in:
parent
38a35aefed
commit
347801ba4e
|
@ -19,6 +19,8 @@ public enum HttpStatus {
|
|||
|
||||
TOKEN_EXCEPTION(401, "token验证错误"),
|
||||
|
||||
USERNAME_CONFLICT(409, "用户名已存在"),
|
||||
|
||||
ERROR(500, "系统内部错误");
|
||||
|
||||
private final Integer code;
|
||||
|
|
|
@ -41,8 +41,8 @@ public class AuthController {
|
|||
|
||||
@ApiOperation(value = "验证token(不会返回密码)")
|
||||
@GetMapping("/verify")
|
||||
public R<User> verify(@RequestHeader("token") String token) {
|
||||
return R.ok(authService.verify(token));
|
||||
public R<UserVo> verify(@RequestHeader("token") String token) {
|
||||
return R.ok(authService.verify(token).toVo());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "用户注册")
|
||||
|
@ -62,8 +62,8 @@ public class AuthController {
|
|||
}
|
||||
|
||||
@ApiOperation(value = "用户信息修改")
|
||||
@PostMapping("/update")
|
||||
public R update(@RequestBody User user) {
|
||||
return null;
|
||||
@PutMapping("/update")
|
||||
public R<UserVo> update(@RequestBody User user, @RequestHeader("token") String token) {
|
||||
return authService.update(user, token);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,5 +60,12 @@ public interface AuthService {
|
|||
*/
|
||||
User getUserByName(String username);
|
||||
|
||||
|
||||
/**
|
||||
* 用户信息修改
|
||||
*
|
||||
* @param user 用户信息
|
||||
* @param token token
|
||||
* @return 新的用户信息
|
||||
*/
|
||||
R<UserVo> update(User user, String token);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.example.catchTheLetters.service.impl;
|
||||
|
||||
import com.example.catchTheLetters.constant.CommonConstant;
|
||||
import com.example.catchTheLetters.constant.HttpStatus;
|
||||
import com.example.catchTheLetters.model.dto.LoginDto;
|
||||
import com.example.catchTheLetters.model.dto.RegisterDto;
|
||||
import com.example.catchTheLetters.entity.User;
|
||||
|
@ -56,9 +57,9 @@ public class AuthServiceImpl implements AuthService {
|
|||
return R.fail("密码错误");
|
||||
}
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("id", user.getId().toString());
|
||||
map.put("id", user.getId());
|
||||
var token = JwtUtil.getToken(map, CommonConstant.TOKEN_EXPIRE_TIME);
|
||||
redisService.hSet(token, user.getId().toString(), CommonConstant.REDIS_EXPIRE_TIME);
|
||||
redisService.hSet(token, user.getId(), CommonConstant.REDIS_EXPIRE_TIME);
|
||||
return R.ok(token);
|
||||
}
|
||||
|
||||
|
@ -87,11 +88,13 @@ public class AuthServiceImpl implements AuthService {
|
|||
|
||||
// 用户名重复
|
||||
if (regedUser != null) {
|
||||
R.fail("用户名重复");
|
||||
R.fail(HttpStatus.USERNAME_CONFLICT.getCode(), HttpStatus.USERNAME_CONFLICT.getDesc());
|
||||
}
|
||||
var user = new User();
|
||||
user.setUsername(registerDto.getUsername());
|
||||
user.setPassword(registerDto.getPassword());
|
||||
user.setCreateTime(System.currentTimeMillis());
|
||||
user.setUpdateTime(System.currentTimeMillis());
|
||||
var insert = mongoTemplate.insert(user);
|
||||
if (insert.getId() != null) {
|
||||
return R.ok(user.toVo());
|
||||
|
@ -109,4 +112,37 @@ public class AuthServiceImpl implements AuthService {
|
|||
public User getUserByName(String username) {
|
||||
return mongoTemplate.findOne(new Query(Criteria.where("username").is(username).and(CommonConstant.STATUS).ne(0)), User.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<UserVo> update(User user, String token) {
|
||||
// 先获取当前账户,比对id是否一致,然后再插入
|
||||
var verify = verify(token);
|
||||
if (verify == null || !verify.getId().equals(user.getId())) {
|
||||
return R.fail(HttpStatus.TOKEN_EXCEPTION.getCode(), HttpStatus.TOKEN_EXCEPTION.getDesc());
|
||||
}
|
||||
|
||||
// 如果用户名修改了,检查是否有重复,有重复则返回null,否则修改
|
||||
if (!verify.getUsername().equals(user.getUsername())) {
|
||||
var regedUser = getUserByName(user.getUsername());
|
||||
if (regedUser != null) {
|
||||
return R.fail(HttpStatus.USERNAME_CONFLICT.getCode(), HttpStatus.USERNAME_CONFLICT.getDesc());
|
||||
}
|
||||
|
||||
verify.setUsername(user.getUsername());
|
||||
}
|
||||
|
||||
// 如果密码为空,意味着没修改密码,否则修改密码
|
||||
if (user.getPassword() != null && !user.getPassword().isEmpty()) {
|
||||
verify.setPassword(user.getPassword());
|
||||
}
|
||||
|
||||
verify.setAvatar(user.getAvatar());
|
||||
verify.setEmail(user.getEmail());
|
||||
verify.setPhone(user.getPhone());
|
||||
verify.setSex(user.getSex());
|
||||
verify.setIntroduction(user.getIntroduction());
|
||||
verify.setUpdateTime(System.currentTimeMillis());
|
||||
|
||||
return R.ok(mongoTemplate.save(verify).toVo());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue