DataJPA/src/main/kotlin/com/chantha/jdbc/jpa/service/product/ProductServiceImpl.kt
2020-05-17 13:35:32 +07:00

36 lines
1.2 KiB
Kotlin

package com.chantha.jdbc.jpa.service.product
import com.chantha.jdbc.jpa.model.OrderDetail
import com.chantha.jdbc.jpa.model.Product
import com.chantha.jdbc.jpa.model.view.OrderDetailView
import com.chantha.jdbc.jpa.model.view.ProductWithOrderDetail
import com.chantha.jdbc.jpa.repo.ProductRepo
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Service
import java.util.*
@Service
class ProductServiceImpl @Autowired constructor(private val productRepo: ProductRepo) : ProductService {
override fun fetchAllProducts(): List<ProductWithOrderDetail> {
return productRepo.findAll().map { toView(it) }
}
private fun toView(data: Product): ProductWithOrderDetail {
val view = ProductWithOrderDetail()
view.productId = data.productId
view.productName = data.productName
view.details = data.orderDetails.map { toOrderDetailView(it) }
return view
}
private fun toOrderDetailView(data: OrderDetail): OrderDetailView {
val view = OrderDetailView()
view.orderDetailId = data.orderDetailId
view.price = data.price
view.qty = data.qty
return view
}
}