12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- rebuild: user portrait score reset to normal if it's score large than punishment threshold score
- */
- package service
- import (
- "context"
- "time"
- spy "go-common/app/service/main/spy/model"
- "go-common/library/log"
- )
- const (
- _normal = 0
- _ps = 100
- )
- func (s *Service) reBuild() {
- var (
- err error
- count int64
- )
- current := time.Now()
- before30d, _ := time.ParseDuration("-720h")
- before31d, _ := time.ParseDuration("-744h")
- start := current.Add(before31d)
- end := current.Add(before30d)
- log.Info("ReBuild task start: start:(%s) end:(%s))", start, end)
- for t := 0; t < int(s.c.Property.UserInfoShard); t++ {
- if count, err = s.dao.ReBuildMidCount(context.TODO(), t, _normal, start, end); err != nil {
- log.Error("s.dao.ReBuildMidCount(%s, %s), err(%v)", start, end, err)
- continue
- }
- log.Info("ReBuild task: index:%d, count:%d)", t, count)
- if count <= 0 {
- continue
- }
- total := count / _ps
- log.Info("ReBuild task: shard:%d, count:%d, total:%d)", t, count, total)
- for i := 0; int64(i) <= total; i++ {
- midList, err := s.dao.ReBuildMidList(context.TODO(), t, _normal, start, end, _ps)
- if err != nil {
- log.Error("s.dao.ReBuildMidList(%s, %s, %d, %d)", start, end, i, _ps)
- continue
- }
- for _, mid := range midList {
- if err := s.spyRPC.ReBuildPortrait(context.TODO(), &spy.ArgReBuild{Mid: mid, Reason: "自动恢复行为得分"}); err != nil {
- log.Error("s.spyRPC.ReBuildPortrait(%d), err:%v", mid, err)
- continue
- }
- log.Info("ReBuild task: mid(%d) ReBuild Portrait success)", mid)
- }
- }
- }
- log.Info("ReBuild task end: start:(%s) end:(%s))", start, end)
- }
|