package mail import ( "go_dreamfactory/comm" "go_dreamfactory/modules" "go_dreamfactory/pb" "time" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/log" ) /* 模块名:Mail 描述:邮件系统模块 开发:梅雄风 */ func NewModule() core.IModule { m := new(Mail) return m } type Mail struct { modules.ModuleBase api *apiComp modelMail *modelMail configure_comp *Configure_Comp } func (this *Mail) GetType() core.M_Modules { return comm.ModuleMail } func (this *Mail) OnInstallComp() { this.ModuleBase.OnInstallComp() this.api = this.RegisterComp(new(apiComp)).(*apiComp) this.modelMail = this.RegisterComp(new(modelMail)).(*modelMail) this.configure_comp = this.RegisterComp(new(Configure_Comp)).(*Configure_Comp) } // mail := &pb.DBMailData{ // ObjId: primitive.NewObjectID().Hex(), // Uid: uId, // Title: "系统邮件", // Contex: "恭喜获得专属礼包一份", // CreateTime: uint64(time.Now().Unix()), // DueTime: uint64(time.Now().Unix()) + 30*24*3600, // 30天需要走配置文件 // Check: false, // Reward: false, // } func (this *Mail) CreateNewMail(session comm.IUserSession, mail *pb.DBMailData) bool { t := time.Now() defer func() { log.Debugf("创建邮件 耗时:%v", time.Since(t)) }() if mail == nil { return false } err := this.modelMail.MailInsertUserMail(mail) if err != nil { this.Errorf("create mail failed :%v", err) return false } // 通知玩家 this.AddNewMailPush(session, mail) return true } // 获得新邮件 推送给玩家 func (this *Mail) AddNewMailPush(session comm.IUserSession, mail *pb.DBMailData) { session.SendMsg(string(this.GetType()), "getnewmail", &pb.MailGetNewMailPush{Mail: mail}) return }