You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.8 KiB
88 lines
2.8 KiB
package service |
|
|
|
import ( |
|
"context" |
|
"encoding/json" |
|
"go-common/app/job/main/videoup/model/archive" |
|
"go-common/app/job/main/videoup/model/message" |
|
"go-common/app/job/main/videoup/model/redis" |
|
"go-common/library/log" |
|
"strconv" |
|
"time" |
|
) |
|
|
|
// sendBblog 发送粉丝动态databus |
|
func (s *Service) sendBblog(a *archive.Result) { |
|
var ( |
|
err error |
|
c = context.TODO() |
|
noPush = int64(a.AttrVal(archive.AttrNoPushBplus)) |
|
//默认不展示 |
|
show = int64(0) |
|
staffs []*archive.Staff |
|
dataPoi, dataVote, dataVoteFix []byte |
|
) |
|
if noPush == 0 && a.IsNormal() { |
|
show = int64(1) |
|
} |
|
if noPush == 1 { |
|
show = int64(2) |
|
} |
|
msg := &message.BlogCardMsg{ |
|
Card: &archive.BlogCard{ |
|
Type: 8, |
|
Rid: a.Aid, |
|
OwnerID: a.Mid, |
|
Show: show, |
|
Ts: time.Now().Unix(), |
|
Dynamic: a.Dynamic, |
|
}, |
|
} |
|
//lbs |
|
if dataPoi, err = s.arc.POI(context.TODO(), a.Aid); err != nil { |
|
log.Error("aid(%s) s.videoupPub.SendBblog(%v) POI error(%v)", a.Aid, msg, err) |
|
} |
|
//vote |
|
if dataVote, err = s.arc.Vote(context.TODO(), a.Aid); err != nil { |
|
log.Error("aid(%s) s.videoupPub.SendBblog(%v) Vote error(%v)", a.Aid, msg, err) |
|
} |
|
if dataPoi != nil || dataVote != nil { |
|
if dataVote != nil { |
|
var old *archive.VoteOld |
|
if err = json.Unmarshal(dataVote, &old); err != nil { |
|
log.Error("aid(%s) s.videoupPub.SendBblog(%+v) Vote old Unmarshal error(%v)", a.Aid, string(dataVote), err) |
|
} |
|
if dataVoteFix, err = json.Marshal(&archive.Vote{VoteID: old.VoteID, VoteTitle: old.VoteTitle}); err != nil { |
|
log.Error("aid(%s) s.videoupPub.SendBblog(%+v) Vote new Marshal error(%v)", a.Aid, old, err) |
|
} |
|
} |
|
var ext []byte |
|
if ext, err = json.Marshal(&archive.Ext{LBS: string(dataPoi), Vote: string(dataVoteFix)}); err != nil { |
|
log.Error("aid(%s) s.videoupPub.SendBblog(%+v) Unmarshal error(%v)", a.Aid, msg, err) |
|
} |
|
msg.Card.Ext = string(ext) |
|
} |
|
//staffs |
|
if a.AttrVal(archive.AttrBitSTAFF) == archive.AttrYes { |
|
if staffs, err = s.arc.Staffs(c, a.Aid); err != nil { |
|
log.Error("aid(%s) s.arc.Staffs (%+v) error(%v)", a.Aid, msg, err) |
|
} |
|
var staffBox []*archive.StaffItem |
|
if staffs != nil && len(staffs) > 0 { |
|
for _, v := range staffs { |
|
item := &archive.StaffItem{Type: 1, UID: v.StaffMID} |
|
staffBox = append(staffBox, item) |
|
} |
|
} |
|
if staffBox != nil && len(staffBox) > 0 { |
|
msg.Card.Staffs = staffBox |
|
log.Info("aid(%d) SendBblog(%+v) staffs(%+v)", a.Aid, msg, msg.Card.Staffs) |
|
} |
|
} |
|
log.Info("aid(%d) start to send SendBblog(%+v) poi(%v) vote(%v) to databus", a.Aid, msg, string(dataPoi), string(dataVoteFix)) |
|
k := strconv.FormatInt(a.Aid, 10) |
|
if err = s.blogPub.Send(c, k, msg); err != nil { |
|
s.syncRetry(c, a.Aid, a.Mid, redis.ActionForSendBblog, "", "") |
|
log.Error("aid(%s) %s s.videoupPub.SendBblog(%v) error(%v)", k, msg, err) |
|
} |
|
}
|
|
|