SUPPORT-8696: Fix
This commit is contained in:
parent
ff852fd44a
commit
20690cc919
4 changed files with 70 additions and 17 deletions
|
|
@ -7,7 +7,6 @@ import org.jooq.DSLContext;
|
|||
import org.jooq.Record2;
|
||||
import org.jooq.Result;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import ru.micord.ervu.account_applications.db_beans.public_.tables.records.RecruitmentRecord;
|
||||
import ru.micord.ervu.account_applications.db_beans.public_.tables.records.UserApplicationRoleRecord;
|
||||
|
|
@ -24,14 +23,12 @@ public class ErvuDirectoriesDao {
|
|||
@Autowired
|
||||
private DSLContext dsl;
|
||||
|
||||
@Cacheable(value = "role-ids", unless = "#result == null")
|
||||
public List<String> getRoleIds() {
|
||||
return dsl.select(USER_APPLICATION_ROLE.USER_ROLE_ID)
|
||||
.from(USER_APPLICATION_ROLE)
|
||||
.fetch(USER_APPLICATION_ROLE.USER_ROLE_ID);
|
||||
}
|
||||
|
||||
@Cacheable(value = "domain-ids", unless = "#result == null")
|
||||
public Result<Record2<UUID, String>> getDomainIds() {
|
||||
return dsl.select(RECRUITMENT.ID, RECRUITMENT.IDM_ID)
|
||||
.from(RECRUITMENT)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
package ru.micord.ervu.account_applications.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.jooq.Record2;
|
||||
import org.jooq.Result;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.micord.ervu.account_applications.dao.ErvuDirectoriesDao;
|
||||
import ru.micord.ervu.account_applications.db_beans.public_.tables.records.RecruitmentRecord;
|
||||
import ru.micord.ervu.account_applications.db_beans.public_.tables.records.UserApplicationRoleRecord;
|
||||
|
||||
/**
|
||||
* @author Eduard Tihomirov
|
||||
*/
|
||||
@Service
|
||||
public class ErvuDirectoriesDaoService {
|
||||
|
||||
@Autowired
|
||||
private ErvuDirectoriesDao ervuDirectoriesDao;
|
||||
|
||||
public List<String> getRoleIds() {
|
||||
return ervuDirectoriesDao.getRoleIds();
|
||||
}
|
||||
|
||||
@Cacheable(value = "domain-ids", unless = "#result == null")
|
||||
public Result<Record2<UUID, String>> getDomainIds() {
|
||||
return ervuDirectoriesDao.getDomainIds();
|
||||
}
|
||||
|
||||
@Cacheable(value = "role-ids", unless = "#result == null")
|
||||
public UserApplicationRoleRecord getRoleRecord() {
|
||||
return ervuDirectoriesDao.getRoleRecord();
|
||||
}
|
||||
|
||||
public RecruitmentRecord getRecruitmentRecord() {
|
||||
return ervuDirectoriesDao.getRecruitmentRecord();
|
||||
}
|
||||
|
||||
public void insertRecruitmentRecords(List<RecruitmentRecord> newRecruitmentRecords) {
|
||||
ervuDirectoriesDao.insertRecruitmentRecords(newRecruitmentRecords);
|
||||
}
|
||||
|
||||
public void updateRecruitmentRecords(List<RecruitmentRecord> recruitmentRecords) {
|
||||
ervuDirectoriesDao.updateRecruitmentRecords(recruitmentRecords);
|
||||
}
|
||||
|
||||
public void insertRoleRecords(List<UserApplicationRoleRecord> newRoleRecords) {
|
||||
ervuDirectoriesDao.insertRoleRecords(newRoleRecords);
|
||||
}
|
||||
|
||||
public void updateRoleRecords(List<UserApplicationRoleRecord> roleRecords ) {
|
||||
ervuDirectoriesDao.updateRoleRecords(roleRecords);
|
||||
}
|
||||
}
|
||||
|
|
@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
import org.springframework.cache.annotation.Caching;
|
||||
import org.springframework.context.annotation.DependsOn;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
|
|
@ -25,7 +26,6 @@ import org.springframework.http.ResponseEntity;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import ru.micord.ervu.account_applications.dao.ErvuDirectoriesDao;
|
||||
import ru.micord.ervu.account_applications.db_beans.public_.tables.records.RecruitmentRecord;
|
||||
import ru.micord.ervu.account_applications.db_beans.public_.tables.records.UserApplicationRoleRecord;
|
||||
import ru.micord.ervu.account_applications.model.RecruitmentResponse;
|
||||
|
|
@ -37,6 +37,7 @@ import static ru.micord.ervu.account_applications.db_beans.public_.tables.Recrui
|
|||
* @author Eduard Tihomirov
|
||||
*/
|
||||
@Service
|
||||
@DependsOn({"liquibase", "ervuDirectoriesListner"})
|
||||
public class ErvuDirectoriesService {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(
|
||||
MethodHandles.lookup().lookupClass());
|
||||
|
|
@ -49,7 +50,7 @@ public class ErvuDirectoriesService {
|
|||
@Autowired
|
||||
private ObjectMapper objectMapper;
|
||||
@Autowired
|
||||
private ErvuDirectoriesDao ervuDirectoriesDao;
|
||||
private ErvuDirectoriesDaoService ervuDirectoriesDaoService;
|
||||
|
||||
|
||||
@Caching(evict = {
|
||||
|
|
@ -75,6 +76,8 @@ public class ErvuDirectoriesService {
|
|||
}
|
||||
catch (Exception e) {
|
||||
LOGGER.error(e.getMessage());
|
||||
//trow error for clean cache
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -110,11 +113,11 @@ public class ErvuDirectoriesService {
|
|||
private void upsertRecruitmentData(List<RecruitmentResponse.Data> dataList) {
|
||||
List<RecruitmentRecord> newRecruitmentRecords = new ArrayList<>();
|
||||
List<RecruitmentRecord> recruitmentRecords = new ArrayList<>();
|
||||
Result<Record2<UUID, String>> ids = ervuDirectoriesDao.getDomainIds();
|
||||
Result<Record2<UUID, String>> ids = ervuDirectoriesDaoService.getDomainIds();
|
||||
dataList.forEach(data -> {
|
||||
Timestamp updatedAt = Timestamp.from(Instant.ofEpochSecond(data.getModified()));
|
||||
Timestamp createdAt = Timestamp.from(Instant.ofEpochSecond(data.getCreateDate()));
|
||||
RecruitmentRecord recruitmentRecord = ervuDirectoriesDao.getRecruitmentRecord();
|
||||
RecruitmentRecord recruitmentRecord = ervuDirectoriesDaoService.getRecruitmentRecord();
|
||||
recruitmentRecord.setIdmId(data.getId());
|
||||
recruitmentRecord.setVersion(data.getVersion());
|
||||
recruitmentRecord.setSchema(data.getSchema());
|
||||
|
|
@ -162,14 +165,14 @@ public class ErvuDirectoriesService {
|
|||
newRecruitmentRecords.add(recruitmentRecord);
|
||||
}
|
||||
});
|
||||
ervuDirectoriesDao.insertRecruitmentRecords(newRecruitmentRecords);
|
||||
ervuDirectoriesDao.updateRecruitmentRecords(recruitmentRecords);
|
||||
ervuDirectoriesDaoService.insertRecruitmentRecords(newRecruitmentRecords);
|
||||
ervuDirectoriesDaoService.updateRecruitmentRecords(recruitmentRecords);
|
||||
}
|
||||
|
||||
private void upsertRoleData(List<RoleResponse.Data> dataList) {
|
||||
List<UserApplicationRoleRecord> newRoleRecords = new ArrayList<>();
|
||||
List<UserApplicationRoleRecord> roleRecords = new ArrayList<>();
|
||||
List<String> ids = ervuDirectoriesDao.getRoleIds();
|
||||
List<String> ids = ervuDirectoriesDaoService.getRoleIds();
|
||||
dataList.forEach(data -> {
|
||||
Timestamp updatedAt = Timestamp.from(Instant.ofEpochSecond(data.getModified()));
|
||||
Timestamp createdAt = Timestamp.from(Instant.ofEpochSecond(data.getCreateDate()));
|
||||
|
|
@ -177,7 +180,7 @@ public class ErvuDirectoriesService {
|
|||
if (data.getFinish() != null) {
|
||||
finishAt = Timestamp.from(Instant.ofEpochSecond(data.getFinish()));
|
||||
}
|
||||
UserApplicationRoleRecord roleRecord = ervuDirectoriesDao.getRoleRecord();
|
||||
UserApplicationRoleRecord roleRecord = ervuDirectoriesDaoService.getRoleRecord();
|
||||
roleRecord.setUserRoleId(data.getId());
|
||||
roleRecord.setRoleName(data.getDisplayName());
|
||||
roleRecord.setCreated(createdAt);
|
||||
|
|
@ -190,7 +193,7 @@ public class ErvuDirectoriesService {
|
|||
newRoleRecords.add(roleRecord);
|
||||
}
|
||||
});
|
||||
ervuDirectoriesDao.insertRoleRecords(newRoleRecords);
|
||||
ervuDirectoriesDao.updateRoleRecords(roleRecords);
|
||||
ervuDirectoriesDaoService.insertRoleRecords(newRoleRecords);
|
||||
ervuDirectoriesDaoService.updateRoleRecords(roleRecords);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
package ru.micord.ervu.account_applications.service;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
import net.javacrumbs.shedlock.core.SchedulerLock;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.DependsOn;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
|
@ -17,7 +14,6 @@ import static org.springframework.scheduling.config.ScheduledTaskRegistrar.CRON_
|
|||
* @author Eduard Tihomirov
|
||||
*/
|
||||
@Service
|
||||
@DependsOn({"liquibase", "ervuDirectoriesListner"})
|
||||
public class ErvuDirectoriesUpdateShedulerService {
|
||||
|
||||
@Autowired
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue