1.离线玩家数据加分布式锁操作

2.修复聊天记录错乱
3.修复重启服务器后无法登录
This commit is contained in:
flswld
2023-02-12 23:47:44 +08:00
parent 0b3c075402
commit ddecfdea12
11 changed files with 108 additions and 35 deletions

View File

@@ -249,22 +249,7 @@ func (d *Dao) QueryChatMsgListByUid(uid uint32) ([]*model.ChatMsg, error) {
result := make([]*model.ChatMsg, 0)
find, err := db.Find(
context.TODO(),
bson.D{{"ToUid", uid}},
)
if err != nil {
return nil, err
}
for find.Next(context.TODO()) {
item := new(model.ChatMsg)
err = find.Decode(item)
if err != nil {
return nil, err
}
result = append(result, item)
}
find, err = db.Find(
context.TODO(),
bson.D{{"Uid", uid}},
bson.D{{"$or", []bson.D{{{"ToUid", uid}}, {{"Uid", uid}}}}},
)
if err != nil {
return nil, err
@@ -282,7 +267,7 @@ func (d *Dao) QueryChatMsgListByUid(uid uint32) ([]*model.ChatMsg, error) {
func (d *Dao) ReadAndUpdateChatMsgByUid(uid uint32, targetUid uint32) error {
db := d.db.Collection("chat_msg")
_, err := db.UpdateOne(
_, err := db.UpdateMany(
context.TODO(),
bson.D{{"ToUid", uid}, {"Uid", targetUid}},
bson.D{{"$set", bson.D{{"IsRead", true}}}},
@@ -290,7 +275,7 @@ func (d *Dao) ReadAndUpdateChatMsgByUid(uid uint32, targetUid uint32) error {
if err != nil {
return err
}
_, err = db.UpdateOne(
_, err = db.UpdateMany(
context.TODO(),
bson.D{{"Uid", uid}, {"ToUid", targetUid}},
bson.D{{"$set", bson.D{{"IsRead", true}}}},