Files
go-common/app/service/bbq/sys-msg/internal/service/service.go
2019-04-22 18:49:16 +08:00

81 lines
1.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package service
import (
"context"
"github.com/golang/protobuf/ptypes/empty"
"go-common/library/log"
"go-common/app/service/bbq/sys-msg/api/v1"
"go-common/app/service/bbq/sys-msg/internal/conf"
"go-common/app/service/bbq/sys-msg/internal/dao"
)
// Service struct
type Service struct {
c *conf.Config
dao *dao.Dao
}
// New init
func New(c *conf.Config) (s *Service) {
s = &Service{
c: c,
dao: dao.New(c),
}
return s
}
// Ping Service
func (s *Service) Ping(ctx context.Context) (err error) {
return s.dao.Ping(ctx)
}
// Close Service
func (s *Service) Close() {
s.dao.Close()
}
// ListSysMsg 获取系统通知
func (s *Service) ListSysMsg(ctx context.Context, req *v1.ListSysMsgReq) (res *v1.ListSysMsgReply, err error) {
res = new(v1.ListSysMsgReply)
if len(req.Ids) == 0 {
return
}
msgMap, err := s.dao.SysMsg(ctx, req.Ids)
if err != nil {
log.Errorv(ctx, log.KV("log", "list sys msg fail: req="+req.String()))
}
for _, id := range req.Ids {
val, exists := msgMap[id]
if !exists {
log.Errorv(ctx)
continue
}
// 只返回状态可见的msg当id=0时表示穿透也就是无效id
if val.Id != 0 && val.State == 0 {
res.List = append(res.List, val)
} else {
log.V(1).Infov(ctx, log.KV("log", "no show msg"), log.KV("id", id), log.KV("msg", val.String()))
}
}
log.V(1).Infov(ctx, log.KV("req_size", len(req.Ids)), log.KV("rsp_size", len(res.List)))
return
}
// CreateSysMsg 创建消息
func (s *Service) CreateSysMsg(ctx context.Context, req *v1.SysMsg) (res *empty.Empty, err error) {
res = new(empty.Empty)
err = s.dao.CreateSysMsg(ctx, req)
if err != nil {
log.Errorv(ctx, log.KV("log", "create sys msg fail: req="+req.String()))
}
return
}
// UpdateSysMsg 更新,一般是状态更新
func (s *Service) UpdateSysMsg(ctx context.Context, req *v1.SysMsg) (res *empty.Empty, err error) {
res = new(empty.Empty)
return
}