xy 2 тижнів тому
батько
коміт
cbdf6f693d
1 змінених файлів з 39 додано та 0 видалено
  1. 39 0
      src/server/hall/shop/shop.go

+ 39 - 0
src/server/hall/shop/shop.go

@@ -1,7 +1,9 @@
 package shop
 
 import (
+	"fmt"
 	"server/console"
+	mysqlmgr "server/db/mysql"
 	"server/msg"
 	"server/user"
 
@@ -19,3 +21,40 @@ func OnBuy(args []interface{}) {
 	user_id := a.UserData().(*msg.UserInfo).UserId
 	user.AddUserCoin(100, user_id)
 }
+
+type ShopItem struct {
+	ID       int    `db:"id"`
+	ShopType int    `db:"shop_type"`
+	Name     string `db:"name"`
+	Price    int    `db:"price"`
+	Num      int    `db:"num"`
+}
+
+func GetShopList(shop_type int) ([]*msg.ShopItem, error) {
+	rows, err := mysqlmgr.Query("SELECT * FROM shop_config WHERE shop_type = ? LIMIT 100 ", shop_type)
+	if err != nil {
+		return nil, fmt.Errorf("query failed: %v", err)
+	}
+	defer rows.Close()
+
+	var results []*msg.ShopItem
+
+	for rows.Next() {
+		var shop_item ShopItem
+		if err := rows.Scan(&shop_item.ID, &shop_item.ShopType, &shop_item.Name, &shop_item.Price, &shop_item.Num); err != nil {
+			return nil, fmt.Errorf("failed to scan row: %v", err)
+		}
+		results = append(results, &msg.ShopItem{
+			Id:    fmt.Sprint(shop_item.ID),
+			Name:  shop_item.Name,
+			Price: int32(shop_item.Price),
+			Num:   int32(shop_item.Num),
+		})
+	}
+
+	if err := rows.Err(); err != nil {
+		return nil, fmt.Errorf("rows error: %v", err)
+	}
+
+	return results, nil
+}