refactor: 为添加用户功能添加返回值
This commit is contained in:
@@ -58,9 +58,8 @@ public class UserController {
|
|||||||
|
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@PreAuthorize("hasAnyAuthority('system:user:write')")
|
@PreAuthorize("hasAnyAuthority('system:user:write')")
|
||||||
public ResponseEntity<Void> addUser(@Validated @RequestBody AddUserRequest request) {
|
public UserDetailResponse addUser(@Validated @RequestBody AddUserRequest request) {
|
||||||
userService.addUser(request);
|
return userService.addUser(request);
|
||||||
return ResponseEntity.ok(null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping
|
@PutMapping
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.onixbyte.helix.domain.web.response;
|
package com.onixbyte.helix.domain.web.response;
|
||||||
|
|
||||||
|
import com.onixbyte.helix.domain.entity.User;
|
||||||
import com.onixbyte.helix.enumeration.UserStatus;
|
import com.onixbyte.helix.enumeration.UserStatus;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -175,6 +176,22 @@ public class UserDetailResponse {
|
|||||||
private UserDetailResponseBuilder() {
|
private UserDetailResponseBuilder() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UserDetailResponseBuilder user(User user) {
|
||||||
|
this.id = String.valueOf(user.getId());
|
||||||
|
this.username = user.getUsername();
|
||||||
|
this.fullName = user.getFullName();
|
||||||
|
this.email = user.getEmail();
|
||||||
|
this.regionAbbreviation = user.getRegionAbbreviation();
|
||||||
|
this.phoneNumber = user.getPhoneNumber();
|
||||||
|
this.avatarUrl = user.getAvatarUrl();
|
||||||
|
this.status = user.getStatus();
|
||||||
|
this.departmentId = user.getDepartmentId();
|
||||||
|
this.positionId = user.getPositionId();
|
||||||
|
this.createdAt = user.getCreatedAt();
|
||||||
|
this.updatedAt = user.getUpdatedAt();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public UserDetailResponseBuilder id(String id) {
|
public UserDetailResponseBuilder id(String id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ import org.springframework.data.domain.Page;
|
|||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class DepartmentManager {
|
public class DepartmentManager {
|
||||||
|
|
||||||
@@ -25,4 +23,8 @@ public class DepartmentManager {
|
|||||||
public Page<Department> selectAll(Pageable pageable) {
|
public Page<Department> selectAll(Pageable pageable) {
|
||||||
return departmentRepository.findAll(pageable);
|
return departmentRepository.findAll(pageable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Department selectById(Long id) {
|
||||||
|
return departmentRepository.findById(id).orElse(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,4 +23,8 @@ public class PositionManager {
|
|||||||
public Page<Position> selectAll(Pageable pageable) {
|
public Page<Position> selectAll(Pageable pageable) {
|
||||||
return positionRepository.findAll(pageable);
|
return positionRepository.findAll(pageable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Position selectById(Long id) {
|
||||||
|
return positionRepository.findById(id).orElse(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,7 @@ import com.onixbyte.helix.domain.web.request.QueryUserRequest;
|
|||||||
import com.onixbyte.helix.domain.web.request.ResetPasswordRequest;
|
import com.onixbyte.helix.domain.web.request.ResetPasswordRequest;
|
||||||
import com.onixbyte.helix.domain.web.request.EditUserRequest;
|
import com.onixbyte.helix.domain.web.request.EditUserRequest;
|
||||||
import com.onixbyte.helix.domain.web.response.UserDetailResponse;
|
import com.onixbyte.helix.domain.web.response.UserDetailResponse;
|
||||||
import com.onixbyte.helix.manager.ApplicationManager;
|
import com.onixbyte.helix.manager.*;
|
||||||
import com.onixbyte.helix.manager.RoleManager;
|
|
||||||
import com.onixbyte.helix.manager.UserManager;
|
|
||||||
import com.onixbyte.helix.manager.UserRoleManager;
|
|
||||||
import com.onixbyte.identitygenerator.IdentityGenerator;
|
import com.onixbyte.identitygenerator.IdentityGenerator;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -36,6 +33,8 @@ public class UserService {
|
|||||||
private final UserRoleManager userRoleManager;
|
private final UserRoleManager userRoleManager;
|
||||||
private final PasswordEncoder passwordEncoder;
|
private final PasswordEncoder passwordEncoder;
|
||||||
private final ApplicationManager applicationManager;
|
private final ApplicationManager applicationManager;
|
||||||
|
private final DepartmentManager departmentManager;
|
||||||
|
private final PositionManager positionManager;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public UserService(
|
public UserService(
|
||||||
@@ -44,14 +43,16 @@ public class UserService {
|
|||||||
RoleManager roleManager,
|
RoleManager roleManager,
|
||||||
UserRoleManager userRoleManager,
|
UserRoleManager userRoleManager,
|
||||||
PasswordEncoder passwordEncoder,
|
PasswordEncoder passwordEncoder,
|
||||||
ApplicationManager applicationManager
|
ApplicationManager applicationManager,
|
||||||
) {
|
DepartmentManager departmentManager, PositionManager positionManager) {
|
||||||
this.userManager = userManager;
|
this.userManager = userManager;
|
||||||
this.userIdentityGenerator = userIdentityGenerator;
|
this.userIdentityGenerator = userIdentityGenerator;
|
||||||
this.roleManager = roleManager;
|
this.roleManager = roleManager;
|
||||||
this.userRoleManager = userRoleManager;
|
this.userRoleManager = userRoleManager;
|
||||||
this.passwordEncoder = passwordEncoder;
|
this.passwordEncoder = passwordEncoder;
|
||||||
this.applicationManager = applicationManager;
|
this.applicationManager = applicationManager;
|
||||||
|
this.departmentManager = departmentManager;
|
||||||
|
this.positionManager = positionManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Page<UserDetailResponse> queryUserDetailsPage(Pageable pageable, QueryUserRequest request) {
|
public Page<UserDetailResponse> queryUserDetailsPage(Pageable pageable, QueryUserRequest request) {
|
||||||
@@ -71,7 +72,7 @@ public class UserService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Throwable.class)
|
@Transactional(rollbackFor = Throwable.class)
|
||||||
public void addUser(AddUserRequest request) {
|
public UserDetailResponse addUser(AddUserRequest request) {
|
||||||
var createTime = LocalDateTime.now();
|
var createTime = LocalDateTime.now();
|
||||||
|
|
||||||
// validate all roles are existed
|
// validate all roles are existed
|
||||||
@@ -131,6 +132,17 @@ public class UserService {
|
|||||||
|
|
||||||
// Save user and role bindings
|
// Save user and role bindings
|
||||||
userRoleManager.saveBatch(userRoleBindings);
|
userRoleManager.saveBatch(userRoleBindings);
|
||||||
|
|
||||||
|
// Get department and position
|
||||||
|
var department = departmentManager.selectById(user.getDepartmentId());
|
||||||
|
var position = positionManager.selectById(user.getPositionId());
|
||||||
|
|
||||||
|
// Build response and return
|
||||||
|
return UserDetailResponse.builder()
|
||||||
|
.user(user)
|
||||||
|
.departmentName(department.getName())
|
||||||
|
.positionName(position.getName())
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Throwable.class)
|
@Transactional(rollbackFor = Throwable.class)
|
||||||
|
|||||||
Reference in New Issue
Block a user