Documentation ¶
Overview ¶
*
- Copyright 2015 @ 56x.net.
- name : msg_template
- author : jarryliu
- date : 2015-07-26 21:57
- description :
- history :
*
- Copyright 2015 @ 56x.net.
- name : msg_manager
- author : jarryliu
- date : 2015-07-26 21:30
- description :
- history :
*
- Copyright 2015 @ 56x.net.
- name : mss_tpl
- author : jarryliu
- date : 2016-06-14 19:29
- description :
- history :
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( RoleSystem = 0 RoleMember = 1 RoleMerchant = 2 )
todo: 客服消息
View Source
var ( // 用于通知 UseForNotify = 1 // 用于好友交流 UseForChat = 2 // 用于客服 UseForService = 3 )
View Source
var ( ErrNotSupportMessageType = domain.NewError( "err_not_support_message_type", "不支持的消息类型") ErrNotEnabled = domain.NewError( "err_template_not_enabled", "模板未启用") ErrTemplateUsed = domain.NewError( "err_template_used", "模板被使用,无法删除") ErrMessageUpdate = domain.NewError( "err_message_update", "消息不需要更新") ErrMessageNotSave = domain.NewError( "err_message_not_save", "请在消息发送前保存") ErrUnknownMessageUseFor = domain.NewError( "err_unknown_message_use_for", "未知的消息用途") ErrMessageAllUser = domain.NewError( "err_message_all_user", "消息为全员消息,指定了多余的参数", ) ErrMessageToRole = domain.NewError( "err_message_to_role", "消息为用户类型消息,指定了多余的用户", ) ErrUnknownRole = domain.NewError( "err_unknown_role", "未知的用户类型") ErrNoSuchReceiveUser = domain.NewError( "err_no_such_receive_user", "消息没有指定接收用户") )
View Source
var ( // 站内信用途表 UseForMap = map[int]string{ 1: "站内信", 2: "系统公告", 3: "系统通知", } )
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { //注册完成 RegisterNotifyEnabled bool // 通知类型 RegisterNotifyType int // 通知模板选择 RegisterNotifyTpl int // 注册通知的标签数据 RegisterNotifyTagData string // 资料完成 ProfileCompleteNotifyEnabled bool // 通知类型 ProfileCompleteNotifyType int // 通知模板选择 ProfileCompleteNotifyTpl int }
系统消息发送配置 todo: 过时的
type Content ¶
type Content struct { // 编号 Id int32 `db:"id" pk:"yes" auto:"yes"` // 消息编号 MsgId int32 `db:"msg_id"` // 数据 Data string `db:"msg_data"` }
消息内容
type IMailMessage ¶
type IMailMessage interface {
Value() *notify.MailMessage
}
type IMessageManager ¶
type IMessageManager interface { // 创建消息对象 CreateMessage(msg *Message, content interface{}) IMessage // 创建用于会员通知的消息对象 CreateMemberNotifyMessage(memberId int64, msgType int, content interface{}) IMessage // 获取消息 GetMessage(id int32) IMessage // 获取聊天会话编号 GetChatSessionId(senderRole int, senderId int32, toRole int, toId int32) int32 // 创建聊天会话 CreateChatSession(senderRole int, senderId int32, toRole int, toId int32) (Message, error) }
系统管理
type IMssRepo ¶
type IMssRepo interface { // 获取消息提供者 GetProvider() IUserMessageManager // 系统消息服务 MessageManager() IMessageManager // 通知服务 NotifyManager() notify.INotifyManager // 获取消息设置 GetConfig(userId int64) *Config // 保存消息设置 SaveConfig(userId int64, conf *Config) error // 获取邮箱模板 GetMailTemplate(userId int64, id int32) *MailTemplate // 保存邮箱模版 SaveMailTemplate(*MailTemplate) (int32, error) // 获取所有的邮箱模版 GetMailTemplates(userId int64) []*MailTemplate // 删除邮件模板 DeleteMailTemplate(userId, id int64) error // 加入到发送对列 JoinMailTaskToQueen(*MailTask) error // 保存消息 SaveMessage(msg *Message) (int32, error) // 获取消息 GetMessage(id int32) *Message // 保存用户消息关联 SaveUserMsg(to *To) (int32, error) // 保存消息内容 SaveMsgContent(co *Content) (int32, error) // 获取消息内容 GetMessageContent(msgId int32) *Content // 获取消息目标 GetMessageTo(msgId int32, toUserId int32, toRole int) *To }
type IPhoneMessage ¶
type IPhoneMessage interface {
Value() *notify.PhoneMessage
}
type ISiteMessage ¶
type ISiteMessage interface {
Value() *notify.SiteMessage
}
type IUserMessageManager ¶
type IUserMessageManager interface { // 获取聚合根编号 GetAggregateRootId() int // 获取配置 GetConfig() Config // 保存消息设置 SaveConfig(conf *Config) error // 获取邮箱模板 GetMailTemplate(id int32) *MailTemplate // 保存邮箱模版 SaveMailTemplate(*MailTemplate) (int32, error) // 获取所有的邮箱模版 GetMailTemplates() []*MailTemplate // 删除邮件模板 DeleteMailTemplate(id int32) error }
ErrMsg manager,主要用于管理用户的模板
type MailTask ¶
type MailTask struct { // 编号 Id int32 `db:"id" pk:"yes" auto:"yes"` // 任务编号,无任务为0 TaskId int32 `db:"task_id"` // 商户编号 MerchantId int32 `db:"merchant_id"` // 发送至 SendTo string `db:"send_to"` // 主题 Subject string `db:"subject"` // 内容 Body string `db:"body"` // 是否发送(0,1) IsSend int `db:"is_send"` // 是否失败(0,1) IsFailed int `db:"is_failed"` // 创建时间 CreateTime int64 `db:"create_time"` // 发送时间 SendTime int64 `db:"update_time` }
type MailTemplate ¶
type MailTemplate struct { // 编号 Id int32 `db:"id" pk:"yes" auto:"yes"` // 商户编号 MerchantId int64 `db:"merchant_id"` // 名称 Name string `db:"name"` // 主题 Subject string `db:"subject"` // 内容 Body string `db:"body"` // 是否启用 Enabled int `db:"enabled"` // 创建时间 CreateTime int64 `db:"create_time"` // 更新时间 UpdateTime int64 `db:"update_time"` }
邮件模版
type Message ¶
type Message struct { // 消息编号 Id int32 `db:"id" pk:"yes" auto:"yes"` // 消息类型 Type int `db:"msg_type"` // 消息用途 UseFor int `db:"use_for"` // 发送人角色 SenderRole int `db:"sender_role"` // 发送人编号 SenderId int32 `db:"sender_id"` // 发送的目标 To []User `db:"-"` // 内容 Content *Content `db:"-"` // 发送的用户角色 ToRole int `db:"to_role"` // 全系统接收,1为是,0为否 AllUser int `db:"all_user"` // 是否只能阅读 Readonly int `db:"read_only"` // 创建时间 CreateTime int64 `db:"create_time"` }
消息,优先级为: AllUser -> ToRole -> To
type MessageScene ¶
type MessageScene int
const ( // 用户登录注册等场景 UserScene MessageScene = 1 // 用户密码场景 PasswordScene MessageScene = 2 // 其他场景 OtherScene MessageScene = 3 )
type Replay ¶
type Replay struct { // 编号 Id int32 `db:"id" pk:"yes" auto:"yes"` // 关联回复编号 ReferId int32 `db:"refer_id"` // 发送者编号 SenderId int32 `db:"sender_id"` // 发送者角色 SenderRole int `db:"sender_role"` // 内容 Content string `db:"content"` }
回复
type SmsProvider ¶
type SmsProvider int
const ( // 自定义短信发送,推送到消息队列由外部系统处理 CUSTOM SmsProvider = 1 // HTTP短信 HTTP SmsProvider = 2 // 通用HTTP接口 TECENT_CLOUD SmsProvider = 3 // 阿里云短信 ALIYUN SmsProvider = 4 // 创蓝短信 CHUANGLAN SmsProvider = 5 )
type To ¶
type To struct { // 编号 Id int32 `db:"id" pk:"yes" auto:"yes"` // 接收者编号 ToId int32 `db:"to_id"` // 接收者角色 ToRole int `db:"to_role"` // 消息编号 MsgId int32 `db:"msg_id"` // 内容编号 ContentId int32 `db:"content_id"` // 是否阅读 HasRead int `db:"has_read"` // 阅读时间 ReadTime int64 `db:"read_time"` }
用户消息绑定
Click to show internal directories.
Click to hide internal directories.