test obj_tribute
This commit is contained in:
parent
c1f97e4c85
commit
32a556ef6d
@ -824,6 +824,11 @@
|
||||
"name": "Valley",
|
||||
"obj_type": "quest"
|
||||
},
|
||||
{
|
||||
"intl_id": "tribute",
|
||||
"name": "Tribute",
|
||||
"obj_type": "tribute"
|
||||
},
|
||||
{
|
||||
"intl_id": "test",
|
||||
"name": "Test",
|
||||
|
@ -51,6 +51,10 @@
|
||||
"intl_id": "quest",
|
||||
"name": "Quest"
|
||||
},
|
||||
{
|
||||
"intl_id": "tribute",
|
||||
"name": "Tribute"
|
||||
},
|
||||
{
|
||||
"intl_id": "test",
|
||||
"name": "Test"
|
||||
|
5
msg.go
5
msg.go
@ -285,6 +285,11 @@ func parseSubTypeMessageTributesStatsAck(m *ChatWarsMessage, r *regexp.Regexp) (
|
||||
log.Printf("parseSubTypeMessageTributesStatsAck : Item : %s\n", re.ReplaceAllString(l[0], "${Item}"))
|
||||
log.Printf("parseSubTypeMessageTributesStatsAck : Quantity : %s\n", re.ReplaceAllString(l[0], "${Quantity}"))
|
||||
log.Printf("parseSubTypeMessageTributesStatsAck : Exp : %s\n", re.ReplaceAllString(l[0], "${Exp}"))
|
||||
tribute.Date, err = fromChatWarsDate(re.ReplaceAllString(l[0], "${Date}"))
|
||||
logOnError(err, "parseSubTypeMessageTributesStatsAck : fromChatWarsDate")
|
||||
tribute.ItemID64 = getSilentObjItemID(``, re.ReplaceAllString(l[0], "${Item}"))
|
||||
tribute.Quantity, _ = strconv.ParseInt(r.ReplaceAllString(l[0], "${Quantity}"), 10, 64)
|
||||
tribute.Exp, _ = strconv.ParseInt(r.ReplaceAllString(l[0], "${Exp}"), 10, 64)
|
||||
cwm.Tributes = append(cwm.Tributes, tribute)
|
||||
}
|
||||
|
||||
|
70
sql.go
70
sql.go
@ -296,10 +296,38 @@ func initDB() {
|
||||
,quantity INT NOT NULL
|
||||
,FOREIGN KEY (obj_id) REFERENCES obj(id) ON DELETE CASCADE
|
||||
,FOREIGN KEY (item_id) REFERENCES obj_item(obj_id) ON DELETE CASCADE
|
||||
,UNIQUE KEY (obj_id, item_id)
|
||||
) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_bin;`)
|
||||
failOnError(err, "initDB : create table obj_msg_gold")
|
||||
failOnError(err, "initDB : create table obj_msg_item")
|
||||
log.Println("initDB : obj_msg_item created ...")
|
||||
|
||||
_, err = db.Exec(`CREATE TABLE obj_msg_tribute (
|
||||
obj_id BIGINT UNSIGNED NOT NULL
|
||||
,user_id BIGINT UNSIGNED NOT NULL
|
||||
,item_id BIGINT UNSIGNED NOT NULL
|
||||
,quantity SMALLINT NOT NULL
|
||||
,xp SMALLINT NOT NULL
|
||||
,date DATETIME NOT NULL
|
||||
,FOREIGN KEY (obj_id) REFERENCES obj(id) ON DELETE CASCADE
|
||||
,FOREIGN KEY (user_id) REFERENCES obj_user(obj_id) ON DELETE CASCADE
|
||||
,FOREIGN KEY (item_id) REFERENCES obj_item(obj_id) ON DELETE CASCADE
|
||||
,UNIQUE KEY (user_id, date)
|
||||
) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_bin;`)
|
||||
failOnError(err, "initDB : create table obj_msg_tribute")
|
||||
log.Println("initDB : obj_msg_tribute created ...")
|
||||
|
||||
_, err = db.Exec(`CREATE TABLE obj_tribute (
|
||||
tg_user_id BIGINT UNSIGNED NOT NULL
|
||||
,item_id BIGINT UNSIGNED NOT NULL
|
||||
,quantity INT NOT NULL
|
||||
,exp INT NOT NULL
|
||||
,date DATETIME NOT NULL
|
||||
,FOREIGN KEY (item_id) REFERENCES obj_item(obj_id) ON DELETE CASCADE
|
||||
,UNIQUE KEY (tg_user_id, item_id, quantity, exp, date)
|
||||
) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_bin;`)
|
||||
failOnError(err, "initDB : create table obj_tribute")
|
||||
log.Println("initDB : obj_tribute created ...")
|
||||
|
||||
_, err = db.Exec(`CREATE TABLE msg_rules (
|
||||
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT
|
||||
,prio SMALLINT NOT NULL
|
||||
@ -313,21 +341,6 @@ func initDB() {
|
||||
failOnError(err, "initDB : create table msg_rules")
|
||||
log.Println("initDB : msg_rules created ...")
|
||||
|
||||
_, err = db.Exec(`CREATE TABLE obj_tribute (
|
||||
obj_id BIGINT UNSIGNED NOT NULL
|
||||
,user_id BIGINT UNSIGNED NOT NULL
|
||||
,item_id BIGINT UNSIGNED NOT NULL
|
||||
,quantity SMALLINT NOT NULL
|
||||
,xp SMALLINT NOT NULL
|
||||
,date DATETIME NOT NULL
|
||||
,FOREIGN KEY (obj_id) REFERENCES obj(id) ON DELETE CASCADE
|
||||
,FOREIGN KEY (user_id) REFERENCES obj_user(obj_id) ON DELETE CASCADE
|
||||
,FOREIGN KEY (item_id) REFERENCES obj_item(obj_id) ON DELETE CASCADE
|
||||
,UNIQUE KEY (user_id, date)
|
||||
) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_bin;`)
|
||||
failOnError(err, "initDB : create table obj_tribute")
|
||||
log.Println("initDB : obj_tribute created ...")
|
||||
|
||||
_, err = db.Exec(`CREATE TABLE obj_xp (
|
||||
obj_id BIGINT UNSIGNED NOT NULL
|
||||
,user_id BIGINT UNSIGNED NOT NULL
|
||||
@ -627,6 +640,31 @@ func insertMsgDuelFight(m *ChatWarsMessageDuelFight) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func insertMsgTributesStats(m *ChatWarsMessageTributesStatsAck) error {
|
||||
objSubTypeId, err := getObjSubTypeId(m.ObjID64)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if objSubTypeId != cacheObjSubType[`msg`] && objSubTypeId != cacheObjSubType[`msg_tributes_stats_ack`] {
|
||||
return errors.New("Message type mismatch")
|
||||
}
|
||||
|
||||
stmt, err := db.Prepare(`INSERT INTO obj_tribute (tg_user_id, item_id, quantity, exp, date)
|
||||
VALUES (?, ?, ?, ?, ?);`)
|
||||
logOnError(err, "insertMsgTributesStats : Prepare")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer stmt.Close()
|
||||
|
||||
for _, t := range m.Tributes {
|
||||
_, err = stmt.Exec(m.Msg.TGUserID64, t.ItemID64, t.Quantity, t.Exp, t.Date)
|
||||
logOnError(err, "insertMsgTributesStats Exec")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func insertMsgAuctionAnnounce(m *ChatWarsMessageAuctionAnnounce) error {
|
||||
objSubTypeId, err := getObjSubTypeId(m.ObjID64)
|
||||
if err != nil {
|
||||
|
@ -518,6 +518,8 @@ func SQLIdentifyMsgWorker(id int, objIds <-chan int64) {
|
||||
case cacheObjSubType[`msg_tributes_stats_ack`]:
|
||||
_, err := parseSubTypeMessageTributesStatsAck(m, rule.re)
|
||||
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Parsing cacheObjSubType[`msg_tributes_stats_ack`]")
|
||||
err = insertMsgTributesStats(cwm)
|
||||
logOnError(err, "SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : insertMsgTributesStats")
|
||||
default:
|
||||
//log.Printf("SQLIdentifyMsgWorker["+strconv.Itoa(id)+"] : Unknwon message type in rule %d : %d (%d)\n%s\n", msgParsingRules[i].ID, msgParsingRules[i].MsgTypeID64, objId, m.Text)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user