From b9a9b10aabad15ccc233bb37f8486cd3db25c2e3 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 27 Oct 2022 11:01:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=9A=8F=E6=9C=BA=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF=E7=8E=A9=E5=AE=B6=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/json/game_msgdistrib.json | 94 +++++++++++++++++++++++++++++- modules/gourmet/api_getranduser.go | 2 +- modules/smithy/api_getranduser.go | 38 +++++++----- 3 files changed, 118 insertions(+), 16 deletions(-) diff --git a/bin/json/game_msgdistrib.json b/bin/json/game_msgdistrib.json index 5ef69d247..c89061864 100644 --- a/bin/json/game_msgdistrib.json +++ b/bin/json/game_msgdistrib.json @@ -168,9 +168,99 @@ "describe": "获取在线玩家数据" }, { - "msgid": "arena", + "msgid": "sociaty.list", "open": true, "routrules": "~/worker", - "describe": "竞技场系统" + "describe": "公会列表" + }, + { + "msgid": "sociaty.create", + "open": true, + "routrules": "~/worker", + "describe": "创建公会" + }, + { + "msgid": "sociaty.setting", + "open": true, + "routrules": "~/worker", + "describe": "公会设置" + }, + { + "msgid": "sociaty.search", + "open": true, + "routrules": "~/worker", + "describe": "公会搜索" + }, + { + "msgid": "sociaty.apply", + "open": true, + "routrules": "~/worker", + "describe": "公会申请" + }, + { + "msgid": "sociaty.applylist", + "open": true, + "routrules": "~/worker", + "describe": "公会申请列表" + }, + { + "msgid": "sociaty.agree", + "open": true, + "routrules": "~/worker", + "describe": "公会申请同意" + }, + { + "msgid": "sociaty.refuse", + "open": true, + "routrules": "~/worker", + "describe": "公会申请拒绝" + }, + { + "msgid": "sociaty.dismiss", + "open": true, + "routrules": "~/worker", + "describe": "公会解散" + }, + { + "msgid": "sociaty.quit", + "open": true, + "routrules": "~/worker", + "describe": "离开公会" + }, + { + "msgid": "sociaty.mine", + "open": true, + "routrules": "~/worker", + "describe": "我的公会" + }, + { + "msgid": "sociaty.members", + "open": true, + "routrules": "~/worker", + "describe": "公会成员" + }, + { + "msgid": "sociaty.assign", + "open": true, + "routrules": "~/worker", + "describe": "公会转让" + }, + { + "msgid": "sociaty.discharge", + "open": true, + "routrules": "~/worker", + "describe": "踢出公会" + }, + { + "msgid": "sociaty.settingjob", + "open": true, + "routrules": "~/worker", + "describe": "设置职位" + }, + { + "msgid": "smithy.getranduser", + "open": true, + "routrules": "~/worker", + "describe": "获取在线玩家数据" } ] \ No newline at end of file diff --git a/modules/gourmet/api_getranduser.go b/modules/gourmet/api_getranduser.go index f4cadc4c2..8cfde2773 100644 --- a/modules/gourmet/api_getranduser.go +++ b/modules/gourmet/api_getranduser.go @@ -72,7 +72,7 @@ func (this *apiComp) GetRandUser(session comm.IUserSession, req *pb.GourmetGetRa for _data.Next(context.TODO()) { temp := &pb.DBUser{} if err = _data.Decode(temp); err == nil { - if len(mapUser) >= int(req.People) { + if len(mapUser)+len(szDbUser) >= int(req.People) { break } if _, ok := mapUser[temp.Uid]; !ok { diff --git a/modules/smithy/api_getranduser.go b/modules/smithy/api_getranduser.go index 066242c1f..d0670de7f 100644 --- a/modules/smithy/api_getranduser.go +++ b/modules/smithy/api_getranduser.go @@ -5,7 +5,9 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/pb" + "go_dreamfactory/sys/db" "go_dreamfactory/utils" + "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo/options" @@ -27,13 +29,14 @@ func (this *apiComp) GetRandUser(session comm.IUserSession, req *pb.SmithyGetRan szDbUser []*pb.DBUser mapUser map[string]struct{} ) - mapUser = make(map[string]struct{}, req.People) + mapUser = make(map[string]struct{}, 0) code = this.GetRandUserCheck(session, req) if code != pb.ErrorCode_Success { return // 参数校验失败直接返回 } + // 获取在线玩家信息 - onlineList, err := this.module.ModuleUser.CrossUserOnlineList() + onlineList, err := this.module.ModuleUser.UserOnlineList() if err != nil { code = pb.ErrorCode_DBError return @@ -61,15 +64,21 @@ func (this *apiComp) GetRandUser(session comm.IUserSession, req *pb.SmithyGetRan } left := int(req.People) - len(mapUser) if left > 0 { // 一个人也没有 那就从db 中随机取 - if _data, err1 := this.module.modelSmithy.DB.Find(core.SqlTable(comm.TableUser), bson.M{}, options.Find().SetSort(bson.M{"lv": -1}).SetLimit(int64(req.People))); err1 == nil { - for _data.Next(context.TODO()) { - temp := &pb.DBUser{} - if err = _data.Decode(temp); err == nil { - if len(mapUser) >= int(req.People) { - break - } - if _, ok := mapUser[temp.Uid]; !ok { - szDbUser = append(szDbUser, temp) + tag, _, b := utils.UIdSplit(session.GetUserId()) + if b { + if conn, err := db.ServerDBConn(tag); err == nil { + dbModel := db.NewDBModel(comm.TableHero, time.Hour, conn) + if _data, err1 := dbModel.DB.Find(core.SqlTable(comm.TableUser), bson.M{}, options.Find().SetSort(bson.M{"lv": -1}).SetLimit(int64(req.People))); err1 == nil { + for _data.Next(context.TODO()) { + temp := &pb.DBUser{} + if err = _data.Decode(temp); err == nil { + if len(mapUser)+len(szDbUser) >= int(req.People) { + break + } + if _, ok := mapUser[temp.Uid]; !ok { + szDbUser = append(szDbUser, temp) + } + } } } } @@ -77,8 +86,11 @@ func (this *apiComp) GetRandUser(session comm.IUserSession, req *pb.SmithyGetRan } } for k := range mapUser { - user, _ := this.module.ModuleUser.GetRmoteUser(k) - szDbUser = append(szDbUser, user) // 转成user对象 + if user, err := this.module.ModuleUser.GetRmoteUser(k); err == nil && user.Uid != "" { + szDbUser = append(szDbUser, user) // 转成user对象 + } else { + this.module.Errorf("%v", err) + } } session.SendMsg(string(this.module.GetType()), SmithyGetRandUserResp, &pb.SmithyGetRandUserResp{User: szDbUser}) return