diff --git a/src/main/java/ru/soune/nocopy/handler/UserInfoHandler.java b/src/main/java/ru/soune/nocopy/handler/UserInfoHandler.java index 850723b..30b8a80 100644 --- a/src/main/java/ru/soune/nocopy/handler/UserInfoHandler.java +++ b/src/main/java/ru/soune/nocopy/handler/UserInfoHandler.java @@ -15,6 +15,7 @@ import ru.soune.nocopy.dto.BaseResponse; import ru.soune.nocopy.dto.MessageCode; import ru.soune.nocopy.dto.user.UserAdditionalInfoBody; +import ru.soune.nocopy.entity.tarif.TariffInfo; import ru.soune.nocopy.entity.user.User; import ru.soune.nocopy.entity.user.UserAdditionalInfo; import ru.soune.nocopy.entity.user.UserAdditionalInfoAnswer; @@ -25,6 +26,7 @@ import ru.soune.nocopy.service.user.AdditionalInfoService; import ru.soune.nocopy.service.user.UserSpecifications; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Optional; @@ -138,11 +140,45 @@ public class UserInfoHandler implements RequestHandler { Page allUsers = userRepository.findAll(spec, pageable); + Page> dtoPage = allUsers.map(user -> { + Map map = new LinkedHashMap<>(); + map.put("id", user.getId()); + map.put("fullName", user.getFullName()); + map.put("email", user.getEmail()); + map.put("phone", user.getPhone()); + map.put("emailVerified", user.isEmailVerified()); + map.put("subscriptionType", user.getSubscriptionType().name()); + map.put("genderType", user.getGenderType().name()); + map.put("isActive", user.isActive()); + map.put("birthday", user.getBirthday() != null ? user.getBirthday().toString() : null); + map.put("createdAt", user.getCreatedAt() != null ? user.getCreatedAt().toString() : null); + map.put("lastLoginAt", user.getLastLoginAt() != null ? user.getLastLoginAt().toString() : null); + map.put("companyName", user.getCompanyName()); + map.put("verificationStatus", user.getVerificationStatus().name()); + + TariffInfo tariff = user.getActiveTariffInfo(); + if (tariff != null) { + map.put("tokens", tariff.getTokens()); + map.put("boughtTokens", tariff.getBoughtTokens()); + map.put("tariffStatus", tariff.getStatus().name()); + map.put("tariffEndDate", tariff.getEndTariff() != null ? tariff.getEndTariff().toString() : null); + } + + return map; + }); + + Map response = new LinkedHashMap<>(); + response.put("content", dtoPage.getContent()); + response.put("totalElements", allUsers.getTotalElements()); + response.put("totalPages", allUsers.getTotalPages()); + response.put("number", allUsers.getNumber()); + response.put("size", allUsers.getSize()); + return new BaseResponse( request.getMsgId(), MessageCode.SUCCESS.getCode(), MessageCode.SUCCESS.getDescription(), - allUsers); + response); }