34 lines
1.2 KiB
Kotlin
34 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
|
|
}
|
|
} |