go-common/app/admin/main/member/service/monitor.go
2019-04-22 18:49:16 +08:00

96 lines
2.2 KiB
Go

package service
import (
"context"
"fmt"
"time"
"go-common/app/admin/main/member/model"
"go-common/library/log"
"go-common/library/queue/databus/report"
)
const (
_logActionMonitorAdd = "monitor_user_add"
_logActionMonitorDel = "monitor_user_del"
)
// Monitors is.
func (s *Service) Monitors(ctx context.Context, arg *model.ArgMonitor) ([]*model.Monitor, int, error) {
includeDeleted := false
if arg.Mid > 0 {
includeDeleted = true
}
mns, total, err := s.dao.Monitors(ctx, arg.Mid, includeDeleted, arg.Pn, arg.Ps)
if err != nil {
return nil, 0, err
}
s.monitorsName(ctx, mns)
return mns, total, nil
}
// AddMonitor is.
func (s *Service) AddMonitor(ctx context.Context, arg *model.ArgAddMonitor) error {
remark := fmt.Sprintf("加入监控列表:%s", arg.Remark)
if err := s.dao.AddMonitor(ctx, arg.Mid, arg.Operator, remark); err != nil {
return err
}
report.Manager(&report.ManagerInfo{
Uname: arg.Operator,
UID: arg.OperatorID,
Business: model.ManagerLogID,
Type: 0,
Oid: arg.Mid,
Action: _logActionMonitorAdd,
Ctime: time.Now(),
// extra
Index: []interface{}{},
Content: map[string]interface{}{
"remark": remark,
},
})
return nil
}
// DelMonitor is.
func (s *Service) DelMonitor(ctx context.Context, arg *model.ArgDelMonitor) error {
remark := fmt.Sprintf("移出监控列表:%s", arg.Remark)
if err := s.dao.DelMonitor(ctx, arg.Mid, arg.Operator, remark); err != nil {
return err
}
report.Manager(&report.ManagerInfo{
Uname: arg.Operator,
UID: arg.OperatorID,
Business: model.ManagerLogID,
Type: 0,
Oid: arg.Mid,
Action: _logActionMonitorDel,
Ctime: time.Now(),
// extra
Index: []interface{}{},
Content: map[string]interface{}{
"remark": remark,
},
})
return nil
}
func (s *Service) monitorsName(ctx context.Context, mns []*model.Monitor) {
mids := make([]int64, 0, len(mns))
for _, mn := range mns {
mids = append(mids, mn.Mid)
}
bs, err := s.dao.Bases(ctx, mids)
if err != nil {
log.Error("Failed to fetch bases with mids: %+v: %+v", mids, err)
return
}
for _, mn := range mns {
b, ok := bs[mn.Mid]
if !ok {
continue
}
mn.Name = b.Name
}
}