Merge branch 'meixiongfeng' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev

This commit is contained in:
meixiongfeng 2022-10-19 18:00:24 +08:00
commit 2b4a117304
7 changed files with 90 additions and 1 deletions

View File

@ -61,7 +61,7 @@ const (
ModuleHunting core.M_Modules = "hunting" //狩猎
ModuleLinestory core.M_Modules = "linestory" //支线剧情
ModuleBattle core.M_Modules = "battle" //战斗
ModuleLibrary core.M_Modules = "library" //
ModuleLibrary core.M_Modules = "library" // 藏书馆
//ModuleFetter core.M_Modules = "herofetter" //好友模块
)
@ -147,6 +147,8 @@ const (
TableFetter = "herofetter"
TableCrossSession = "crosssession"
TableServerData = "serverdata" // 跨服服务器相关数据
)
//RPC服务接口定义处

View File

@ -63,6 +63,8 @@ type (
//Create Monster
CreateMonster(heroCid string, star, lv int32) (hero *pb.DBHero)
// 跨服查询英雄详细信息
QueryCrossHeroinfo(oid string) (hero *pb.DBHero, err error)
}
//玩家

View File

@ -7,7 +7,11 @@ import (
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"go_dreamfactory/utils"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
)
func NewModule() core.IModule {
@ -337,3 +341,25 @@ func (this *Hero) CreateMonster(heroCid string, star, lv int32) (hero *pb.DBHero
hero = this.modelHero.InitTempHero(heroCid, star, lv)
return
}
// 只通过唯一id 查询英雄信息
func (this *Hero) QueryCrossHeroinfo(oid string) (hero *pb.DBHero, err error) {
for _, tag := range db.GetServerTags() {
conn, err1 := db.ServerDBConn(tag) // 遍历连接对象
if err1 != nil {
continue
}
filter := bson.M{
"_id": oid,
}
sr := conn.Mgo.FindOne(comm.TableHero, filter)
hero = &pb.DBHero{}
if err = sr.Decode(hero); err != nil {
if err != mongo.ErrNoDocuments {
return
}
}
}
return
}

View File

@ -28,6 +28,7 @@ const (
UserSubTypeBattlerecord = "battlerecord" //玩家战斗记录
UserSubTypeShowteam = "showteam" //展示阵容
UserSubTypeSettingteam = "settingteam" //设置阵容展示
UserGetServerDataResp = "getserverdata" //获取服务器信息
)
type apiComp struct {

View File

@ -0,0 +1,35 @@
package user
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"time"
"go.mongodb.org/mongo-driver/bson"
"google.golang.org/protobuf/proto"
)
func (this *apiComp) GetServerDataCheck(session comm.IUserSession, req *pb.UserGetServerDataReq) (code pb.ErrorCode) {
return
}
func (this *apiComp) GetServerData(session comm.IUserSession, req *pb.UserGetServerDataReq) (code pb.ErrorCode, data proto.Message) {
rsp := &pb.UserGetServerDataResp{
Data: &pb.DBServerData{},
}
if conn, err := db.Cross(); err == nil {
dbModel := db.NewDBModel(comm.TableHero, time.Hour, conn)
if _data := dbModel.DB.FindOne("serverdata", bson.M{}); _data != nil {
_data.Decode(rsp.Data)
} else {
this.module.Errorf("err:%v", err)
}
}
if err := session.SendMsg(string(this.module.GetType()), UserGetServerDataResp, rsp); err != nil {
code = pb.ErrorCode_SystemError
}
return
}

View File

@ -143,5 +143,6 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
//推送登录公告
this.chat.SendSysChatToUser(session, comm.UserLoginNotice, 0)
return
}

View File

@ -3,6 +3,7 @@ package main
import (
"flag"
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/modules/battle"
"go_dreamfactory/modules/chat"
"go_dreamfactory/modules/equipment"
@ -28,6 +29,7 @@ import (
"go_dreamfactory/modules/task"
"go_dreamfactory/modules/user"
"go_dreamfactory/modules/viking"
"go_dreamfactory/pb"
"go_dreamfactory/services"
"go_dreamfactory/sys/db"
"time"
@ -37,6 +39,9 @@ import (
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/lego/sys/timewheel"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
)
/*
@ -112,4 +117,21 @@ func (this *Service) InitSys() {
} else {
log.Infof("init sys.db success!")
}
conn, err := db.Local()
if err == nil {
model := db.NewDBModel(comm.TableServerData, 0, conn)
_len, err1 := model.DB.CountDocuments(comm.TableServerData, bson.M{})
if err1 != nil && _len > 0 {
fmt.Printf("%v,%v", _len, err1)
server := &pb.DBServerData{
Id: primitive.NewObjectID().Hex(),
ServerState: 1,
DisposableLoop: 1,
FixedLoop: 0,
SeasonType: 201,
OpenTime: time.Now().Unix(),
}
model.DB.InsertOne(comm.TableServerData, server)
}
}
}