优化接口

This commit is contained in:
luke 2025-06-11 23:41:18 +08:00
parent 57ebe17bb2
commit ac5c66199b
6 changed files with 58 additions and 1 deletions

View File

@ -14,6 +14,8 @@ public interface UserAppService {
// 用户注册 // 用户注册
boolean registerUser(String username, String password, List<Long> roleIds); boolean registerUser(String username, String password, List<Long> roleIds);
boolean verifyPassword(String username, String plainText); boolean verifyPassword(String username, String plainText);
boolean deleteUser(Long id);
boolean updateUser(Long id, UserDTO userDTO);
// 用户资料 // 用户资料
Optional<UserDTO> findByUsername(String username); Optional<UserDTO> findByUsername(String username);
@ -49,4 +51,5 @@ public interface UserAppService {
List<RoleFileRuleDTO> listAllRules(); List<RoleFileRuleDTO> listAllRules();
boolean addRoleFileRule(RoleFileRuleDTO rule); boolean addRoleFileRule(RoleFileRuleDTO rule);
boolean removeRoleFileRule(Long id); boolean removeRoleFileRule(Long id);
} }

View File

@ -1,6 +1,7 @@
package com.knowledge.base.application.service; package com.knowledge.base.application.service;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.knowledge.base.application.exceptions.AppException;
import com.knowledge.base.domain.user.model.UserDO; import com.knowledge.base.domain.user.model.UserDO;
import com.knowledge.base.domain.user.service.iface.UserDomainService; import com.knowledge.base.domain.user.service.iface.UserDomainService;
import com.knowledge.base.infrastructure.converter.*; import com.knowledge.base.infrastructure.converter.*;
@ -41,6 +42,28 @@ public class UserAppServiceImpl implements UserAppService {
return userDomainService.verifyPassword(username, plainText); return userDomainService.verifyPassword(username, plainText);
} }
@Override
public boolean deleteUser(Long userId) {
return userDomainService.deleteUser(userId);
}
@Override
public boolean updateUser(Long id, UserDTO userDTO) {
UserDO userDO = UserDtoConverter.toDO(userDTO);
try {
userDomainService.updateUser(userDO);
userDomainService.findRolesByUserId(id).forEach(role -> {
userDomainService.removeUserRole(id, role.getRoleId());
});
userDTO.getUserRoles().forEach(roleId -> {
userDomainService.addUserRole(id, roleId.longValue());
});
} catch (Exception e) {
throw new AppException("更新用户信息失败", e);
}
return true;
}
@Override @Override
public Optional<UserDTO> findByUsername(String username) { public Optional<UserDTO> findByUsername(String username) {
return Optional.ofNullable(UserDtoConverter.toDTO(userDomainService.findByUsername(username).get())); return Optional.ofNullable(UserDtoConverter.toDTO(userDomainService.findByUsername(username).get()));

View File

@ -11,6 +11,8 @@ public interface UserDomainService {
Optional<UserDO> findById(Long id); Optional<UserDO> findById(Long id);
List<UserDO> findAllUsers(); List<UserDO> findAllUsers();
boolean registerUser(String username, String plainPassword); boolean registerUser(String username, String plainPassword);
boolean deleteUser(Long id);
boolean updateUser(UserDO user);
// 认证/Token // 认证/Token
Optional<UserTokenDO> findToken(String token); Optional<UserTokenDO> findToken(String token);

View File

@ -1,7 +1,6 @@
package com.knowledge.base.domain.user.service.impl; package com.knowledge.base.domain.user.service.impl;
import com.knowledge.base.domain.user.model.*; import com.knowledge.base.domain.user.model.*;
import com.knowledge.base.domain.user.repository.po.*;
import com.knowledge.base.domain.user.service.iface.*; import com.knowledge.base.domain.user.service.iface.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -42,6 +41,16 @@ public class UserDomainServiceImpl implements UserDomainService {
return true; return true;
} }
@Override
public boolean updateUser(UserDO userDO) {
return userProfileDomainSupport.updateUser(userDO);
}
@Override
public boolean deleteUser(Long id) {
return userProfileDomainSupport.deleteUser(id);
}
// 认证/Token // 认证/Token
@Override @Override
public Optional<UserTokenDO> findToken(String token) { public Optional<UserTokenDO> findToken(String token) {

View File

@ -15,6 +15,7 @@ import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -46,6 +47,22 @@ public class UserWriteController {
return ResponseEntity.ok(Map.of("msg", "注册成功")); return ResponseEntity.ok(Map.of("msg", "注册成功"));
} }
@DeleteMapping
public ResponseEntity<?> deleteUser(@RequestParam Long id) {
if(Objects.isNull(id)) {
return ResponseEntity.badRequest().body(Map.of("msg", "userId 不能为空"));
}
return ResponseEntity.ok(userAppService.deleteUser(id));
}
@PutMapping("/{id}")
public ResponseEntity<?> updateUser(@PathVariable Long id, @RequestBody UserDTO userDTO) {
if(Objects.isNull(id) || Objects.isNull(userDTO)) {
return ResponseEntity.badRequest().body(Map.of("msg", "参数错误id或用户信息为空"));
}
return ResponseEntity.ok(userAppService.updateUser(id, userDTO));
}
@PostMapping("/login") @PostMapping("/login")
public ResponseEntity<?> login(@RequestBody Map<String, String> body, HttpServletResponse response) { public ResponseEntity<?> login(@RequestBody Map<String, String> body, HttpServletResponse response) {
String username = body.getOrDefault("username", "").trim(); String username = body.getOrDefault("username", "").trim();

View File

@ -2,6 +2,8 @@ package com.knowledge.base.infrastructure.north.dto.user;
import lombok.Data; import lombok.Data;
import java.util.Set;
/** /**
* @author Luke.ye * @author Luke.ye
* @date 2025/6/9 10:36 * @date 2025/6/9 10:36
@ -12,4 +14,5 @@ public class UserDTO {
private Long id; private Long id;
private String username; private String username;
private String addTime; private String addTime;
private Set<Integer> userRoles;
} }