cms_news.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. package admin
  2. import (
  3. "gfast/app/model/admin/cms_news"
  4. "gfast/app/service/admin/cms_service"
  5. "gfast/app/service/admin/dict_service"
  6. "gfast/app/service/admin/user_service"
  7. "gfast/library/response"
  8. "github.com/gogf/gf/frame/g"
  9. "github.com/gogf/gf/net/ghttp"
  10. "github.com/gogf/gf/util/gvalid"
  11. )
  12. type CmsNews struct{}
  13. // @Summary 信息列表
  14. // @Description 信息列表
  15. // @Tags 文章管理
  16. // @Param data body cms_news.ReqListSearchParams true "data"
  17. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  18. // @Router /system/cms/news/list [get]
  19. // @Security
  20. func (c *CmsNews) List(r *ghttp.Request) {
  21. var req *cms_news.ReqListSearchParams
  22. //获取参数
  23. if err := r.Parse(&req); err != nil {
  24. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  25. }
  26. total, page, list, err := cms_service.NewsListByPage(req)
  27. if err != nil {
  28. response.FailJson(true, r, err.Error())
  29. }
  30. //获取可选栏目
  31. menus, err := cms_service.GetPublishableMenuList(req.CateId...)
  32. if err != nil {
  33. response.FailJson(true, r, err.Error())
  34. }
  35. //文章发布状态
  36. statusOptions, err := dict_service.GetDictWithDataByType("cms_news_pub_type", "", "")
  37. if err != nil {
  38. response.FailJson(true, r, err.Error())
  39. }
  40. //文章附加状态
  41. attrOptions, err := dict_service.GetDictWithDataByType("cms_news_attr", "", "")
  42. if err != nil {
  43. response.FailJson(true, r, err.Error())
  44. }
  45. //文章附加状态
  46. typeOptions, err := dict_service.GetDictWithDataByType("cms_news_type", "", "")
  47. if err != nil {
  48. response.FailJson(true, r, err.Error())
  49. }
  50. result := g.Map{
  51. "currentPage": page,
  52. "total": total,
  53. "list": list,
  54. "menus": menus,
  55. "statusOptions": statusOptions,
  56. "attrOptions": attrOptions,
  57. "typeOptions": typeOptions,
  58. }
  59. response.SusJson(true, r, "信息列表", result)
  60. }
  61. // @Summary 添加信息
  62. // @Description 添加信息
  63. // @Tags 文章管理
  64. // @Param data body cms_news.ReqAddParams true "data"
  65. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  66. // @Router /system/cms/news/add [post]
  67. // @Security
  68. func (c *CmsNews) Add(r *ghttp.Request) {
  69. if r.Method == "POST" {
  70. var req *cms_news.ReqAddParams
  71. //获取参数
  72. if err := r.Parse(&req); err != nil {
  73. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  74. }
  75. cateIds := r.GetInts("cateIds")
  76. userId := user_service.GetLoginID(r)
  77. _, err := cms_service.AddNews(req, cateIds, userId)
  78. if err != nil {
  79. response.FailJson(true, r, err.Error())
  80. }
  81. response.SusJson(true, r, "添加信息成功")
  82. }
  83. //获取可选栏目
  84. menus, err := cms_service.GetPublishableMenuList()
  85. if err != nil {
  86. response.FailJson(true, r, err.Error())
  87. }
  88. res := g.Map{
  89. "menus": menus,
  90. }
  91. response.SusJson(true, r, "添加信息", res)
  92. }
  93. // @Summary 修改信息
  94. // @Description 修改信息
  95. // @Tags 文章管理
  96. // @Param data body cms_news.ReqEditParams true "data"
  97. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  98. // @Router /system/cms/news/edit [post]
  99. // @Security
  100. func (c *CmsNews) Edit(r *ghttp.Request) {
  101. if r.Method == "POST" {
  102. var req *cms_news.ReqEditParams
  103. //获取参数
  104. if err := r.Parse(&req); err != nil {
  105. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  106. }
  107. cateIds := r.GetInts("cateIds")
  108. err := cms_service.EditNews(req, cateIds)
  109. if err != nil {
  110. response.FailJson(true, r, err.Error())
  111. }
  112. response.SusJson(true, r, "修改信息成功")
  113. }
  114. id := r.GetInt("id")
  115. if id == 0 {
  116. response.FailJson(true, r, "参数错误")
  117. }
  118. //获取文章信息
  119. news, err := cms_service.GetNewsById(id)
  120. if err != nil {
  121. response.FailJson(true, r, err.Error())
  122. }
  123. checkedCategoryId, err := cms_service.GetCheckedCategoryIdByNewsId(news.Id)
  124. if err != nil {
  125. response.FailJson(true, r, err.Error())
  126. }
  127. res := g.Map{
  128. "menus": checkedCategoryId,
  129. "news": news,
  130. }
  131. response.SusJson(true, r, "添加信息", res)
  132. }
  133. // @Summary 删除信息
  134. // @Description 删除信息
  135. // @Tags 文章管理
  136. // @Param ids body integer true "ids[1,2,3..]"
  137. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  138. // @Router /system/cms/news/delete [delete]
  139. // @Security
  140. func (c *CmsNews) Delete(r *ghttp.Request) {
  141. ids := r.GetInts("ids")
  142. if len(ids) == 0 {
  143. response.FailJson(true, r, "删除失败")
  144. }
  145. err := cms_service.DeleteCmsByIds(ids)
  146. if err != nil {
  147. response.FailJson(true, r, "删除失败")
  148. }
  149. response.SusJson(true, r, "删除信息成功")
  150. }
  151. // @Summary 获取模型字段
  152. // @Description 获取模型字段
  153. // @Tags 栏目管理
  154. // @Param cateIds body integer true "cateIds[1,2,3...]"
  155. // @Param newsId body integer true "newsId"
  156. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  157. // @Router /system/cms/news/getModelFields [get]
  158. // @Security
  159. func (c *CmsNews) GetModelFields(r *ghttp.Request) {
  160. //获取栏目ID
  161. cateIds := r.GetInts("cateIds")
  162. //文章id
  163. newsId := r.GetInt64("newsId")
  164. res, err := cms_service.GetModelFieldsByCateIds(r, cateIds, newsId)
  165. if err != nil {
  166. response.FailJson(true, r, err.Error())
  167. }
  168. response.SusJson(true, r, "ok", res)
  169. }