This commit is contained in:
parent
04601b618b
commit
69746d2b5e
4 changed files with 46 additions and 7 deletions
|
|
@ -0,0 +1,26 @@
|
||||||
|
package ru.nbch.credit_tracker.component.comparator;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.function.ToIntFunction;
|
||||||
|
import ru.nbch.credit_tracker.entities.app.UserPackage;
|
||||||
|
import ru.nbch.credit_tracker.enums.Status;
|
||||||
|
|
||||||
|
public class ReportListPackageStatusComparator {
|
||||||
|
|
||||||
|
public static Comparator<UserPackage> INSTANCE = Comparator
|
||||||
|
.comparingInt((ToIntFunction<UserPackage>) userPackage -> statusToInt(userPackage.getStatus()))
|
||||||
|
.thenComparingLong(UserPackage::getId);
|
||||||
|
|
||||||
|
public static int statusToInt(String str) {
|
||||||
|
try {
|
||||||
|
Status status = Status.valueOf(str);
|
||||||
|
return switch (status) {
|
||||||
|
case ON_MONITORING -> 1;
|
||||||
|
default -> -1;
|
||||||
|
};
|
||||||
|
} catch (Throwable e) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import ru.nbch.credit_tracker.component.MonitoringRequestValidator;
|
import ru.nbch.credit_tracker.component.MonitoringRequestValidator;
|
||||||
import ru.nbch.credit_tracker.component.comparator.DeletePackageStatusComparator;
|
import ru.nbch.credit_tracker.component.comparator.DeletePackageStatusComparator;
|
||||||
|
import ru.nbch.credit_tracker.component.comparator.ReportListPackageStatusComparator;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import ru.nbch.credit_tracker.entities.app.UserPackage;
|
import ru.nbch.credit_tracker.entities.app.UserPackage;
|
||||||
import ru.nbch.credit_tracker.entities.user_request.active_packages.MonitoringActivePackagesRequest;
|
import ru.nbch.credit_tracker.entities.user_request.active_packages.MonitoringActivePackagesRequest;
|
||||||
|
|
@ -225,19 +226,31 @@ public class SignalFacadeV3 {
|
||||||
|
|
||||||
public ResponseEntity<MonitoringReportListResponse> getReportList(String username, String packageName) {
|
public ResponseEntity<MonitoringReportListResponse> getReportList(String username, String packageName) {
|
||||||
try {
|
try {
|
||||||
if (signalService.isPackagesByStatusExist(username, packageName, Status.PROCESSING)) {
|
UserPackage userPackage = signalService
|
||||||
|
.findByMemberCodeAndPackageName(username, packageName)
|
||||||
|
.stream()
|
||||||
|
.max(ReportListPackageStatusComparator.INSTANCE)
|
||||||
|
.orElse(null);
|
||||||
|
if (userPackage == null) {
|
||||||
|
throw clientExcp(SignalError.ERROR_012, XmlErrorFormat.MonitoringReportListError, packageName);
|
||||||
|
}
|
||||||
|
Status status = EnumUtil.getEnum(Status.class, userPackage.getStatus());
|
||||||
|
if (status == null) {
|
||||||
|
throw clientExcp(SignalError.ERROR_017, XmlErrorFormat.MonitoringReportListError);
|
||||||
|
}
|
||||||
|
if (status.equals(Status.PROCESSING)) {
|
||||||
throw clientExcp(SignalError.ERROR_018, XmlErrorFormat.MonitoringReportListError, packageName);
|
throw clientExcp(SignalError.ERROR_018, XmlErrorFormat.MonitoringReportListError, packageName);
|
||||||
}
|
}
|
||||||
if (signalService.isPackagesByStatusExist(username, packageName, Status.REJECTED)) {
|
if (status.equals(Status.REJECTED)) {
|
||||||
throw clientExcp(SignalError.ERROR_020, XmlErrorFormat.MonitoringReportListError, packageName);
|
throw clientExcp(SignalError.ERROR_020, XmlErrorFormat.MonitoringReportListError, packageName);
|
||||||
}
|
}
|
||||||
if (signalService.isPackagesByStatusExist(username, packageName, Status.ERROR)) {
|
if (status.equals(Status.ERROR)) {
|
||||||
throw clientExcp(SignalError.ERROR_021, XmlErrorFormat.MonitoringReportListError, packageName);
|
throw clientExcp(SignalError.ERROR_021, XmlErrorFormat.MonitoringReportListError, packageName);
|
||||||
}
|
}
|
||||||
if (signalService.isPackagesByStatusExist(username, packageName, Status.DELETED)) {
|
if (status.equals(Status.DELETED)) {
|
||||||
throw clientExcp(SignalError.ERROR_022, XmlErrorFormat.MonitoringReportListError, packageName);
|
throw clientExcp(SignalError.ERROR_022, XmlErrorFormat.MonitoringReportListError, packageName);
|
||||||
}
|
}
|
||||||
if (!signalService.isPackagesByStatusExist(username, packageName, Status.ON_MONITORING)) {
|
if (!status.equals(Status.ON_MONITORING)) {
|
||||||
throw clientExcp(SignalError.ERROR_012, XmlErrorFormat.MonitoringReportListError, packageName);
|
throw clientExcp(SignalError.ERROR_012, XmlErrorFormat.MonitoringReportListError, packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ public class UserPackageService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<UserPackage> findByMemberCodeAndPackageName(String memberCode, String packageName) {
|
public List<UserPackage> findByMemberCodeAndPackageName(String memberCode, String packageName) {
|
||||||
return mapper.findByMemberCodeAndPackageName(memberCode, packageName);
|
return mapper.findByMemberCodeAndPackageName(memberCode.substring(0, 6), packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<UserPackage> findAllPackagesByStatus(Status status) {
|
public List<UserPackage> findAllPackagesByStatus(Status status) {
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@
|
||||||
<select id="findByMemberCodeAndPackageName" resultMap="packageDataResultMap">
|
<select id="findByMemberCodeAndPackageName" resultMap="packageDataResultMap">
|
||||||
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report, monitoring_at
|
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report, monitoring_at
|
||||||
FROM signals_user_packages
|
FROM signals_user_packages
|
||||||
WHERE membercode = #{memberCode} AND package_name = #{packageName}
|
WHERE LEFT(membercode, 6) = #{memberCode} AND package_name = #{packageName}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Add table
Reference in a new issue