From aaa7697d6ec77e03d96ce36ca66abcbbcf2bb7a3 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 14 七月 2020 12:03:33 +0800
Subject: [PATCH] add ruleSo

---
 service/SdkInstall.go |  107 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 79 insertions(+), 28 deletions(-)

diff --git a/service/SdkInstall.go b/service/SdkInstall.go
index a223dbd..83c4f1e 100644
--- a/service/SdkInstall.go
+++ b/service/SdkInstall.go
@@ -2,6 +2,8 @@
 
 import (
 	"basic.com/dbapi.git"
+	"basic.com/pubsub/protomsg.git"
+	"basic.com/valib/licence.git"
 	"basic.com/valib/logger.git"
 	"encoding/json"
 	"errors"
@@ -13,10 +15,44 @@
 	"strings"
 	"webserver/extend/config"
 	"webserver/extend/util"
+	reqUtil "webserver/extend/util"
 )
 
 type SdkInstallService struct {
 
+}
+
+func (sv SdkInstallService) Active(cod string) error {
+	//浣跨敤婵�娲荤爜婵�娲荤畻娉�
+	url := "http://"+config.ShopConf.Url+"/data/api-s/sdk/activeByAINode"
+	machineCode := licence.GetMachineCode()
+	if machineCode == "" {
+		logger.Debug("鑾峰彇鏈哄櫒鐮佸け璐�")
+		return errors.New("鑾峰彇鏈哄櫒鐮佸け璐�")
+	}
+	paramBody := map[string]interface{}{
+		"code": cod,
+		"machineCode": machineCode,
+	}
+	header := map[string]string {
+		"Authorization": token,
+	}
+	respBody, err := reqUtil.DoPostRequest(url, reqUtil.CONTENT_TYPE_JSON, paramBody, nil, header)
+	if err != nil {
+		logger.Debug("DoPostRequest err:", err)
+		return err
+	}
+	var res dbapi.Result
+	if err = json.Unmarshal(respBody, &res); err != nil {
+		logger.Debug("unmarshal err:", err)
+		return err
+	}
+	if !res.Success {
+		logger.Debug("res.Data:", res.Data)
+		return errors.New("璇锋眰鍟嗗煄澶辫触")
+	}
+
+	return nil
 }
 
 //绠楁硶瀹夎鍖呭畨瑁�
@@ -178,15 +214,8 @@
 									soM[skd.Def.SdkType] = skd
 								}
 								if _,ok := aInsM[skd.Def.Id]; ok {
-									srv := SdkRegisterVo{
-										Id: skd.Def.Id,
-										SdkType: skd.Def.SdkType,
-										SdkName: skd.Def.SdkName,
-										Icon: skd.Def.Icon,
-										Url: skd.Def.Url,
-										IconBlob: skd.Def.IconBlob,
-										Version: skd.Def.Version,
-									}
+									srv := SdkRegisterVo{}
+									srv.SdkCommon = skd.Def.SdkCommon
 									for _,ag := range skd.Args {
 										sra := SdkRegisterArgVo{
 											Scope: ag.Scope,
@@ -235,6 +264,13 @@
 											if _,cE := util.CopyDirByCmd(unPackPath+sdkType+"/models", "./"); cE != nil {
 												return false, cE
 											}
+											//鎷疯礉瀹屾垚鍚庡垹闄ibs涓媠dkType鏂囦欢澶逛笅models
+										}
+										if util.DirExists(libPath+sdkType+"/models") {
+											os.RemoveAll(libPath+sdkType+"/models")
+										}
+										if util.DirExists(libPath+sdkType+"/zconf") {
+											os.RemoveAll(libPath+sdkType+"/zconf")
 										}
 									} else {
 										logger.Debug("unTarGzE sdkType.tar.gz err:", unTarGzE)
@@ -282,9 +318,9 @@
 	cM,cEM := strconv.Atoi(curIVArr[1])
 	cL,cEL := strconv.Atoi(curIVArr[2])
 
-	dH,dEH := strconv.Atoi(curIVArr[0])
-	dM,dEM := strconv.Atoi(curIVArr[1])
-	dL,dEL := strconv.Atoi(curIVArr[2])
+	dH,dEH := strconv.Atoi(dstIVArr[0])
+	dM,dEM := strconv.Atoi(dstIVArr[1])
+	dL,dEL := strconv.Atoi(dstIVArr[2])
 	if cEH !=nil || cEM != nil || cEL != nil || dEH != nil ||dEM !=nil || dEL !=nil {
 		return false
 	}
@@ -330,20 +366,41 @@
 }
 
 type Sdk struct {
-	Id 				string 		`gorm:"column:id;primary_key;type:varchar(50);unique;not null;" json:"id"`
-	IpcId   		string 		`gorm:"column:ipc_id" json:"ipc_id"`
-	SdkType 		string 		`gorm:"column:sdk_type" json:"sdk_type"`
-	SdkName 		string 		`gorm:"column:sdk_name" json:"sdk_name" example:"浜鸿劯妫�娴�"`
-	Icon    		string 		`gorm:"column:icon" json:"icon,omitempty"`
-	Url     		string 		`gorm:"column:url" json:"url,omitempty" example:"http://ip:port/govideo/sdk/1"`
+	SdkCommon
 	CreateTime 		string 		`gorm:"column:create_time" json:"create_time"`
 	CreateBy 		string 		`gorm:"column:create_by" json:"create_by"`
 	UpdateTime 		string 		`gorm:"column:update_time" json:"update_time"`
 	Enable 			bool 		`gorm:"column:enable;default:1" json:"enable"`
 	DelFlag 		int 		`gorm:"column:del_flag;default:0" json:"del_flag"`
-	Env 			string 		`gorm:"column:env" json:"env"` //杩愯鐜鍙婄粨鏋滆鏄庯紝json鏍煎紡锛屽寘鍚玸o_file_path,runtime,param,depends(cuda鐗堟湰锛宱pencv鐗堟湰锛宼ensorflow鐗堟湰绛�)
-	IconBlob 		string 		`gorm:"column:iconBlob;type:text;" json:"iconBlob"` //鍥剧墖
-	Version 		string 		`gorm:"column:version;type:varchar(50);default:'1.0';" json:"version"` //鐗堟湰鍙�
+
+	Args 			[]SdkArg 	`json:"args"`
+}
+
+func (sc *SdkCommon) copyFromProto(pSdk protomsg.Sdk) {
+	sc.Id = pSdk.Id
+	sc.IpcId = pSdk.IpcId
+	sc.SdkType = pSdk.SdkType
+	sc.SdkName = pSdk.SdkName
+	sc.Icon = pSdk.Icon
+	sc.Url = pSdk.Url
+	sc.IconBlob = pSdk.IconBlob
+	sc.Version = pSdk.Version
+	sc.ArgDef = pSdk.ArgDef
+	sc.RuleSo = pSdk.RuleSo
+}
+
+type SdkCommon struct {
+	Id 				string 				`json:"id"`
+	IpcId   		string 				`json:"ipc_id"`
+	SdkType 		string 				`json:"sdk_type"`//浜鸿劯妫�娴嬶細FaceDetect,浜鸿劯鎻愬彇锛欶aceExtract,浜鸿劯姣斿锛欶aceCompare,琛屼负锛歒olo
+	SdkName 		string 				`json:"sdk_name"`    //绠楁硶鍚嶇О
+	Icon    		string 				`json:"icon"`       //绠楁硶鍥炬爣
+	Url     		string 				`json:"url"`        //绠楁硶涓嬭浇鍦板潃
+	IconBlob 		string 				`json:"iconBlob"` //鍥剧墖
+	Version 		string 				`json:"version"` //鐗堟湰鍙�
+	EnTrack 		bool 				`json:"enTrack"`  //鏄惁寮�鍚窡韪�
+	ArgDef 			string 				`json:"argDef"`   //绠楁硶榛樿鍙傛暟瀹氫箟
+	RuleSo 			string 				`json:"rule_so"`
 }
 
 type SdkInsOrUpgrade struct {
@@ -375,14 +432,8 @@
 
 
 type SdkRegisterVo struct {
-	Id 				string 				`json:"id"`
-	SdkType 		string 				`json:"sdk_type"`//浜鸿劯妫�娴嬶細FaceDetect,浜鸿劯鎻愬彇锛欶aceExtract,浜鸿劯姣斿锛欶aceCompare,琛屼负锛歒olo
-	SdkName 		string 				`json:"sdk_name"`    //绠楁硶鍚嶇О
+	SdkCommon
 	Args    		[]SdkRegisterArgVo 	`json:"args"` //绠楁硶鍙傛暟
-	Icon    		string 				`json:"icon"`       //绠楁硶鍥炬爣
-	Url     		string 				`json:"url"`        //绠楁硶涓嬭浇鍦板潃
-	IconBlob 		string 				`json:"iconBlob"` //鍥剧墖
-	Version 		string 				`json:"version"` //鐗堟湰鍙�
 }
 
 type SdkRegisterArgVo struct {

--
Gitblit v1.8.0