package instance import ( "encoding/json" "errors" "eta/eta_chart_lib/facade" "eta/eta_chart_lib/models" "eta/eta_chart_lib/utils" "fmt" ) const ( bookMarkUrl = "user/bookMark" unBookMarkUrl = "user/unBookMark" checkBookMarkUrl = "user/checkBookMark" target = "ht" ) type HTCollectionReq struct { UniqueCode string `json:"uniqueCode"` } type HTMiniFacade struct { facade.BaseMiniFacade } type HTResponse struct { Ret int Msg string ErrMsg string ErrCode int Success bool } type HTRequest struct { facade.BaseRequest ChartInfoId int ChartName string ChartImage string SourceType string SourceId int } func dealChartInfo(baseReq facade.BaseRequest) (request HTRequest, err error) { chartInfo, err := models.GetChartInfoByUniqueCode(baseReq.UniqueCode) if err != nil { utils.FileLog.Error("收藏失败,获取图表信息失败:%v", err.Error()) return } request = HTRequest{ BaseRequest: baseReq, ChartImage: chartInfo.ChartImage, ChartInfoId: chartInfo.ChartInfoId, ChartName: chartInfo.ChartName, SourceType: "chart", SourceId: chartInfo.ChartInfoId, } return } func parseResult(resp string) (err error) { var response HTResponse err = json.Unmarshal([]byte(resp), &response) if err != nil { utils.FileLog.Error("收藏失败,解析应答失败:%v,应答结果:%s", err.Error(), resp) } if !response.Success { utils.FileLog.Error("收藏失败,应答结果:%d[%s]", response.ErrCode, response.ErrMsg) err = errors.New(response.ErrMsg) } return } func (ht *HTMiniFacade) Collect(req facade.BaseRequest) (err error) { param, err := dealChartInfo(req) if err != nil { utils.FileLog.Error("收藏失败,获取图表信息失败:%v", err.Error()) return err } url := fmt.Sprintf("%s%s", utils.GetMiniUrl(target), bookMarkUrl) resp, err := ht.Post(url, param, req.Auth) if err != nil { utils.FileLog.Error("收藏失败,err:%v,resp:%v", err, resp) } return parseResult(resp) } func (ht *HTMiniFacade) UnCollect(req facade.BaseRequest) (err error) { param, err := dealChartInfo(req) if err != nil { utils.FileLog.Error("收藏失败,获取图表信息失败:%v", err.Error()) return err } url := fmt.Sprintf("%s%s", utils.GetMiniUrl(target), unBookMarkUrl) resp, err := ht.Post(url, param, req.Auth) if err != nil { utils.FileLog.Error("取消收藏失败,err:%v,resp:%v", err, resp) } return parseResult(resp) } func (ht *HTMiniFacade) IsCollect(req facade.BaseRequest) bool { param, err := dealChartInfo(req) if err != nil { utils.FileLog.Error("获取是否收藏失败,获取图表信息失败:%v", err.Error()) return false } url := fmt.Sprintf("%s%s", utils.GetMiniUrl(target), unBookMarkUrl) resp, err := ht.Post(url, param, req.Auth) if err != nil { utils.FileLog.Error("获取是否收藏失败,err:%v,resp:%v", err, resp) } return false } func init() { facade.RegisterMiniFacade(target, &HTMiniFacade{ BaseMiniFacade: facade.FacadeClient, }) }