90 lines
1.6 KiB
Go
90 lines
1.6 KiB
Go
package model
|
|
|
|
import (
|
|
"sort"
|
|
"strconv"
|
|
"time"
|
|
|
|
xtime "go-common/library/time"
|
|
)
|
|
|
|
// RelationLog is
|
|
type RelationLog struct {
|
|
Mid int64 `json:"mid"`
|
|
Fid int64 `json:"fid"`
|
|
MemberName string `json:"member_name"`
|
|
FollowingName string `json:"following_name"`
|
|
|
|
Source int32 `json:"source"`
|
|
MTime xtime.Time `json:"mtime"`
|
|
|
|
Attention int32 `json:"attention"`
|
|
Black int32 `json:"black"`
|
|
Whisper int32 `json:"whisper"`
|
|
AttrField string `json:"attr_field"`
|
|
AttrChange string `json:"attr_change"`
|
|
}
|
|
|
|
// FillAttrField is
|
|
func (l *RelationLog) FillAttrField() {
|
|
if l.Attention > 0 {
|
|
l.AttrField = "attention"
|
|
return
|
|
}
|
|
if l.Black > 0 {
|
|
l.AttrField = "black"
|
|
return
|
|
}
|
|
if l.Whisper > 0 {
|
|
l.AttrField = "whisper"
|
|
return
|
|
}
|
|
}
|
|
|
|
// RelationLogList is
|
|
type RelationLogList []*RelationLog
|
|
|
|
// Len is
|
|
func (rl RelationLogList) Len() int {
|
|
return len(rl)
|
|
}
|
|
|
|
// Swap is
|
|
func (rl RelationLogList) Swap(i, j int) {
|
|
rl[i], rl[j] = rl[j], rl[i]
|
|
}
|
|
|
|
// Less is
|
|
func (rl RelationLogList) Less(i, j int) bool {
|
|
return rl[i].MTime < rl[j].MTime
|
|
}
|
|
|
|
// OrderByMTime is
|
|
func (rl RelationLogList) OrderByMTime(desc bool) {
|
|
sort.Sort(rl)
|
|
}
|
|
|
|
// ParseAction is
|
|
func ParseAction(act string) int32 {
|
|
i, _ := strconv.ParseInt(act, 10, 32)
|
|
return int32(i)
|
|
}
|
|
|
|
// ParseSource is
|
|
func ParseSource(src string) int32 {
|
|
i, _ := strconv.ParseInt(src, 10, 64)
|
|
return int32(i)
|
|
}
|
|
|
|
// ParseLogTime is
|
|
func ParseLogTime(ts string) (xt xtime.Time, err error) {
|
|
var (
|
|
t time.Time
|
|
)
|
|
if t, err = time.ParseInLocation("2006-01-02 15:04:05", ts, time.Local); err != nil {
|
|
return
|
|
}
|
|
xt.Scan(t)
|
|
return
|
|
}
|