mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-18 11:50:26 +08:00
通知媒介增加任务队列查看功能
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models/stats"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
timeutil "github.com/iwind/TeaGo/utils/time"
|
||||
@@ -224,11 +225,7 @@ func (this *FirewallService) NotifyHTTPFirewallEvent(ctx context.Context, req *p
|
||||
"\n规则分组:" + ruleGroupName +
|
||||
"\n规则集:" + ruleSetName +
|
||||
"\n时间:" + timeutil.FormatTime("Y-m-d H:i:s", req.CreatedAt)
|
||||
err = models.SharedMessageTaskDAO.CreateMessageTasks(tx, models.MessageTaskTarget{
|
||||
ClusterId: clusterId,
|
||||
NodeId: nodeId,
|
||||
ServerId: req.ServerId,
|
||||
}, models.MessageTypeFirewallEvent, "发生防火墙事件", msg)
|
||||
err = models.SharedMessageTaskDAO.CreateMessageTasks(tx, nodeconfigs.NodeRoleNode, clusterId, nodeId, req.ServerId, models.MessageTypeFirewallEvent, "触发防火墙事件", msg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -8,12 +8,12 @@ import (
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
)
|
||||
|
||||
// 消息媒介实例服务
|
||||
// MessageMediaInstanceService 消息媒介实例服务
|
||||
type MessageMediaInstanceService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// 创建消息媒介实例
|
||||
// CreateMessageMediaInstance 创建消息媒介实例
|
||||
func (this *MessageMediaInstanceService) CreateMessageMediaInstance(ctx context.Context, req *pb.CreateMessageMediaInstanceRequest) (*pb.CreateMessageMediaInstanceResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -38,7 +38,7 @@ func (this *MessageMediaInstanceService) CreateMessageMediaInstance(ctx context.
|
||||
return &pb.CreateMessageMediaInstanceResponse{MessageMediaInstanceId: instanceId}, nil
|
||||
}
|
||||
|
||||
// 修改消息实例
|
||||
// UpdateMessageMediaInstance 修改消息实例
|
||||
func (this *MessageMediaInstanceService) UpdateMessageMediaInstance(ctx context.Context, req *pb.UpdateMessageMediaInstanceRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -62,7 +62,7 @@ func (this *MessageMediaInstanceService) UpdateMessageMediaInstance(ctx context.
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// 删除媒介实例
|
||||
// DeleteMessageMediaInstance 删除媒介实例
|
||||
func (this *MessageMediaInstanceService) DeleteMessageMediaInstance(ctx context.Context, req *pb.DeleteMessageMediaInstanceRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -77,7 +77,7 @@ func (this *MessageMediaInstanceService) DeleteMessageMediaInstance(ctx context.
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// 计算媒介实例数量
|
||||
// CountAllEnabledMessageMediaInstances 计算媒介实例数量
|
||||
func (this *MessageMediaInstanceService) CountAllEnabledMessageMediaInstances(ctx context.Context, req *pb.CountAllEnabledMessageMediaInstancesRequest) (*pb.RPCCountResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -93,7 +93,7 @@ func (this *MessageMediaInstanceService) CountAllEnabledMessageMediaInstances(ct
|
||||
return this.SuccessCount(count)
|
||||
}
|
||||
|
||||
// 列出单页媒介实例
|
||||
// ListEnabledMessageMediaInstances 列出单页媒介实例
|
||||
func (this *MessageMediaInstanceService) ListEnabledMessageMediaInstances(ctx context.Context, req *pb.ListEnabledMessageMediaInstancesRequest) (*pb.ListEnabledMessageMediaInstancesResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -137,7 +137,7 @@ func (this *MessageMediaInstanceService) ListEnabledMessageMediaInstances(ctx co
|
||||
return &pb.ListEnabledMessageMediaInstancesResponse{MessageMediaInstances: pbInstances}, nil
|
||||
}
|
||||
|
||||
// 查找单个媒介实例信息
|
||||
// FindEnabledMessageMediaInstance 查找单个媒介实例信息
|
||||
func (this *MessageMediaInstanceService) FindEnabledMessageMediaInstance(ctx context.Context, req *pb.FindEnabledMessageMediaInstanceRequest) (*pb.FindEnabledMessageMediaInstanceResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -145,7 +145,8 @@ func (this *MessageMediaInstanceService) FindEnabledMessageMediaInstance(ctx con
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, req.MessageMediaInstanceId)
|
||||
var cacheMap = maps.Map{}
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, req.MessageMediaInstanceId, cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/iwind/TeaGo/dbs"
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
@@ -21,6 +22,10 @@ func (this *MessageReceiverService) UpdateMessageReceivers(ctx context.Context,
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(req.Role) == 0 {
|
||||
req.Role = nodeconfigs.NodeRoleNode
|
||||
}
|
||||
|
||||
params := maps.Map{}
|
||||
if len(req.ParamsJSON) > 0 {
|
||||
err = json.Unmarshal(req.ParamsJSON, ¶ms)
|
||||
@@ -37,11 +42,7 @@ func (this *MessageReceiverService) UpdateMessageReceivers(ctx context.Context,
|
||||
|
||||
for messageType, options := range req.RecipientOptions {
|
||||
for _, option := range options.RecipientOptions {
|
||||
_, err := models.SharedMessageReceiverDAO.CreateReceiver(tx, models.MessageTaskTarget{
|
||||
ClusterId: req.NodeClusterId,
|
||||
NodeId: req.NodeId,
|
||||
ServerId: req.ServerId,
|
||||
}, messageType, params, option.MessageRecipientId, option.MessageRecipientGroupId)
|
||||
_, err := models.SharedMessageReceiverDAO.CreateReceiver(tx, req.Role, req.NodeClusterId, req.NodeId, req.ServerId, messageType, params, option.MessageRecipientId, option.MessageRecipientGroupId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -63,12 +64,13 @@ func (this *MessageReceiverService) FindAllEnabledMessageReceivers(ctx context.C
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(req.Role) == 0 {
|
||||
req.Role = nodeconfigs.NodeRoleNode
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
receivers, err := models.SharedMessageReceiverDAO.FindAllEnabledReceivers(tx, models.MessageTaskTarget{
|
||||
ClusterId: req.NodeClusterId,
|
||||
NodeId: req.NodeId,
|
||||
ServerId: req.ServerId,
|
||||
}, "")
|
||||
var cacheMap = maps.Map{}
|
||||
receivers, err := models.SharedMessageReceiverDAO.FindAllEnabledReceivers(tx, req.Role, req.NodeClusterId, req.NodeId, req.ServerId, "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -78,7 +80,7 @@ func (this *MessageReceiverService) FindAllEnabledMessageReceivers(ctx context.C
|
||||
|
||||
// 接收人
|
||||
if receiver.RecipientId > 0 {
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(receiver.RecipientId))
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(receiver.RecipientId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -96,7 +98,7 @@ func (this *MessageReceiverService) FindAllEnabledMessageReceivers(ctx context.C
|
||||
}
|
||||
|
||||
// 接收人
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId))
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -177,12 +179,12 @@ func (this *MessageReceiverService) CountAllEnabledMessageReceivers(ctx context.
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(req.Role) == 0 {
|
||||
req.Role = nodeconfigs.NodeRoleNode
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
count, err := models.SharedMessageReceiverDAO.CountAllEnabledReceivers(tx, models.MessageTaskTarget{
|
||||
ClusterId: req.NodeClusterId,
|
||||
NodeId: req.NodeId,
|
||||
ServerId: req.ServerId,
|
||||
}, "")
|
||||
count, err := models.SharedMessageReceiverDAO.CountAllEnabledReceivers(tx, req.Role, req.NodeClusterId, req.NodeId, req.ServerId, "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -4,14 +4,15 @@ import (
|
||||
"context"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
)
|
||||
|
||||
// 消息接收人服务
|
||||
// MessageRecipientService 消息接收人服务
|
||||
type MessageRecipientService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// 创建接收人
|
||||
// CreateMessageRecipient 创建接收人
|
||||
func (this *MessageRecipientService) CreateMessageRecipient(ctx context.Context, req *pb.CreateMessageRecipientRequest) (*pb.CreateMessageRecipientResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -27,7 +28,7 @@ func (this *MessageRecipientService) CreateMessageRecipient(ctx context.Context,
|
||||
return &pb.CreateMessageRecipientResponse{MessageRecipientId: recipientId}, nil
|
||||
}
|
||||
|
||||
// 修改接收人
|
||||
// UpdateMessageRecipient 修改接收人
|
||||
func (this *MessageRecipientService) UpdateMessageRecipient(ctx context.Context, req *pb.UpdateMessageRecipientRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -43,7 +44,7 @@ func (this *MessageRecipientService) UpdateMessageRecipient(ctx context.Context,
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// 删除接收人
|
||||
// DeleteMessageRecipient 删除接收人
|
||||
func (this *MessageRecipientService) DeleteMessageRecipient(ctx context.Context, req *pb.DeleteMessageRecipientRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -58,7 +59,7 @@ func (this *MessageRecipientService) DeleteMessageRecipient(ctx context.Context,
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// 计算接收人数量
|
||||
// CountAllEnabledMessageRecipients 计算接收人数量
|
||||
func (this *MessageRecipientService) CountAllEnabledMessageRecipients(ctx context.Context, req *pb.CountAllEnabledMessageRecipientsRequest) (*pb.RPCCountResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -74,7 +75,7 @@ func (this *MessageRecipientService) CountAllEnabledMessageRecipients(ctx contex
|
||||
return this.SuccessCount(count)
|
||||
}
|
||||
|
||||
// 列出单页接收人
|
||||
// ListEnabledMessageRecipients 列出单页接收人
|
||||
func (this *MessageRecipientService) ListEnabledMessageRecipients(ctx context.Context, req *pb.ListEnabledMessageRecipientsRequest) (*pb.ListEnabledMessageRecipientsResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -82,6 +83,7 @@ func (this *MessageRecipientService) ListEnabledMessageRecipients(ctx context.Co
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = maps.Map{}
|
||||
recipients, err := models.SharedMessageRecipientDAO.ListAllEnabledRecipients(tx, req.AdminId, req.MessageRecipientGroupId, req.MediaType, req.Keyword, req.Offset, req.Size)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -104,7 +106,7 @@ func (this *MessageRecipientService) ListEnabledMessageRecipients(ctx context.Co
|
||||
}
|
||||
|
||||
// 媒介实例
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId))
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -151,7 +153,7 @@ func (this *MessageRecipientService) ListEnabledMessageRecipients(ctx context.Co
|
||||
return &pb.ListEnabledMessageRecipientsResponse{MessageRecipients: pbRecipients}, nil
|
||||
}
|
||||
|
||||
// 查找单个接收人信息
|
||||
// FindEnabledMessageRecipient 查找单个接收人信息
|
||||
func (this *MessageRecipientService) FindEnabledMessageRecipient(ctx context.Context, req *pb.FindEnabledMessageRecipientRequest) (*pb.FindEnabledMessageRecipientResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -159,7 +161,8 @@ func (this *MessageRecipientService) FindEnabledMessageRecipient(ctx context.Con
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, req.MessageRecipientId)
|
||||
var cacheMap = maps.Map{}
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, req.MessageRecipientId, cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -183,7 +186,7 @@ func (this *MessageRecipientService) FindEnabledMessageRecipient(ctx context.Con
|
||||
}
|
||||
|
||||
// 媒介实例
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId))
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ func (this *MessageTaskService) FindSendingMessageTasks(ctx context.Context, req
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = maps.Map{}
|
||||
tasks, err := models.SharedMessageTaskDAO.FindSendingMessageTasks(tx, req.Size)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -45,8 +46,7 @@ func (this *MessageTaskService) FindSendingMessageTasks(ctx context.Context, req
|
||||
for _, task := range tasks {
|
||||
var pbRecipient *pb.MessageRecipient
|
||||
if task.RecipientId > 0 {
|
||||
// TODO 需要缓存以提升性能
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(task.RecipientId))
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(task.RecipientId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -60,8 +60,7 @@ func (this *MessageTaskService) FindSendingMessageTasks(ctx context.Context, req
|
||||
}
|
||||
|
||||
// 媒介
|
||||
// TODO 需要缓存以提升性能
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId))
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -87,8 +86,7 @@ func (this *MessageTaskService) FindSendingMessageTasks(ctx context.Context, req
|
||||
}
|
||||
} else { // 没有指定既定的接收人
|
||||
// 媒介
|
||||
// TODO 需要缓存以提升性能
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(task.InstanceId))
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(task.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -186,6 +184,7 @@ func (this *MessageTaskService) FindEnabledMessageTask(ctx context.Context, req
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = maps.Map{}
|
||||
task, err := models.SharedMessageTaskDAO.FindEnabledMessageTask(tx, req.MessageTaskId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -194,10 +193,9 @@ func (this *MessageTaskService) FindEnabledMessageTask(ctx context.Context, req
|
||||
return &pb.FindEnabledMessageTaskResponse{MessageTask: nil}, nil
|
||||
}
|
||||
|
||||
// TODO 需要缓存以提升性能
|
||||
var pbRecipient *pb.MessageRecipient
|
||||
if task.RecipientId > 0 {
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(task.RecipientId))
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(task.RecipientId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -211,8 +209,7 @@ func (this *MessageTaskService) FindEnabledMessageTask(ctx context.Context, req
|
||||
}
|
||||
|
||||
// 媒介
|
||||
// TODO 需要缓存以提升性能
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId))
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -237,8 +234,7 @@ func (this *MessageTaskService) FindEnabledMessageTask(ctx context.Context, req
|
||||
}
|
||||
} else { // 没有指定既定的接收人
|
||||
// 媒介
|
||||
// TODO 需要缓存以提升性能
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(task.InstanceId))
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(task.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -282,3 +278,127 @@ func (this *MessageTaskService) FindEnabledMessageTask(ctx context.Context, req
|
||||
Result: result,
|
||||
}}, nil
|
||||
}
|
||||
|
||||
// CountMessageTasksWithStatus 计算某个状态的消息任务数量
|
||||
func (this *MessageTaskService) CountMessageTasksWithStatus(ctx context.Context, req *pb.CountMessageTasksWithStatusRequest) (*pb.RPCCountResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
count, err := models.SharedMessageTaskDAO.CountMessageTasksWithStatus(tx, types.Int(req.Status))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return this.SuccessCount(count)
|
||||
}
|
||||
|
||||
// ListMessageTasksWithStatus 根据状态列出某页任务
|
||||
func (this *MessageTaskService) ListMessageTasksWithStatus(ctx context.Context, req *pb.ListMessageTasksWithStatusRequest) (*pb.ListMessageTasksWithStatusResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = maps.Map{}
|
||||
tasks, err := models.SharedMessageTaskDAO.ListMessageTasksWithStatus(tx, types.Int(req.Status), req.Offset, req.Size)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var pbTasks = []*pb.MessageTask{}
|
||||
for _, task := range tasks {
|
||||
var pbRecipient *pb.MessageRecipient
|
||||
if task.RecipientId > 0 {
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(task.RecipientId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if recipient == nil || recipient.IsOn == 0 {
|
||||
// 如果发送人已经删除或者禁用,则删除此消息
|
||||
err = models.SharedMessageTaskDAO.DisableMessageTask(tx, int64(task.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
// 媒介
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil || instance.IsOn == 0 {
|
||||
// 如果媒介实例已经删除或者禁用,则删除此消息
|
||||
err = models.SharedMessageTaskDAO.DisableMessageTask(tx, int64(task.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
pbRecipient = &pb.MessageRecipient{
|
||||
Id: int64(recipient.Id),
|
||||
User: recipient.User,
|
||||
MessageMediaInstance: &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
Name: instance.Name,
|
||||
MessageMedia: &pb.MessageMedia{
|
||||
Type: instance.MediaType,
|
||||
},
|
||||
ParamsJSON: []byte(instance.Params),
|
||||
},
|
||||
}
|
||||
} else { // 没有指定既定的接收人
|
||||
// 媒介
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(task.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil || instance.IsOn == 0 {
|
||||
// 如果媒介实例已经删除或者禁用,则删除此消息
|
||||
err = models.SharedMessageTaskDAO.DisableMessageTask(tx, int64(task.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
continue
|
||||
}
|
||||
pbRecipient = &pb.MessageRecipient{
|
||||
Id: 0,
|
||||
MessageMediaInstance: &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
Name: instance.Name,
|
||||
MessageMedia: &pb.MessageMedia{
|
||||
Type: instance.MediaType,
|
||||
},
|
||||
ParamsJSON: []byte(instance.Params),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
var result = &pb.MessageTaskResult{}
|
||||
if len(task.Result) > 0 {
|
||||
err = json.Unmarshal([]byte(task.Result), result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
pbTasks = append(pbTasks, &pb.MessageTask{
|
||||
Id: int64(task.Id),
|
||||
MessageRecipient: pbRecipient,
|
||||
User: task.User,
|
||||
Subject: task.Subject,
|
||||
Body: task.Body,
|
||||
CreatedAt: int64(task.CreatedAt),
|
||||
Status: types.Int32(task.Status),
|
||||
SentAt: int64(task.SentAt),
|
||||
Result: result,
|
||||
})
|
||||
}
|
||||
|
||||
return &pb.ListMessageTasksWithStatusResponse{MessageTasks: pbTasks}, nil
|
||||
}
|
||||
|
||||
@@ -4,14 +4,15 @@ import (
|
||||
"context"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
)
|
||||
|
||||
// 消息发送日志相关服务
|
||||
// MessageTaskLogService 消息发送日志相关服务
|
||||
type MessageTaskLogService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// 计算日志数量
|
||||
// CountMessageTaskLogs 计算日志数量
|
||||
func (this *MessageTaskLogService) CountMessageTaskLogs(ctx context.Context, req *pb.CountMessageTaskLogsRequest) (*pb.RPCCountResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx, 0)
|
||||
if err != nil {
|
||||
@@ -32,6 +33,7 @@ func (this *MessageTaskLogService) ListMessageTaskLogs(ctx context.Context, req
|
||||
return nil, err
|
||||
}
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = maps.Map{}
|
||||
logs, err := models.SharedMessageTaskLogDAO.ListLogs(tx, req.Offset, req.Size)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -49,7 +51,7 @@ func (this *MessageTaskLogService) ListMessageTaskLogs(ctx context.Context, req
|
||||
|
||||
var pbRecipient *pb.MessageRecipient
|
||||
if task.RecipientId > 0 {
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(task.RecipientId))
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(task.RecipientId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -62,7 +64,7 @@ func (this *MessageTaskLogService) ListMessageTaskLogs(ctx context.Context, req
|
||||
}
|
||||
}
|
||||
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(task.InstanceId))
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(task.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -951,9 +951,7 @@ func (this *NodeClusterService) FindEnabledNodeClusterConfigInfo(ctx context.Con
|
||||
result.HasThresholds = countThresholds > 0
|
||||
|
||||
// message receivers
|
||||
countReceivers, err := models.SharedMessageReceiverDAO.CountAllEnabledReceivers(tx, models.MessageTaskTarget{
|
||||
ClusterId: req.NodeClusterId,
|
||||
}, "")
|
||||
countReceivers, err := models.SharedMessageReceiverDAO.CountAllEnabledReceivers(tx, nodeconfigs.NodeRoleNode, req.NodeClusterId, 0, 0, "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user