go-common/app/admin/main/spy/service/service.go

73 lines
1.4 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package service
import (
"context"
"time"
"go-common/app/admin/main/spy/conf"
spydao "go-common/app/admin/main/spy/dao"
"go-common/app/admin/main/spy/model"
"go-common/library/log"
)
// Service biz service def.
type Service struct {
c *conf.Config
spyDao *spydao.Dao
allEventName map[int64]string
loadEventTick time.Duration
}
// New new a Service and return.
func New(c *conf.Config) (s *Service) {
s = &Service{
c: c,
spyDao: spydao.New(c),
allEventName: make(map[int64]string),
loadEventTick: time.Duration(c.Property.LoadEventTick),
}
s.loadeventname()
go s.loadeventproc()
return
}
// Ping check dao health.
func (s *Service) Ping(c context.Context) (err error) {
return s.spyDao.Ping(c)
}
// Wait wait all closed.
func (s *Service) Wait() {
}
// Close close all dao.
func (s *Service) Close() {
s.spyDao.Close()
}
func (s *Service) loadeventname() (err error) {
var (
c = context.TODO()
es []*model.Event
)
es, err = s.spyDao.AllEvent(c)
if err != nil {
log.Error("loadeventname allevent error(%v)", err)
return
}
tmp := make(map[int64]string, len(es))
for _, e := range es {
tmp[e.ID] = e.NickName
}
s.allEventName = tmp
log.V(2).Info("loadeventname (%v) load success", tmp)
return
}
func (s *Service) loadeventproc() {
for {
time.Sleep(s.loadEventTick)
s.loadeventname()
}
}