mss

package
v0.4.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 20, 2022 License: GPL-2.0 Imports: 2 Imported by: 0

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 Data

type Data map[string]string

消息数据

type IMailMessage

type IMailMessage interface {
	Value() *notify.MailMessage
}

type IMessage

type IMessage interface {

	// 获取领域编号
	GetDomainId() int32

	// 消息类型
	Type() int

	// 检测是否有权限查看
	CheckPerm(toUserId int32, toRole int) bool

	// 是否向特定的人发送
	SpecialTo() bool

	// 获取消息
	GetValue() Message

	// 获取消息发送目标
	GetTo(toUserId int32, toRole int) *To

	// 保存
	Save() (int32, error)

	// 发送
	Send(data Data) error
}

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 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 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"`
}

用户消息绑定

type User

type User struct {
	Id   int32
	Role int
}

Directories

Path Synopsis
* * Copyright 2015 @ 56x.net.
* * Copyright 2015 @ 56x.net.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL