product.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package controllers
  2. import (
  3. "cc-officialweb/models"
  4. "cc-officialweb/service"
  5. "cc-officialweb/unity"
  6. "encoding/json"
  7. beego "github.com/beego/beego/v2/server/web"
  8. "github.com/go-playground/validator/v10"
  9. "strconv"
  10. )
  11. type ProductController struct {
  12. beego.Controller
  13. }
  14. // Get 产品详情页
  15. func (s *ProductController) Get() {
  16. var success []string
  17. ptype := s.GetString("ptype")
  18. product := service.GetProduct(ptype)
  19. //获取成功案例轮播图
  20. exams := service.GetResource("example")
  21. for _, v := range exams {
  22. success = append(success, v.Url)
  23. }
  24. //数据大屏展示
  25. data, err := service.GetData(false)
  26. if err == nil {
  27. s.Data["Datas"] = data
  28. } else {
  29. s.Data["Datas"] = "未获得数据"
  30. }
  31. s.Data["Products"] = product
  32. s.Data["example"] = success
  33. s.TplName = "product.html"
  34. }
  35. // AddProduct 添加产品
  36. func (s *ProductController) AddProduct() {
  37. var product models.ProductDto
  38. err := json.Unmarshal(s.Ctx.Input.RequestBody, &product)
  39. if err != nil {
  40. s.Data["json"] = &JSON{Code: 101, Msg: "json解析失败"}
  41. s.ServeJSON()
  42. return
  43. }
  44. if service.AddProduct(product) {
  45. s.Data["json"] = &JSON{Code: 200, Msg: "添加成功"}
  46. s.ServeJSON()
  47. } else {
  48. s.Data["json"] = &JSON{Code: 102, Msg: "添加失败"}
  49. s.ServeJSON()
  50. return
  51. }
  52. }
  53. // DeleteProductById 根据id删除产品
  54. func (s *ProductController) DeleteProductById() {
  55. id := s.GetString("id")
  56. atoi, _ := strconv.Atoi(id)
  57. validate := validator.New()
  58. err2 := validate.Var(atoi, "required")
  59. if err2 != nil {
  60. s.Data["json"] = &JSON{Code: 103, Msg: "id不能为空"}
  61. s.ServeJSON()
  62. return
  63. }
  64. _, err := unity.DeleteById(atoi, models.Products{})
  65. if err != nil {
  66. s.Data["json"] = map[string]interface{}{"code": 101, "msg": "删除失败"}
  67. s.ServeJSON()
  68. return
  69. } else {
  70. s.Data["json"] = map[string]interface{}{"code": 200, "msg": "删除成功"}
  71. s.ServeJSON()
  72. }
  73. }
  74. // GetAllProduct 获取所有产品信息
  75. func (s *ProductController) GetAllProduct() {
  76. var page unity.PageParams
  77. err := json.Unmarshal(s.Ctx.Input.RequestBody, &page)
  78. if err != nil {
  79. s.Data["json"] = &JSON{Code: 101, Msg: "参数错误"}
  80. s.ServeJSON()
  81. return
  82. }
  83. result, total, current, err := unity.Paginate(page, models.Products{})
  84. if err != nil {
  85. s.Data["json"] = &JSON{Code: 101, Msg: "查询失败"}
  86. s.ServeJSON()
  87. return
  88. } else {
  89. s.Data["json"] = &JSON{Code: 200, Msg: "查询成功", Data: &JSONS{
  90. Current: current,
  91. Size: total,
  92. Data: result,
  93. }}
  94. s.ServeJSON()
  95. return
  96. }
  97. }
  98. // UpdateProductById 根据id进行修改产品
  99. func (s *ProductController) UpdateProductById() {
  100. var productDto models.ProductDto
  101. var product models.Products
  102. err := json.Unmarshal(s.Ctx.Input.RequestBody, &productDto)
  103. if err != nil {
  104. s.Data["json"] = &JSON{Code: 101, Msg: "json解析失败"}
  105. s.ServeJSON()
  106. return
  107. }
  108. product.Title = productDto.Title //标题
  109. product.Synopsis = productDto.Synopsis //简介
  110. product.Detail = productDto.Detail //详情
  111. product.Type = productDto.Type //类型 1.产品 2.服务
  112. product.Ptype = productDto.Ptype //产品类型 软件 硬件
  113. product.IsIndex = productDto.IsIndex //是否首页显示
  114. product.Url = productDto.Url //图片链接
  115. product.ProductIntroduction = productDto.ProductIntroduction //产品介绍
  116. product.TechnicalParameters = productDto.TechnicalParameters //技术参数
  117. product.Instructions = productDto.Instructions //使用说明
  118. product.SupportingSoftware = productDto.SupportingSoftware //配套软件
  119. product.OptionalAccessories = productDto.OptionalAccessories //可选配件
  120. product.IsActive = productDto.IsActive
  121. _, err = unity.UpdateById(productDto.ID, &product)
  122. if err != nil {
  123. s.Data["json"] = &JSON{Code: 102, Msg: err.Error()}
  124. s.ServeJSON()
  125. return
  126. } else {
  127. s.Data["json"] = &JSON{Code: 200, Msg: "修改成功"}
  128. s.ServeJSON()
  129. }
  130. }
  131. // GetProduct 根据id获取产品信息
  132. func (s *ProductController) GetProduct() {
  133. getString := s.GetString("id")
  134. id, _ := strconv.Atoi(getString)
  135. validate := validator.New()
  136. err2 := validate.Var(id, "required")
  137. if err2 != nil {
  138. s.Data["json"] = &JSON{Code: 103, Msg: "id不能为空"}
  139. s.ServeJSON()
  140. return
  141. }
  142. result, err := unity.GetById(id, &models.Products{})
  143. if err != nil {
  144. s.Data["json"] = &JSON{Code: 101, Msg: "获取失败"}
  145. s.ServeJSON()
  146. return
  147. } else {
  148. s.Data["json"] = &JSON{Code: 200, Msg: "获取成功", Data: result}
  149. s.ServeJSON()
  150. return
  151. }
  152. }