go-common/app/admin/main/videoup/service/oper.go
2019-04-22 18:49:16 +08:00

191 lines
7.4 KiB
Go

package service
import (
"context"
"fmt"
"strconv"
"time"
"go-common/app/admin/main/videoup/model/archive"
"strings"
)
func (s *Service) addVideoOper(c context.Context, oper *archive.VideoOper) (err error) {
if oldOper, _ := s.arc.VideoOper(c, oper.VID); oldOper != nil && oldOper.LastID == 1 {
oper.LastID = oldOper.ID
s.arc.AddVideoOper(c, oper.AID, oper.UID, oper.VID, oper.Attribute, oper.Status, oper.LastID, oper.Content, oper.Remark)
return
}
if lastID, _ := s.arc.AddVideoOper(c, oper.AID, oper.UID, oper.VID, oper.Attribute, oper.Status, oper.LastID, oper.Content, oper.Remark); lastID > 0 {
s.arc.UpVideoOper(c, lastID, lastID)
return
}
return
}
func (s *Service) addArchiveOper(c context.Context, oper *archive.ArcOper) (err error) {
if oldOper, _ := s.arc.ArchiveOper(c, oper.Aid); oldOper != nil && oldOper.LastID == 1 {
oper.LastID = oldOper.ID
}
s.arc.AddArcOper(c, oper.Aid, oper.UID, oper.Attribute, oper.TypeID, oper.State, oper.Round, oper.LastID, oper.Content, oper.Remark)
return
}
func (s *Service) diffVideoOper(vp *archive.VideoParam) (conts []string) {
if vp.TagID > 0 {
var operType int8
if vp.Status >= archive.VideoStatusOpen {
operType = archive.OperTypeOpenTag
} else {
operType = archive.OperTypeRecicleTag
}
conts = append(conts, archive.Operformat(operType, "tagid", vp.TagID, archive.OperStyleTwo))
}
if vp.Reason != "" {
conts = append(conts, archive.Operformat(archive.OperTypeAduitReason, "reason", vp.Reason, archive.OperStyleTwo))
}
if vp.TaskID > 0 {
conts = append(conts, archive.Operformat(archive.OperTypeTaskID, "task", vp.TaskID, archive.OperStyleTwo))
}
return
}
func (s *Service) diffArchiveOper(ap *archive.ArcParam, a *archive.Archive, addit *archive.Addit, forbid *archive.ForbidAttr) (conts []string, changeTypeID, changeCopyright, changeTitle, changeCover bool) {
if ap.CanCelMission {
conts = append(conts, archive.Operformat(archive.OperTypeMission, addit.MissionID, 0, archive.OperStyleOne))
}
if ap.Cover != a.Cover {
if strings.HasPrefix(a.Cover, "http://") && strings.Contains(a.Cover, ap.Cover) {
changeCover = false
} else {
changeCover = true
}
}
if ap.Title != a.Title {
changeTitle = true
}
if ap.Copyright != a.Copyright {
changeCopyright = true
conts = append(conts, archive.Operformat(archive.OperTypeCopyright, archive.CopyrightsDesc(a.Copyright), archive.CopyrightsDesc(ap.Copyright), archive.OperStyleOne))
}
if cont, _ := s.diffTypeID(ap.TypeID, a.TypeID, ap.State); cont != "" {
changeTypeID = true
conts = append(conts, cont)
}
if ap.RejectReason != "" && ap.RejectReason != a.RejectReason {
if a.RejectReason == "" {
a.RejectReason = "无"
}
var operType int8
if a.Round > 20 {
operType = archive.OperTypeRejectReason
} else {
operType = archive.OperTypeAduitReason
}
conts = append(conts, archive.Operformat(operType, a.RejectReason, ap.RejectReason, archive.OperStyleOne))
}
if ap.Forward != a.Forward {
conts = append(conts, archive.Operformat(archive.OperTypeForwardID, a.Forward, ap.Forward, archive.OperStyleOne))
}
if ap.Notify {
conts = append(conts, archive.Operformat(archive.OperNotify, "无", "发送通知", archive.OperStyleOne))
}
if forbid == nil || (forbid.OnFlowID != ap.OnFlowID) {
if forbid != nil {
conts = append(conts, archive.Operformat(archive.OperTypeFlowID, s.flowsCache[forbid.OnFlowID], s.flowsCache[ap.OnFlowID], archive.OperStyleOne))
} else {
conts = append(conts, archive.Operformat(archive.OperTypeFlowID, "无", s.flowsCache[ap.OnFlowID], archive.OperStyleOne))
}
}
if ap.PTime != a.PTime {
conts = append(conts, archive.Operformat(archive.OperTypePtime, time.Unix(int64(a.PTime), 0).Format("2006-01-02 15:04:05"), time.Unix(int64(ap.PTime), 0).Format("2006-01-02 15:04:05"), archive.OperStyleOne))
}
if ap.Access != a.Access {
conts = append(conts, archive.Operformat(archive.OperTypeAccess, archive.AccessDesc(a.Access), archive.AccessDesc(ap.Access), archive.OperStyleOne))
}
if ap.Dynamic != addit.Dynamic {
conts = append(conts, archive.Operformat(archive.OperTypeDynamic, addit.Dynamic, ap.Dynamic, archive.OperStyleOne))
}
return
}
func (s *Service) diffBatchArchiveOper(ap *archive.ArcParam, a *archive.Archive) (conts []string) {
if ap.Access != a.Access {
conts = append(conts, archive.Operformat(archive.OperTypeAccess, archive.AccessDesc(a.Access), archive.AccessDesc(ap.Access), archive.OperStyleOne))
}
if ap.PTime != a.PTime {
conts = append(conts, archive.Operformat(archive.OperTypePtime, time.Unix(int64(a.PTime), 0).Format("2006-01-02 15:04:05"), time.Unix(int64(ap.PTime), 0).Format("2006-01-02 15:04:05"), archive.OperStyleOne))
}
if ap.FlagCopyright && ap.Copyright != a.Copyright {
conts = append(conts, archive.Operformat(archive.OperTypeCopyright, archive.CopyrightsDesc(a.Copyright), archive.CopyrightsDesc(ap.Copyright), archive.OperStyleOne))
}
if ap.RejectReason != "" && ap.RejectReason != a.RejectReason {
if a.RejectReason == "" {
a.RejectReason = "无"
}
var operType int8
if a.Round > 20 {
operType = archive.OperTypeRejectReason
} else {
operType = archive.OperTypeAduitReason
}
conts = append(conts, archive.Operformat(operType, a.RejectReason, ap.RejectReason, archive.OperStyleOne))
}
return
}
func (s *Service) diffTypeID(newTypeID, oldTypeID int16, state int8) (cont string, changeTypeID bool) {
if newTypeID != oldTypeID {
changeTypeID = true
var oldCont, newCont string
if ok := s.isTypeID(oldTypeID); ok {
oldCont = s.typeCache[oldTypeID].Name
} else {
oldCont = strconv.Itoa(int(oldTypeID))
}
if ok := s.isTypeID(newTypeID); ok {
newCont = s.typeCache[newTypeID].Name
} else {
newCont = strconv.Itoa(int(newTypeID))
}
cont = archive.Operformat(archive.OperTypeTypeID, oldCont, newCont, archive.OperStyleOne)
if state < 0 {
cont = fmt.Sprintf("%s,过审后生效", cont)
}
}
return
}
//私单修改日志
func (s *Service) diffPorder(c context.Context, aid int64, ap *archive.ArcParam) (conts []string, porder *archive.Porder) {
porder, _ = s.arc.Porder(c, aid)
if porder.IndustryID > 0 {
var yesOrNo = map[int8]string{int8(1): "是", int8(0): "否"}
if porder.IndustryID != ap.IndustryID {
conts = append(conts, archive.Operformat(archive.OperPorderIndustryID, s.porderConfigCache[porder.IndustryID].Name, s.porderConfigCache[ap.IndustryID].Name, archive.OperStyleOne))
}
if porder.Official != ap.Official {
conts = append(conts, archive.Operformat(archive.OperPorderOfficial, yesOrNo[porder.Official], yesOrNo[ap.Official], archive.OperStyleOne))
}
//game ID
if porder.BrandID != ap.BrandID {
conts = append(conts, archive.Operformat(archive.OperPorderBrandID, porder.BrandID, ap.BrandID, archive.OperStyleOne))
}
//custom brandName
if porder.BrandName != ap.BrandName {
conts = append(conts, archive.Operformat(archive.OperPorderBrandName, porder.BrandName, ap.BrandName, archive.OperStyleOne))
}
//porderConfigCache
if porder.ShowType != ap.ShowType {
conts = append(conts, archive.Operformat(archive.OperPorderShowType, porder.ShowType, ap.ShowType, archive.OperStyleOne))
}
if porder.Advertiser != ap.Advertiser {
conts = append(conts, archive.Operformat(archive.OperPorderAdvertiser, porder.Advertiser, ap.Advertiser, archive.OperStyleOne))
}
if porder.Agent != ap.Agent {
conts = append(conts, archive.Operformat(archive.OperPorderAgent, porder.Agent, ap.Agent, archive.OperStyleOne))
}
}
return
}