ht_mini_facade.go 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package instance
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "eta/eta_chart_lib/facade"
  6. "eta/eta_chart_lib/models"
  7. "eta/eta_chart_lib/utils"
  8. "fmt"
  9. )
  10. const (
  11. bookMarkUrl = "user/bookMark"
  12. unBookMarkUrl = "user/unBookMark"
  13. target = "ht"
  14. )
  15. type HTCollectionReq struct {
  16. UniqueCode string `json:"uniqueCode"`
  17. }
  18. type HTMiniFacade struct {
  19. facade.BaseMiniFacade
  20. }
  21. type HTResponse struct {
  22. Ret int
  23. Msg string
  24. ErrMsg string
  25. ErrCode int
  26. Success bool
  27. }
  28. type HTRequest struct {
  29. facade.BaseRequest
  30. ChartInfoId int
  31. ChartName string
  32. ChartImage string
  33. SourceType string
  34. SourceId int
  35. }
  36. func dealChartInfo(baseReq facade.BaseRequest) (request HTRequest, err error) {
  37. chartInfo, err := models.GetChartInfoByUniqueCode(baseReq.UniqueCode)
  38. if err != nil {
  39. utils.FileLog.Error("收藏失败,获取图表信息失败:%v", err.Error())
  40. return
  41. }
  42. request = HTRequest{
  43. BaseRequest: baseReq,
  44. ChartImage: chartInfo.ChartImage,
  45. ChartInfoId: chartInfo.ChartInfoId,
  46. ChartName: chartInfo.ChartName,
  47. SourceType: "chart",
  48. SourceId: chartInfo.ChartInfoId,
  49. }
  50. return
  51. }
  52. func parseResult(resp string) (err error) {
  53. var response HTResponse
  54. err = json.Unmarshal([]byte(resp), &response)
  55. if err != nil {
  56. utils.FileLog.Error("收藏失败,解析应答失败:%v,应答结果:%s", err.Error(), resp)
  57. }
  58. if !response.Success {
  59. utils.FileLog.Error("收藏失败,应答结果:%d[%s]", response.ErrCode, response.ErrMsg)
  60. err = errors.New(response.ErrMsg)
  61. }
  62. return
  63. }
  64. func (ht *HTMiniFacade) Collect(req facade.BaseRequest) (err error) {
  65. param, err := dealChartInfo(req)
  66. if err != nil {
  67. utils.FileLog.Error("收藏失败,获取图表信息失败:%v", err.Error())
  68. return err
  69. }
  70. url := fmt.Sprintf("%s%s", utils.GetMiniUrl(target), bookMarkUrl)
  71. resp, err := ht.Post(url, param, req.Auth)
  72. if err != nil {
  73. utils.FileLog.Error("收藏失败,err:%v,resp:%v", err, resp)
  74. }
  75. return parseResult(resp)
  76. }
  77. func (ht *HTMiniFacade) UnCollect(req facade.BaseRequest) (err error) {
  78. param, err := dealChartInfo(req)
  79. if err != nil {
  80. utils.FileLog.Error("收藏失败,获取图表信息失败:%v", err.Error())
  81. return err
  82. }
  83. url := fmt.Sprintf("%s%s", utils.GetMiniUrl(target), unBookMarkUrl)
  84. resp, err := ht.Post(url, param, req.Auth)
  85. if err != nil {
  86. utils.FileLog.Error("取消收藏失败,err:%v,resp:%v", err, resp)
  87. }
  88. return parseResult(resp)
  89. }
  90. func init() {
  91. facade.RegisterMiniFacade(target, &HTMiniFacade{
  92. BaseMiniFacade: facade.FacadeClient,
  93. })
  94. }