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()) {
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
connection.isValid(3);
|
connection.isValid(3);
|
||||||
} catch (SQLException e) {
|
} 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;
|
throw e;
|
||||||
}
|
}
|
||||||
log.info("Connected to Scoring: url={}", config.getIndicDataSourceSettings().url());
|
log.info("Connected to Scoring: url={}", config.getScoringDataSourceSettings().url());
|
||||||
return dataSource;
|
return dataSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,8 @@ public class SignalFacade {
|
||||||
return getBadResponse(SignalError.ERROR_007);
|
return getBadResponse(SignalError.ERROR_007);
|
||||||
}
|
}
|
||||||
|
|
||||||
signalService.registerPackage(monitoringRequest);
|
Integer packageId = signalService.registerPackage(monitoringRequest);
|
||||||
|
signalService.registerSubjects(monitoringRequest, packageId);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
String errorPath = failureAnswerGenerator.generateFailureAnswer(SignalError.ERROR_100);
|
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 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 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.entities.monitoring_request.MonitoringRequest;
|
||||||
import ru.nbch.credit_tracker.enums.Status;
|
import ru.nbch.credit_tracker.enums.Status;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.SignalMapper;
|
import ru.nbch.credit_tracker.mapper.signal.SignalMapper;
|
||||||
|
import ru.nbch.credit_tracker.service.indic.PhoneService;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class SignalService {
|
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.mapper = mapper;
|
||||||
|
this.phoneService = phoneService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPackageNotUnique(MonitoringRequest request) {
|
public boolean isPackageNotUnique(MonitoringRequest request) {
|
||||||
|
|
@ -20,12 +25,21 @@ public class SignalService {
|
||||||
return mapper.isPackageNotUnique(userId.substring(0, 6),request.getPackageName());
|
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());
|
Integer packageId = mapper.registerPackage(request, LocalDateTime.now(), Status.PROCESSING.name());
|
||||||
mapper.registerSubjects(request.getSubjects().getSubject(), packageId);
|
mapper.registerSubjects(request.getSubjects().getSubject(), packageId);
|
||||||
|
return packageId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void rejectPackage(MonitoringRequest request) {
|
public void rejectPackage(MonitoringRequest request) {
|
||||||
mapper.insertPackage(request, LocalDateTime.now(), Status.REJECTED.name());
|
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
|
# indic
|
||||||
ct.indic-data-source-settings.driver=com.ibm.db2.jcc.DB2Driver
|
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.url=jdbc:db2://10.230.227.101:2668/cprosd22:currentSchema=INDIC;
|
||||||
ct.indic-data-source-settings.username=ros9appl
|
ct.indic-data-source-settings.username=tester
|
||||||
ct.indic-data-source-settings.password=R0s9Appl
|
ct.indic-data-source-settings.password=tester
|
||||||
|
|
||||||
# signal
|
# signal
|
||||||
ct.signal-data-source-settings.driver=org.postgresql.Driver
|
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>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<update id="registerSubjectsFid">
|
||||||
|
UPDATE signals_phone_fid_map
|
||||||
|
SET fid = #{fid}
|
||||||
|
WHERE package_id = #{packageId} AND subject_id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Add table
Reference in a new issue