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.
126 lines
3.2 KiB
126 lines
3.2 KiB
package service |
|
|
|
import ( |
|
"context" |
|
|
|
"go-common/app/admin/main/spy/model" |
|
"go-common/library/log" |
|
) |
|
|
|
// UserInfo get UserInfo by mid , from cache or db or generate. |
|
func (s *Service) UserInfo(c context.Context, mid int64) (u *model.UserInfoDto, err error) { |
|
var ( |
|
udb *model.UserInfo |
|
) |
|
if udb, err = s.spyDao.Info(c, mid); err != nil { |
|
log.Error("s.spyDao.Info(%d) error(%v)", mid, err) |
|
return |
|
} |
|
|
|
// init user score by rpc call |
|
if udb == nil { |
|
if _, err = s.spyDao.UserScore(c, mid); err != nil { |
|
log.Error("s.spyDao.UserScore(%d) error(%v)", mid, err) |
|
return |
|
} |
|
if udb, err = s.spyDao.Info(c, mid); err != nil { |
|
log.Error("s.spyDao.Info(%d) error(%v)", mid, err) |
|
return |
|
} |
|
} |
|
|
|
if udb == nil { |
|
log.Error("UserInfo init failed , still nil") |
|
return |
|
} |
|
u = &model.UserInfoDto{ |
|
ID: udb.ID, |
|
Mid: udb.Mid, |
|
Score: udb.Score, |
|
BaseScore: udb.BaseScore, |
|
EventScore: udb.EventScore, |
|
State: udb.State, |
|
ReliveTimes: udb.ReliveTimes, |
|
Mtime: udb.Mtime.Unix(), |
|
} |
|
if m, err1 := s.spyDao.AccInfo(c, mid); err1 == nil && m != nil { |
|
u.Name = m.Name |
|
} |
|
return |
|
} |
|
|
|
// HisoryPage history page. |
|
func (s *Service) HisoryPage(c context.Context, h *model.HisParamReq) (page *model.HistoryPage, err error) { |
|
totalCount, err := s.spyDao.HistoryPageTotalC(c, h) |
|
if err != nil { |
|
log.Error("userDao HistoryPageTotalC(%v) error(%v)", h, err) |
|
return |
|
} |
|
page = &model.HistoryPage{} |
|
items, err := s.spyDao.HistoryPage(c, h) |
|
if err != nil { |
|
log.Error("spyDao.HistoryPage(%v) error(%v)", h, err) |
|
return |
|
} |
|
page.TotalCount = totalCount |
|
page.Items = items |
|
page.Pn = h.Pn |
|
page.Ps = h.Ps |
|
return |
|
} |
|
|
|
// ResetBase reset user base score. |
|
func (s *Service) ResetBase(c context.Context, mid int64, operator string) (err error) { |
|
if err = s.spyDao.ResetBase(c, mid, operator); err != nil { |
|
log.Error("s.spyDao.ResetBase(%d,%s) error(%v)", mid, operator, err) |
|
return |
|
} |
|
return |
|
} |
|
|
|
// Refresh reset user base score. |
|
func (s *Service) RefreshBase(c context.Context, mid int64, operator string) (err error) { |
|
if err = s.spyDao.RefreshBase(c, mid, operator); err != nil { |
|
log.Error("s.spyDao.RefreshBase(%d,%s) error(%v)", mid, operator, err) |
|
return |
|
} |
|
return |
|
} |
|
|
|
// ResetEvent reset user event score. |
|
func (s *Service) ResetEvent(c context.Context, mid int64, operator string) (err error) { |
|
if err = s.spyDao.ResetEvent(c, mid, operator); err != nil { |
|
log.Error("s.spyDao.ResetEvent(%d,%s) error(%v)", mid, operator, err) |
|
return |
|
} |
|
return |
|
} |
|
|
|
// ClearCount clear count. |
|
func (s *Service) ClearCount(c context.Context, mid int64, operator string) (err error) { |
|
if err = s.spyDao.ClearCount(c, mid, operator); err != nil { |
|
log.Error("s.spyDao.ClearCount(%d, %s) error(%v)", mid, operator, err) |
|
return |
|
} |
|
return |
|
} |
|
|
|
// ReportList report list. |
|
func (s *Service) ReportList(c context.Context, ps, pn int) (page *model.ReportPage, err error) { |
|
count, err := s.spyDao.ReportCount(c) |
|
if err != nil { |
|
log.Error("s.spyDao.ReportCount error(%v)", err) |
|
return |
|
} |
|
page = &model.ReportPage{} |
|
items, err := s.spyDao.ReportList(c, ps, pn) |
|
if err != nil { |
|
log.Error("s.spyDao.ReportPage(%d,%d) error(%v)", ps, pn, err) |
|
return |
|
} |
|
page.TotalCount = count |
|
page.Items = items |
|
page.Pn = pn |
|
page.Ps = ps |
|
return |
|
}
|
|
|