#512 Код-ревью создания организаций
Выполнить все подзадачи с 1 по 7:
// 1. Добавить недостающие аннотации
public class OrganizationController {
private final OrganizationService organizationService;
public void create(List<Organization> organizations) {
organizationService.create(organizations);
}
}
public interface OrganizationService {
void create(List<Organization> organizations);
}
public class OrganizationServiceImpl implements OrganizationService {
@Override
public void create(List<Organization> organizations) {
// Валидация атрибутов организаций
validate(organizations);
// Маппинг организаций на сущности
Set<OrganizationEntity> entities = map(organizations);
// Сохранение организаций в БД
save(entities);
}
private void validate(List<Organization> organizations) {
// 2. Проверить что список организаций не пустой
// 3. Проверить что нет организаций без счетов
// 4. Посчитать общее количество счетов у всех организаций
// и проверить что количество счетов не больше 10
// 5. Для каждого счета проверить что
// - счет не пустой
// - счет содержит только цифры
}
private Set<OrganizationEntity> map(List<Organizatio> organizations) {
// 6. Удалить дубликаты счетов
// Organization(accounts=[1, 1]) -> Organization(accounts=[1])
// 7. Из списка организаций составить множество сущностей
// Organization(accounts=[1, 2]) -> [OrganizationEntity(account=1), OrganizationEntity(account=2)]
return null;
}
private void save(Set<OrganizationEntity> entities) {
}
}
@Getter
@Setter
public class Organization {
/** Счета */
private List<String> accounts;
}
@Getter
@Setter
@Entity
@Table(name = "ORGANIZATION")
@EqualsAndHashCode(of = "account")
public class OrganizationEntity {
/** Идентификатор записи */
@Id
@GeneratedValue
@Column(name = "ID")
private UUID id;
/** Счет */
@Column(name = "ACCOUNT")
private Integer account;
}
Разбор вопроса
Войди, чтобы начать диалог
Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти
Доступно с Premium
Это лишь одно из решений, доступных с Premium. А ещё:
- 250+ продвинутых лекций
- 1300+ практических заданий
- 500+ решений задач с реальных собеседований
- Именные сертификаты Java Hub
- Расширенный доступ к AI-ментору