Added Fid registration for signals_phone_fid_map
This commit is contained in:
parent
e860950552
commit
122c6d2419
9 changed files with 97 additions and 8 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -18,4 +18,6 @@ public interface SignalMapper {
|
|||
void registerSubjects(@Param("subjects") List<Subject> 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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<PhoneService.FidsPhoneData> fidsPhoneDataList = phoneService.findFidsPhoneData(request.getSubjects().getSubject());
|
||||
fidsPhoneDataList.forEach(phoneData -> {
|
||||
mapper.registerSubjectsFid(phoneData.getId(), phoneData.getFid(), packageId);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<FidsPhoneData> findFidsPhoneData(List<Subject> subjects) {
|
||||
List<FidsPhoneData> 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
15
src/main/resources/mybatis/mapper/indic/PhoneMapper.xml
Normal file
15
src/main/resources/mybatis/mapper/indic/PhoneMapper.xml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="ru.nbch.credit_tracker.mapper.indic.PhoneMapper">
|
||||
|
||||
<select id="findFidByNumber" resultType="java.lang.Integer">
|
||||
SELECT FID
|
||||
FROM PHONE_NORM
|
||||
WHERE NUMBER = #{phone}
|
||||
ORDER BY FILE_SINCE_DT DESC, FID DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -30,4 +30,10 @@
|
|||
</foreach>
|
||||
</insert>
|
||||
|
||||
<update id="registerSubjectsFid">
|
||||
UPDATE signals_phone_fid_map
|
||||
SET fid = #{fid}
|
||||
WHERE package_id = #{packageId} AND subject_id = #{id}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
Loading…
Add table
Reference in a new issue