go-common/app/interface/openplatform/article/service/notice.go
2019-04-22 18:49:16 +08:00

56 lines
1.0 KiB
Go

package service
import (
"context"
"time"
artmdl "go-common/app/interface/openplatform/article/model"
)
const (
_platAll = 0
_platAndroid = 1
_platIOS = 2
_equal = 0
_greaterThanOrEqual = 1
_lessThanOrEqual = 2
)
func (s *Service) loadNoticeproc() {
for {
if notices, err := s.dao.Notices(context.TODO(), time.Now()); err == nil {
s.notices = notices
}
time.Sleep(time.Minute)
}
}
// Notice get notice
func (s *Service) Notice(platform string, build int) (res *artmdl.Notice) {
var plat int
if platform == "android" {
plat = _platAndroid
}
if platform == "ios" {
plat = _platIOS
}
for _, notice := range s.notices {
var ok bool
if (notice.Plat == _platAll) || (notice.Plat == plat) {
switch notice.Condition {
case _equal:
ok = build == notice.Build
case _greaterThanOrEqual:
ok = build >= notice.Build
case _lessThanOrEqual:
ok = build <= notice.Build
}
}
if ok {
notice.Content = notice.Title
return notice
}
}
return nil
}