// 发送 func (this *phoneMessageImpl) Send(d mss.Data) error { err := this.messageImpl.Send(d) if err == nil { v := *this._val v = notify.PhoneMessage(Transplate(string(v), d)) var contentId int //内容编号 if contentId, err = this.saveContent(string(v)); err == nil { this.saveUserMsg(contentId, 1) //短信默认已读 } } return err }
// 创建消息模版对象 func (this *messageManagerImpl) GetMessage(id int) mss.IMessage { if msg := this._rep.GetMessage(id); msg != nil { con := this._rep.GetMessageContent(msg.Id) switch msg.Type { case notify.TypePhoneMessage: v := notify.PhoneMessage(con.Data) return this.CreateMessage(msg, &v) case notify.TypeEmailMessage: v := notify.MailMessage{} json.Unmarshal([]byte(con.Data), &v) return this.CreateMessage(msg, &v) case notify.TypeSiteMessage: v := notify.SiteMessage{} json.Unmarshal([]byte(con.Data), &v) return this.CreateMessage(msg, &v) } } return nil }
// 发送验证码,并返回验证码 func (this *memberImpl) SendCheckCode(operation string, mssType int) (string, error) { const expiresMinutes = 10 //10分钟生效 code := domain.NewCheckCode() this._value.CheckCode = code this._value.CheckExpires = time.Now().Add(time.Minute * expiresMinutes).Unix() _, err := this.Save() if err == nil { mgr := this._mssRep.NotifyManager() pro := this.Profile().GetProfile() // 创建参数 data := map[string]interface{}{ "code": code, "operation": operation, "minutes": expiresMinutes, } // 根据消息类型发送信息 switch mssType { case notify.TypePhoneMessage: // 某些短信平台要求传入模板ID,在这里附加参数 provider, _ := this._valRep.GetDefaultSmsApiPerm() data = sms.AppendCheckPhoneParams(provider, data) // 构造并发送短信 n := mgr.GetNotifyItem("验证手机") c := notify.PhoneMessage(n.Content) err = mgr.SendPhoneMessage(pro.Phone, c, data) default: case notify.TypeEmailMessage: n := mgr.GetNotifyItem("验证邮箱") c := ¬ify.MailMessage{ Subject: operation + "验证码", Body: n.Content, } err = mgr.SendEmail(pro.Phone, c, data) } } return code, err }