1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- 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)
- }
- }
|