From 7277a23ca81123a95cbf60cbda65ca2fd6e27c17 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期五, 05 六月 2020 18:26:27 +0800
Subject: [PATCH] get sdks from remote shop

---
 service/SdkDownLoad.go |  108 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 88 insertions(+), 20 deletions(-)

diff --git a/service/SdkDownLoad.go b/service/SdkDownLoad.go
index ed364ca..3567234 100644
--- a/service/SdkDownLoad.go
+++ b/service/SdkDownLoad.go
@@ -12,6 +12,9 @@
 	"os"
 	"path/filepath"
 	"strings"
+	"webserver/extend/config"
+
+	reqUtil "webserver/extend/util"
 
 	"webserver/util"
 
@@ -127,30 +130,59 @@
 	}
 }
 
-func GetSdkList(sdkName string) []map[string]interface{} {
-	// 寰呰繑鍥炵殑鏁版嵁
-	sdks, idsCache := queryDatabase(sdkName)
-
-	// 鏌ヨ鏈湴宸茬粡瀛樺湪鐨勭畻娉曞拰杩滅鐨勫叏閮ㄧ畻娉�, 鐒跺悗鍜屽凡瀹夎鐨勬瘮瀵�, 杩斿洖鍏ㄩ儴鍙敤鐨勭畻娉曠粍. 鏈畨瑁呯殑绠楁硶鍦ㄥ墠绔蛋涓嬭浇娴佺▼
-	localSdks := GetLocalSdks()
-	for _, sdk := range localSdks {
-		id := sdk["id"].(string)
-		if !idsCache[id] {
-			idsCache[id] = true
-
-			sdk["enable"] = false
-			sdk["installed"] = false
-
-			// 涓嶈繑鍥炲弬鏁颁俊鎭�
-			delete(sdk, "args")
-			sdks = append(sdks, sdk)
+func GetSdkList(sdkName string) []SdkInsOrUpgrade {
+	var api dbapi.SdkApi
+	localSdks := api.FindAll(sdkName) //鏈湴宸插畨瑁呮墍鏈夌畻娉�
+	localSdkM := make(map[string]SdkInsOrUpgrade)
+	for _,ls :=range localSdks {
+		siou := SdkInsOrUpgrade{
+			Installed: true,
 		}
-
+		siou.Sdk = Sdk{
+			Id: ls.Id,
+			IpcId: ls.IpcId,
+			SdkType: ls.SdkType,
+			SdkName: ls.SdkName,
+			Icon: ls.Icon,
+			Url: ls.Url,
+			CreateTime: ls.CreateTime,
+			CreateBy: ls.CreateBy,
+			UpdateTime: ls.UpdateTime,
+			Enable: ls.Enable,
+			DelFlag: int(ls.DelFlag),
+			IconBlob: ls.IconBlob,
+			Version: ls.Version,
+		}
+		localSdkM[siou.Id] = siou
 	}
 
-	// 鐩墠杩樻病鏈夎繙绔畻娉曞簱,
-	// remoteSdks := getRemoteSdks()
+	//杩滅鍙敤鐨勭畻娉�
+	remoteSdks := findAllMySdk()
 
+	for sdkId,sdk := range remoteSdks {
+		if v,ok := localSdkM[sdkId];ok { //鏈湴宸插畨瑁�
+			ls := v
+			if shouldVersionBeUpgrade(ls.Version, sdk.Version) { //鍒ゆ柇鐗堟湰鍙锋槸鍚﹂渶瑕佸崌绾�
+				ls.Installed = true
+				ls.IsUpgrade = true //闇�瑕佸崌绾�
+				ls.RemoteVersion = sdk.Version //杩滅鐨勭増鏈彿
+			}
+			localSdkM[sdkId] = ls
+		} else { //鏈湴鏈畨瑁咃紝闇�瑕佸畨瑁�
+			bIns := SdkInsOrUpgrade{
+				RemoteVersion: sdk.Version,
+				IsUpgrade: false,
+				Installed: false,
+			}
+			bIns.Sdk = sdk
+			localSdkM[sdkId] = bIns
+		}
+	}
+
+	sdks := make([]SdkInsOrUpgrade, 0)
+	for _,v := range localSdkM {
+		sdks = append(sdks, v)
+	}
 	return sdks
 }
 
@@ -177,6 +209,42 @@
 	return sdks, ids
 }
 
+
+type shopSdks struct {
+	Sdks []Sdk `json:"sdks"`
+}
+
+func findAllMySdk() map[string]Sdk {
+	token := "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTEzODA3ODksInVzZXIiOiJ7XCJpZFwiOlwiZTZjY2QzNmQtNGYxNi00NmZjLTg4ZDUtMDczNjU4NjZkMjA1XCIsXCJwZXJtaXNzaW9uc1wiOltcIm9yZGVyTWFuZ2U6ZG93bmxvYWRcIixcImRldmljZU1hbmFnZTp1bmJpbmRcIixcImNvZGVNYW5nZVwiLFwidmlwTWFuYWdlOmFkZFwiLFwiYWRtaW5NYW5hZ2U6ZWRpdFwiLFwiY29kZU1hbmdlOnZpZXdcIixcImNvZGVNYW5nZTphZGRcIixcImFkbWluTWFuYWdlXCIsXCJvcmRlck1hbmdlOmNhbmNlbFwiLFwicHJvZHVjdENlbnRlcjpidXlcIixcInByb2R1Y3RDZW50ZXJcIixcInByb2R1Y3RNYW5nZTp2aWV3XCIsXCJ2aXBNYW5hZ2U6dmlld1wiLFwib3JkZXJNYW5nZVwiLFwicHJvZHVjdENlbnRlcjp2aWV3XCIsXCJkZXZpY2VNYW5hZ2VcIixcImFkbWluTWFuYWdlOmFkZFwiLFwicHJvZHVjdE1hbmdlOmFkZFwiLFwiYWRtaW5NYW5hZ2U6dmlld1wiLFwicHJvZHVjdE1hbmdlXCIsXCJvcmRlck1hbmdlOnZpZXdcIixcImRldmljZU1hbmFnZTp2aWV3XCIsXCJvcmRlck1hbmdlOnBheVwiLFwidmlwTWFuYWdlOmVkaXRcIixcInZpcE1hbmFnZVwiLFwicHJvZHVjdE1hbmdlOmVkaXRcIixcInByb2R1Y3RNYW5nZTpwdWJsaXNoXCIsXCJkZXZpY2VNYW5hZ2U6YWRkXCIsXCJhcGlcIixcImhvbWVcIixcInByb2R1Y3RNYW5nZTpvZmZTYWxlXCIsXCJwcm9kdWN0Q2VudGVyOmRvd25sb2FkXCJdLFwidXNlcm5hbWVcIjpcImJhc2ljXCJ9In0.HwRobdFLtMK7ni5OKk4_NAyqpKGuUlUbqF3HBJMJuOk"
+	url := "http://192.168.20.10:7004/data/api-s/sdk/findAllMySdk"
+	fmt.Println("token:", token, "url:", url)
+	paramBody := map[string]interface{} {
+		"serverId": config.Server.AnalyServerId,
+		"machineCode": "",
+	}
+	header := map[string]string {
+		"Authorization": token,
+	}
+	respBody, err := reqUtil.DoPostRequest(url, reqUtil.CONTENT_TYPE_JSON, paramBody, nil, header)
+	if err != nil {
+		return nil
+	}
+	var res dbapi.Result
+	if err = json.Unmarshal(respBody, &res); err != nil {
+		return nil
+	}
+	bytes, _ := json.Marshal(res.Data)
+	var ss shopSdks
+	if err := json.Unmarshal(bytes, &ss);err != nil {
+		return nil
+	}
+	m := make(map[string]Sdk)
+	for _,s := range ss.Sdks {
+		m[s.Id] = s
+	}
+	return m
+}
+
 func GetLocalSdks() []map[string]interface{} {
 	var algos = []map[string]interface{}{}
 

--
Gitblit v1.8.0