go-common/app/job/main/videoup-report/service/track.go
2019-04-22 18:49:16 +08:00

92 lines
2.6 KiB
Go

package service
import (
"context"
"encoding/json"
"strconv"
"go-common/app/job/main/videoup-report/model/archive"
)
func (s *Service) trackArchive(nw *archive.Archive, old *archive.Archive) (err error) {
var (
bs []byte
remarks = make(map[string]string)
)
if addit, _ := s.arc.Addit(context.TODO(), nw.ID); addit != nil {
remarks["dynamic"] = addit.Dynamic
if addit.MissionID > 0 {
remarks["mission_id"] = strconv.FormatInt(addit.MissionID, 10)
}
}
if old == nil {
remarks["cover"] = nw.Cover
remarks["desc"] = nw.Content
remarks["title"] = nw.Title
remarks["typeid"] = strconv.Itoa(int(nw.TypeID))
remarks["copyright"] = strconv.Itoa(int(nw.Copyright))
bs, _ = json.Marshal(remarks)
} else if nw.State != old.State || nw.Access != old.Access || nw.Round != old.Round || nw.Content != old.Content ||
nw.Cover != old.Cover || nw.Title != old.Title || nw.TypeID != old.TypeID || nw.Copyright != old.Copyright || nw.Attribute != old.Attribute {
if nw.Cover != old.Cover {
remarks["cover"] = nw.Cover
}
if nw.Content != old.Content {
remarks["desc"] = nw.Content
}
if nw.Title != old.Title {
remarks["title"] = nw.Title
}
if nw.TypeID != old.TypeID {
remarks["typeid"] = strconv.Itoa(int(nw.TypeID))
}
if nw.Copyright != old.Copyright {
remarks["copyright"] = strconv.Itoa(int(nw.Copyright))
}
if len(remarks) != 0 {
bs, _ = json.Marshal(remarks)
}
if nw.State >= int(archive.StateOpen) && nw.Access == int(archive.AccessMember) {
nw.State = int(archive.AccessMember)
}
} else {
// NOTE: nothing modify
return
}
s.arc.AddTrack(context.TODO(), nw.ID, nw.State, nw.Round, nw.Attribute, string(bs), nw.MTime, nw.MTime)
return
}
func (s *Service) trackVideo(nw *archive.Video, old *archive.Video) (err error) {
var (
remarks = make(map[string]interface{})
bs []byte
)
if old == nil {
if nw.Title != "" {
remarks["title"] = nw.Title
}
if nw.Desc != "" {
remarks["desc"] = nw.Desc
}
} else if nw.XcodeState != old.XcodeState || nw.Status != old.Status || nw.Title != old.Title || nw.Desc != old.Desc || nw.Attribute != old.Attribute {
if nw.FailCode != archive.XcodeFailZero {
remarks["xcode_fail"] = nw.FailCode
}
if nw.Title != old.Title && nw.Title != "" {
remarks["title"] = nw.Title
}
if nw.Desc != old.Desc && nw.Desc != "" {
remarks["desc"] = nw.Desc
}
} else {
// no change
return
}
if len(remarks) != 0 {
bs, err = json.Marshal(remarks)
}
s.arc.AddVideoTrack(context.TODO(), nw.Aid, nw.Filename, nw.Status, nw.XcodeState, string(bs), nw.MTime, nw.MTime)
return
}