http://jira.mfd.msk:8088/browse/BKI-3210 Added find all packages logic; Updated version to 1.12

This commit is contained in:
Mikhail Trofimov 2025-09-15 12:35:25 +03:00
parent 5ec5c407ab
commit a1a602d9e8
11 changed files with 76 additions and 7 deletions

View file

@ -1,5 +1,5 @@
#commons #commons
APP_VERSION=1.11 APP_VERSION=1.12
REGISTRY_URL=rh8-vm3.nbki.msk:5000 REGISTRY_URL=rh8-vm3.nbki.msk:5000
JMX_PORT= JMX_PORT=
JMX_HOSTNAME= JMX_HOSTNAME=

View file

@ -10,7 +10,7 @@
</parent> </parent>
<groupId>ru.nbch</groupId> <groupId>ru.nbch</groupId>
<artifactId>credit-tracker</artifactId> <artifactId>credit-tracker</artifactId>
<version>1.11</version> <version>1.12</version>
<name>credit_tracker</name> <name>credit_tracker</name>
<description>Credit Tracker Application</description> <description>Credit Tracker Application</description>

View file

@ -32,6 +32,11 @@ public class SignalController {
return signalFacade.findActivePackages(activePackagesRequest); return signalFacade.findActivePackages(activePackagesRequest);
} }
@PostMapping(value = "/all_packages", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
public ResponseEntity<MonitoringActivePackagesResponse> findAllPackages(@RequestBody MonitoringActivePackagesRequest activePackagesRequest) {
return signalFacade.findAllPackages(activePackagesRequest);
}
@PostMapping(value = "/delete", params = {"username", "packageName"}, produces = MediaType.APPLICATION_XML_VALUE) @PostMapping(value = "/delete", params = {"username", "packageName"}, produces = MediaType.APPLICATION_XML_VALUE)
public ResponseEntity<MonitoringPackageDeleteResponse> deletePackage(@RequestParam("username") String username, @RequestParam("packageName") String packageName) { public ResponseEntity<MonitoringPackageDeleteResponse> deletePackage(@RequestParam("username") String username, @RequestParam("packageName") String packageName) {
return signalFacade.deletePackage(username, packageName); return signalFacade.deletePackage(username, packageName);

View file

@ -15,5 +15,6 @@ public class UserPackage {
private String packageName; private String packageName;
private LocalDateTime createdAt; private LocalDateTime createdAt;
private String status; private String status;
private LocalDateTime deactivatedAt;
private String lastDownloadedReport; private String lastDownloadedReport;
} }

View file

@ -12,7 +12,9 @@ import lombok.Setter;
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { @XmlType(name = "", propOrder = {
"packageName", "packageName",
"createdAt" "createdAt",
"status",
"deactivatedAt"
}) })
public class Package { public class Package {
@ -20,4 +22,8 @@ public class Package {
protected String packageName; protected String packageName;
@XmlElement(name = "CreatedAt", required = true) @XmlElement(name = "CreatedAt", required = true)
protected String createdAt; protected String createdAt;
@XmlElement(name = "Status", required = false)
protected String status;
@XmlElement(name = "DeactivatedAt", required = false)
protected String deactivatedAt;
} }

View file

@ -16,7 +16,8 @@ public enum SignalError implements IEnumKeyCode {
ERROR_014("014", "Файл не найден"), ERROR_014("014", "Файл не найден"),
ERROR_015("015", "У данного пользователя не найдено активных пакетов"), ERROR_015("015", "У данного пользователя не найдено активных пакетов"),
ERROR_016("016", "Нет активного пакета с именем "), ERROR_016("016", "Нет активного пакета с именем "),
ERROR_017("017", "При обработке запроса произошла ошибка. Повторите запрос позже или обратитесь в службу технической поддержки"); // TODO get rid of duplicate? ERROR_017("017", "При обработке запроса произошла ошибка. Повторите запрос позже или обратитесь в службу технической поддержки"), // TODO get rid of duplicate?
ERROR_019("019", "У данного пользователя не найдено ни одного пакета");
private final String code; private final String code;
private final String message; private final String message;

View file

@ -281,6 +281,43 @@ public class SignalFacade {
} }
} }
public ResponseEntity<MonitoringActivePackagesResponse> findAllPackages(MonitoringActivePackagesRequest activePackagesRequest) {
try {
AuthorizationService.AuthResult authResult = authorizationService.findAuthInfo(activePackagesRequest.getUserId(), activePackagesRequest.getPassword());
if (!authResult.isSuccess()) {
throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringActivePackagesError);
}
List<UserPackage> activePackages = signalService.findAllPackages(activePackagesRequest.getUserId());
if (!activePackages.isEmpty()) {
MonitoringActivePackagesResponse response = new MonitoringActivePackagesResponse();
response.setStatus("OK");
response.setMembercode(activePackagesRequest.getUserId().substring(0, 6));
Packages packages = new Packages();
activePackages.forEach(data -> {
Package pack = new Package();
pack.setPackageName(data.getPackageName());
pack.setCreatedAt(data.getCreatedAt() != null ? data.getCreatedAt().toString() : null);
pack.setStatus(data.getStatus());
if (data.getStatus().equals(Status.DELETED.name())) {
pack.setDeactivatedAt(data.getDeactivatedAt() != null ? data.getDeactivatedAt().toString() : null);
}
packages.getPackages().add(pack);
});
response.setPackages(packages);
return ResponseEntity.ok(response);
} else {
throw clientExcp(SignalError.ERROR_019, XmlErrorFormat.MonitoringActivePackagesError);
}
} catch (Exception e) {
if (e instanceof SignalClientException) {
throw (SignalClientException) e;
}
log.error(e.getMessage(), e);
throw serverExcp(SignalError.ERROR_013, XmlErrorFormat.MonitoringActivePackagesError);
}
}
public ResponseEntity<MonitoringPackageDeleteResponse> deletePackage(String username, String packageName) { public ResponseEntity<MonitoringPackageDeleteResponse> deletePackage(String username, String packageName) {
try { try {
if (!signalService.isPackageExists(username, packageName)) { if (!signalService.isPackageExists(username, packageName)) {

View file

@ -29,4 +29,6 @@ public interface UserPackageMapper {
List<UserPackage> findUserPackages(@Param("userId") String userId, @Param("statuses") List<String> status); List<UserPackage> findUserPackages(@Param("userId") String userId, @Param("statuses") List<String> status);
List<UserPackage> findAllPackagesByStatus(@Param("status") String status); List<UserPackage> findAllPackagesByStatus(@Param("status") String status);
List<UserPackage> findAllPackagesByUserId(@Param("userId") String userId);
} }

View file

@ -310,6 +310,10 @@ public class SignalService {
return userPackageService.findUserPackages(userId, Status.ON_MONITORING, Status.PROCESSING); return userPackageService.findUserPackages(userId, Status.ON_MONITORING, Status.PROCESSING);
} }
public List<UserPackage> findAllPackages(String userId) {
return userPackageService.findAllPackagesByUserId(userId);
}
public boolean isPackageExists(String username, String packageName) { public boolean isPackageExists(String username, String packageName) {
return userPackageService.isPackageExists(username, packageName, Status.ON_MONITORING); return userPackageService.isPackageExists(username, packageName, Status.ON_MONITORING);
} }

View file

@ -54,6 +54,10 @@ public class UserPackageService {
return mapper.findUserPackages(userId.substring(0, 6), Arrays.stream(status).map(Enum::name).toList()); return mapper.findUserPackages(userId.substring(0, 6), Arrays.stream(status).map(Enum::name).toList());
} }
public List<UserPackage> findAllPackagesByUserId(String userId) {
return mapper.findAllPackagesByUserId(userId.substring(0, 6));
}
public List<UserPackage> findAllPackagesByStatus(Status status) { public List<UserPackage> findAllPackagesByStatus(Status status) {
return mapper.findAllPackagesByStatus(status.name()); return mapper.findAllPackagesByStatus(status.name());
} }

View file

@ -11,6 +11,7 @@
<result property="packageName" column="package_name"/> <result property="packageName" column="package_name"/>
<result property="createdAt" column="created_at"/> <result property="createdAt" column="created_at"/>
<result property="status" column="status"/> <result property="status" column="status"/>
<result property="deactivatedAt" column="deactivated_at"/>
<result property="lastDownloadedReport" column="last_downloaded_report"/> <result property="lastDownloadedReport" column="last_downloaded_report"/>
</resultMap> </resultMap>
@ -70,7 +71,7 @@
<select id="findPackage" resultMap="packageDataResultMap" <select id="findPackage" resultMap="packageDataResultMap"
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage"> resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
SELECT id, membercode, package_name, created_at, status, last_downloaded_report SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report
FROM signals_user_packages FROM signals_user_packages
WHERE id = #{id} WHERE id = #{id}
LIMIT 1 LIMIT 1
@ -78,7 +79,7 @@
<select id="findUserPackages" resultMap="packageDataResultMap" <select id="findUserPackages" resultMap="packageDataResultMap"
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage"> resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
SELECT id, membercode, package_name, created_at, status, last_downloaded_report SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report
FROM signals_user_packages FROM signals_user_packages
WHERE membercode IS NOT NULL WHERE membercode IS NOT NULL
AND LEFT(membercode, 6) = #{userId} AND LEFT(membercode, 6) = #{userId}
@ -88,9 +89,17 @@
</foreach> </foreach>
</select> </select>
<select id="findAllPackagesByUserId" resultMap="packageDataResultMap"
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report
FROM signals_user_packages
WHERE membercode IS NOT NULL
AND LEFT(membercode, 6) = #{userId}
</select>
<select id="findAllPackagesByStatus" resultMap="packageDataResultMap" <select id="findAllPackagesByStatus" resultMap="packageDataResultMap"
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage"> resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
SELECT id, membercode, package_name, created_at, status, last_downloaded_report SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report
FROM signals_user_packages FROM signals_user_packages
WHERE status = #{status} WHERE status = #{status}
</select> </select>