123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package user
- import (
- mongodbmgr "server/db/mongodb"
- redismgr "server/db/redis"
- agentmanager "server/game/agentManager"
- "server/msg"
- "github.com/name5566/leaf/log"
- )
- func GetUserInfoById(userId string) *msg.UserInfo {
-
- userData, err := redismgr.GetUserInfoFromRedis(userId)
- if err != nil {
- log.Debug("Error fetching user info from Redis:", err)
- return nil
- }
-
- if userData != nil {
- log.Debug("User found in Redis: %s", userId)
- return userData
- }
-
- log.Debug("User not found in Redis, checking MongoDB: %s", userId)
- userData, err = redismgr.GetUserInfoFromRedis(userId)
- if err != nil {
- log.Debug("Error fetching user info from MongoDB:", err)
- return nil
- }
-
- if userData == nil {
- log.Debug("User not found in MongoDB, creating new user: %s", userId)
- userData = &msg.UserInfo{
- UserId: userId,
- }
-
- err = mongodbmgr.AddUser(userData)
- if err != nil {
- log.Debug("Error saving new user to MongoDB:", err)
- return nil
- }
- err = redismgr.SaveUserInfoToRedis(userData)
- if err != nil {
- log.Debug("Error saving new user to Redis:", err)
- return nil
- }
- }
- return userData
- }
- func DecreaseUserCoin(coin int32, userId string) {
- userData := GetUserInfoById(userId)
-
-
- userData.MCoin -= coin
- SetUserInfo(userData)
-
- log.Debug("User %s's coin decreased by %d. New balance: %d", userId, coin, userData)
- }
- func SetUserInfo(userData *msg.UserInfo) {
- redismgr.SaveUserInfoToRedis(userData)
- user_agent := agentmanager.GetAgentByUserID(userData.UserId)
- if user_agent != nil {
- user_agent.SetUserData(userData)
- user_agent.WriteMsg(&msg.UpdateUserInfo{
- Info: userData,
- })
- }
- }
- func AddUserCoin(coin int32, userId string) {
-
- userData := GetUserInfoById(userId)
-
- userData.MCoin += coin
- SetUserInfo(userData)
-
- log.Debug("User %s's points updated: %d", userId, userData)
- }
|