product_service.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package product
  2. import (
  3. "eta/eta_mini_ht_api/common/exception"
  4. merchantService "eta/eta_mini_ht_api/domian/merchant"
  5. "github.com/shopspring/decimal"
  6. "time"
  7. )
  8. type ProductDTO struct {
  9. Title string
  10. Description string
  11. Price decimal.Decimal
  12. CoverSrc string
  13. RiskLevel string
  14. Type string
  15. BeginDate string
  16. EndDate string
  17. }
  18. func GetProductInfoById(productId int) (product ProductDTO, err error) {
  19. merchantProduct, err := merchantService.GetMerchantProductById(productId)
  20. if err != nil {
  21. err = exception.NewWithException(exception.ProductInfoError, err.Error())
  22. return
  23. }
  24. product = convertToProductDTO(merchantProduct)
  25. return
  26. }
  27. func convertToProductDTO(product merchantService.MerchantProductDTO) (productDTO ProductDTO) {
  28. beginDate := time.Now()
  29. endDate := beginDate.Add(time.Duration(product.ValidDays) * 24 * time.Hour)
  30. productDTO = ProductDTO{
  31. Title: product.Title,
  32. Description: product.Description,
  33. Price: product.Price,
  34. RiskLevel: product.RiskLevel,
  35. CoverSrc: product.CoverSrc,
  36. Type: product.Type,
  37. BeginDate: beginDate.Format(time.DateOnly),
  38. EndDate: endDate.Format(time.DateOnly),
  39. }
  40. return
  41. }