From 17ec3fecb06dd64dcd8bd57e5e412fc710b06d54 Mon Sep 17 00:00:00 2001 From: TangBin Date: Fri, 14 Dec 2018 09:52:22 +0800 Subject: [PATCH] skus delete query fix --- pkg/compute/models/skus.go | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/pkg/compute/models/skus.go b/pkg/compute/models/skus.go index 26ae0972b0..420632f42d 100644 --- a/pkg/compute/models/skus.go +++ b/pkg/compute/models/skus.go @@ -539,21 +539,11 @@ func (manager *SServerSkuManager) GetSkuCountByProvider(provider string) int { // 删除表中zone not found的记录 func (manager *SServerSkuManager) PendingDeleteInvalidSku() error { - zones := make([]SZone, 0) - err := ZoneManager.Query("id").Distinct().All(&zones) - if err != nil { - log.Errorf(err.Error()) - return httperrors.NewInternalServerError("query zone list failed.") - } - - zoneIds := []string{} - for _, zone := range zones { - zoneIds = append(zoneIds, zone.Id) - } - + sq := ZoneManager.Query("id").Distinct().SubQuery() skus := make([]SServerSku, 0) q := manager.Query() - err = q.NotIn("zone_id", zoneIds).All(&skus) + q = q.NotIn("zone_id", sq).IsNotEmpty("zone_id") + err := db.FetchModelObjects(manager, q, &skus) if err != nil { log.Errorf(err.Error()) return httperrors.NewInternalServerError("query sku list failed.")