From 08b57b880bac441376b12e1c7615b75103c03d98 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Fri, 4 Nov 2022 21:46:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=8F=91=E4=B8=80=E5=B0=81?= =?UTF-8?q?=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/imodule.go | 2 ++ modules/privilege/configure.go | 4 +--- modules/privilege/module.go | 22 +++++++++++++++++++++- modules/user/api_login.go | 26 ++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 4 deletions(-) diff --git a/comm/imodule.go b/comm/imodule.go index a2a754055..0f4fd482e 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -235,5 +235,7 @@ type ( CreatePrivilegeCard(session IUserSession, cid int32) (data *pb.DBPrivilege, code pb.ErrorCode) // 续费特权卡 RenewPrivilegeCard(session IUserSession, cid int32) (data *pb.DBPrivilege, code pb.ErrorCode) + // 检查特权 + CheckPrivilege(session IUserSession) } ) diff --git a/modules/privilege/configure.go b/modules/privilege/configure.go index 1df82e04b..5266b87a2 100644 --- a/modules/privilege/configure.go +++ b/modules/privilege/configure.go @@ -25,9 +25,6 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp this.LoadConfigure(game_privilegecard, cfg.NewGamePrivilegeCard) this.LoadConfigure(game_privilege, cfg.NewGamePrivilege) - // _d, err := this.GetPrivilegeCard(1) - // _d1, err := this.GetPrivilegeData(10003) - // fmt.Errorf("%v,%v", _d, _d1) return } @@ -49,6 +46,7 @@ func (this *configureComp) GetPrivilegeCard(id int32) (configure *cfg.GamePrivil return } +// 获取指定特权配置 func (this *configureComp) GetPrivilegeData(id int32) (result *cfg.GamePrivilegeData, err error) { var ( v interface{} diff --git a/modules/privilege/module.go b/modules/privilege/module.go index 84c3cde50..44e2346fd 100644 --- a/modules/privilege/module.go +++ b/modules/privilege/module.go @@ -5,6 +5,7 @@ import ( "go_dreamfactory/lego/core" "go_dreamfactory/modules" "go_dreamfactory/pb" + cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/sys/db" "time" @@ -68,7 +69,7 @@ func (this *Privilege) CreatePrivilegeCard(session comm.IUserSession, cid int32) data.PrivilegeID = append(data.PrivilegeID, v) } this.modelPrivilege.addNewPrivilegeData(session.GetUserId(), data) - + code = this.DispenseRes(session, []*cfg.Gameatn{conf.DisposableReward}, true) // 推送 session.SendMsg(string(this.GetType()), PrivilegeGetListResp, &pb.PrivilegeGetListResp{Data: []*pb.DBPrivilege{data}}) return @@ -93,6 +94,9 @@ func (this *Privilege) RenewPrivilegeCard(session comm.IUserSession, cid int32) mapData := make(map[string]interface{}, 0) mapData["eTime"] = v.ETime this.modelPrivilege.modifyPrivilegeData(session.GetUserId(), v.Id, mapData) + // 发放奖励 + code = this.DispenseRes(session, []*cfg.Gameatn{conf.DisposableReward}, true) + data = v session.SendMsg(string(this.GetType()), PrivilegeGetListResp, &pb.PrivilegeGetListResp{Data: []*pb.DBPrivilege{v}}) return @@ -107,3 +111,19 @@ func (this *Privilege) RenewPrivilegeCard(session comm.IUserSession, cid int32) data = nil return } + +// 清除到期的特权 +func (this *Privilege) CheckPrivilege(session comm.IUserSession) { + list, err := this.modelPrivilege.getPrivilegeList(session.GetUserId()) + if err != nil { + return + } + for _, v := range list { + if v.ETime > time.Now().Unix() { + if err := this.modelPrivilege.DelListlds(session.GetUserId(), v.Id); err != nil { + this.Errorf("delete privilege failed:%v", err) + } + } + } + return +} diff --git a/modules/user/api_login.go b/modules/user/api_login.go index c59c97a37..e8b59b647 100644 --- a/modules/user/api_login.go +++ b/modules/user/api_login.go @@ -7,6 +7,7 @@ import ( "go_dreamfactory/utils" "time" + "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "google.golang.org/protobuf/proto" ) @@ -143,6 +144,31 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod //推送登录公告 this.chat.SendSysChatToUser(session, comm.UserLoginNotice, 0) + mail := &pb.DBMailData{ + ObjId: primitive.NewObjectID().Hex(), + Uid: user.Uid, + Title: "system mail", + Contex: "Congratulations on getting a login exclusive gift pack", + CreateTime: uint64(time.Now().Unix()), + DueTime: uint64(time.Now().Unix()) + 30*24*3600, // 30天需要走配置文件 + Check: false, + Reward: false, + } + fj := make([]*pb.UserAssets, 0) + atn1 := &pb.UserAssets{ + A: "hero", + T: "25001", + N: 1, + } + atn2 := &pb.UserAssets{ + A: "attr", + T: "gold", + N: 10000, + } + fj = append(fj, atn1) + fj = append(fj, atn2) + mail.Items = fj + this.mail.CreateNewMail(session, mail) return }