|
@@ -1,7 +1,9 @@
|
|
package shop
|
|
package shop
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
+ "fmt"
|
|
"server/console"
|
|
"server/console"
|
|
|
|
+ mysqlmgr "server/db/mysql"
|
|
"server/msg"
|
|
"server/msg"
|
|
"server/user"
|
|
"server/user"
|
|
|
|
|
|
@@ -19,3 +21,40 @@ func OnBuy(args []interface{}) {
|
|
user_id := a.UserData().(*msg.UserInfo).UserId
|
|
user_id := a.UserData().(*msg.UserInfo).UserId
|
|
user.AddUserCoin(100, user_id)
|
|
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
|
|
|
|
+}
|