test
This commit is contained in:
parent
562e721998
commit
9e24501671
60
item.go
60
item.go
@ -18,7 +18,7 @@ var (
|
|||||||
cacheObjItemCraft map[string]int64
|
cacheObjItemCraft map[string]int64
|
||||||
)
|
)
|
||||||
|
|
||||||
func addObjItem(code string, name string, itemTypeID64 int64, weight int64, exchange string, auction bool) (int64, error) {
|
func addObjItem(code string, name string, itemTypeID64 int64, weight int64, exchange string, auction bool, craftable bool) (int64, error) {
|
||||||
tx, err := db.Begin()
|
tx, err := db.Begin()
|
||||||
logOnError(err, "addObjItem : start transaction")
|
logOnError(err, "addObjItem : start transaction")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -41,8 +41,8 @@ func addObjItem(code string, name string, itemTypeID64 int64, weight int64, exch
|
|||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
stmt, err := tx.Prepare(`INSERT INTO obj_item (obj_id, intl_id, weight, exchange, auction)
|
stmt, err := tx.Prepare(`INSERT INTO obj_item (obj_id, intl_id, weight, exchange, auction, craftable)
|
||||||
VALUES (?, ?, ?, ?, ?);`)
|
VALUES (?, ?, ?, ?, ?, ?);`)
|
||||||
logOnError(err, "addObjItem : prepare insert obj_item")
|
logOnError(err, "addObjItem : prepare insert obj_item")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err2 := tx.Rollback()
|
err2 := tx.Rollback()
|
||||||
@ -51,19 +51,18 @@ func addObjItem(code string, name string, itemTypeID64 int64, weight int64, exch
|
|||||||
}
|
}
|
||||||
defer stmt.Close()
|
defer stmt.Close()
|
||||||
|
|
||||||
var e, a int
|
var e, a, c int = 0, 0, 0
|
||||||
if exchange != `` {
|
if exchange != `` {
|
||||||
e = 1
|
e = 1
|
||||||
} else {
|
|
||||||
e = 0
|
|
||||||
}
|
}
|
||||||
if auction {
|
if auction {
|
||||||
a = 1
|
a = 1
|
||||||
} else {
|
}
|
||||||
a = 0
|
if craftable {
|
||||||
|
c = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = stmt.Exec(objId, code, weight, e, a)
|
_, err = stmt.Exec(objId, code, weight, e, a, c)
|
||||||
logOnError(err, "addObjItem : exec insert obj_item")
|
logOnError(err, "addObjItem : exec insert obj_item")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err2 := tx.Rollback()
|
err2 := tx.Rollback()
|
||||||
@ -173,6 +172,27 @@ func getSilentObjItemID(code string, name string) int64 {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setObjItemCraftable(objID64 int64, craftable bool) error {
|
||||||
|
var c int = 0
|
||||||
|
if craftable {
|
||||||
|
c = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
stmt, err := db.Prepare(`UPDATE obj_item oi SET oi.craftable = ? WHERE oi.obj_id = ?;`)
|
||||||
|
logOnError(err, "setObjItemCraftable : prepare update obj_item")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer stmt.Close()
|
||||||
|
|
||||||
|
_, err = stmt.Exec(c, objID64)
|
||||||
|
logOnError(err, fmt.Sprintf("setObjItemCraftable : update obj_item(%d)", objID64))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func setObjItemWeight(objID64 int64, weight int64) error {
|
func setObjItemWeight(objID64 int64, weight int64) error {
|
||||||
stmt, err := db.Prepare(`UPDATE obj_item oi SET oi.weight = ? WHERE oi.obj_id = ?;`)
|
stmt, err := db.Prepare(`UPDATE obj_item oi SET oi.weight = ? WHERE oi.obj_id = ?;`)
|
||||||
logOnError(err, "setObjItemWeight : prepare update obj_item")
|
logOnError(err, "setObjItemWeight : prepare update obj_item")
|
||||||
@ -257,11 +277,12 @@ func getCraftItemID(cmd string) (int64, error) {
|
|||||||
|
|
||||||
func loadObjItem() error {
|
func loadObjItem() error {
|
||||||
var (
|
var (
|
||||||
obj_id int64
|
obj_id int64
|
||||||
type_id int64
|
type_id int64
|
||||||
intl_id string
|
intl_id string
|
||||||
name string
|
name string
|
||||||
weight int64
|
weight int64
|
||||||
|
craftable int
|
||||||
)
|
)
|
||||||
|
|
||||||
muxObjItem.Lock()
|
muxObjItem.Lock()
|
||||||
@ -300,7 +321,7 @@ func loadObjItem() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
objs, err := db.Query(`SELECT oi.obj_id, o.obj_sub_type_id, oi.intl_id, oi.weight FROM obj o, obj_item oi WHERE o.id = oi.obj_id;`)
|
objs, err := db.Query(`SELECT oi.obj_id, o.obj_sub_type_id, oi.intl_id, oi.weight, oi.craftable FROM obj o, obj_item oi WHERE o.id = oi.obj_id;`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logOnError(err, "loadObjItem : querying items")
|
logOnError(err, "loadObjItem : querying items")
|
||||||
return err
|
return err
|
||||||
@ -308,7 +329,7 @@ func loadObjItem() error {
|
|||||||
defer objs.Close()
|
defer objs.Close()
|
||||||
|
|
||||||
for objs.Next() {
|
for objs.Next() {
|
||||||
err = objs.Scan(&obj_id, &type_id, &intl_id, &weight)
|
err = objs.Scan(&obj_id, &type_id, &intl_id, &weight, &craftable)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logOnError(err, "loadObjItem : scanning items")
|
logOnError(err, "loadObjItem : scanning items")
|
||||||
return err
|
return err
|
||||||
@ -324,6 +345,11 @@ func loadObjItem() error {
|
|||||||
setObjItemWeight(obj_id, objItems[id].Weight)
|
setObjItemWeight(obj_id, objItems[id].Weight)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (craftable == 0 && objItems[id].Craftable) || (craftable == 1 && !objItems[id].Craftable) {
|
||||||
|
log.Printf("loadObjItem : %s - %s : craftable changed : %v => %v\n", objItems[id].Code, objItems[id].Names[0], !objItems[id].Craftable, objItems[id].Craftable)
|
||||||
|
setObjItemCraftable(obj_id, objItems[id].Craftable)
|
||||||
|
}
|
||||||
|
|
||||||
cacheObjItemId[obj_id] = id
|
cacheObjItemId[obj_id] = id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -350,7 +376,7 @@ func loadObjItem() error {
|
|||||||
|
|
||||||
for _, i := range cacheObjItem {
|
for _, i := range cacheObjItem {
|
||||||
if objItems[i].ObjID64 == 0 {
|
if objItems[i].ObjID64 == 0 {
|
||||||
id, _ := addObjItem(objItems[i].Code, objItems[i].Names[0], objItems[i].ItemTypeID, objItems[i].Weight, objItems[i].Exchange, objItems[i].Auction)
|
id, _ := addObjItem(objItems[i].Code, objItems[i].Names[0], objItems[i].ItemTypeID, objItems[i].Weight, objItems[i].Exchange, objItems[i].Auction, objItems[i].Craftable)
|
||||||
objItems[i].ObjID64 = id
|
objItems[i].ObjID64 = id
|
||||||
cacheObjItemId[id] = i
|
cacheObjItemId[id] = i
|
||||||
for _, n := range objItems[i].Names {
|
for _, n := range objItems[i].Names {
|
||||||
|
1
sql.go
1
sql.go
@ -88,6 +88,7 @@ func initDB() {
|
|||||||
,weight SMALLINT NOT NULL
|
,weight SMALLINT NOT NULL
|
||||||
,exchange TINYINT NOT NULL
|
,exchange TINYINT NOT NULL
|
||||||
,auction TINYINT NOT NULL
|
,auction TINYINT NOT NULL
|
||||||
|
,craftable TINYINT NOT NULL
|
||||||
,FOREIGN KEY (obj_id) REFERENCES obj(id) ON DELETE CASCADE
|
,FOREIGN KEY (obj_id) REFERENCES obj(id) ON DELETE CASCADE
|
||||||
,UNIQUE KEY (intl_id)
|
,UNIQUE KEY (intl_id)
|
||||||
) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_bin;`)
|
) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_bin;`)
|
||||||
|
Loading…
Reference in New Issue
Block a user