diff --git a/backend/src/main/java/ervu_business_metrics/dao/AbstractDataDao.java b/backend/src/main/java/ervu_business_metrics/dao/AbstractDataDao.java index 31d8663..d63b213 100644 --- a/backend/src/main/java/ervu_business_metrics/dao/AbstractDataDao.java +++ b/backend/src/main/java/ervu_business_metrics/dao/AbstractDataDao.java @@ -1,5 +1,6 @@ package ervu_business_metrics.dao; +import java.util.Collection; import java.util.List; import java.util.Map; @@ -66,11 +67,11 @@ public abstract class AbstractDataDao> { .fetch(selectField); } - protected void setFieldByField(Field targetField, V value, Field whereField, - F whereValue) { + protected void setFieldWhereIn(Field targetField, V value, Field whereField, + Collection whereValues) { dsl.update(getTable()) .set(targetField, value) - .where(whereField.eq(whereValue)) + .where(whereField.in(whereValues)) .execute(); } diff --git a/backend/src/main/java/ervu_business_metrics/dao/AccountDataDao.java b/backend/src/main/java/ervu_business_metrics/dao/AccountDataDao.java index 9728e2a..9e30b6a 100644 --- a/backend/src/main/java/ervu_business_metrics/dao/AccountDataDao.java +++ b/backend/src/main/java/ervu_business_metrics/dao/AccountDataDao.java @@ -26,8 +26,8 @@ public class AccountDataDao extends AbstractDataDao { return getValuesByField(Tables.ACCOUNT.ID, Tables.ACCOUNT.PERSON_ID, personId); } - public void setActiveStatus(String id, boolean active) { - setFieldByField(Tables.ACCOUNT.ACTIVE, active, Tables.ACCOUNT.ID, id); + public void setActiveStatus(List ids, boolean active) { + setFieldWhereIn(Tables.ACCOUNT.ACTIVE, active, Tables.ACCOUNT.ID, ids); } public void deleteByIds(List ids) { diff --git a/backend/src/main/java/ervu_business_metrics/dao/DomainDataDao.java b/backend/src/main/java/ervu_business_metrics/dao/DomainDataDao.java index 3472fc8..d87c4bc 100644 --- a/backend/src/main/java/ervu_business_metrics/dao/DomainDataDao.java +++ b/backend/src/main/java/ervu_business_metrics/dao/DomainDataDao.java @@ -1,6 +1,8 @@ package ervu_business_metrics.dao; +import java.util.List; + import ervu_business_metrics.config.KafkaEnabledCondition; import org.jooq.DSLContext; import org.jooq.Table; @@ -20,8 +22,8 @@ public class DomainDataDao extends AbstractDataDao { super(dsl); } - public void setActiveStatus(String id , boolean active){ - setFieldByField(Tables.DOMAIN.ACTIVE, active, Tables.DOMAIN.ID, id); + public void setActiveStatus(List ids , boolean active){ + setFieldWhereIn(Tables.DOMAIN.ACTIVE, active, Tables.DOMAIN.ID, ids); } @Override diff --git a/backend/src/main/java/ervu_business_metrics/dao/PersonDataDao.java b/backend/src/main/java/ervu_business_metrics/dao/PersonDataDao.java index 1026965..4927d73 100644 --- a/backend/src/main/java/ervu_business_metrics/dao/PersonDataDao.java +++ b/backend/src/main/java/ervu_business_metrics/dao/PersonDataDao.java @@ -1,5 +1,7 @@ package ervu_business_metrics.dao; +import java.util.List; + import ervu_business_metrics.config.KafkaEnabledCondition; import org.jooq.DSLContext; import org.jooq.Table; @@ -19,8 +21,8 @@ public class PersonDataDao extends AbstractDataDao { super(dsl); } - public void setActiveStatus(String id , boolean active){ - setFieldByField(Tables.PERSON.ACTIVE, active, Tables.PERSON.ID, id); + public void setActiveStatus(List ids , boolean active){ + setFieldWhereIn(Tables.PERSON.ACTIVE, active, Tables.PERSON.ID, ids); } @Override diff --git a/backend/src/main/java/ervu_business_metrics/dao/RoleDataDao.java b/backend/src/main/java/ervu_business_metrics/dao/RoleDataDao.java index 1049d07..8ab0383 100644 --- a/backend/src/main/java/ervu_business_metrics/dao/RoleDataDao.java +++ b/backend/src/main/java/ervu_business_metrics/dao/RoleDataDao.java @@ -1,5 +1,7 @@ package ervu_business_metrics.dao; +import java.util.List; + import ervu_business_metrics.config.KafkaEnabledCondition; import org.jooq.DSLContext; import org.jooq.Table; @@ -19,8 +21,8 @@ public class RoleDataDao extends AbstractDataDao { super(dsl); } - public void setActiveStatus(String id , boolean active){ - setFieldByField(Tables.ROLE.ACTIVE, active, Tables.ROLE.ID, id); + public void setActiveStatus(List ids , boolean active){ + setFieldWhereIn(Tables.ROLE.ACTIVE, active, Tables.ROLE.ID, ids); } @Override diff --git a/backend/src/main/java/ervu_business_metrics/kafka/model/ChangeActiveMessage.java b/backend/src/main/java/ervu_business_metrics/kafka/model/ChangeActiveMessage.java index d001f81..d115750 100644 --- a/backend/src/main/java/ervu_business_metrics/kafka/model/ChangeActiveMessage.java +++ b/backend/src/main/java/ervu_business_metrics/kafka/model/ChangeActiveMessage.java @@ -1,7 +1,8 @@ package ervu_business_metrics.kafka.model; +import java.util.List; + import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import ervu_business_metrics.model.ReferenceEntity; /** * @author Adel Kalimullin @@ -9,13 +10,13 @@ import ervu_business_metrics.model.ReferenceEntity; @JsonIgnoreProperties(ignoreUnknown = true) public class ChangeActiveMessage { private boolean success; - private ReferenceEntity data; + private List data; - public ReferenceEntity getData() { + public List getData() { return data; } - public void setData(ReferenceEntity data) { + public void setData(List data) { this.data = data; } diff --git a/backend/src/main/java/ervu_business_metrics/service/IdmDirectoriesService.java b/backend/src/main/java/ervu_business_metrics/service/IdmDirectoriesService.java index 73ca68d..ac1a138 100644 --- a/backend/src/main/java/ervu_business_metrics/service/IdmDirectoriesService.java +++ b/backend/src/main/java/ervu_business_metrics/service/IdmDirectoriesService.java @@ -23,6 +23,7 @@ import org.springframework.context.annotation.DependsOn; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; @@ -102,13 +103,13 @@ public class IdmDirectoriesService { ChangeActiveMessage.class ); - if (changeActiveMessage.isSuccess() && changeActiveMessage.getData() != null) { + if (changeActiveMessage.isSuccess() && !CollectionUtils.isEmpty(changeActiveMessage.getData())) { DataProcessor processor = (DataProcessor) dataProcessors.get(entityClass); if (processor == null) { throw new IllegalStateException("No processor found for " + entityClass.getSimpleName()); } - processor.changeActiveStatus(changeActiveMessage.getData().getId(), active); + processor.changeActiveStatus(changeActiveMessage.getData(), active); } } catch (Exception e) { diff --git a/backend/src/main/java/ervu_business_metrics/service/processor/DataProcessor.java b/backend/src/main/java/ervu_business_metrics/service/processor/DataProcessor.java index 56c591b..0d624f2 100644 --- a/backend/src/main/java/ervu_business_metrics/service/processor/DataProcessor.java +++ b/backend/src/main/java/ervu_business_metrics/service/processor/DataProcessor.java @@ -1,12 +1,14 @@ package ervu_business_metrics.service.processor; +import java.util.List; + /** * @author Adel Kalimullin */ public interface DataProcessor { void upsertData(T data); - void changeActiveStatus(String id, boolean active); + void changeActiveStatus(List ids, boolean active); Class getType(); diff --git a/backend/src/main/java/ervu_business_metrics/service/processor/impl/AccountDataProcessor.java b/backend/src/main/java/ervu_business_metrics/service/processor/impl/AccountDataProcessor.java index b0515e2..c262d00 100644 --- a/backend/src/main/java/ervu_business_metrics/service/processor/impl/AccountDataProcessor.java +++ b/backend/src/main/java/ervu_business_metrics/service/processor/impl/AccountDataProcessor.java @@ -37,8 +37,8 @@ public class AccountDataProcessor implements DataProcessor ids, boolean active) { + dao.setActiveStatus(ids, active); } @Override diff --git a/backend/src/main/java/ervu_business_metrics/service/processor/impl/AccountRoleDataProcessor.java b/backend/src/main/java/ervu_business_metrics/service/processor/impl/AccountRoleDataProcessor.java index 0269ef9..25e5cae 100644 --- a/backend/src/main/java/ervu_business_metrics/service/processor/impl/AccountRoleDataProcessor.java +++ b/backend/src/main/java/ervu_business_metrics/service/processor/impl/AccountRoleDataProcessor.java @@ -35,7 +35,7 @@ public class AccountRoleDataProcessor } @Override - public void changeActiveStatus(String id, boolean active) { + public void changeActiveStatus(List ids, boolean active) { throw new UnsupportedOperationException("Not supported yet."); } diff --git a/backend/src/main/java/ervu_business_metrics/service/processor/impl/DomainDataProcessor.java b/backend/src/main/java/ervu_business_metrics/service/processor/impl/DomainDataProcessor.java index cedc990..aae6ea8 100644 --- a/backend/src/main/java/ervu_business_metrics/service/processor/impl/DomainDataProcessor.java +++ b/backend/src/main/java/ervu_business_metrics/service/processor/impl/DomainDataProcessor.java @@ -1,5 +1,7 @@ package ervu_business_metrics.service.processor.impl; +import java.util.List; + import ervu_business_metrics.config.KafkaEnabledCondition; import ervu_business_metrics.dao.DomainDataDao; import ervu_business_metrics.model.idm.DomainData; @@ -27,8 +29,8 @@ public class DomainDataProcessor implements DataProcessor ids, boolean active) { + dao.setActiveStatus(ids, active); } @Override diff --git a/backend/src/main/java/ervu_business_metrics/service/processor/impl/PersonDataProcessor.java b/backend/src/main/java/ervu_business_metrics/service/processor/impl/PersonDataProcessor.java index 304fe04..baef765 100644 --- a/backend/src/main/java/ervu_business_metrics/service/processor/impl/PersonDataProcessor.java +++ b/backend/src/main/java/ervu_business_metrics/service/processor/impl/PersonDataProcessor.java @@ -1,5 +1,7 @@ package ervu_business_metrics.service.processor.impl; +import java.util.List; + import ervu_business_metrics.config.KafkaEnabledCondition; import ervu_business_metrics.dao.PersonDataDao; import ervu_business_metrics.model.idm.PersonData; @@ -34,8 +36,8 @@ public class PersonDataProcessor implements DataProcessor ids, boolean active) { + dao.setActiveStatus(ids, active); } @Override diff --git a/backend/src/main/java/ervu_business_metrics/service/processor/impl/RoleDataProcessor.java b/backend/src/main/java/ervu_business_metrics/service/processor/impl/RoleDataProcessor.java index 381e6c3..ffc23ef 100644 --- a/backend/src/main/java/ervu_business_metrics/service/processor/impl/RoleDataProcessor.java +++ b/backend/src/main/java/ervu_business_metrics/service/processor/impl/RoleDataProcessor.java @@ -1,6 +1,8 @@ package ervu_business_metrics.service.processor.impl; +import java.util.List; + import ervu_business_metrics.config.KafkaEnabledCondition; import ervu_business_metrics.dao.RoleDataDao; import ervu_business_metrics.model.idm.RoleData; @@ -28,8 +30,8 @@ public class RoleDataProcessor implements DataProcessor { } @Override - public void changeActiveStatus(String id, boolean active) { - dao.setActiveStatus(id, active); + public void changeActiveStatus(List ids, boolean active) { + dao.setActiveStatus(ids, active); } @Override