-
Notifications
You must be signed in to change notification settings - Fork 0
/
mss_manager.go
91 lines (81 loc) · 2.3 KB
/
mss_manager.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/**
* Copyright 2015 @ z3q.net.
* name : MssManager
* author : jarryliu
* date : 2015-07-26 23:08
* description :
* history :
*/
package mss
import (
"errors"
"go2o/src/core/domain/interface/partner"
"go2o/src/core/domain/interface/partner/mss"
"strconv"
"time"
)
var _ mss.IMssManager = new(MssManager)
type MssManager struct {
_partner partner.IPartner
_mssRep mss.IMssRep
_partnerRep partner.IPartnerRep
_mailTemplates []*mss.MailTemplate
}
func NewMssManager(p partner.IPartner, rep mss.IMssRep, partnerRep partner.IPartnerRep) mss.IMssManager {
return &MssManager{
_partner: p,
_mssRep: rep,
_partnerRep: partnerRep,
}
}
// 创建消息模版对象
func (this *MssManager) CreateMsgTemplate(v interface{}) (mss.IMsgTemplate, error) {
//todo: other message type
var err error
partnerId := this._partner.GetAggregateRootId()
switch v.(type) {
case *mss.MailTemplate:
tpl := v.(*mss.MailTemplate)
if tpl.Enabled == 0 {
err = mss.ErrNotEnabled
}
return newMailTemplate(partnerId, this._mssRep, tpl), err
}
return nil, mss.ErrNotSupportMessageType
}
// 发送消息
func (this *MssManager) Send(tpl mss.IMsgTemplate, data mss.MsgData, to []string) error {
if tpl != nil {
tpl.ApplyData(data)
return tpl.JoinQueen(to)
}
return errors.New("template is nil")
}
// 获取邮箱模板
func (this *MssManager) GetMailTemplate(id int) *mss.MailTemplate {
return this._mssRep.GetMailTemplate(this._partner.GetAggregateRootId(), id)
}
// 保存邮箱模版
func (this *MssManager) SaveMailTemplate(v *mss.MailTemplate) (int, error) {
v.PartnerId = this._partner.GetAggregateRootId()
v.UpdateTime = time.Now().Unix()
if v.CreateTime == 0 {
v.CreateTime = v.UpdateTime
}
return this._mssRep.SaveMailTemplate(v)
}
// 删除邮件模板
func (this *MssManager) DeleteMailTemplate(id int) error {
partnerId := this._partner.GetAggregateRootId()
if this._partnerRep.CheckKvContainValue(partnerId, "kvset", strconv.Itoa(id), "mail") > 0 {
return mss.ErrTemplateUsed
}
return this._mssRep.DeleteMailTemplate(partnerId, id)
}
// 获取所有的邮箱模版
func (this *MssManager) GetMailTemplates() []*mss.MailTemplate {
if this._mailTemplates == nil {
this._mailTemplates = this._mssRep.GetMailTemplates(this._partner.GetAggregateRootId())
}
return this._mailTemplates
}