12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package service
- import (
- "context"
- "go-common/app/interface/main/favorite/model"
- favmdl "go-common/app/service/main/favorite/model"
- "go-common/library/ecode"
- "go-common/library/log"
- )
- var _emptyTopics = []*model.Topic{}
- // AddFavTopic add fav topic
- func (s *Service) AddFavTopic(c context.Context, mid, tpID int64, ck, ak string) (err error) {
- tpIDs := []int64{tpID}
- tps, err := s.topicDao.TopicMap(c, tpIDs, false, nil)
- if err != nil {
- log.Error("s.topic.Get(%v)", err)
- return
- }
- if len(tps) == 0 {
- err = ecode.TopicNotExist
- return
- }
- if err = s.AddFavRPC(c, favmdl.TypeTopic, mid, tpID, 0); err != nil {
- log.Error(" s.AddFavRPC(%d,%d) error(%v)", mid, tpID, err)
- }
- return
- }
- // DelFavTopic del fav topic
- func (s *Service) DelFavTopic(c context.Context, mid, tpID int64) (err error) {
- if err = s.DelFavRPC(c, favmdl.TypeTopic, mid, tpID, 0); err != nil {
- log.Error("s.DelFavRPC(%d,%d) error(%v)", mid, tpID, err)
- }
- return
- }
- // IsTopicFavoured topic is favoured.
- func (s *Service) IsTopicFavoured(c context.Context, mid, tpID int64) (faved bool, err error) {
- typ := favmdl.TypeTopic
- if faved, err = s.IsFavRPC(c, typ, mid, tpID); err != nil {
- log.Error("s.IsFavRPC(%d,%d,%d) error(%v)", typ, mid, tpID, err)
- }
- return
- }
- // FavTopics get fav topics
- func (s *Service) FavTopics(c context.Context, mid int64, pn, ps int, appInfo *model.AppInfo) (res *model.TopicList, err error) {
- res = &model.TopicList{}
- res.PageNum = pn
- res.PageSize = ps
- typ := favmdl.TypeTopic
- favs, err := s.FavoritesRPC(c, typ, mid, mid, 0, 0, "", "", pn, ps)
- if err != nil {
- log.Error("s.Favorites(%d,%d,%d,%d,%d,%d,%s) error(%v)", typ, mid, 0, pn, ps, err)
- return
- }
- res.Total = int64(favs.Page.Count)
- var oids []int64
- for _, fav := range favs.List {
- oids = append(oids, fav.Oid)
- }
- if res.Total == 0 {
- res.List = _emptyTopics
- return
- }
- topics, err := s.topicDao.TopicMap(c, oids, false, appInfo)
- if err != nil {
- log.Error("s.topic.MuliGet error(%v)", err)
- return
- }
- for _, fav := range favs.List {
- if topic, ok := topics[fav.Oid]; ok {
- topic.FavAt = fav.MTime
- topic.MID = mid
- res.List = append(res.List, topic)
- }
- }
- return
- }
|