xy 1 day ago
parent
commit
d6a2defbaa
1 changed files with 18 additions and 6 deletions
  1. 18 6
      src/server/hall/shop/shop.go

+ 18 - 6
src/server/hall/shop/shop.go

@@ -2,9 +2,11 @@ package shop
 
 
 import (
 import (
 	"database/sql"
 	"database/sql"
+	"encoding/json"
 	"fmt"
 	"fmt"
 	"server/console"
 	"server/console"
 	mysqlmgr "server/db/mysql"
 	mysqlmgr "server/db/mysql"
+	redismgr "server/db/redis"
 	"server/msg"
 	"server/msg"
 	"server/user"
 	"server/user"
 	"time"
 	"time"
@@ -12,11 +14,7 @@ import (
 	"github.com/name5566/leaf/gate"
 	"github.com/name5566/leaf/gate"
 )
 )
 
 
-var list []*msg.ShopItem = nil
-
 func init() {
 func init() {
-	list = make([]*msg.ShopItem, 0)
-	console.Log("注册BuyShopItem")
 }
 }
 
 
 func OnBuy(args []interface{}) {
 func OnBuy(args []interface{}) {
@@ -43,7 +41,12 @@ type ShopItem struct {
 }
 }
 
 
 func GetShopList(shop_type int) ([]*msg.ShopItem, error) {
 func GetShopList(shop_type int) ([]*msg.ShopItem, error) {
-	if len(list) > 0 {
+	str, err := redismgr.Get("ShopList")
+	var list []*msg.ShopItem = nil
+	if err == nil {
+		json.Unmarshal([]byte(str), &list)
+	}
+	if list != nil {
 		return list, nil
 		return list, nil
 	}
 	}
 	rows, err := mysqlmgr.Query("SELECT * FROM shop_config WHERE shop_type = ? LIMIT 100 ", shop_type)
 	rows, err := mysqlmgr.Query("SELECT * FROM shop_config WHERE shop_type = ? LIMIT 100 ", shop_type)
@@ -77,11 +80,20 @@ func GetShopList(shop_type int) ([]*msg.ShopItem, error) {
 		return nil, fmt.Errorf("rows error: %v", err)
 		return nil, fmt.Errorf("rows error: %v", err)
 	}
 	}
 
 
+	shopDataJson, err := json.Marshal(list)
+	if err != nil {
+		console.Log("Error marshalling user data: %v", err)
+		return nil, fmt.Errorf("failed to scan row: %v", err)
+	}
+	redismgr.Set("ShopList", shopDataJson)
 	return list, nil
 	return list, nil
 }
 }
 
 
 func getShopItemById(id string) *msg.ShopItem {
 func getShopItemById(id string) *msg.ShopItem {
-	console.Log("getShopItemById:", list)
+	list, err := GetShopList(1)
+	if err != nil {
+		console.Log("getShopItemById err:", err)
+	}
 	for _, v := range list {
 	for _, v := range list {
 		if v.Id == id {
 		if v.Id == id {
 			return v
 			return v