bilibili-backup/app/interface/live/app-interface/service/v2/activity_card.go
2019-04-22 02:59:20 +00:00

77 lines
2.0 KiB
Go

package v2
import (
"context"
v2pb "go-common/app/interface/live/app-interface/api/http/v2"
)
// getActivityCard 活动模块
func (s *IndexService) getActivityCard(ctx context.Context) (resp []*v2pb.MActivityCard) {
resp = []*v2pb.MActivityCard{}
ids := s.getIdsFromModuleMap(ctx, []int64{_activityType})
if len(ids) <= 0 {
return
}
err, activityCardMap := s.roomDao.GetActivityCard(ctx, ids, "GetAllList")
if err != nil {
return
}
listMap := make(map[int64][]*v2pb.ActivityCardItem)
for i, ac := range activityCardMap {
respAc := &v2pb.ActivityCardItem{Room: []*v2pb.RoomCardItem{}, Av: []*v2pb.AvCardItem{}}
respAc.Card = &v2pb.BannerCardItem{
Aid: ac.Card.Aid,
Pic: ac.Card.Pic,
Title: ac.Card.Title,
Text: ac.Card.Text,
PicLink: ac.Card.PicLink,
GoLink: ac.Card.GoLink,
ButtonText: ac.Card.ButtonText,
Status: ac.Card.Status,
Sort: ac.Card.Sort,
}
if len(ac.Room) > 0 {
for _, room := range ac.Room {
roomCard := &v2pb.RoomCardItem{
IsLive: room.IsLive,
RoomId: room.Roomid,
Title: room.Title,
UName: room.Uname,
Online: room.Online,
Cover: room.Cover,
AreaV2ParentId: room.AreaV2ParentId,
AreaV2Id: room.AreaV2Id,
Sort: room.Sort,
}
respAc.Room = append(respAc.Room, roomCard)
}
}
if len(ac.Av) > 0 {
for _, av := range ac.Av {
avCard := &v2pb.AvCardItem{
Avid: av.Avid,
Title: av.Title,
ViewCount: av.ViewCount,
DanMaKu: av.Danmaku,
Duration: av.Duration,
Cover: av.Cover,
Sort: av.Sort,
}
respAc.Av = append(respAc.Av, avCard)
}
}
listMap[i] = append(listMap[i], respAc)
}
moduleInfoMap := s.getAllModuleInfoMap(ctx)
for _, m := range moduleInfoMap[_activityType] {
if l, ok := listMap[m.Id]; ok {
resp = append(resp, &v2pb.MActivityCard{
ModuleInfo: m,
List: l,
})
}
}
return
}