package user import ( "91porn-server/models/v/usermod" "91porn-server/models/v/vidmod" "time" ) func doSyncWorkCount(start, end time.Time) error { mats := []vidmod.Matcher{ (&vidmod.StatusMatch{Status: vidmod.CheckPass}).New(), (&vidmod.UpdatedAtGTEAndLTMatch{GTE: &start, LT: &end}).New(), } publisherIDs, err := vidmod.PublisherIDList(mats...) if err != nil { return err } // 分批操作 for len(publisherIDs) > 0 { var uids []uint64 if len(publisherIDs) > 100 { uids = publisherIDs[:100] publisherIDs = publisherIDs[100:] } else { uids = publisherIDs publisherIDs = nil } mats = []vidmod.Matcher{ (&vidmod.StatusMatch{Status: vidmod.CheckPass}).New(), (&vidmod.PublisherIDInMatch{PublisherIDList: uids}).New(), } m, err := vidmod.CountMapByPublisherID(mats...) if err != nil { return err } err = usermod.UpdateUserCountWorks(m) if err != nil { return err } } return nil }