test summary

This commit is contained in:
shoopea 2020-05-31 10:49:09 +02:00
parent 36d1599817
commit 2ee52e849d

91
job.go
View File

@ -2379,10 +2379,12 @@ func jobCraftAll(j Job) {
func jobCheckVaultLimit(j Job) {
var (
p JobPayloadCheckVaultLimit
p2 JobPayloadGetVault
b []byte
out string
p JobPayloadCheckVaultLimit
p2 JobPayloadGetVault
pPost JobPayloadGetVault
pPre JobPayloadGetVault
b []byte
out string
)
err := setJobStart(j.ID64)
@ -2391,7 +2393,30 @@ func jobCheckVaultLimit(j Job) {
err = json.Unmarshal(j.Payload, &p)
logOnError(err, "jobCheckVaultLimit : Unmarshal payload")
if p.Status == 0 {
if p.Status == 0 { // check pre war
p2.JobCallbackID64 = j.ID64
p2.ItemTypeList = make([]int64, 1)
p2.ItemTypeList = append(p2.ItemTypeList, cacheObjSubType[`item_res`])
b, err = json.Marshal(p2)
logOnError(err, "jobCheckVaultLimit : Marshal(p2)")
jobID64, err := createJob(cacheObjSubType[`job_get_vault`], objJobPriority, j.UserID64, 0, time.Now().UTC(), b)
p.Status = 1
p.VaulPreJobID64 = jobID64
b, err = json.Marshal(p)
logOnError(err, "jobCheckVaultLimit : Marshal(p)")
err = setJobPayloadJSON(j.ID64, p)
logOnError(err, "jobCheckVaultLimit : setJobPayloadJSON(p)")
rescheduleJob(j.ID64, 0, time.Unix(maxUnixTimestamp, 0).UTC())
return
}
if p.Status == 1 {
p2.JobCallbackID64 = j.ID64
p2.ItemTypeList = make([]int64, 0)
@ -2405,10 +2430,10 @@ func jobCheckVaultLimit(j Job) {
b, err = json.Marshal(p2)
logOnError(err, "jobCheckVaultLimit : Marshal(p2)")
jobID64, err := createJob(cacheObjSubType[`job_get_vault`], objJobPriority, j.UserID64, 0, time.Now().UTC(), b)
jobID64, err := createJob(cacheObjSubType[`job_get_vault`], objJobPriority, j.UserID64, 0, time.Now().Add(time.Duration(15)*time.Minute).UTC(), b) // schedule for after battle
p.Status = 1
p.VaultJobID64 = jobID64
p.Status = 2
p.VaultPostJobID64 = jobID64
b, err = json.Marshal(p)
logOnError(err, "jobCheckVaultLimit : Marshal(p)")
@ -2420,8 +2445,12 @@ func jobCheckVaultLimit(j Job) {
return
}
b = getJobPayload(p.VaultJobID64)
err = json.Unmarshal(b, &p2)
b = getJobPayload(p.VaultPostJobID64)
err = json.Unmarshal(b, &pPost)
logOnError(err, "jobCheckVaultLimit : Unmarshal(p2)")
b = getJobPayload(p.VaultPreJobID64)
err = json.Unmarshal(b, &pPre)
logOnError(err, "jobCheckVaultLimit : Unmarshal(p2)")
var empty bool = true
@ -2430,7 +2459,7 @@ func jobCheckVaultLimit(j Job) {
id := getObjItemID(l.Item, ``)
obj, err := getObjItem(id)
if err == nil {
for _, i := range p2.Vault {
for _, i := range pPost.Vault {
if id == i.ItemID64 {
if i.Quantity > l.Max {
empty = false
@ -2444,7 +2473,45 @@ func jobCheckVaultLimit(j Job) {
}
}
if empty {
out = fmt.Sprintf("%s- all good !", out)
out = fmt.Sprintf("%s- all good !\n", out)
}
empty = true
out = fmt.Sprintf("%sWar summary :\n", out)
for _, iPre := range pPre.Vault {
var itemEmpty bool = true
for _, iPost := range pPost.Vault {
if iPre.ItemID64 == iPost.ItemID64 {
itemEmpty = false
if iPre.Quantity != iPost.Quantity {
empty = false
obj, _ := getObjItem(iPre.ItemID64)
if iPre.Quantity > iPost.Quantity {
out = fmt.Sprintf("%s- [%s] lost %d\n", out, obj.Names[0], iPre.Quantity-iPost.Quantity)
} else {
out = fmt.Sprintf("%s- [%s] won %d\n", out, obj.Names[0], iPost.Quantity-iPre.Quantity)
}
}
}
}
if itemEmpty {
empty = false
obj, _ := getObjItem(iPre.ItemID64)
out = fmt.Sprintf("%s- [%s] lost %d\n", out, obj.Names[0], iPre.Quantity)
}
}
for _, iPost := range pPost.Vault {
var itemEmpty bool = true
for _, iPre := range pPre.Vault {
if iPre.ItemID64 == iPost.ItemID64 {
itemEmpty = false
}
}
if itemEmpty {
empty = false
obj, _ := getObjItem(iPre.ItemID64)
out = fmt.Sprintf("%s- [%s] won %d\n", out, obj.Names[0], iPost.Quantity)
}
}
c := TGCommand{