admin: domain 관심사 분리
This commit is contained in:
parent
f66c5afe0a
commit
bc853e023e
|
|
@ -1,4 +1,4 @@
|
|||
package com.bpgroup.poc.admin.domain.entity;
|
||||
package com.bpgroup.poc.admin.domain.base;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.EntityListeners;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package com.bpgroup.poc.admin.domain.base.admin.entity;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.entity.BaseEntity;
|
||||
import com.bpgroup.poc.admin.domain.base.BaseEntity;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
|
|
@ -30,12 +30,13 @@ public class Admin extends BaseEntity {
|
|||
private AdminRole adminRole;
|
||||
|
||||
@Builder
|
||||
public static Admin of(String loginId, String password, String email, String name) {
|
||||
public static Admin of(String loginId, String password, String email, String name, AdminRole adminRole) {
|
||||
Admin admin = new Admin();
|
||||
admin.loginId = loginId;
|
||||
admin.password = password;
|
||||
admin.email = email;
|
||||
admin.name = name;
|
||||
admin.adminRole = adminRole;
|
||||
return admin;
|
||||
}
|
||||
|
||||
|
|
@ -46,7 +47,4 @@ public class Admin extends BaseEntity {
|
|||
this.adminRole = admin.adminRole;
|
||||
}
|
||||
|
||||
public void setAdminRole(AdminRole adminRole) {
|
||||
this.adminRole = adminRole;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.bpgroup.poc.admin.domain.base.admin.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.admin.entity.Admin;
|
||||
import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRole;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
|
|
@ -19,16 +20,16 @@ public class AdminCreateCommand {
|
|||
@NotBlank
|
||||
private String name;
|
||||
@NotNull
|
||||
private Long roleId;
|
||||
private AdminRole adminRole;
|
||||
|
||||
@Builder
|
||||
public static AdminCreateCommand of(String loginId, String password, String email, String name, Long roleId) {
|
||||
public static AdminCreateCommand of(String loginId, String password, String email, String name, AdminRole adminRole) {
|
||||
AdminCreateCommand command = new AdminCreateCommand();
|
||||
command.loginId = loginId;
|
||||
command.password = password;
|
||||
command.email = email;
|
||||
command.name = name;
|
||||
command.roleId = roleId;
|
||||
command.adminRole = adminRole;
|
||||
return command;
|
||||
}
|
||||
|
||||
|
|
@ -38,6 +39,7 @@ public class AdminCreateCommand {
|
|||
.password(password)
|
||||
.email(email)
|
||||
.name(name)
|
||||
.adminRole(adminRole)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
package com.bpgroup.poc.admin.domain.base.admin.service;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
public class AdminCreateResult {
|
||||
private Long id;
|
||||
|
||||
@Builder
|
||||
public static AdminCreateResult of(Long id) {
|
||||
AdminCreateResult result = new AdminCreateResult();
|
||||
result.id = id;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -2,9 +2,6 @@ package com.bpgroup.poc.admin.domain.base.admin.service;
|
|||
|
||||
import com.bpgroup.poc.admin.domain.base.admin.entity.Admin;
|
||||
import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRole;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Role;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.RoleRepository;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
@ -21,28 +18,11 @@ import java.util.Optional;
|
|||
public class AdminService {
|
||||
|
||||
private final AdminRepository adminRepository;
|
||||
private final RoleRepository roleRepository;
|
||||
|
||||
public AdminCreateResult create(
|
||||
public Admin create(
|
||||
@NotNull @Valid AdminCreateCommand command
|
||||
) {
|
||||
Optional<Role> findRole = roleRepository.findById(command.getRoleId());
|
||||
if (findRole.isEmpty()) {
|
||||
throw new IllegalArgumentException("Not found role");
|
||||
}
|
||||
|
||||
Role role = findRole.get();
|
||||
Admin admin = command.toEntity();
|
||||
admin.setAdminRole(
|
||||
AdminRole.builder()
|
||||
.role(role)
|
||||
.build()
|
||||
);
|
||||
Admin savedAdmin = adminRepository.save(admin);
|
||||
|
||||
return AdminCreateResult.builder()
|
||||
.id(savedAdmin.getId())
|
||||
.build();
|
||||
return adminRepository.save(command.toEntity());
|
||||
}
|
||||
|
||||
public void update(
|
||||
|
|
@ -53,19 +33,8 @@ public class AdminService {
|
|||
throw new IllegalArgumentException("Not found admin");
|
||||
}
|
||||
|
||||
Optional<Role> findRole = roleRepository.findById(command.getRoleId());
|
||||
if (findRole.isEmpty()) {
|
||||
throw new IllegalArgumentException("Not found role");
|
||||
}
|
||||
|
||||
Role role = findRole.get();
|
||||
Admin admin = findAdmin.get();
|
||||
admin.setAdminRole(
|
||||
AdminRole.builder()
|
||||
.role(role)
|
||||
.build()
|
||||
);
|
||||
admin.update(admin);
|
||||
admin.update(command.toEntity());
|
||||
}
|
||||
|
||||
public void delete(@NotNull Long id) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.bpgroup.poc.admin.domain.base.admin.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.admin.entity.Admin;
|
||||
import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRole;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
|
|
@ -19,16 +20,16 @@ public class AdminUpdateCommand {
|
|||
@NotBlank
|
||||
private String name;
|
||||
@NotNull
|
||||
private Long roleId;
|
||||
private AdminRole adminRole;
|
||||
|
||||
@Builder
|
||||
public static AdminUpdateCommand of(Long id, String password, String email, String name, Long roleId) {
|
||||
public static AdminUpdateCommand of(Long id, String password, String email, String name, AdminRole adminRole) {
|
||||
AdminUpdateCommand command = new AdminUpdateCommand();
|
||||
command.id = id;
|
||||
command.password = password;
|
||||
command.email = email;
|
||||
command.name = name;
|
||||
command.roleId = roleId;
|
||||
command.adminRole = adminRole;
|
||||
return command;
|
||||
}
|
||||
|
||||
|
|
@ -37,6 +38,7 @@ public class AdminUpdateCommand {
|
|||
.password(password)
|
||||
.email(email)
|
||||
.name(name)
|
||||
.adminRole(adminRole)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.entity;
|
||||
package com.bpgroup.poc.admin.domain.base.menu.entity;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.entity.BaseEntity;
|
||||
import com.bpgroup.poc.admin.domain.base.BaseEntity;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
|
|
@ -27,7 +27,7 @@ public class Menu extends BaseEntity {
|
|||
@JoinColumn(name = "menu_group_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||
private MenuGroup menuGroup;
|
||||
|
||||
public void setMenuGroup(MenuGroup menuGroup) {
|
||||
public void addMenuGroup(MenuGroup menuGroup) {
|
||||
this.menuGroup = menuGroup;
|
||||
menuGroup.getMenus().add(this);
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.entity;
|
||||
package com.bpgroup.poc.admin.domain.base.menu.entity;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.entity.BaseEntity;
|
||||
import com.bpgroup.poc.admin.domain.base.BaseEntity;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
|
|
@ -38,11 +38,6 @@ public class MenuGroup extends BaseEntity {
|
|||
return menuGroup;
|
||||
}
|
||||
|
||||
public void addMenu(Menu entity) {
|
||||
this.menus.add(entity);
|
||||
entity.setMenuGroup(this);
|
||||
}
|
||||
|
||||
public void update(MenuGroup entity) {
|
||||
this.uri = entity.uri;
|
||||
this.name = entity.name;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.entity;
|
||||
package com.bpgroup.poc.admin.domain.base.menu.entity;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.entity;
|
||||
package com.bpgroup.poc.admin.domain.base.menu.entity;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.service;
|
||||
package com.bpgroup.poc.admin.domain.base.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.service;
|
||||
package com.bpgroup.poc.admin.domain.base.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroup;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.service;
|
||||
package com.bpgroup.poc.admin.domain.base.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroup;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.service;
|
||||
package com.bpgroup.poc.admin.domain.base.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroup;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroupRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroupRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuRepository;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
@ -58,7 +58,7 @@ public class MenuService {
|
|||
|
||||
MenuGroup menuGroup = findMenuGroup.get();
|
||||
Menu menu = command.toEntity();
|
||||
menu.setMenuGroup(menuGroup);
|
||||
menu.addMenuGroup(menuGroup);
|
||||
|
||||
menuRepository.save(menu);
|
||||
}
|
||||
|
|
@ -86,4 +86,8 @@ public class MenuService {
|
|||
public Optional<Menu> findById(Long menuId) {
|
||||
return menuRepository.findById(menuId);
|
||||
}
|
||||
|
||||
public Optional<Menu> find(Long menuId) {
|
||||
return menuRepository.findById(menuId);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.service;
|
||||
package com.bpgroup.poc.admin.domain.base.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.entity;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.entity.BaseEntity;
|
||||
import com.bpgroup.poc.admin.domain.base.BaseEntity;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.entity;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.entity.BaseEntity;
|
||||
import com.bpgroup.poc.admin.domain.base.BaseEntity;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
|
|
@ -27,6 +28,8 @@ public class RoleMenu extends BaseEntity {
|
|||
RoleMenu roleMenu = new RoleMenu();
|
||||
roleMenu.role = role;
|
||||
roleMenu.menu = menu;
|
||||
roleMenu.role.getRoleMenus().add(roleMenu);
|
||||
return roleMenu;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Role;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenu;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
|
|
@ -9,16 +12,20 @@ import lombok.ToString;
|
|||
@ToString
|
||||
public class RoleAddMenuCommand {
|
||||
@NotNull
|
||||
private Long roleId;
|
||||
private Role role;
|
||||
@NotNull
|
||||
private Long menuId;
|
||||
private Menu menu;
|
||||
|
||||
@Builder
|
||||
public static RoleAddMenuCommand of(Long roleId, Long menuId) {
|
||||
public static RoleAddMenuCommand of(Role role, Menu menu) {
|
||||
RoleAddMenuCommand command = new RoleAddMenuCommand();
|
||||
command.roleId = roleId;
|
||||
command.menuId = menuId;
|
||||
command.role = role;
|
||||
command.menu = menu;
|
||||
return command;
|
||||
}
|
||||
|
||||
public RoleMenu toEntity() {
|
||||
return RoleMenu.of(role, menu);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
package com.bpgroup.poc.admin.domain.base.role.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenuRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Role;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenu;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenuRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.RoleRepository;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
|
@ -67,24 +65,11 @@ public class RoleService {
|
|||
public void addRoleMenu(
|
||||
@NotNull @Valid Set<RoleAddMenuCommand> commands
|
||||
) {
|
||||
RoleAddMenuCommand command = commands.stream().findFirst().orElseThrow();
|
||||
Optional<Role> findRole = roleRepository.findById(command.getRoleId());
|
||||
if (findRole.isEmpty()) {
|
||||
throw new IllegalArgumentException("Role Not Found");
|
||||
}
|
||||
|
||||
Role role = findRole.get();
|
||||
commands.forEach(c -> {
|
||||
Optional<Menu> findMenu = menuRepository.findById(c.getMenuId());
|
||||
if (findMenu.isEmpty()) {
|
||||
throw new IllegalArgumentException("Menu Not Found");
|
||||
}
|
||||
|
||||
Menu menu = findMenu.get();
|
||||
RoleMenu roleMenu = RoleMenu.of(role, menu);
|
||||
roleMenuRepository.save(roleMenu);
|
||||
});
|
||||
|
||||
roleMenuRepository.saveAll(
|
||||
commands.stream()
|
||||
.map(RoleAddMenuCommand::toEntity)
|
||||
.toList()
|
||||
);
|
||||
}
|
||||
|
||||
public void deleteRoleMenu(@NotNull Long roleId) {
|
||||
|
|
@ -96,4 +81,8 @@ public class RoleService {
|
|||
Role role = findRole.get();
|
||||
role.deleteRoleMenus();
|
||||
}
|
||||
|
||||
public Optional<Role> find(Long roleId) {
|
||||
return roleRepository.findById(roleId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ import java.util.*;
|
|||
|
||||
import static com.bpgroup.poc.admin.domain.base.admin.entity.QAdmin.admin;
|
||||
import static com.bpgroup.poc.admin.domain.base.admin.entity.QAdminRole.adminRole;
|
||||
import static com.bpgroup.poc.admin.domain.base.role.entity.QMenu.menu;
|
||||
import static com.bpgroup.poc.admin.domain.base.role.entity.QMenuGroup.menuGroup;
|
||||
import static com.bpgroup.poc.admin.domain.base.menu.entity.QMenu.menu;
|
||||
import static com.bpgroup.poc.admin.domain.base.menu.entity.QMenuGroup.menuGroup;
|
||||
import static com.bpgroup.poc.admin.domain.base.role.entity.QRole.role;
|
||||
import static com.bpgroup.poc.admin.domain.base.role.entity.QRoleMenu.roleMenu;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,12 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.management;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.admin.entity.Admin;
|
||||
import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRole;
|
||||
import com.bpgroup.poc.admin.domain.base.admin.service.AdminCreateCommand;
|
||||
import com.bpgroup.poc.admin.domain.base.admin.service.AdminCreateResult;
|
||||
import com.bpgroup.poc.admin.domain.base.admin.service.AdminService;
|
||||
import com.bpgroup.poc.admin.domain.base.admin.service.AdminUpdateCommand;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Role;
|
||||
import com.bpgroup.poc.admin.domain.base.role.service.RoleService;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminCreate;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminDelete;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminFind;
|
||||
|
|
@ -11,16 +14,21 @@ import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminUpdate;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional
|
||||
public class AdminManagementWebService {
|
||||
|
||||
private final PasswordEncoder passwordEncoder;
|
||||
|
||||
private final AdminService adminService;
|
||||
private final RoleService roleService;
|
||||
|
||||
private final AdminManagementQueryRepository queryRepository;
|
||||
|
||||
public List<AdminFind.Response> findAll() {
|
||||
|
|
@ -32,25 +40,38 @@ public class AdminManagementWebService {
|
|||
}
|
||||
|
||||
public AdminCreate.Response create(AdminCreate.Request request) {
|
||||
AdminCreateResult adminCreateResult = adminService.create(
|
||||
Optional<Role> findRole = roleService.find(request.getRoleId());
|
||||
if (findRole.isEmpty()) {
|
||||
throw new IllegalArgumentException("Role Not Found");
|
||||
}
|
||||
Role role = findRole.get();
|
||||
|
||||
Admin savedAdmin = adminService.create(
|
||||
AdminCreateCommand.builder()
|
||||
.loginId(request.getLoginId())
|
||||
.password(passwordEncoder.encode(request.getPassword()))
|
||||
.email(request.getEmail())
|
||||
.name(request.getName())
|
||||
.adminRole(AdminRole.of(role))
|
||||
.build()
|
||||
);
|
||||
|
||||
return AdminCreate.Response.success(adminCreateResult.getId());
|
||||
return AdminCreate.Response.success(savedAdmin.getId());
|
||||
}
|
||||
|
||||
public AdminUpdate.Response update(AdminUpdate.Request request) {
|
||||
Optional<Role> findRole = roleService.find(request.getRoleId());
|
||||
if (findRole.isEmpty()) {
|
||||
throw new IllegalArgumentException("Role Not Found");
|
||||
}
|
||||
Role role = findRole.get();
|
||||
|
||||
adminService.update(
|
||||
AdminUpdateCommand.builder()
|
||||
.id(request.getId())
|
||||
.roleId(request.getRoleId())
|
||||
.email(request.getEmail())
|
||||
.name(request.getName())
|
||||
.adminRole(AdminRole.of(role))
|
||||
.build()
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.bpgroup.poc.admin.web.main.admin.management.reqres;
|
|||
|
||||
import com.bpgroup.poc.admin.web.common.CommonResponse;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
|
|
@ -19,8 +20,8 @@ public class AdminCreate {
|
|||
private String email;
|
||||
@NotBlank
|
||||
private String name;
|
||||
@NotBlank
|
||||
private String roleId;
|
||||
@NotNull
|
||||
private Long roleId;
|
||||
}
|
||||
|
||||
@Getter
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.menu;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.role.service.*;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.service.*;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.reqres.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional
|
||||
public class MenuWebService {
|
||||
|
||||
private final MenuService menuService;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.role;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.service.MenuService;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Role;
|
||||
import com.bpgroup.poc.admin.domain.base.role.service.*;
|
||||
import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleAddMenu;
|
||||
import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleCreate;
|
||||
|
|
@ -9,15 +12,19 @@ import jakarta.validation.Valid;
|
|||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional
|
||||
public class RoleWebService {
|
||||
|
||||
private final RoleService roleService;
|
||||
private final MenuService menuService;
|
||||
|
||||
public RoleCreate.Response create(RoleCreate.Request request) {
|
||||
RoleCreateResult createResult = roleService.create(
|
||||
|
|
@ -47,11 +54,24 @@ public class RoleWebService {
|
|||
public void putMenu(@NotNull @Valid RoleAddMenu.Request request) {
|
||||
roleService.deleteRoleMenu(request.getRoleId());
|
||||
|
||||
Set<RoleAddMenuCommand> commands = request.getMenuIds().stream()
|
||||
.map(menuId -> RoleAddMenuCommand.builder()
|
||||
.roleId(request.getRoleId())
|
||||
.menuId(menuId)
|
||||
.build()
|
||||
Optional<Role> findRole = roleService.find(request.getRoleId());
|
||||
if (findRole.isEmpty()) {
|
||||
throw new IllegalArgumentException("Role Not Found");
|
||||
}
|
||||
Role role = findRole.get();
|
||||
|
||||
Set<RoleAddMenuCommand> commands = request.getMenus().stream()
|
||||
.map(menuId -> {
|
||||
Optional<Menu> findMenu = menuService.find(menuId);
|
||||
if (findMenu.isEmpty()) {
|
||||
throw new IllegalArgumentException("Menu Not Found");
|
||||
}
|
||||
Menu menu = findMenu.get();
|
||||
return RoleAddMenuCommand.builder()
|
||||
.role(role)
|
||||
.menu(menu)
|
||||
.build();
|
||||
}
|
||||
)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public class RoleAddMenu {
|
|||
private Long roleId;
|
||||
@NotNull
|
||||
@Size(min = 1)
|
||||
private Set<Long> menuIds = new HashSet<>();
|
||||
private Set<Long> menus = new HashSet<>();
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,21 +43,21 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
|||
flushAndClear();
|
||||
|
||||
// when
|
||||
AdminCreateResult createResult = service.create(
|
||||
Admin savedAdmin = service.create(
|
||||
AdminCreateCommand.builder()
|
||||
.loginId("test")
|
||||
.password("test")
|
||||
.email("test")
|
||||
.name("test")
|
||||
.roleId(role.getId())
|
||||
.adminRole(AdminRole.of(role))
|
||||
.build()
|
||||
);
|
||||
flushAndClear();
|
||||
|
||||
// then
|
||||
assertThat(createResult.getId()).isNotNull();
|
||||
assertThat(savedAdmin.getId()).isNotNull();
|
||||
|
||||
Admin findAdmin = adminRepository.findById(createResult.getId()).orElseThrow();
|
||||
Admin findAdmin = adminRepository.findById(savedAdmin.getId()).orElseThrow();
|
||||
assertThat(findAdmin.getAdminRole().getRole().getName()).isEqualTo("test");
|
||||
}
|
||||
|
||||
|
|
@ -86,7 +86,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
|||
.password("test2")
|
||||
.email("test2")
|
||||
.name("test2")
|
||||
.roleId(updateRole.getId())
|
||||
.adminRole(AdminRole.of(updateRole))
|
||||
.build()
|
||||
);
|
||||
flushAndClear();
|
||||
|
|
@ -148,44 +148,40 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
|||
|
||||
@NotNull
|
||||
private Admin createAdmin(Role role) {
|
||||
Admin admin = Admin.builder()
|
||||
.loginId("test2")
|
||||
.password("test2")
|
||||
.email("test2")
|
||||
.name("test2")
|
||||
.build();
|
||||
admin.setAdminRole(
|
||||
AdminRole.builder()
|
||||
.role(role)
|
||||
return adminRepository.save(
|
||||
Admin.builder()
|
||||
.loginId("test")
|
||||
.password("test")
|
||||
.email("test")
|
||||
.name("test")
|
||||
.adminRole(AdminRole.of(role))
|
||||
.build()
|
||||
);
|
||||
|
||||
return adminRepository.save(admin);
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("AdminService method 호출 유효성 검사 테스트")
|
||||
void validationTest() {
|
||||
// create
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId(null).password("password").email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("").password("password").email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password(null).email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("").email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email(null).name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name(null).roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name("").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name("name").roleId(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId(null).password("password").email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("").password("password").email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password(null).email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("").email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email(null).name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name(null).adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name("").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name("name").adminRole(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// update
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(null).password("password").email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password(null).email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("").email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email(null).name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name(null).roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name("").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name("name").roleId(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(null).password("password").email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password(null).email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("").email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email(null).name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name(null).adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name("").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name("name").adminRole(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// delete
|
||||
assertThatThrownBy(() -> service.delete(null)).isInstanceOf(ConstraintViolationException.class);
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
package com.bpgroup.poc.admin.domain.base.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroup;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroupRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.role.service.*;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroupRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuRepository;
|
||||
import com.bpgroup.poc.admin.env.MariaDBTestEnv;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
import org.assertj.core.api.Assertions;
|
||||
|
|
@ -134,7 +133,7 @@ class MenuServiceTest extends MariaDBTestEnv {
|
|||
.name("name")
|
||||
.sortOrder(1)
|
||||
.build();
|
||||
menu.setMenuGroup(saveMenuGroup);
|
||||
menu.addMenuGroup(saveMenuGroup);
|
||||
|
||||
Menu saveMenu = menuRepository.save(menu);
|
||||
flushAndClear();
|
||||
|
|
@ -168,7 +167,7 @@ class MenuServiceTest extends MariaDBTestEnv {
|
|||
.name("name")
|
||||
.sortOrder(1)
|
||||
.build();
|
||||
menu.setMenuGroup(saveMenuGroup);
|
||||
menu.addMenuGroup(saveMenuGroup);
|
||||
|
||||
Menu saveMenu = menuRepository.save(menu);
|
||||
flushAndClear();
|
||||
|
|
|
|||
|
|
@ -4,11 +4,10 @@ import com.bpgroup.poc.admin.domain.base.role.entity.Role;
|
|||
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenu;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenuRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.RoleRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.role.service.*;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroup;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroupRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.role.entity.MenuRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroupRepository;
|
||||
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuRepository;
|
||||
import com.bpgroup.poc.admin.env.MariaDBTestEnv;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
|
@ -120,12 +119,12 @@ class RoleServiceTest extends MariaDBTestEnv {
|
|||
roleService.addRoleMenu(
|
||||
Set.of(
|
||||
RoleAddMenuCommand.builder()
|
||||
.roleId(saveRole.getId())
|
||||
.menuId(menu1.getId())
|
||||
.role(saveRole)
|
||||
.menu(menu1)
|
||||
.build(),
|
||||
RoleAddMenuCommand.builder()
|
||||
.roleId(saveRole.getId())
|
||||
.menuId(menu2.getId())
|
||||
.role(saveRole)
|
||||
.menu(menu2)
|
||||
.build()
|
||||
)
|
||||
);
|
||||
|
|
@ -233,7 +232,7 @@ class RoleServiceTest extends MariaDBTestEnv {
|
|||
.name("TEST")
|
||||
.sortOrder(1)
|
||||
.build();
|
||||
menu.setMenuGroup(menuGroup);
|
||||
menu.addMenuGroup(menuGroup);
|
||||
return menuRepository.save(menu);
|
||||
}
|
||||
|
||||
|
|
@ -253,8 +252,8 @@ class RoleServiceTest extends MariaDBTestEnv {
|
|||
assertThatThrownBy(() -> roleService.delete(null)).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// add Role Menu
|
||||
assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().roleId(null).menuId(null).build()))).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().roleId(1L).menuId(null).build()))).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().role(null).menu(new Menu()).build()))).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().role(new Role()).menu(null).build()))).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// delete Role Menu
|
||||
assertThatThrownBy(() -> roleService.deleteRoleMenu(null)).isInstanceOf(ConstraintViolationException.class);
|
||||
|
|
|
|||
Loading…
Reference in New Issue