bookmark_controller.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package user
  2. import (
  3. "eta/eta_mini_ht_api/common/component/cache"
  4. "eta/eta_mini_ht_api/common/exception"
  5. "eta/eta_mini_ht_api/controllers"
  6. chartService "eta/eta_mini_ht_api/service/media"
  7. "eta/eta_mini_ht_api/service/user"
  8. userService "eta/eta_mini_ht_api/service/user"
  9. )
  10. // BookMarkController Operations about bookmark
  11. type BookMarkController struct {
  12. controllers.BaseController
  13. redis *cache.RedisCache
  14. }
  15. const (
  16. Chart = "chart"
  17. Report = "report"
  18. )
  19. func (u *BookMarkController) Prepare() {
  20. u.redis = cache.GetInstance()
  21. }
  22. type BookMarkReq struct {
  23. SourceType string `json:"sourceType"`
  24. SourceId int `json:"sourceId"`
  25. ChartImage string `json:"chartImage"`
  26. ChartInfoId int `json:"chartInfoId"`
  27. ChartName string `json:"chartName"`
  28. UniqueCode string `json:"uniqueCode"`
  29. }
  30. // BookMark 收藏
  31. // @Summary 收藏
  32. // @Description 收藏
  33. // @Success 200 {object} controllers.BaseResponse
  34. // @router /bookMark [post]
  35. func (u *BookMarkController) BookMark() {
  36. controllers.Wrap(&u.BaseController, func() (result *controllers.WrapData, err error) {
  37. result = u.InitWrapData("收藏失败")
  38. bookMark := new(BookMarkReq)
  39. u.GetPostParams(bookMark)
  40. var userInfo user.User
  41. userInfo = u.Data["user"].(user.User)
  42. if bookMark.SourceType == "" {
  43. u.FailedResult("收藏失败", result)
  44. err = exception.New(exception.IllegalSourceType)
  45. return
  46. }
  47. if bookMark.SourceId == 0 {
  48. u.FailedResult("收藏失败", result)
  49. err = exception.New(exception.IllegalSourceId)
  50. return
  51. }
  52. err = userService.BookMark(userInfo.Id, bookMark.SourceId, bookMark.SourceType)
  53. if err != nil {
  54. err = exception.NewWithException(exception.FeedBackError, err.Error())
  55. u.FailedResult("收藏失败", result)
  56. return
  57. }
  58. //将图表加入es
  59. if bookMark.SourceType == Chart {
  60. chartService.AddChartToEs(chartService.ChartInfo{
  61. ChartImage: bookMark.ChartImage,
  62. ChartInfoId: bookMark.ChartInfoId,
  63. ChartName: bookMark.ChartName,
  64. UniqueCode: bookMark.UniqueCode,
  65. })
  66. }
  67. u.SuccessResult("收藏成功", nil, result)
  68. return
  69. })
  70. }
  71. // UnBookMark 取消收藏
  72. // @Summary 取消收藏
  73. // @Description 取消收藏
  74. // @Success 200 {object} controllers.BaseResponse
  75. // @router /unBookMark [post]
  76. func (u *BookMarkController) UnBookMark() {
  77. controllers.Wrap(&u.BaseController, func() (result *controllers.WrapData, err error) {
  78. result = u.InitWrapData("取消收藏失败")
  79. bookMark := new(BookMarkReq)
  80. u.GetPostParams(bookMark)
  81. var userInfo user.User
  82. userInfo = u.Data["user"].(user.User)
  83. if bookMark.SourceType == "" {
  84. u.FailedResult("取消收藏失败", result)
  85. err = exception.New(exception.IllegalSourceType)
  86. return
  87. }
  88. if bookMark.SourceId == 0 {
  89. u.FailedResult("取消收藏失败", result)
  90. err = exception.New(exception.IllegalSourceId)
  91. return
  92. }
  93. err = userService.UnBookMark(userInfo.Id, bookMark.SourceId, bookMark.SourceType)
  94. if err != nil {
  95. err = exception.NewWithException(exception.FeedBackError, err.Error())
  96. u.FailedResult("取消收藏失败", result)
  97. return
  98. }
  99. u.SuccessResult("收藏成功", nil, result)
  100. return
  101. })
  102. }
  103. type CheckBookMarkResp struct {
  104. IsBookMarked bool `json:"isBookMarked"`
  105. }
  106. // CheckBookMark 取消收藏
  107. // @Summary 取消收藏
  108. // @Description 取消收藏
  109. // @Success 200 {object} controllers.BaseResponse
  110. // @router /checkBookMark [post]
  111. func (u *BookMarkController) CheckBookMark() {
  112. controllers.Wrap(&u.BaseController, func() (result *controllers.WrapData, err error) {
  113. result = u.InitWrapData("取消收藏失败")
  114. bookMark := new(BookMarkReq)
  115. u.GetPostParams(bookMark)
  116. var userInfo user.User
  117. userInfo = u.Data["user"].(user.User)
  118. if bookMark.SourceType == "" {
  119. u.FailedResult("获取是否收藏失败", result)
  120. err = exception.New(exception.IllegalSourceType)
  121. return
  122. }
  123. if bookMark.SourceId == 0 {
  124. u.FailedResult("获取是否收藏失败", result)
  125. err = exception.New(exception.IllegalSourceId)
  126. return
  127. }
  128. isBookMarked, err := userService.CheckBookMarkStatus(userInfo.Id, bookMark.SourceId, bookMark.SourceType)
  129. if err != nil {
  130. err = exception.NewWithException(exception.FeedBackError, err.Error())
  131. u.FailedResult("获取是否收藏失败", result)
  132. return
  133. }
  134. u.SuccessResult("获取是否收藏成功", &CheckBookMarkResp{
  135. IsBookMarked: isBookMarked,
  136. }, result)
  137. return
  138. })
  139. }