product_controller.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package product
  2. import (
  3. "eta/eta_mini_ht_api/common/exception"
  4. "eta/eta_mini_ht_api/controllers"
  5. productService "eta/eta_mini_ht_api/service/product"
  6. )
  7. type ProductController struct {
  8. controllers.BaseController
  9. }
  10. // GetProductInfo 获取商品信息
  11. // @Summary 获取商品信息
  12. // @Description 获取商品信息
  13. // @Success 200 {object} controllers.BaseResponse
  14. // @router /getProductInfo [get]
  15. func (p *ProductController) GetProductInfo(productId int) {
  16. controllers.Wrap(&p.BaseController, func() (result *controllers.WrapData, err error) {
  17. result = p.InitWrapData("获取商品详情失败")
  18. if productId <= 0 {
  19. err = exception.New(exception.IllegalProductId)
  20. p.FailedResult("获取商品详情失败", result)
  21. return
  22. }
  23. productInfo, err := productService.GetProductInfoById(productId)
  24. if err != nil {
  25. p.FailedResult("获取商品详情失败", result)
  26. return
  27. }
  28. p.SuccessResult("获取商品详情成功", productInfo, result)
  29. return
  30. })
  31. }
  32. // RelatePackage 获取商品信息
  33. // @Summary 获取商品信息
  34. // @Description 获取商品信息
  35. // @Success 200 {object} controllers.BaseResponse
  36. // @router /relatePackage [get]
  37. func (p *ProductController) RelatePackage(productId int) {
  38. controllers.Wrap(&p.BaseController, func() (result *controllers.WrapData, err error) {
  39. result = p.InitWrapData("获取关联套餐信息失败")
  40. if productId <= 0 {
  41. err = exception.New(exception.IllegalProductId)
  42. p.FailedResult("获取关联套餐信息失败", result)
  43. return
  44. }
  45. productInfo, err := productService.GetProductInfoById(productId)
  46. if err != nil {
  47. p.FailedResult("获取关联套餐信息失败", result)
  48. err = exception.New(exception.ProductTypeError)
  49. return
  50. }
  51. if productInfo.Type == "package" {
  52. p.FailedResult("该商品为套餐,无法获取想关联套餐商品", result)
  53. err = exception.New(exception.ProductTypeError)
  54. }
  55. productList, err := productService.GetRelatePackage(productInfo)
  56. if err != nil {
  57. p.FailedResult("获取关联套餐信息失败", result)
  58. return
  59. }
  60. p.SuccessResult("获取关联套餐信息成功", productList, result)
  61. return
  62. })
  63. }