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.
71 lines
1.7 KiB
71 lines
1.7 KiB
package resource |
|
|
|
import ( |
|
"context" |
|
"strconv" |
|
"strings" |
|
"time" |
|
|
|
"go-common/library/log" |
|
) |
|
|
|
// checkDiff check diff between ads and ads_active |
|
func (s *Service) checkDiff() { |
|
now := time.Now() |
|
s.activeVideos(context.Background(), now) |
|
} |
|
|
|
// activeVideos check if VideoAds active need to update |
|
func (s *Service) activeVideos(c context.Context, now time.Time) { |
|
amtime, err := s.resdao.ActVideoMTimeCount(c) |
|
if err != nil { |
|
log.Error("resdao.ActVideoMTimeCount error(%v)", err) |
|
return |
|
} |
|
dmtime, err := s.resdao.AdVideoMTimeCount(c, now) |
|
if err != nil { |
|
log.Error("resdao.AdVideoMTimeCount error(%v)", err) |
|
return |
|
} |
|
if amtime == dmtime { |
|
log.Info("all video active ad are same") |
|
return |
|
} |
|
log.Info("video active avg mtime(%d), ads avg mtime(%d)", amtime, dmtime) |
|
if err = s.resdao.DelAllVideo(c); err != nil { |
|
log.Error("sdDao.DelAllVideo(), err (%v)", err) |
|
return |
|
} |
|
ads, err := s.resdao.AllVideoActive(c, now) |
|
if err != nil { |
|
log.Error("resdao.AllVideoActive(%v), err (%v)", now, err) |
|
return |
|
} |
|
tx, err := s.resdao.BeginTran(c) |
|
if err != nil { |
|
log.Error("BeginTran(), err (%v)", err) |
|
return |
|
} |
|
for _, ad := range ads { |
|
aids := strings.Split(ad.AidS, ",") |
|
for _, aid := range aids { |
|
i, e := strconv.ParseInt(aid, 10, 64) |
|
if e != nil { |
|
log.Error("strconv.ParseInt() error(%v)", e) |
|
continue |
|
} |
|
ad.Aid = i |
|
ad.MTime = dmtime |
|
if err = s.resdao.TxInsertVideo(tx, ad); err != nil { |
|
if err = tx.Rollback(); err != nil { |
|
log.Error("tx.Rollback(), err (%v)", err) |
|
} |
|
log.Error("resdao.TxInsertVideo(tx, %v), err(%v)", ad, err) |
|
return |
|
} |
|
} |
|
} |
|
if err = tx.Commit(); err != nil { |
|
log.Error("tx.Commit(), error(%v)", err) |
|
} |
|
}
|
|
|