This commit is contained in:
liwei1dao 2023-09-06 10:00:17 +08:00
commit 7efd39ba8b
2 changed files with 24 additions and 7 deletions

View File

@ -662,6 +662,6 @@ type (
QueryDragonById(uid string, dragonid string) (dragon *pb.DBDragon, err error) QueryDragonById(uid string, dragonid string) (dragon *pb.DBDragon, err error)
// 跨服接口 通过 服务器标签和唯一id 获取坐骑信息 // 跨服接口 通过 服务器标签和唯一id 获取坐骑信息
QueryDragonByTagAndOid(tag string, objId string) (dragon *pb.DBDragon, err error) QueryDragonByTagAndOid(tag string, objId []string) (dragon []*pb.DBDragon, err error)
} }
) )

View File

@ -1,6 +1,7 @@
package dragon package dragon
import ( import (
"context"
"fmt" "fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
@ -12,6 +13,7 @@ import (
"time" "time"
"go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
) )
func NewModule() core.IModule { func NewModule() core.IModule {
@ -132,19 +134,34 @@ func (this *Dragon) QueryDragonById(uid string, dragonid string) (dragon *pb.DBD
} }
// 通过区服id 和唯一id 查询坐骑信息 // 通过区服id 和唯一id 查询坐骑信息
func (this *Dragon) QueryDragonByTagAndOid(tag string, objId string) (dragon *pb.DBDragon, err error) { func (this *Dragon) QueryDragonByTagAndOid(tag string, objId []string) (dragon []*pb.DBDragon, err error) {
var ( var (
conn *db.DBConn conn *db.DBConn
model *db.DBModel model *db.DBModel
cursor *mongo.Cursor
) )
if conn, err = db.ServerDBConn(tag); err != nil { if conn, err = db.ServerDBConn(tag); err != nil {
return return
} }
dragon = &pb.DBDragon{} dragon = make([]*pb.DBDragon, 0)
model = db.NewDBModel(this.modelDragon.TableName, time.Hour, conn) model = db.NewDBModel(this.modelDragon.TableName, time.Hour, conn)
if model.DB.FindOne(comm.TableHero, bson.M{"_id": objId}).Decode(dragon); err != nil {
result := make([]bson.M, 0)
for _, v := range objId {
result = append(result, bson.M{"_id": v})
}
if cursor, err = model.DB.Find(core.SqlTable(this.modelDragon.TableName), bson.M{"$or": result}); err != nil {
this.Errorln(err)
return return
} }
for cursor.Next(context.Background()) {
temp := &pb.DBDragon{}
if err = cursor.Decode(temp); err != nil {
this.Errorln(err)
continue
}
dragon = append(dragon, temp)
}
return return
} }