test
This commit is contained in:
parent
d7647d171f
commit
14c4657c6c
51
obj.go
51
obj.go
@ -255,7 +255,7 @@ func objAddName(objID64 int64, name string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func addObjMsg(msgID64 int64, msgChatID64 int64, msgTGUserID64 int64, msgTGSenderUserID64 int64, msgDate time.Time, msgText string) (int64, error) {
|
func addObjMsg(m ChatWarsMessage) (int64, error) {
|
||||||
tx, err := db.Begin()
|
tx, err := db.Begin()
|
||||||
logOnError(err, "addObjMsg : start transaction")
|
logOnError(err, "addObjMsg : start transaction")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -286,26 +286,57 @@ func addObjMsg(msgID64 int64, msgChatID64 int64, msgTGUserID64 int64, msgTGSende
|
|||||||
}
|
}
|
||||||
defer stmt.Close()
|
defer stmt.Close()
|
||||||
|
|
||||||
_, err = stmt.Exec(objId, msgID64, msgChatID64, msgTGUserID64, msgTGSenderUserID64, msgDate, msgText)
|
_, err = stmt.Exec(objId, m.ID64, m.ChatID64, m.TGUserID64, m.TGSenderUserID64, m.Date, m.Text)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err2 := tx.Rollback()
|
err2 := tx.Rollback()
|
||||||
logOnError(err2, "addObjMsg : rollback exec insert obj_msg")
|
logOnError(err2, "addObjMsg : rollback exec insert obj_msg")
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(m.Callbacks) > 0 {
|
||||||
|
stmt2, err := tx.Prepare(`INSERT INTO obj_msg_callback (obj_id, name, data)
|
||||||
|
VALUES (?, ?, ?);`)
|
||||||
|
if err != nil {
|
||||||
|
err2 := tx.Rollback()
|
||||||
|
logOnError(err2, "addObjMsg : rollback prepare insert obj_msg_callback")
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
defer stmt2.Close()
|
||||||
|
|
||||||
|
for _, c := range m.Callbacks {
|
||||||
|
_, err = stmt2.Exec(objId, c.Name, c.Data)
|
||||||
|
if err != nil {
|
||||||
|
err2 := tx.Rollback()
|
||||||
|
logOnError(err2, "addObjMsg : rollback exec insert obj_msg_callback")
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = tx.Commit()
|
err = tx.Commit()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
m := new(ChatWarsMessage)
|
msg := new(ChatWarsMessage)
|
||||||
m.ObjID64 = objId
|
msg.ObjID64 = objId
|
||||||
m.TGUserID64 = msgTGUserID64
|
msg.TGUserID64 = m.TGUserID64
|
||||||
m.TGSenderUserID64 = msgTGSenderUserID64
|
msg.TGSenderUserID64 = m.TGSenderUserID64
|
||||||
m.Date = msgDate
|
msg.Date = m.Date
|
||||||
m.ID64 = msgID64
|
msg.ID64 = m.ID64
|
||||||
m.ChatID64 = msgChatID64
|
msg.ChatID64 = m.ChatID64
|
||||||
m.Text = msgText
|
msg.Text = m.Text
|
||||||
|
msg.Callbacks = []ChatWarsCallback{}
|
||||||
|
|
||||||
|
for _, c := range m.Callbacks {
|
||||||
|
cb := ChatWarsCallback{
|
||||||
|
Name: c.Name,
|
||||||
|
Data: c.Data,
|
||||||
|
}
|
||||||
|
msg.Callbacks = append(msg.Callbacks, cb)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
cacheObjMsg.Store(objId, *m)
|
cacheObjMsg.Store(objId, *m)
|
||||||
|
|
||||||
return objId, nil
|
return objId, nil
|
||||||
|
10
sql.go
10
sql.go
@ -169,6 +169,16 @@ func initDB() {
|
|||||||
failOnError(err, "initDB : create table obj_msg")
|
failOnError(err, "initDB : create table obj_msg")
|
||||||
log.Println("initDB : obj_msg created ...")
|
log.Println("initDB : obj_msg created ...")
|
||||||
|
|
||||||
|
_, err = db.Exec(`CREATE TABLE obj_msg_callback (
|
||||||
|
obj_id BIGINT UNSIGNED NOT NULL
|
||||||
|
,name VARCHAR(128) NOT NULL
|
||||||
|
,data VARBINARY(256) NOT NULL
|
||||||
|
,FOREIGN KEY (obj_id) REFERENCES obj(id) ON DELETE CASCADE
|
||||||
|
,UNIQUE KEY (obj_id, name)
|
||||||
|
) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_bin;`)
|
||||||
|
failOnError(err, "initDB : create table obj_msg_callback")
|
||||||
|
log.Println("initDB : obj_msg_callback created ...")
|
||||||
|
|
||||||
_, err = db.Exec(`CREATE TABLE obj_msg_pillage_inc (
|
_, err = db.Exec(`CREATE TABLE obj_msg_pillage_inc (
|
||||||
obj_id BIGINT UNSIGNED NOT NULL
|
obj_id BIGINT UNSIGNED NOT NULL
|
||||||
,attacker VARCHAR(32)
|
,attacker VARCHAR(32)
|
||||||
|
Loading…
Reference in New Issue
Block a user