bookmark_controller.go 3.9 KB

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