12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package model
- import "go-common/app/service/main/archive/api"
- const (
- TypeForView = "view"
- TypeForDm = "dm"
- TypeForReply = "reply"
- TypeForFav = "fav"
- TypeForCoin = "coin"
- TypeForShare = "share"
- TypeForRank = "rank"
- TypeForLike = "like"
- )
- // StatMsg stat info.
- type StatMsg struct {
- Aid int64 `json:"aid"`
- Click int `json:"click"`
- DM int `json:"dm"`
- Reply int `json:"reply"`
- Fav int `json:"fav"`
- Coin int `json:"coin"`
- Share int `json:"share"`
- NowRank int `json:"now_rank"`
- HisRank int `json:"his_rank"`
- Like int `json:"like"`
- DisLike int `json:"dislike_count"`
- Type string `json:"-"`
- Ts int64 `json:"-"`
- }
- type StatCount struct {
- Type string `json:"type"`
- Aid int64 `json:"id"`
- Count int `json:"count"`
- DisLike int `json:"dislike_count"`
- TimeStamp int64 `json:"timestamp"`
- }
- // Merge merge message and stat from db.
- func Merge(m *StatMsg, s *api.Stat) {
- if m.Click >= 0 && m.Type == TypeForView {
- s.View = int32(m.Click)
- }
- if m.Coin >= 0 && m.Type == TypeForCoin {
- s.Coin = int32(m.Coin)
- }
- if m.DM >= 0 && m.Type == TypeForDm {
- s.Danmaku = int32(m.DM)
- }
- if m.Fav >= 0 && m.Type == TypeForFav {
- s.Fav = int32(m.Fav)
- }
- if m.Reply >= 0 && m.Type == TypeForReply {
- s.Reply = int32(m.Reply)
- }
- if m.Share >= 0 && m.Type == TypeForShare && int32(m.Share) > s.Share {
- s.Share = int32(m.Share)
- }
- if m.NowRank >= 0 && m.Type == TypeForRank {
- s.NowRank = int32(m.NowRank)
- }
- if m.HisRank >= 0 && m.Type == TypeForRank {
- s.HisRank = int32(m.HisRank)
- }
- if m.Like >= 0 && m.Type == TypeForLike {
- s.Like = int32(m.Like)
- }
- if m.DisLike >= 0 && m.Type == TypeForLike {
- s.DisLike = int32(m.DisLike)
- }
- }
|