From c22c44cca312f40b6ffdaac729f06a1e33ecf1ec Mon Sep 17 00:00:00 2001 From: shoopea Date: Fri, 30 Aug 2019 15:20:03 +0800 Subject: [PATCH] update g deposit --- job.go | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/job.go b/job.go index 3112845..f60f7bf 100644 --- a/job.go +++ b/job.go @@ -823,7 +823,7 @@ func jobGDeposit(j Job) { clientSendCWMsgDelay(p.ChatID64, `âš’Crafting`, delay) p.Status = 1 b, _ = json.Marshal(&p) - err = createJobCallback(objSubTypeJobGDeposit, j.UserID64, objSubTypeMessageOrderbookAck, b, 1*time.Minute) + err = createJobCallback(objSubTypeJobGDeposit, j.UserID64, objSubTypeMessageStockAnyAck, b, 1*time.Minute) logOnError(err, "jobGDeposit : createJobCallback") delay = delay + 2*time.Second } @@ -841,7 +841,7 @@ func jobGDeposit(j Job) { log.Printf("jobGDeposit : 1 : %d.\n", j.Trigger) } else if p.Status == objSubTypeMessageStockAck { - log.Printf("jobGDeposit : objSubTypeMessageStockAck : %d.\n", j.Trigger) + //log.Printf("jobGDeposit : objSubTypeMessageStockAck : %d.\n", j.Trigger) msg, err := getObjMsg(j.Trigger) logOnError(err, "jobGDeposit : getObjMsg") rule, err := getMsgParsingRule(msg) @@ -862,6 +862,28 @@ func jobGDeposit(j Job) { } } } + } else if p.Status == objSubTypeMessageStockAnyAck { + log.Printf("jobGDeposit : objSubTypeMessageStockAnyAck : %d.\n", j.Trigger) + msg, err := getObjMsg(j.Trigger) + logOnError(err, "jobGDeposit : getObjMsg") + rule, err := getMsgParsingRule(msg) + logOnError(err, "jobGDeposit : getMsgParsingRule") + cwm, err := parseSubTypeMessageStockAny(msg, rule.re) + for stockIdx := range cwm.Stock { + for resIdx := range p.ResObjID64 { + if cwm.Stock[stockIdx].ItemID64 == p.ResObjID64[resIdx] { + //log.Printf("jobGDeposit : objSubTypeMessageStockAck : Matching ItemID %d (%d).\n", p.ResObjID64[resIdx], cwm.Stock[stockIdx].Quantity) + item, _ := getObjItem(p.ResObjID64[resIdx]) + clientSendCWMsg(p.ChatID64, fmt.Sprintf("/g_deposit %s %d", item.Code, cwm.Stock[stockIdx].Quantity)) + p2 := JobPayloadGDepositForward{ + ItemID64: p.ResObjID64[resIdx], + Quantity: cwm.Stock[stockIdx].Quantity, + } + b2, _ := json.Marshal(p2) + err = createJobCallback(objSubTypeJobGDepositForward, j.UserID64, objSubTypeMessageGDepositReq, b2, time.Duration(1*time.Minute)) + } + } + } } err = setJobDone(j.ID64)