From 99443c7fb779a289f7aa3d3436e195a81480ac88 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期一, 03 八月 2020 14:53:15 +0800
Subject: [PATCH] findAllSdk add installed flag, add 5s timeout

---
 service/SdkDownLoad.go |   55 ++++++++++++++-------------
 extend/util/requtil.go |    5 ++
 controllers/sdk.go     |    4 +
 3 files changed, 36 insertions(+), 28 deletions(-)

diff --git a/controllers/sdk.go b/controllers/sdk.go
index c60cad7..76e1570 100644
--- a/controllers/sdk.go
+++ b/controllers/sdk.go
@@ -75,14 +75,16 @@
 // @Produce json
 // @Tags 绠楁硶
 // @Param sdkName query string false "鍙�夊弬鏁�"
+// @Param installed query bool true "鏌ュ凡瀹夎鎴栬�呮煡鎵�鏈�"
 // @Success 200 {string} json "{"code":200, msg:"璇锋眰澶勭悊鎴愬姛",data:"绠楁硶鍒楄〃",success:true}"
 // @Failure 500 {string} json "{"code":500, msg:"璇锋眰澶辫触",data:"[]",success:false}"
 // @Router /data/api-v/sdk/findAllSdk [GET]
 func (sc SdkController) FindAllSdk(c *gin.Context) {
 	sdkName := c.Query("sdkName")
+	installed, _ := strconv.ParseBool(c.Query("installed"))
 	logger.Debug("FindAllSdk sdkName:", sdkName)
 
-	sdks := service.GetSdkList("") //鏈満宸插畨瑁呯殑绠楁硶
+	sdks := service.GetSdkList("", installed) //鏈満宸插畨瑁呯殑绠楁硶
 
 	util.ResponseFormat(c, code.Success, sdks)
 }
diff --git a/extend/util/requtil.go b/extend/util/requtil.go
index ab197ea..0bb8280 100644
--- a/extend/util/requtil.go
+++ b/extend/util/requtil.go
@@ -11,6 +11,7 @@
 	"os"
 	"strings"
 	"github.com/dustin/go-humanize"
+	"time"
 )
 
 const (
@@ -63,7 +64,9 @@
 			request.Header.Add(key, val)
 		}
 	}
-	client := &http.Client{}
+	client := &http.Client{
+		Timeout: time.Second * 5,
+	}
 	resp, err := client.Do(request)
 	if err != nil {
 		return resultBytes, err
diff --git a/service/SdkDownLoad.go b/service/SdkDownLoad.go
index ae0556e..2d4e0b1 100644
--- a/service/SdkDownLoad.go
+++ b/service/SdkDownLoad.go
@@ -133,7 +133,8 @@
 	}
 }
 
-func GetSdkList(sdkName string) []SdkInsOrUpgrade {
+//installedFlag 濡傛灉鏄痶rue,琛ㄧず鍙煡鏈湴鐨勶紝涓嶉渶瑕佹瘮瀵规煡鐪嬫湭瀹夎鐨勭畻娉�
+func GetSdkList(sdkName string, installedFlag bool) []SdkInsOrUpgrade {
 	var api dbapi.SdkApi
 	localSdks := api.FindAll(sdkName) //鏈湴宸插畨瑁呮墍鏈夌畻娉�,甯﹂『搴�
 	if localSdks == nil {
@@ -175,34 +176,36 @@
 		installedSdks[idx] = siou
 	}
 
-	//杩滅鍙敤鐨勭畻娉�
-	remoteSdks := findAllMySdk()
-	logger.Debug("remoteSdks:", remoteSdks)
-
 	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[sdk.Id] = ls
-			for index,es := range installedSdks {
-				if es.Id == sdk.Id {
-					installedSdks[index] = ls
-					break
+	if !installedFlag {
+		//杩滅鍙敤鐨勭畻娉�
+		remoteSdks := findAllMySdk()
+		logger.Debug("remoteSdks:", remoteSdks)
+
+		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[sdk.Id] = ls
+				for index,es := range installedSdks {
+					if es.Id == sdk.Id {
+						installedSdks[index] = ls
+						break
+					}
+				}
+			} else { //鏈湴鏈畨瑁咃紝闇�瑕佸畨瑁�
+				bIns := SdkInsOrUpgrade{
+					RemoteVersion: sdk.Version,
+					IsUpgrade: false,
+					Installed: false,
+				}
+				bIns.Sdk = sdk
+				nInsSdks = append(nInsSdks, bIns)
 			}
-		} else { //鏈湴鏈畨瑁咃紝闇�瑕佸畨瑁�
-			bIns := SdkInsOrUpgrade{
-				RemoteVersion: sdk.Version,
-				IsUpgrade: false,
-				Installed: false,
-			}
-			bIns.Sdk = sdk
-			nInsSdks = append(nInsSdks, bIns)
 		}
 	}
 

--
Gitblit v1.8.0