123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package dao
- import (
- "context"
- "time"
- "go-common/app/service/main/push/dao/mi"
- "go-common/app/service/main/push/model"
- "go-common/library/log"
- )
- // DelMiInvalid .
- func (d *Dao) DelMiInvalid(c context.Context) (err error) {
- log.Info("delete xiaomi invalid report start, apps(%d)", len(d.clientsMi))
- for appid, clients := range d.clientsMi {
- log.Info("clients info app(%d) len(%d)", appid, len(clients))
- if len(clients) == 0 {
- log.Warn("no clients app(%d)", appid)
- continue
- }
- log.Info("del mi invalid start, app(%d)", appid)
- var res *mi.Response
- if res, err = clients[0].InvalidTokens(); err != nil {
- log.Error("client.InvalidTokens() error(%v)", err)
- PromError("report:获取小米无效token")
- continue
- }
- if res == nil || len(res.Data.List) == 0 {
- log.Warn("no tokens app(%d)", appid)
- continue
- }
- if err = d.delInvalidMiReports(c, appid, res.Data.List); err != nil {
- PromError("report:主动删除xiaomi无效上报")
- continue
- }
- log.Info("already del mi invalid stop, app(%d) count(%d)", appid, len(res.Data.List))
- }
- PromInfo("report:主动删除xiaomi无效上报")
- return
- }
- // DelMiUninstalled deletes mi uninstalled tokens.
- func (d *Dao) DelMiUninstalled(c context.Context) (err error) {
- log.Info("delete xiaomi uninstalled tokens start, apps(%d)", len(d.clientsMi))
- for appid, clients := range d.clientsMi {
- log.Info("clients info app(%d) len(%d)", appid, len(clients))
- if len(clients) == 0 {
- log.Warn("no clients app(%d)", appid)
- continue
- }
- log.Info("del mi uninstalled tokens start, app(%d)", appid)
- var res *mi.UninstalledResponse
- if res, err = clients[0].UninstalledTokens(); err != nil {
- log.Error("client.UninstalledTokens() error(%v)", err)
- PromError("report:获取小米卸载token")
- continue
- }
- if res.Code == mi.ResultCodeNoMsgInEmq {
- log.Info("no tokens app(%d)", appid)
- continue
- }
- if res.Code != mi.ResultCodeOk {
- log.Error("get uninstalled tokens error resp(%+v)", res)
- continue
- }
- if len(res.Data) == 0 {
- log.Warn("no tokens app(%d)", appid)
- continue
- }
- if err = d.delInvalidMiReports(c, appid, res.Data); err != nil {
- PromError("report:主动删除xiaomi卸载token")
- continue
- }
- log.Info("already del mi uninstalled stop, app(%d) count(%d)", appid, len(res.Data))
- }
- PromInfo("report:主动删除xiaomi卸载token")
- return
- }
- func (d *Dao) delInvalidMiReports(c context.Context, appid int64, tokens []string) (err error) {
- var rs []*model.Report
- if rs, err = d.Reports(c, tokens); err != nil {
- log.Error("d.Reports(%v) error(%v)", tokens, err)
- return
- } else if len(rs) == 0 {
- log.Warn("reports can not be found by tokens(%d)", len(tokens))
- log.Warn("reports can not be found by tokens(%v)", tokens)
- return
- }
- for _, r := range rs {
- log.Info("deleted invalid mi report, app(%d) mid(%d) token(%s)", appid, r.Mid, r.DeviceToken)
- var (
- i int
- e error
- retry = _retry
- )
- for i < retry {
- if _, e = d.DelReport(c, r.DeviceToken); e == nil {
- break
- }
- time.Sleep(time.Second)
- i++
- log.Warn("retry delete report, mid(%d) token(%s)", r.Mid, r.DeviceToken)
- }
- if e != nil || r.Mid <= 0 {
- continue
- }
- i = 0
- for i < retry {
- if e = d.DelReportCache(c, r.Mid, r.APPID, r.DeviceToken); e == nil {
- break
- }
- log.Warn("retry delete report cache, mid(%d) token(%s)", r.Mid, r.DeviceToken)
- time.Sleep(time.Second)
- i++
- }
- }
- log.Info("del invalid mi report, app(%d) tokens(%d)", appid, len(rs))
- return
- }
|