diff --git a/server/light_backtask/service/nftutils.go b/server/light_backtask/service/nftutils.go index 3d5302e2..762b66b1 100644 --- a/server/light_backtask/service/nftutils.go +++ b/server/light_backtask/service/nftutils.go @@ -242,30 +242,37 @@ func RepiarHeroQuality() error { } for ds.Next() { tokenId := ds.GetByName("token_id") + itemId := q5.ToInt32(ds.GetByName("hero_id")) quality := q5.ToInt32(ds.GetByName("quality")) - if val, ok := tokenIdQualityHash[tokenId]; ok && val.Quality != quality { + if val, ok := tokenIdQualityHash[tokenId]; ok && quality > val.Quality && itemId > 0 { + UpdateNftItemIdQuality( + val.NetId, + val.ContractAddress, + val.TokenId, + itemId, + quality) } } }) } if resultErr == nil && len(nftDatas) > 0 { - batchNftQuality := []*jccommon.NftIdentityAndExtData{} + batch := []*jccommon.NftIdentityAndExtData{} for _, val := range nftDatas { - if len(batchNftQuality) < 100 { - q5.AppendSlice(&batchNftQuality, val) + if len(batch) < 100 { + q5.AppendSlice(&batch, val) } else { - procBatchFunc(batchNftQuality) - batchNftQuality = []*jccommon.NftIdentityAndExtData{} + procBatchFunc(batch) + batch = []*jccommon.NftIdentityAndExtData{} } } - if len(batchNftQuality) > 0 { - procBatchFunc(batchNftQuality) + if len(batch) > 0 { + procBatchFunc(batch) } } return resultErr } -func updateNftItemIdQuality(netId int32, contractAddress string, tokenId string, +func UpdateNftItemIdQuality(netId int32, contractAddress string, tokenId string, itemId int32, quality int32) error { var resultErr error f5.GetGoStyleDb().Update(