跨服数据处理

This commit is contained in:
meixiongfeng 2024-01-05 18:43:52 +08:00
parent 49465c8820
commit aaea50dde8
3 changed files with 96 additions and 53 deletions

View File

@ -6,6 +6,7 @@ import (
"go_dreamfactory/lego/sys/mgo" "go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
@ -34,37 +35,85 @@ func (this *ModelFriend) Init(service core.IService, module core.IModule, comp c
// 查询好友 // 查询好友
func (this *ModelFriend) GetFriend(uid string) (info *pb.DBFriend, err error) { func (this *ModelFriend) GetFriend(uid string) (info *pb.DBFriend, err error) {
info = &pb.DBFriend{} // 增加跨服处理
if err = this.Get(uid, info); err != nil && err != mgo.MongodbNil { if db.IsCross() {
this.moduole.Errorln(err) info = &pb.DBFriend{}
return if err = this.Get(uid, info); err != nil && err != mgo.MongodbNil {
}
var user *pb.DBUser
if err == mgo.MongodbNil {
if user, err = this.moduole.ModuleUser.GetUser(uid); err != nil {
this.moduole.Errorln(err) this.moduole.Errorln(err)
return return
} }
info = &pb.DBFriend{ var user *pb.DBUser
Id: primitive.NewObjectID().Hex(), if err == mgo.MongodbNil {
Uid: uid, if user, err = this.moduole.ModuleUser.GetUser(uid); err != nil {
Info: comm.GetUserBaseInfo(user), this.moduole.Errorln(err)
FriendIds: make([]string, 0), return
ApplyIds: make([]string, 0), }
BlackIds: make([]string, 0), info = &pb.DBFriend{
GetZandIds: make([]string, 0), Id: primitive.NewObjectID().Hex(),
Record: make([]*pb.AssistRecord, 0), Uid: uid,
Beblackids: make([]string, 0), Info: comm.GetUserBaseInfo(user),
FriendIds: make([]string, 0),
ApplyIds: make([]string, 0),
BlackIds: make([]string, 0),
GetZandIds: make([]string, 0),
Record: make([]*pb.AssistRecord, 0),
Beblackids: make([]string, 0),
}
err = this.Add(uid, info)
}
} else {
var (
conn_ *db.DBConn
)
if conn_, err = db.Cross(); err == nil {
model := db.NewDBModel(db.CrossTag(), this.TableName, conn_)
info = &pb.DBFriend{}
if err = model.Get(uid, info); err != nil && err != mgo.MongodbNil {
this.moduole.Errorln(err)
return
}
var user *pb.DBUser
if err == mgo.MongodbNil {
if user, err = this.moduole.ModuleUser.GetUser(uid); err != nil {
this.moduole.Errorln(err)
return
}
info = &pb.DBFriend{
Id: primitive.NewObjectID().Hex(),
Uid: uid,
Info: comm.GetUserBaseInfo(user),
FriendIds: make([]string, 0),
ApplyIds: make([]string, 0),
BlackIds: make([]string, 0),
GetZandIds: make([]string, 0),
Record: make([]*pb.AssistRecord, 0),
Beblackids: make([]string, 0),
}
err = model.Add(uid, info)
}
} }
err = this.Add(uid, info)
} }
return return
} }
func (this *ModelFriend) GetFriends(uids []string) (friends []*pb.DBFriend, err error) { func (this *ModelFriend) GetFriends(uids []string) (friends []*pb.DBFriend, err error) {
friends = make([]*pb.DBFriend, 0) friends = make([]*pb.DBFriend, 0)
if _, err = this.GetByUids(uids, &friends); err != nil { if db.IsCross() {
this.moduole.Errorln(err) if _, err = this.GetByUids(uids, &friends); err != nil {
this.moduole.Errorln(err)
}
} else {
var (
conn_ *db.DBConn
)
if conn_, err = db.Cross(); err == nil {
model := db.NewDBModel(db.CrossTag(), this.TableName, conn_)
if _, err = model.GetByUids(uids, &friends); err != nil {
this.moduole.Errorln(err)
}
}
} }
return return

View File

@ -83,23 +83,25 @@ func (this *Friend) Start() (err error) {
} }
func (this *Friend) ResetFriend(uid string) { func (this *Friend) ResetFriend(uid string) {
// 重置点赞列表 if db.IsCross() { // 只针对跨服
zanUpdate := map[string]interface{}{ // 重置点赞列表
"zanIds": []string{}, zanUpdate := map[string]interface{}{
"getZandIds": []string{}, "zanIds": []string{},
"received": 0, //奖励状态重置 "getZandIds": []string{},
} "received": 0, //奖励状态重置
if err := this.modelFriend.Change(uid, zanUpdate); err != nil { }
log.Error("重置玩家点赞数据", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err}) if err := this.modelFriend.Change(uid, zanUpdate); err != nil {
} log.Error("重置玩家点赞数据", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err})
}
// 重置今日友情点 // 重置今日友情点
update := map[string]interface{}{ update := map[string]interface{}{
"friendPointID": 0, "friendPointID": 0,
"friendPointOD": 0, "friendPointOD": 0,
} }
if err := this.ModuleUser.ChangeUserExpand(uid, update); err != nil { if err := this.ModuleUser.ChangeUserExpand(uid, update); err != nil {
log.Error("重置今日友情点", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err}) log.Error("重置今日友情点", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err})
}
} }
} }

View File

@ -310,8 +310,11 @@ func (this *ModelUser) changelv(session comm.IUserSession, lv int32, exp int64,
} }
func (this *ModelUser) CleanUserMerchantmoney(session comm.IUserSession) (err error) { func (this *ModelUser) CleanUserMerchantmoney(session comm.IUserSession) (err error) {
// 只处理跨服
if !db.IsCross() {
return
}
var ( var (
model *db.DBModel
update map[string]interface{} update map[string]interface{}
uid string uid string
) )
@ -325,22 +328,11 @@ func (this *ModelUser) CleanUserMerchantmoney(session comm.IUserSession) (err er
user.Caravanlv = 1 user.Caravanlv = 1
update["caravanlv"] = user.Caravanlv update["caravanlv"] = user.Caravanlv
} }
if db.IsCross() {
if model, err = this.module.GetDBModelByUid(uid, this.TableName); err == nil { if err := this.Get(uid, user); err == nil {
if err := this.Get(uid, user); err == nil { err = this.Change(uid, update)
err = model.Change(uid, update)
} else {
this.module.Errorf("err:%v", err)
}
} else {
this.module.Errorln(err)
}
} else { } else {
if err := this.Get(uid, user); err == nil { this.module.Errorf("err:%v", err)
err = this.Change(uid, update)
} else {
this.module.Errorf("err:%v", err)
}
} }
return return