This commit is contained in:
etreschenkov 2025-12-02 15:10:00 +03:00
parent 90259217b4
commit f88af385c3
7 changed files with 27 additions and 16 deletions

View file

@ -142,11 +142,11 @@ public class SignalFacadeV3 {
throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringError);
}
// проверка на уникальность пакета
if (userPackageService.isPackageNotUnique(userId, packageName)) {
userPackageService.rejectPackage(userId, packageName);
throw clientExcp(SignalError.ERROR_007, XmlErrorFormat.MonitoringError);
}
// // проверка на уникальность пакета
// if (userPackageService.isPackageNotUnique(userId, packageName)) {
// userPackageService.rejectPackage(userId, packageName);
// throw clientExcp(SignalError.ERROR_007, XmlErrorFormat.MonitoringError);
// }
Long packageId = userPackageService.registerPackage(userId, packageName);
LogUtil.addMdcLogKey("%s %d".formatted(packageName, packageId));

View file

@ -39,4 +39,5 @@ public interface UserPackageMapper {
@Param("packageName") String packageName);
void setRejectedStatus(@Param("id") Long id, @Param("status") String status);
boolean hasOldRow(@Param("packageId") Long packageId, @Param("daysCount") Integer daysCount);
}

View file

@ -80,10 +80,7 @@ public class MonitoringService {
private void monitor() {
try {
log.info("Start monitoring");
List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus(
Status.ON_MONITORING.name(),
Status.PROCESSING_REPEATED.name()
);
List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus(Status.ON_MONITORING.name());
for (UserPackage userPackage : packages) {
MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() + "]");
processPackage(userPackage);

View file

@ -63,7 +63,7 @@ public class UpdatingFlagsService {
for (UserPackage userPackage : packages) {
MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() + "]");
log.info("Check on updating flags for Package {}", userPackage.getPackageName());
boolean hasOldRow = phoneFidMapMapper.hasOldRow(userPackage.getId(), daysToUpdateFlags.intValue());
boolean hasOldRow = userPackageMapper.hasOldRow(userPackage.getId(), daysToUpdateFlags.intValue());
log.info("There are {} old rows", hasOldRow ? "exist" : "doesn't exist");
if (hasOldRow) {
try {

View file

@ -9,6 +9,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
import ru.nbch.credit_tracker.enums.RejectedStatus;
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
import ru.nbch.credit_tracker.model.impl.SignalXmlFilePayload;
import ru.nbch.credit_tracker.service.MonitoringErrorProcesingService;
@ -111,6 +112,8 @@ public class PipelinePackageOrchestrator {
if (success) {
userPackageMapper.updatePackageOnMonitoringSuccess(packageId, LocalDateTime.now());
monitoringErrorProcesingService.findErrors(packageId);
} else {
userPackageMapper.setRejectedStatus(packageId, RejectedStatus.ERROR.getKey());
}
} catch (Exception ex) {
log.error("pipeline finished with error{}", ExceptionUtils.getStackTrace(ex));

View file

@ -27,15 +27,17 @@ public class KickPipeLineRestoreImpl extends KickPipeLine {
@Override
protected List<PhoneFidMap> nextPage(Integer limit) {
List<PhoneFidMap> pageWithNullFids = new ArrayList<>();
List<PhoneFidMap> page = new ArrayList<>();
if (!nullFidsWereFound) {
pageWithNullFids = phoneFidMapMapper.findNullFidPhoneFidMap(packageId, limit, offset);
page = phoneFidMapMapper.findNullFidPhoneFidMap(packageId, limit, offset);
}
if (pageWithNullFids.isEmpty()) {
nullFidsWereFound = true;
offset = 0;
if (page.isEmpty()) {
if (!nullFidsWereFound) {
nullFidsWereFound = true;
offset = 0;
}
return phoneFidMapMapper.findNotNullFidPhoneFidMap(packageId, limit, offset);
}
return pageWithNullFids;
return page;
}
}

View file

@ -140,4 +140,12 @@
WHERE LEFT(membercode, 6) = #{memberCode} AND package_name = #{packageName}
</select>
<select id="hasOldRow" resultType="java.lang.Boolean">
select EXISTS(SELECT 1
FROM signals_user_packages
WHERE id = #{packageId}
AND last_searched_at &lt; now() - make_interval(days => #{daysCount})
)
</select>
</mapper>