fix(region): vpc filter params

This commit is contained in:
ioito
2021-12-10 17:26:42 +08:00
parent 3499630fb5
commit cac3d1d2fb
+5 -1
View File
@@ -1058,10 +1058,14 @@ func (manager *SVpcManager) ListItemFilter(
vpcs := VpcManager.Query().SubQuery()
managers := CloudproviderManager.Query().SubQuery()
accounts := CloudaccountManager.Query().SubQuery()
accUrl := sqlchemy.Equals(accounts.Field("access_url"), account.AccessUrl)
if len(account.AccessUrl) == 0 {
accUrl = sqlchemy.IsNullOrEmpty(accounts.Field("access_url"))
}
vpcSQ := vpcs.Query(vpcs.Field("id")).Join(managers, sqlchemy.Equals(vpcs.Field("manager_id"), managers.Field("id"))).Join(accounts, sqlchemy.Equals(managers.Field("cloudaccount_id"), accounts.Field("id"))).Filter(
sqlchemy.AND(
sqlchemy.Equals(accounts.Field("provider"), account.Provider),
sqlchemy.Equals(accounts.Field("access_url"), account.AccessUrl),
accUrl,
),
)
q = q.In("id", vpcSQ.SubQuery())