new.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package controllers
  2. import (
  3. "cc-officialweb/models"
  4. "cc-officialweb/service"
  5. "cc-officialweb/unity"
  6. "cc-officialweb/utils"
  7. "encoding/json"
  8. beego "github.com/beego/beego/v2/server/web"
  9. "github.com/go-playground/validator/v10"
  10. "html/template"
  11. "strconv"
  12. "time"
  13. )
  14. type NewController struct {
  15. beego.Controller
  16. }
  17. func (n *NewController) Get() {
  18. types := n.GetString("types")
  19. news := service.GetNews(types)
  20. n.Data["News"] = news
  21. n.TplName = "news.html"
  22. }
  23. // NewDetail 根据id获取对应新闻详情
  24. func (n *NewController) NewDetail() {
  25. var success []string
  26. param := n.Ctx.Input.Param(":id")
  27. atoi, _ := strconv.Atoi(param)
  28. id, err := unity.GetById(atoi, &models.News{})
  29. if err == nil {
  30. n.Data["detail"] = id
  31. }
  32. exams := service.GetResource("example")
  33. for _, v := range exams {
  34. success = append(success, v.Url)
  35. }
  36. n.Data["example"] = success
  37. n.TplName = "news-detail.html"
  38. }
  39. // GetAllNew 获得所有新闻消息
  40. func (n *NewController) GetAllNew() {
  41. var page unity.PageParams
  42. err := json.Unmarshal(n.Ctx.Input.RequestBody, &page)
  43. if err != nil {
  44. n.Data["json"] = &JSON{Code: 101, Msg: "参数错误"}
  45. n.ServeJSON()
  46. return
  47. }
  48. result, total, current, err := unity.Paginate(page, models.News{})
  49. if err != nil {
  50. n.Data["json"] = &JSON{Code: 101, Msg: "查询失败"}
  51. n.ServeJSON()
  52. return
  53. } else {
  54. n.Data["json"] = &JSON{Code: 200, Msg: "查询成功", Data: &JSONS{
  55. Current: current,
  56. Size: total,
  57. Data: result,
  58. }}
  59. n.ServeJSON()
  60. return
  61. }
  62. }
  63. //GetNewDetail 获得详细新闻
  64. func (n *NewController) GetNewDetail() {
  65. getString := n.GetString("id")
  66. id, _ := strconv.Atoi(getString)
  67. validate := validator.New()
  68. err2 := validate.Var(id, "required")
  69. if err2 != nil {
  70. n.Data["json"] = &JSON{Code: 103, Msg: "id不能为空"}
  71. n.ServeJSON()
  72. return
  73. }
  74. result, err := unity.GetById(id, &models.News{})
  75. if err != nil {
  76. n.Data["json"] = &JSON{Code: 101, Msg: "获取失败"}
  77. n.ServeJSON()
  78. return
  79. } else {
  80. n.Data["json"] = &JSON{Code: 200, Msg: "获取成功", Data: result}
  81. n.ServeJSON()
  82. return
  83. }
  84. }
  85. // GetNewsType 获取新闻类型
  86. func (n *NewController) GetNewsType() {
  87. var news []models.News
  88. tx := utils.DB.Find(&news)
  89. if tx.RowsAffected > 0 {
  90. n.Data["json"] = &JSON{Code: 200, Msg: "获取成功", Data: news}
  91. n.ServeJSON()
  92. return
  93. } else {
  94. n.Data["json"] = &JSON{Code: 101, Msg: "获取失败"}
  95. n.ServeJSON()
  96. return
  97. }
  98. }
  99. // UpdateNews 修改新闻
  100. func (n *NewController) UpdateNews() {
  101. var newsdto models.NewsDto
  102. var news models.News
  103. err := json.Unmarshal(n.Ctx.Input.RequestBody, &newsdto)
  104. if err != nil {
  105. n.Data["json"] = &JSON{Code: 101, Msg: "json解析失败"}
  106. n.ServeJSON()
  107. return
  108. }
  109. news.Title = newsdto.Title
  110. news.Detail = newsdto.Detail
  111. news.Image = newsdto.Image
  112. news.Synopsis = newsdto.Synopsis
  113. news.IsActive = newsdto.IsActive
  114. news.Types = newsdto.Types
  115. _, err = unity.UpdateById(newsdto.ID, &news)
  116. if err != nil {
  117. n.Data["json"] = &JSON{Code: 102, Msg: err.Error()}
  118. n.ServeJSON()
  119. return
  120. } else {
  121. n.Data["json"] = &JSON{Code: 200, Msg: "修改成功"}
  122. n.ServeJSON()
  123. }
  124. }
  125. // DeleteNewsById 根据id删除新闻
  126. func (n *NewController) DeleteNewsById() {
  127. id := n.GetString("id")
  128. atoi, _ := strconv.Atoi(id)
  129. validate := validator.New()
  130. err2 := validate.Var(atoi, "required")
  131. if err2 != nil {
  132. n.Data["json"] = &JSON{Code: 103, Msg: "id不能为空"}
  133. n.ServeJSON()
  134. return
  135. }
  136. _, err := unity.DeleteById(atoi, models.News{})
  137. if err != nil {
  138. n.Data["json"] = map[string]interface{}{"code": 101, "msg": "删除失败"}
  139. n.ServeJSON()
  140. return
  141. } else {
  142. n.Data["json"] = map[string]interface{}{"code": 200, "msg": "删除成功"}
  143. n.ServeJSON()
  144. }
  145. }
  146. // AddNews 添加新闻
  147. func (n *NewController) AddNews() {
  148. var newsDto models.NewsDto
  149. err := json.Unmarshal(n.Ctx.Input.RequestBody, &newsDto)
  150. if err != nil {
  151. n.Data["json"] = &JSON{Code: 101, Msg: "json解析失败"}
  152. n.ServeJSON()
  153. return
  154. }
  155. if service.AddNews(newsDto) {
  156. n.Data["json"] = &JSON{Code: 200, Msg: "添加成功"}
  157. n.ServeJSON()
  158. } else {
  159. n.Data["json"] = &JSON{Code: 102, Msg: "添加失败"}
  160. n.ServeJSON()
  161. return
  162. }
  163. }