This is an automated email from the ASF dual-hosted git repository. ofuks pushed a commit to branch DLAB-1571 in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/DLAB-1571 by this push: new 2aad4d7 Added changes to Azure remote billing 2aad4d7 is described below commit 2aad4d787c61786ce80df9ba2380cbd65f62a600 Author: Oleh Fuks <olegfuk...@gmail.com> AuthorDate: Wed Mar 18 15:26:27 2020 +0200 Added changes to Azure remote billing --- .../billing/azure/dao/impl/BillingDAOImpl.java | 35 +++++++++------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/dao/impl/BillingDAOImpl.java b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/dao/impl/BillingDAOImpl.java index 34901d0..2e3da13 100644 --- a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/dao/impl/BillingDAOImpl.java +++ b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/dao/impl/BillingDAOImpl.java @@ -20,10 +20,10 @@ package com.epam.dlab.billing.azure.dao.impl; import com.epam.dlab.billing.azure.dao.BillingDAO; +import com.epam.dlab.billing.azure.model.AzureDailyResourceInvoice; import com.epam.dlab.dto.billing.BillingData; import com.epam.dlab.exceptions.DlabException; import lombok.extern.slf4j.Slf4j; -import org.bson.Document; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.aggregation.Aggregation; import org.springframework.data.mongodb.core.aggregation.GroupOperation; @@ -37,12 +37,6 @@ import java.util.List; import java.util.Optional; import java.util.stream.Collectors; -import static com.epam.dlab.model.aws.ReportLine.FIELD_COST; -import static com.epam.dlab.model.aws.ReportLine.FIELD_CURRENCY_CODE; -import static com.epam.dlab.model.aws.ReportLine.FIELD_DLAB_ID; -import static com.epam.dlab.model.aws.ReportLine.FIELD_PRODUCT; -import static com.epam.dlab.model.aws.ReportLine.FIELD_RESOURCE_TYPE; -import static com.epam.dlab.model.aws.ReportLine.FIELD_USAGE_DATE; import static org.springframework.data.mongodb.core.aggregation.Aggregation.group; import static org.springframework.data.mongodb.core.aggregation.Aggregation.newAggregation; @@ -61,7 +55,7 @@ public class BillingDAOImpl implements BillingDAO { GroupOperation groupOperation = getGroupOperation(); Aggregation aggregation = newAggregation(groupOperation); - return mongoTemplate.aggregate(aggregation, "billing", Document.class).getMappedResults() + return mongoTemplate.aggregate(aggregation, "billing", AzureDailyResourceInvoice.class).getMappedResults() .stream() .map(this::toBillingData) .collect(Collectors.toList()); @@ -78,7 +72,7 @@ public class BillingDAOImpl implements BillingDAO { MatchOperation matchOperation = Aggregation.match(Criteria.where("dlab_id").in(dlabIds)); Aggregation aggregation = newAggregation(matchOperation, groupOperation); - return mongoTemplate.aggregate(aggregation, "billing", Document.class).getMappedResults() + return mongoTemplate.aggregate(aggregation, "billing", AzureDailyResourceInvoice.class).getMappedResults() .stream() .map(this::toBillingData) .collect(Collectors.toList()); @@ -89,21 +83,20 @@ public class BillingDAOImpl implements BillingDAO { } private GroupOperation getGroupOperation() { - return group(FIELD_PRODUCT, FIELD_CURRENCY_CODE, FIELD_RESOURCE_TYPE, FIELD_DLAB_ID) - .min(FIELD_USAGE_DATE).as("from") - .max(FIELD_USAGE_DATE).as("to") - .sum(FIELD_COST).as(FIELD_COST); + return group("meterCategory", "currencyCode", "dlabId") + .min("usageStartDate").as("usageStartDate") + .max("usageEndDate").as("usageEndDate") + .sum("cost").as("cost"); } - private BillingData toBillingData(Document billingData) { + private BillingData toBillingData(AzureDailyResourceInvoice billingData) { return BillingData.builder() - .tag(billingData.getString(FIELD_DLAB_ID)) - .usageDateFrom(Optional.ofNullable(billingData.getString("from")).map(LocalDate::parse).orElse(null)) - .usageDateTo(Optional.ofNullable(billingData.getString("to")).map(LocalDate::parse).orElse(null)) - .product(billingData.getString(FIELD_PRODUCT)) - .usageType(billingData.getString(FIELD_RESOURCE_TYPE)) - .cost(BigDecimal.valueOf(billingData.getDouble(FIELD_COST)).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue()) - .currency(billingData.getString(FIELD_CURRENCY_CODE)) + .tag(billingData.getDlabId()) + .usageDateFrom(Optional.ofNullable(billingData.getUsageStartDate()).map(LocalDate::parse).orElse(null)) + .usageDateTo(Optional.ofNullable(billingData.getUsageEndDate()).map(LocalDate::parse).orElse(null)) + .product(billingData.getMeterCategory()) + .cost(BigDecimal.valueOf(billingData.getCost()).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue()) + .currency(billingData.getCurrencyCode()) .build(); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org