新增修改代码逻辑
This commit is contained in:
parent
089da5da2a
commit
58c75ce332
@ -14,6 +14,7 @@ public interface UserAppService {
|
||||
// 用户注册
|
||||
boolean registerUser(String username, String password, List<Long> roleIds);
|
||||
boolean verifyPassword(String username, String plainText);
|
||||
boolean changePassword(Long userId, String oldPassword, String newPassword);
|
||||
boolean deleteUser(Long id);
|
||||
boolean updateUser(Long id, UserDTO userDTO);
|
||||
|
||||
|
||||
@ -45,6 +45,11 @@ public class UserAppServiceImpl implements UserAppService {
|
||||
return userDomainService.verifyPassword(username, plainText);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean changePassword(Long userId, String oldPassword, String newPassword) {
|
||||
return userDomainService.changePassword(userId, oldPassword, newPassword);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteUser(Long userId) {
|
||||
return userDomainService.deleteUser(userId);
|
||||
|
||||
@ -7,8 +7,11 @@ import java.util.Optional;
|
||||
|
||||
public interface UserAuthDomainSupport {
|
||||
boolean verifyPassword(String username, String plainText);
|
||||
|
||||
boolean changePassword(Long userId, String oldPassword, String newPassword);
|
||||
UserTokenDO createToken(Long userId, long expireMs);
|
||||
boolean isValidToken(String token);
|
||||
void removeToken(String token);
|
||||
Optional<UserTokenDO> findToken(String token);
|
||||
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@ public interface UserDomainService {
|
||||
// 认证/Token
|
||||
Optional<UserTokenDO> findToken(String token);
|
||||
boolean verifyPassword(String username, String plainText);
|
||||
boolean changePassword(Long userId, String oldPassword, String newPassword);
|
||||
UserTokenDO createToken(Long userId, long expireMs);
|
||||
boolean isValidToken(String token);
|
||||
void removeToken(String token);
|
||||
@ -48,4 +49,5 @@ public interface UserDomainService {
|
||||
List<UserFileDO> findUserFiles(Long userId);
|
||||
boolean addUserFileAuth(Long userId, Long fileId);
|
||||
boolean removeUserFileAuth(Long userId, Long fileId);
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.knowledge.base.domain.user.service.impl;
|
||||
|
||||
import com.knowledge.base.domain.common.exception.DomainException;
|
||||
import com.knowledge.base.domain.user.model.UserTokenDO;
|
||||
import com.knowledge.base.domain.user.repository.converter.UserTokenDomainConverter;
|
||||
import com.knowledge.base.domain.user.repository.iface.UserRepository;
|
||||
@ -30,6 +31,21 @@ public class UserAuthDomainSupportImpl implements UserAuthDomainSupport {
|
||||
return inputHash.equals(user.getPassword());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean changePassword(Long userId, String oldPassword, String newPassword) {
|
||||
Optional<User> userOpt = userRepository.findById(userId);
|
||||
if(userOpt.isEmpty()) return false;
|
||||
User user = userOpt.get();
|
||||
String oldInputHash = SM3Util.digest(oldPassword);
|
||||
String newInputHash = SM3Util.digest(newPassword);
|
||||
if(!oldInputHash.equals(user.getPassword())) {
|
||||
throw new DomainException("旧密码错误!");
|
||||
}
|
||||
user.setPassword(newInputHash);
|
||||
userRepository.save(user);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserTokenDO createToken(Long userId, long expireMs) {
|
||||
String token = UUID.randomUUID().toString().replace("-", "");
|
||||
|
||||
@ -64,6 +64,12 @@ public class UserDomainServiceImpl implements UserDomainService {
|
||||
public boolean verifyPassword(String username, String plainText) {
|
||||
return userAuthDomainSupport.verifyPassword(username, plainText);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean changePassword(Long userId, String oldPassword, String newPassword) {
|
||||
return userAuthDomainSupport.changePassword(userId, oldPassword, newPassword);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserTokenDO createToken(Long userId, long expireMs) {
|
||||
return userAuthDomainSupport.createToken(userId, expireMs);
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.knowledge.base.infrastructure.north.controller;
|
||||
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import com.knowledge.base.application.service.UserAppService;
|
||||
import com.knowledge.base.infrastructure.config.ConstantConfig;
|
||||
import com.knowledge.base.infrastructure.config.DynamicConfig;
|
||||
@ -63,6 +64,17 @@ public class UserWriteController {
|
||||
return ResponseEntity.ok(userAppService.updateUser(userId, userDTO));
|
||||
}
|
||||
|
||||
@PostMapping("/change-pwd")
|
||||
public ResponseEntity<?> changeUserPassword(@RequestBody Map<String, String> body) {
|
||||
if(MapUtil.isEmpty(body)) {
|
||||
return ResponseEntity.badRequest().body(Map.of("msg", "参数错误,body为空"));
|
||||
}
|
||||
body.getOrDefault("userId", "");
|
||||
body.getOrDefault("oldPassword", "");
|
||||
body.getOrDefault("newPassword", "");
|
||||
return ResponseEntity.ok(userAppService.changePassword(Long.parseLong(body.get("userId")), body.get("oldPassword"), body.get("newPassword")));
|
||||
}
|
||||
|
||||
@PostMapping("/login")
|
||||
public ResponseEntity<?> login(@RequestBody Map<String, String> body, HttpServletResponse response) {
|
||||
String username = body.getOrDefault("username", "").trim();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user