как реализовать функцию в котлине с картой и списком - PullRequest
0 голосов
/ 01 ноября 2019

Реализация OrdersAnalyzer # totalDailySales метод, который возвращает карту с DayOfWeek в качестве ключа и сумму заказанного количества для всех продуктов в качестве значения. Метод должен всегда возвращать карту. Если в течение нескольких дней нет заказов, пропустите запись этого дня на карте.

Ваша реализация должна вернуть следующие выходные данные, например, данные:

{
"DayOfWeek.MONDAY" : 17,
"DayOfWeek.SATURDAY" : 6,
"DayOfWeek.SUNDAY" : 9
}

Коллекция заказов:

[
{
orderId: 554,
creationDate: "2017-03-25T10:35:20", // Saturday
orderLines: [
{productId: 9872, name: 'Pencil', quantity: 3, unitPrice: 3.00}
]
},
{
orderId: 555,
creationDate: "2017-03-25T11:24:20", // Saturday
orderLines: [
{productId: 9872, name: 'Pencil', quantity: 2, unitPrice: 3.00},
{productId: 1746, name: 'Eraser', quantity: 1, unitPrice: 1.00}
]
},
{
orderId: 453,
creationDate: "2017-03-27T14:53:12", // Monday
orderLines: [
{productId: 5723, name: 'Pen', quantity: 4, unitPrice: 4.22},
{productId: 9872, name: 'Pencil', quantity: 3, unitPrice: 3.12},
{productId: 3433, name: 'Erasers Set', quantity: 1, unitPrice: 6.15}
]
},
{
orderId: 431,
creationDate: "2017-03-20T12:15:02", // Monday
orderLines: [
{productId: 5723, name: 'Pen', quantity: 7, unitPrice: 4.22},
{productId: 3433, name: 'Erasers Set', quantity: 2, unitPrice: 6.15}
]
},
{
orderId: 690,
creationDate: "2017-03-26T11:14:00", // Sunday
orderLines: [
{productId: 9872, name: 'Pencil', quantity: 4, unitPrice: 3.12},
{productId: 4098, name: 'Marker', quantity: 5, unitPrice: 4.50}
]
}
];

Вот код. Вам необходимо реализовать функцию totalDailySales:

class OrdersAnalyzer {
    data class Order(val orderId: Int, val creationDate:
LocalDateTime, val orderLines: List<OrderLine>)
data class OrderLine(val productId: Int, val name: String, val
quantity: Int, val unitPrice: BigDecimal)
fun totalDailySales(orders: List<Order>): Map<DayOfWeek, Int> {
//TODO("implement the function")
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...