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 ru.nbch.credit_tracker.component.MonitoringRequestValidator;
|
||||
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.entities.app.UserPackage;
|
||||
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) {
|
||||
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);
|
||||
}
|
||||
if (signalService.isPackagesByStatusExist(username, packageName, Status.REJECTED)) {
|
||||
if (status.equals(Status.REJECTED)) {
|
||||
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);
|
||||
}
|
||||
if (signalService.isPackagesByStatusExist(username, packageName, Status.DELETED)) {
|
||||
if (status.equals(Status.DELETED)) {
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public class UserPackageService {
|
|||
}
|
||||
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@
|
|||
<select id="findByMemberCodeAndPackageName" resultMap="packageDataResultMap">
|
||||
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report, monitoring_at
|
||||
FROM signals_user_packages
|
||||
WHERE membercode = #{memberCode} AND package_name = #{packageName}
|
||||
WHERE LEFT(membercode, 6) = #{memberCode} AND package_name = #{packageName}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Add table
Reference in a new issue