From b34cf7c9bd671658eba5dc639c358cc22115e2dd Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期一, 27 七月 2020 14:34:06 +0800 Subject: [PATCH] findAllSdks add sort --- service/SdkDownLoad.go | 40 +++++++++++++++++++++++----------------- 1 files changed, 23 insertions(+), 17 deletions(-) diff --git a/service/SdkDownLoad.go b/service/SdkDownLoad.go index 47c2c3e..1363024 100644 --- a/service/SdkDownLoad.go +++ b/service/SdkDownLoad.go @@ -135,9 +135,14 @@ func GetSdkList(sdkName string) []SdkInsOrUpgrade { var api dbapi.SdkApi - localSdks := api.FindAll(sdkName) //鏈湴宸插畨瑁呮墍鏈夌畻娉� + localSdks := api.FindAll(sdkName) //鏈湴宸插畨瑁呮墍鏈夌畻娉�,甯﹂『搴� + if localSdks == nil { + return []SdkInsOrUpgrade{} + } + installedSdks := make([]SdkInsOrUpgrade, len(localSdks)) + localSdkM := make(map[string]SdkInsOrUpgrade) - for _,ls :=range localSdks { + for idx,ls :=range localSdks { siou := SdkInsOrUpgrade{ Installed: true, } @@ -167,21 +172,29 @@ } siou.Sdk = sdk localSdkM[siou.Id] = siou + installedSdks[idx] = siou } //杩滅鍙敤鐨勭畻娉� remoteSdks := findAllMySdk() logger.Debug("remoteSdks:", remoteSdks) - for sdkId,sdk := range remoteSdks { - if v,ok := localSdkM[sdkId];ok { //鏈湴宸插畨瑁� + nInsSdks := make([]SdkInsOrUpgrade,0) + for _,sdk := range remoteSdks { + if v,ok := localSdkM[sdk.Id];ok { //鏈湴宸插畨瑁� ls := v if shouldVersionBeUpgrade(ls.Version, sdk.Version) { //鍒ゆ柇鐗堟湰鍙锋槸鍚﹂渶瑕佸崌绾� ls.Installed = true ls.IsUpgrade = true //闇�瑕佸崌绾� ls.RemoteVersion = sdk.Version //杩滅鐨勭増鏈彿 } - localSdkM[sdkId] = ls + localSdkM[sdk.Id] = ls + for index,es := range installedSdks { + if es.Id == sdk.Id { + installedSdks[index] = ls + break + } + } } else { //鏈湴鏈畨瑁咃紝闇�瑕佸畨瑁� bIns := SdkInsOrUpgrade{ RemoteVersion: sdk.Version, @@ -189,15 +202,11 @@ Installed: false, } bIns.Sdk = sdk - localSdkM[sdkId] = bIns + nInsSdks = append(nInsSdks, bIns) } } - sdks := make([]SdkInsOrUpgrade, 0) - for _,v := range localSdkM { - sdks = append(sdks, v) - } - return sdks + return append(installedSdks, nInsSdks...) } func queryDatabase(sdkName string) ([]map[string]interface{}, map[string]bool) { @@ -232,7 +241,7 @@ token = "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ3NDUwMjU5MjMsInVzZXIiOiJ7XCJpZFwiOlwiZTZjY2QzNmQtNGYxNi00NmZjLTg4ZDUtMDczNjU4NjZkMjA1XCIsXCJwZXJtaXNzaW9uc1wiOltcInByb2R1Y3RNYW5nZTpwdWJsaXNoXCIsXCJjb2RlTWFuZ2U6dmlld1wiLFwiZGV2aWNlTWFuYWdlOmFkZFwiLFwiYWRtaW5NYW5hZ2VcIixcIm9yZGVyTWFuZ2VcIixcImRldmljZU1hbmFnZTp2aWV3XCIsXCJwcm9kdWN0TWFuZ2U6YWRkXCIsXCJhZG1pbk1hbmFnZTp2aWV3XCIsXCJjb2RlTWFuZ2U6YWRkXCIsXCJwcm9kdWN0TWFuZ2U6b2ZmU2FsZVwiLFwib3JkZXJNYW5nZTpjYW5jZWxcIixcInByb2R1Y3RDZW50ZXI6ZG93bmxvYWRcIixcInByb2R1Y3RDZW50ZXI6YnV5XCIsXCJwcm9kdWN0TWFuZ2U6dmlld1wiLFwiYXBpXCIsXCJob21lXCIsXCJvcmRlck1hbmdlOnBheVwiLFwiYWRtaW5NYW5hZ2U6YWRkXCIsXCJvcmRlck1hbmdlOmRvd25sb2FkXCIsXCJwcm9kdWN0Q2VudGVyXCIsXCJkZXZpY2VNYW5hZ2U6dW5iaW5kXCIsXCJvcmRlck1hbmdlOnZpZXdcIixcImFkbWluTWFuYWdlOmVkaXRcIixcImRldmljZU1hbmFnZVwiLFwidmlwTWFuYWdlOmFkZFwiLFwidmlwTWFuYWdlOnZpZXdcIixcInByb2R1Y3RDZW50ZXI6dmlld1wiLFwidmlwTWFuYWdlOmVkaXRcIixcInZpcE1hbmFnZVwiLFwicHJvZHVjdE1hbmdlOmVkaXRcIixcImNvZGVNYW5nZVwiLFwicHJvZHVjdE1hbmdlXCJdLFwidXNlcm5hbWVcIjpcImJhc2ljXCJ9In0.vwjAFkWuEyadRLvIOGK8LFE3MjpY3SQ7j6AlTXnQDG8" ) -func findAllMySdk() map[string]Sdk { +func findAllMySdk() []Sdk { url := "http://"+config.ShopConf.Url+"/data/api-s/sdk/findAllMySdk" machineCode := licence.GetMachineCode() fmt.Println("url:", url, "machineCode:", machineCode) @@ -259,11 +268,8 @@ logger.Debug("unmarshal err:", err) return nil } - m := make(map[string]Sdk) - for _,s := range ss.Sdks { - m[s.Id] = s - } - return m + + return ss.Sdks } func GetLocalSdks() []map[string]interface{} { -- Gitblit v1.8.0