package service import ( pb "bkb-notify/api" "bkb-notify/internal/biz" "bkb-notify/internal/utils" "context" "regexp" ) type SmsService struct { pb.UnimplementedSmsServer uc *biz.SmsUsecase } func NewSmsService(uc *biz.SmsUsecase) *SmsService { return &SmsService{ uc: uc, } } func (s *SmsService) SendMessage(ctx context.Context, req *pb.SendSmsRequest) (*pb.SendSmsReply, error) { var ( err error isGlobal bool ) //fmt.Println(time.Now()) //fmt.Println(ctx.Deadline()) //验证手机号 if req.AreaCode == "86" || req.AreaCode == "" { if ok, err := regexp.MatchString(utils.RegPhoneNumber, req.Phone); !ok { return &pb.SendSmsReply{Code: 1, Message: "手机号码格式不合法"}, err } isGlobal = false } else { req.Phone = req.AreaCode + req.Phone isGlobal = true } //发送验证码 err = s.uc.SendSms(req.Phone, int(req.SmsType), isGlobal) if err != nil { return &pb.SendSmsReply{Code: 1, Message: err.Error()}, err } return &pb.SendSmsReply{Code: 0, Message: "发送成功"}, nil } func (s *SmsService) VerifyCode(ctx context.Context, req *pb.SmsCodeVerifyRequest) (*pb.SendSmsReply, error) { var ( err error ) //验证手机号 if ok, err := regexp.MatchString(utils.RegPhoneNumber, req.Phone); !ok { return &pb.SendSmsReply{Code: 1, Message: "手机号码格式不合法"}, err } //发送验证码 err = s.uc.CheckCode(req.Phone, req.Code) if err != nil { return &pb.SendSmsReply{Code: 1, Message: err.Error()}, err } return &pb.SendSmsReply{Code: 0, Message: "校验成功"}, nil }