cms_news.go 5.2 KB

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