xy 1 неделя назад
Родитель
Сommit
001d775a79

+ 23 - 0
src/server/datacenter/users.go

@@ -191,3 +191,26 @@ func (u *User) UpdateFriendsToDB() error {
 	}
 	return nil
 }
+
+func GetUserCount() (int, error) {
+	var count int
+	// 使用QueryRow查询COUNT(*)
+	err := mysqlmgr.QueryRow("SELECT COUNT(*) FROM users").Scan(&count)
+	if err != nil {
+		return 0, fmt.Errorf("查询用户总数失败: %v", err)
+	}
+	return count, nil
+}
+func UpdateCoinToDB(user_id string, coin int) error {
+	_, err := mysqlmgr.Update(`
+        UPDATE users 
+        SET coin = ? 
+        WHERE user_id = ?`,
+		coin,
+		user_id,
+	)
+	if err != nil {
+		return fmt.Errorf("数据库更新失败: %v", err)
+	}
+	return nil
+}

+ 9 - 0
src/server/db/redis/userRedis.go

@@ -4,6 +4,7 @@ import (
 	"encoding/json"
 	"errors"
 	"fmt"
+	usercenter "server/datacenter"
 	"server/msg"
 	"strconv"
 
@@ -43,6 +44,14 @@ func SaveUserInfoToRedis(userData *msg.UserInfo) error {
 	log.Debug("User data saved to Redis for userId: %s", userData.UserId)
 	return nil
 }
+func InitUserTota() {
+	conn := GetPool().Get()
+	defer conn.Close()
+	count, err := usercenter.GetUserCount()
+	if err == nil {
+		conn.Do("SET", "UserTotal", count)
+	}
+}
 
 // IncrementUserTotal 将UserTotal的值原子性加1,返回增加后的新值
 func IncrementUserTotal() (int64, error) {

+ 3 - 2
src/server/hall/friends/friends.go

@@ -109,8 +109,9 @@ func SearchUser(args []interface{}) {
 			Success: true,
 			ErrMsg:  nil,
 			Info: &msg.UserInfo{
-				MHead: user_data.Head,
-				Name:  user_data.Name,
+				MHead:  user_data.Head,
+				Name:   user_data.Name,
+				UserId: user_data.UserID,
 			},
 		})
 	}

+ 1 - 63
src/server/login/internal/handler.go

@@ -3,11 +3,6 @@ package internal
 import (
 	"reflect"
 	redismgr "server/db/redis"
-	"server/game"
-	"server/msg"
-
-	"github.com/name5566/leaf/gate"
-	"github.com/name5566/leaf/log"
 )
 
 func handleMsg(m interface{}, h interface{}) {
@@ -16,62 +11,5 @@ func handleMsg(m interface{}, h interface{}) {
 
 func init() {
 	print("login:handler")
-	handleMsg(&msg.ReqLogin{}, loginHandler)
-	handleMsg(&msg.ReqRegister{}, registerHandler)
-}
-
-func registerHandler(args []interface{}) {
-	// agent := args[1].(gate.Agent)
-	m := args[0].(*msg.ReqRegister)
-	// 消息的发送者
-	a := args[1].(gate.Agent)
-
-	log.Debug(m.Account, m.Password)
-
-	userId, _ := redismgr.GetUserIDFromRedisByAP(m.Account, m.Password)
-
-	if userId != "" {
-		a.WriteMsg(&msg.ResRegister{
-			Success: false,
-			ErrMsg: &msg.MsgError{
-				ErrorCode: 101,
-				ErrorMsg:  " Account is exist!",
-			},
-		})
-		return
-	}
-
-	userId, Success := redismgr.SetUserIDFromRedisByAP(m.Account, m.Password)
-	if false == Success {
-		a.WriteMsg(&msg.ResRegister{
-			Success: false,
-			ErrMsg: &msg.MsgError{
-				ErrorCode: 102,
-				ErrorMsg:  "server registerHandler error",
-			},
-		})
-		return
-	}
-
-	redismgr.SaveUserInfoToRedis(&msg.UserInfo{
-		UserId: userId,
-		MCoin:  0,
-		MHead:  m.MHead,
-		Name:   m.NikeName,
-	})
-
-	a.WriteMsg(&msg.ResRegister{
-		Success: true,
-		ErrMsg:  nil,
-	})
-
-}
-func loginHandler(args []interface{}) {
-	// agent := args[1].(gate.Agent)
-	m := args[0].(*msg.ReqLogin)
-	// 消息的发送者
-	a := args[1].(gate.Agent)
-
-	log.Debug("loginHandler: %v", args)
-	game.ChanRPC.Go("handleAuth", m, a)
+	redismgr.InitUserTota()
 }

+ 4 - 0
src/server/user/user.go

@@ -1,6 +1,7 @@
 package user
 
 import (
+	usercenter "server/datacenter"
 	redismgr "server/db/redis"
 	agentmanager "server/game/agentManager"
 	"server/msg"
@@ -62,6 +63,7 @@ func DecreaseUserCoin(coin int32, userId string) {
 	// 减少用户积分
 	userData.MCoin -= coin
 	SetUserInfo(userData)
+	usercenter.UpdateCoinToDB(userData.UserId, int(userData.MCoin))
 	// 打印更新日志
 	log.Debug("User %s's coin decreased by %d. New balance: %d", userId, coin, userData)
 }
@@ -84,6 +86,8 @@ func AddUserCoin(coin int32, userId string) {
 	// 更新用户的金币
 	userData.MCoin += coin
 	SetUserInfo(userData)
+
+	usercenter.UpdateCoinToDB(userData.UserId, int(userData.MCoin))
 	// 打印更新日志
 	log.Debug("User %s's points updated: %d", userId, userData)
 }

+ 3 - 4
src/server/webserver/register.go

@@ -2,7 +2,6 @@ package main
 
 import (
 	"net/http"
-	"server/console"
 	usercenter "server/datacenter"
 	redismgr "server/db/redis"
 	"server/msg"
@@ -50,9 +49,9 @@ func ReqRegister(c *gin.Context) {
 	}
 
 	// 设置好友列表
-	if err := newUser.SetFriendIDs([]string{"friend1", "friend2"}); err != nil {
-		console.Log(err.Error())
-	}
+	// if err := newUser.SetFriendIDs([]string{"friend1", "friend2"}); err != nil {
+	// 	console.Log(err.Error())
+	// }
 
 	usercenter.CreateUser(newUser)