diff --git a/src/main/java/ru/nbch/credit_tracker/config/datasource/ScoringDataSourceConfig.java b/src/main/java/ru/nbch/credit_tracker/config/datasource/ScoringDataSourceConfig.java index 1e4b0f6..4b01732 100644 --- a/src/main/java/ru/nbch/credit_tracker/config/datasource/ScoringDataSourceConfig.java +++ b/src/main/java/ru/nbch/credit_tracker/config/datasource/ScoringDataSourceConfig.java @@ -38,10 +38,10 @@ public class ScoringDataSourceConfig { try (Connection connection = dataSource.getConnection()) { connection.isValid(3); } catch (SQLException e) { - log.error("Unable to connect to Scoring url={}", config.getIndicDataSourceSettings().url(), e); + log.error("Unable to connect to Scoring url={}", config.getScoringDataSourceSettings().url(), e); throw e; } - log.info("Connected to Scoring: url={}", config.getIndicDataSourceSettings().url()); + log.info("Connected to Scoring: url={}", config.getScoringDataSourceSettings().url()); return dataSource; } diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java index 52b50d1..0d50dbb 100644 --- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java +++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java @@ -122,7 +122,8 @@ public class SignalFacade { return getBadResponse(SignalError.ERROR_007); } - signalService.registerPackage(monitoringRequest); + Integer packageId = signalService.registerPackage(monitoringRequest); + signalService.registerSubjects(monitoringRequest, packageId); } catch (Exception e) { log.error(e.getMessage(), e); String errorPath = failureAnswerGenerator.generateFailureAnswer(SignalError.ERROR_100); diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/indic/PhoneMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/indic/PhoneMapper.java new file mode 100644 index 0000000..cf5f797 --- /dev/null +++ b/src/main/java/ru/nbch/credit_tracker/mapper/indic/PhoneMapper.java @@ -0,0 +1,9 @@ +package ru.nbch.credit_tracker.mapper.indic; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface PhoneMapper { + Integer findFidByNumber(@Param("phone") String phone); +} diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/SignalMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/SignalMapper.java index cc8b302..0e2b096 100644 --- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/SignalMapper.java +++ b/src/main/java/ru/nbch/credit_tracker/mapper/signal/SignalMapper.java @@ -18,4 +18,6 @@ public interface SignalMapper { void registerSubjects(@Param("subjects") List subjects, @Param("packageId") Integer packageId); void insertPackage(@Param("request") MonitoringRequest request, @Param("creadedAt") LocalDateTime creadedAt, @Param("status") String status); + + void registerSubjectsFid(@Param("id") String id, @Param("fid") Integer fid, @Param("packageId") Integer packageId); } diff --git a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java index eacc8cb..99d5e4c 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java @@ -4,15 +4,20 @@ import org.springframework.stereotype.Service; import ru.nbch.credit_tracker.entities.monitoring_request.MonitoringRequest; import ru.nbch.credit_tracker.enums.Status; import ru.nbch.credit_tracker.mapper.signal.SignalMapper; +import ru.nbch.credit_tracker.service.indic.PhoneService; import java.time.LocalDateTime; +import java.util.List; @Service public class SignalService { - private final SignalMapper mapper; - public SignalService(SignalMapper mapper) { + private final SignalMapper mapper; + private final PhoneService phoneService; + + public SignalService(SignalMapper mapper, PhoneService phoneService) { this.mapper = mapper; + this.phoneService = phoneService; } public boolean isPackageNotUnique(MonitoringRequest request) { @@ -20,12 +25,21 @@ public class SignalService { return mapper.isPackageNotUnique(userId.substring(0, 6),request.getPackageName()); } - public void registerPackage(MonitoringRequest request) { + public Integer registerPackage(MonitoringRequest request) { Integer packageId = mapper.registerPackage(request, LocalDateTime.now(), Status.PROCESSING.name()); mapper.registerSubjects(request.getSubjects().getSubject(), packageId); + return packageId; } public void rejectPackage(MonitoringRequest request) { mapper.insertPackage(request, LocalDateTime.now(), Status.REJECTED.name()); } + + public void registerSubjects(MonitoringRequest request, Integer packageId) { + List fidsPhoneDataList = phoneService.findFidsPhoneData(request.getSubjects().getSubject()); + fidsPhoneDataList.forEach(phoneData -> { + mapper.registerSubjectsFid(phoneData.getId(), phoneData.getFid(), packageId); + }); + } + } diff --git a/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService.java b/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService.java new file mode 100644 index 0000000..62f19b0 --- /dev/null +++ b/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService.java @@ -0,0 +1,42 @@ +package ru.nbch.credit_tracker.service.indic; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; +import org.springframework.stereotype.Service; +import ru.nbch.credit_tracker.entities.monitoring_request.Subject; +import ru.nbch.credit_tracker.mapper.indic.PhoneMapper; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class PhoneService { + + private final PhoneMapper mapper; + + public PhoneService(PhoneMapper mapper) { + this.mapper = mapper; + } + + public List findFidsPhoneData(List subjects) { + List fidsPhoneDataList = new ArrayList<>(); + subjects.forEach(subject -> { + String phone = "9" + subject.getClientId(); + Integer fid = mapper.findFidByNumber(phone); + if (fid != null) { + fidsPhoneDataList.add(new FidsPhoneData(fid, phone, subject.getId())); + } + }); + return fidsPhoneDataList; + } + + @Getter + @Setter + @AllArgsConstructor + public static class FidsPhoneData { + private Integer fid; + private String phone; + private String id; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8bc9690..e1d4918 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,8 +4,8 @@ spring.application.name=credit_tracker # indic ct.indic-data-source-settings.driver=com.ibm.db2.jcc.DB2Driver ct.indic-data-source-settings.url=jdbc:db2://10.230.227.101:2668/cprosd22:currentSchema=INDIC; -ct.indic-data-source-settings.username=ros9appl -ct.indic-data-source-settings.password=R0s9Appl +ct.indic-data-source-settings.username=tester +ct.indic-data-source-settings.password=tester # signal ct.signal-data-source-settings.driver=org.postgresql.Driver diff --git a/src/main/resources/mybatis/mapper/indic/PhoneMapper.xml b/src/main/resources/mybatis/mapper/indic/PhoneMapper.xml new file mode 100644 index 0000000..068bed1 --- /dev/null +++ b/src/main/resources/mybatis/mapper/indic/PhoneMapper.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/signal/SignalMapper.xml b/src/main/resources/mybatis/mapper/signal/SignalMapper.xml index d086bd3..f3ac377 100644 --- a/src/main/resources/mybatis/mapper/signal/SignalMapper.xml +++ b/src/main/resources/mybatis/mapper/signal/SignalMapper.xml @@ -30,4 +30,10 @@ + + UPDATE signals_phone_fid_map + SET fid = #{fid} + WHERE package_id = #{packageId} AND subject_id = #{id} + + \ No newline at end of file