|
@@ -2,9 +2,11 @@ package shop
|
|
|
|
|
|
import (
|
|
|
"database/sql"
|
|
|
+ "encoding/json"
|
|
|
"fmt"
|
|
|
"server/console"
|
|
|
mysqlmgr "server/db/mysql"
|
|
|
+ redismgr "server/db/redis"
|
|
|
"server/msg"
|
|
|
"server/user"
|
|
|
"time"
|
|
@@ -12,11 +14,7 @@ import (
|
|
|
"github.com/name5566/leaf/gate"
|
|
|
)
|
|
|
|
|
|
-var list []*msg.ShopItem = nil
|
|
|
-
|
|
|
func init() {
|
|
|
- list = make([]*msg.ShopItem, 0)
|
|
|
- console.Log("注册BuyShopItem")
|
|
|
}
|
|
|
|
|
|
func OnBuy(args []interface{}) {
|
|
@@ -43,7 +41,12 @@ type ShopItem struct {
|
|
|
}
|
|
|
|
|
|
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
|
|
|
}
|
|
|
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)
|
|
|
}
|
|
|
|
|
|
+ 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
|
|
|
}
|
|
|
|
|
|
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 {
|
|
|
if v.Id == id {
|
|
|
return v
|