package sender import ( "context" "lone-services/pkg/utils" "lone-services/services/wecom/internal/client" "lone-services/services/wecom/internal/dao" "lone-services/services/wecom/internal/logic/message/handlers" ) type WecomSenderService struct { } func (s WecomSenderService) Send(ctx context.Context, job dao.WeComJob) error { if ctx == nil { ctx = context.Background() } handler, err := handlers.GetHandler(job) if err != nil { return err } reqs, err := handler.Build(ctx, job) if err != nil { return err } messageClient := client.NewMessageClient(job.Type) for _, req := range reqs { if req == nil || req.ToUser == utils.StringEmpty { continue } if err = messageClient.Send(ctx, req); err != nil { return err } } return nil }