96 lines
2.2 KiB
Go
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
|
||
|
}
|
||
|
}
|