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.
70 lines
1.5 KiB
70 lines
1.5 KiB
package model |
|
|
|
import "go-common/app/service/main/archive/api" |
|
|
|
// is |
|
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 int32 `json:"click"` |
|
DM int32 `json:"dm"` |
|
Reply int32 `json:"reply"` |
|
Fav int32 `json:"fav"` |
|
Coin int32 `json:"coin"` |
|
Share int32 `json:"share"` |
|
NowRank int32 `json:"now_rank"` |
|
HisRank int32 `json:"his_rank"` |
|
Like int32 `json:"like"` |
|
Type string `json:"-"` |
|
Ts int64 `json:"-"` |
|
} |
|
|
|
// StatCount is |
|
type StatCount struct { |
|
Type string `json:"type"` |
|
Aid int64 `json:"id"` |
|
Count int32 `json:"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 = m.Click |
|
} |
|
if m.Coin >= 0 && m.Type == TypeForCoin { |
|
s.Coin = m.Coin |
|
} |
|
if m.DM >= 0 && m.Type == TypeForDm { |
|
s.Danmaku = m.DM |
|
} |
|
if m.Fav >= 0 && m.Type == TypeForFav { |
|
s.Fav = m.Fav |
|
} |
|
if m.Reply >= 0 && m.Type == TypeForReply { |
|
s.Reply = m.Reply |
|
} |
|
if m.Share >= 0 && m.Type == TypeForShare && m.Share > s.Share { |
|
s.Share = m.Share |
|
} |
|
if m.NowRank >= 0 && m.Type == TypeForRank { |
|
s.NowRank = m.NowRank |
|
} |
|
if m.HisRank >= 0 && m.Type == TypeForRank { |
|
s.HisRank = m.HisRank |
|
} |
|
if m.Like >= 0 && m.Type == TypeForLike { |
|
s.Like = m.Like |
|
} |
|
}
|
|
|