上传代码

This commit is contained in:
liwei1dao 2023-10-25 10:06:33 +08:00
parent 505fc22844
commit 6d992bd005
7 changed files with 102 additions and 21 deletions

View File

@ -118,6 +118,7 @@ const (
ModuleMaincity core.M_Modules = "maincity" //主城同屏
ModuleMatchPool core.M_Modules = "matchpool" //匹配
ModuleTreasureMap core.M_Modules = "treasuremap" //藏宝图
ModuleGameInvite core.M_Modules = "gameinvite" //游戏邀请
)
// 数据表名定义处
@ -395,6 +396,9 @@ const (
TableAchieve = "achieve"
//猜颜色
TableDcolorQieChuo = "dcolorqiecuo"
//游戏邀请
TableGameInvite = "gameinvite"
)
// RPC服务接口定义处

20
modules/gameinvite/api.go Normal file
View File

@ -0,0 +1,20 @@
package gameinvite
import (
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
type apiComp struct {
modules.MCompGate
service base.IRPCXService
module *GameInvite
}
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
_ = this.MCompGate.Init(service, module, comp, options)
this.service = service.(base.IRPCXService)
this.module = module.(*GameInvite)
return
}

View File

@ -0,0 +1,25 @@
package gameinvite
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type modelComp struct {
modules.MCompModel
module *GameInvite
}
func (this *modelComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompModel.Init(service, module, comp, options)
this.TableName = comm.TableGameInvite
this.module = module.(*GameInvite)
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}

View File

@ -0,0 +1,30 @@
package gameinvite
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
type GameInvite struct {
modules.ModuleBase
service comm.IService
api *apiComp
model *modelComp
}
func NewModule() core.IModule {
return &GameInvite{}
}
func (this *GameInvite) GetType() core.M_Modules {
return comm.ModuleGameInvite
}
func (this *GameInvite) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
if err = this.ModuleBase.Init(service, module, options); err != nil {
return
}
this.service = service.(comm.IService)
return
}

View File

@ -13,18 +13,18 @@ func (this *apiComp) SynchPosCheck(session comm.IUserSession, req *pb.MainCitySy
// 查看某一封邮件
func (this *apiComp) SynchPos(session comm.IUserSession, req *pb.MainCitySynchPosPeek) (errdata *pb.ErrorData) {
var (
user *pb.DBUser
// user *pb.DBUser
friends []*pb.BaseUserInfo
groupUser map[string][]*pb.BaseUserInfo = make(map[string][]*pb.BaseUserInfo)
ok bool
err error
// err error
)
if user, err = this.module.ModuleUser.GetUser(session.GetUserId()); err != nil {
return
}
self := comm.GetUserBaseInfo(user)
// if user, err = this.module.ModuleUser.GetUser(session.GetUserId()); err != nil {
// return
// }
// self := comm.GetUserBaseInfo(user)
friends = this.module.model.getplayerPos(session.GetUserId())
friends = append(friends, self)
// friends = append(friends, self)
for _, v := range friends {
if _, ok = groupUser[v.Sid]; !ok {
groupUser[v.Sid] = make([]*pb.BaseUserInfo, 0)

View File

@ -1,31 +1,23 @@
package maincity
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/lego/core/cbase"
"go_dreamfactory/pb"
"sync"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type modelComp struct {
modules.MCompModel
cbase.ModuleCompBase
module *MainCity
lock sync.RWMutex
onlines map[string][]*pb.BaseUserInfo //关联用户信息
}
func (this *modelComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompModel.Init(service, module, comp, options)
this.TableName = comm.Tablekftask
err = this.ModuleCompBase.Init(service, module, comp, options)
this.module = module.(*MainCity)
this.onlines = make(map[string][]*pb.BaseUserInfo)
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}
@ -34,6 +26,14 @@ func (this *modelComp) setplayerPos(uid string, friends []*pb.BaseUserInfo) {
this.onlines[uid] = append(this.onlines[uid], friends...)
this.lock.Unlock()
}
func (this *modelComp) addplayerPos(uid string, friend *pb.BaseUserInfo) {
this.lock.Lock()
if _, ok := this.onlines[uid]; ok {
this.onlines[uid] = append(this.onlines[uid], friend)
}
this.lock.Unlock()
}
func (this *modelComp) getplayerPos(uid string) (friends []*pb.BaseUserInfo) {
this.lock.RLock()
friends = this.onlines[uid]

View File

@ -95,9 +95,11 @@ func (this *MainCity) EventUserLogin(session comm.IUserSession) {
func (this *MainCity) EventUserOffline(uid string, sessionid string) {
this.model.removelayerPos(uid)
}
func (this *MainCity) AddFriends(user1 *pb.BaseUserInfo, user2 *pb.BaseUserInfo) {
this.model.setplayerPos(user1.Uid, []*pb.BaseUserInfo{user2})
this.model.setplayerPos(user2.Uid, []*pb.BaseUserInfo{user1})
func (this *MainCity) AddFriends(user1 *pb.BaseUserInfo, users []*pb.BaseUserInfo) {
this.model.setplayerPos(user1.Uid, users)
for _, user := range users {
this.model.addplayerPos(user.Uid, user1)
}
}
func (this *MainCity) UpdateRelatedUser(uid string, users []*pb.BaseUserInfo) {