邮件功能优化
This commit is contained in:
parent
c464275763
commit
18e40fa78e
@ -481,6 +481,7 @@ type SqlServerMailStruct struct {
|
||||
End_time int64 `db:"end_time"`
|
||||
Mail_type int `db:"mail_type"`
|
||||
To_uids string `db:"to_uids"`
|
||||
CreateTime int64 `db:"create_time"`
|
||||
}
|
||||
|
||||
type SqlChargeOrderStruct struct {
|
||||
|
||||
@ -9,6 +9,11 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
MAIL_TYPE_SERVER = 1
|
||||
MAIL_TYPE_USER = 2
|
||||
)
|
||||
|
||||
type MailMgr struct {
|
||||
*ServerMod
|
||||
list map[int]*ServerMail
|
||||
@ -39,6 +44,13 @@ func (m *MailMgr) Init() {
|
||||
// 注册处理函数
|
||||
m.init()
|
||||
m.LoadMail()
|
||||
m.RegisterHandler(msg.HANDLE_TYPE_MAIL_ADD, m.AddMail)
|
||||
}
|
||||
|
||||
func (m *MailMgr) AddMail(msg *msg.Msg) error {
|
||||
ServerMail := msg.Extra.(*ServerMail)
|
||||
m.list[ServerMail.Id] = ServerMail
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *MailMgr) LoadMail() {
|
||||
@ -67,6 +79,27 @@ func (r *MailMgr) LoadMail() {
|
||||
}
|
||||
}
|
||||
|
||||
func (r *MailMgr) Sync() {
|
||||
G_GameLogicPtr.NotifyAll(&msg.Msg{Type: msg.HANDLE_TYPE_MAIL, Extra: r.list[1]})
|
||||
func (r *MailMgr) Sync(Uid int, Register int64) []ServerMail {
|
||||
// 同步邮件
|
||||
Now := GoUtil.Now()
|
||||
list := make([]ServerMail, 0)
|
||||
for _, v := range r.list {
|
||||
if v.Start_time > 0 && v.Start_time > Now {
|
||||
continue
|
||||
}
|
||||
if v.End_time > 0 && v.End_time < Now {
|
||||
continue
|
||||
}
|
||||
if v.Register_time > 0 && v.Register_time < Register {
|
||||
continue
|
||||
}
|
||||
if v.Mail_type == MAIL_TYPE_SERVER { //全服邮件
|
||||
list = append(list, *v)
|
||||
} else {
|
||||
if GoUtil.InArray(Uid, v.To_uids) {
|
||||
list = append(list, *v)
|
||||
}
|
||||
}
|
||||
}
|
||||
return list
|
||||
}
|
||||
|
||||
@ -426,6 +426,10 @@ func (p *PlayerBaseData) ClearData() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) GetRegisterTime() int64 {
|
||||
return int64(p.Data.Rolecreatetime)
|
||||
}
|
||||
|
||||
// 增加减少体力
|
||||
func (p *PlayerBaseData) AddEnergy(player *Player, cnt int) error {
|
||||
BaseMod := p.p.PlayMod.getBaseMod()
|
||||
|
||||
@ -322,6 +322,18 @@ func SyncFriendMsg(p *Player) {
|
||||
p.PlayMod.save()
|
||||
}
|
||||
|
||||
func SyncMailMsg(p *Player) {
|
||||
ServerMailList := G_GameLogicPtr.MailMgr.Sync(int(p.M_DwUin), p.GetPlayerBaseMod().GetRegisterTime())
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
for _, v := range ServerMailList {
|
||||
if GoUtil.InArray(v.Id, MailMod.ServerMail) {
|
||||
continue
|
||||
}
|
||||
MailMod.ServerMail = append(MailMod.ServerMail, v.Id)
|
||||
MailMod.Send(v.Title, v.Content, v.Items)
|
||||
}
|
||||
}
|
||||
|
||||
// 返回好友信息
|
||||
func FriendListBackData(p *Player) {
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
|
||||
@ -8,8 +8,9 @@ import (
|
||||
)
|
||||
|
||||
type MailMod struct {
|
||||
List map[int]*MailInfo // 邮件列表
|
||||
AutoId int // 自增id
|
||||
List map[int]*MailInfo // 邮件列表
|
||||
AutoId int // 自增id
|
||||
ServerMail []int
|
||||
}
|
||||
|
||||
const (
|
||||
|
||||
@ -67,6 +67,8 @@ const (
|
||||
SERVER_NOON_UPDATE // 12点更新
|
||||
|
||||
FRIEND_TREASURE_HANDLE //好友宝藏操作
|
||||
HANDLE_TYPE_MAIL_ADD //添加邮件
|
||||
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
Loading…
Reference in New Issue
Block a user