From 9303b69ea569bcb5e581147543a3fd58e90d0d25 Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期四, 20 八月 2020 20:05:23 +0800 Subject: [PATCH] add get buckets contrl --- controllers/sdk.go | 243 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 209 insertions(+), 34 deletions(-) diff --git a/controllers/sdk.go b/controllers/sdk.go index cbd1ebb..d314a68 100644 --- a/controllers/sdk.go +++ b/controllers/sdk.go @@ -1,9 +1,15 @@ package controllers import ( - "basic.com/dbapi.git" + "net/http" + "strconv" "webserver/extend/code" "webserver/extend/util" + "webserver/middlewares/auth" + "webserver/service" + + "basic.com/dbapi.git" + "basic.com/valib/logger.git" "github.com/gin-gonic/gin" ) @@ -11,31 +17,35 @@ } type SdkVo struct { - Id string `json:"id"` - SdkType string `json:"sdk_type"`//浜鸿劯妫�娴嬶細FaceDetect,浜鸿劯鎻愬彇锛欶aceExtract,浜鸿劯姣斿锛欶aceCompare,琛屼负锛歒olo - SdkName string `json:"sdk_name"` //绠楁硶鍚嶇О - Args []SdkArgVo `json:"args,omitempty"` //绠楁硶鍙傛暟 - Icon string `json:"icon,omitempty"` //绠楁硶鍥炬爣 - Url string `json:"url,omitempty"` //绠楁硶涓嬭浇鍦板潃 - CreateTime string `json:"create_time"` - CreateBy string `json:"create_by"` - UpdateTime string `json:"update_time"` - Enabled int `json:"enabled"`//鏄惁鍚敤 - DelFlag int `json:"del_flag"`//閫昏緫鍒犻櫎 + Id string `json:"id"` + SdkType string `json:"sdk_type"` //浜鸿劯妫�娴嬶細FaceDetect,浜鸿劯鎻愬彇锛欶aceExtract,浜鸿劯姣斿锛欶aceCompare,琛屼负锛歒olo + SdkName string `json:"sdk_name"` //绠楁硶鍚嶇О + Args []SdkArgVo `json:"args"` //绠楁硶鍙傛暟 + Icon string `json:"icon"` //绠楁硶鍥炬爣 + Url string `json:"url"` //绠楁硶涓嬭浇鍦板潃 + CreateTime string `json:"create_time"` + CreateBy string `json:"create_by"` + UpdateTime string `json:"update_time"` + Enable bool `json:"enable"` //鏄惁鍚敤 + DelFlag bool `json:"del_flag"` //閫昏緫鍒犻櫎 } //绠楁硶鍙傛暟瀹氫箟 type SdkArgVo struct { - Alias string `json:"alias"` //鍙傛暟鐨勫埆鍚� - Name string `json:"name"` //鍙傛暟鍚嶇О - Type string `json:"type"` //鍙傛暟绫诲瀷(鏁存暟锛屽瓧绗︿覆鎴栨暟缁�) - Must bool `json:"must"` //鏄惁蹇呭~ - Range string `json:"range"` //鍊肩殑鑼冨洿锛宔g锛�0,100琛ㄧず浠�0鍒�100 - Sort int `json:"sort"` //鍙傛暟椤哄簭 + Alias string `json:"alias"` //鍙傛暟鐨勫埆鍚� + Name string `json:"name"` //鍙傛暟鍚嶇О + Type string `json:"type"` //鍙傛暟绫诲瀷(鏁存暟锛屽瓧绗︿覆鎴栨暟缁�) + Must bool `json:"must"` //鏄惁蹇呭~ + Unit string `json:"unit"` + Range string `json:"range"` //鍊肩殑鑼冨洿锛宔g锛�0,100琛ㄧず浠�0鍒�100 + DefaultValue string `json:"default_value"` + Sort int `json:"sort"` //鍙傛暟椤哄簭 } +// @Security ApiKeyAuth // @Summary 绠楁硶淇濆瓨 // @Description 绠楁硶淇濆瓨 +// @Accept json // @Produce json // @Tags sdk // @Param reqMap body controllers.SdkVo true "浜鸿劯妫�娴�" @@ -46,19 +56,20 @@ var sdk SdkVo var api dbapi.SdkApi - if err := c.BindJSON(&sdk);err !=nil { - util.ResponseFormat(c,code.RequestParamError,"鍙傛暟閿欒") + if err := c.BindJSON(&sdk); err != nil { + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟閿欒") return } paramBody := util.Struct2Map(sdk) - flag, data := api.Save(paramBody) - if flag{ + flag, data := api.Register(paramBody) + if flag { util.ResponseFormat(c, code.Success, data) } else { util.ResponseFormat(c, code.ComError, data) } } +// @Security ApiKeyAuth // @Summary 鏌ユ壘鎵�鏈夌畻娉� // @Description 鏌ユ壘鎵�鏈夌畻娉� // @Produce json @@ -68,13 +79,15 @@ // @Failure 500 {string} json "{"code":500, msg:"璇锋眰澶辫触",data:"[]",success:false}" // @Router /data/api-v/sdk/findAllSdk [GET] func (sc SdkController) FindAllSdk(c *gin.Context) { - var api dbapi.SdkApi - sdkName := c.Query("sdkName") - sdks := api.FindAll(sdkName) + logger.Debug("FindAllSdk sdkName:", sdkName) + + sdks := service.GetSdkList("") //鏈満宸插畨瑁呯殑绠楁硶 + util.ResponseFormat(c, code.Success, sdks) } +// @Security ApiKeyAuth // @Summary 鏍规嵁id鑾峰彇绠楁硶淇℃伅 // @Description 鏍规嵁id鑾峰彇绠楁硶淇℃伅 // @Produce json @@ -86,19 +99,38 @@ func (sc SdkController) GetById(c *gin.Context) { var api dbapi.SdkApi sdkId := c.Query("id") - if sdkId == ""{ - util.ResponseFormat(c,code.RequestParamError,"sdkId涓嶈兘涓虹┖") + if sdkId == "" { + util.ResponseFormat(c, code.RequestParamError, "sdkId涓嶈兘涓虹┖") return } flag, sdk := api.GetById(sdkId) + if flag { - util.ResponseFormat(c,code.Success,sdk) + util.ResponseFormat(c, code.Success, sdk) } else { - util.ResponseFormat(c,code.ComError,sdk) + util.ResponseFormat(c, code.ComError, sdk) } } +// @Router /data/api-v/sdkArg/getSdkArgs [get] +func (sc SdkController) GetSdkArgs(c *gin.Context) { + sdkId := c.Query("sdkId") + scope := c.Query("scope") + if sdkId == "" || scope == "" { + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟鏈夎") + return + } + var api dbapi.SdkApi + b, d := api.GetSdkArgs(sdkId, scope) + if b { + util.ResponseFormat(c, code.Success, d) + } else { + util.ResponseFormat(c, code.ComError, "鏌ヨ澶辫触") + } +} + +// @Security ApiKeyAuth // @Summary 鏍规嵁taskId鑾峰彇绠楁硶淇℃伅 // @Description 鏍规嵁taskId鑾峰彇绠楁硶淇℃伅 // @Produce json @@ -111,13 +143,156 @@ var api dbapi.SdkApi taskId := c.Query("taskId") if taskId == "" { - util.ResponseFormat(c,code.ComError,"浠诲姟id涓嶈兘涓虹┖") + util.ResponseFormat(c, code.ComError, "浠诲姟id涓嶈兘涓虹┖") return } - flag,sdks := api.FindByTaskId(taskId) + flag, sdks := api.FindByTaskId(taskId) if flag { - util.ResponseFormat(c,code.Success,sdks) + util.ResponseFormat(c, code.Success, sdks) } else { - util.ResponseFormat(c,code.ComError,sdks) + util.ResponseFormat(c, code.ComError, sdks) } -} \ No newline at end of file +} + +// @Summary 绠楁硶瀹夎鍖呬笂浼�(鍒嗗潡妫�鏌�) +// @Description 绠楁硶瀹夎鍖呬笂浼�(鍒嗗潡妫�鏌�) +// @Accept multipart/form-data +// @Produce json +// @Tags sdk +// @Param chunkNumber formData int true "褰撳墠鏄鍑犱釜鍒嗗潡" +// @Param chunkSize formData int true "姣忎竴鍧楃殑澶у皬" +// @Param currentChunkSize formData int true "褰撳墠鍧楃殑澶у皬" +// @Param identifier formData string true "鏁翠釜鏂囦欢鐨勫敮涓�鏍囪瘑锛岀洰鍓嶆槸md5" +// @Param filename formData string true "鏂囦欢鍚嶇О" +// @Param relativePath formData string true "鏂囦欢鍦ㄥ鎴风鐢佃剳鐨勮矾寰�" +// @Param totalChunks formData int true "鏂囦欢鎬诲潡鏁�" +// @Success 200 {string} json "{"code":200, msg:"", success:true}" +// @Failure 500 {string} json "{"code":500, msg:"", success:false}" +// @Router /data/api-v/sdk/upload [get] +func (sc SdkController) Upload(c *gin.Context) { + authDriver := auth.GenerateAuthDriver() + userM := (*authDriver).User(c) + if userM ==nil { + util.ResponseFormat(c,code.TokenNotFound,"鐧诲綍杩囨湡锛岃鐧诲綍") + return + } + chunkNumber, e1 := strconv.Atoi(c.Request.FormValue("chunkNumber")) + chunkSize, e2 := strconv.Atoi(c.Request.FormValue("chunkSize")) + currentChunkSize, e3 := strconv.Atoi(c.Request.FormValue("currentChunkSize")) + identifier := c.Request.FormValue("identifier") + filename := c.Request.FormValue("filename") + relativePath := c.Request.FormValue("relativePath") + totalChunks, e5 := strconv.Atoi(c.Request.FormValue("totalChunks")) + if identifier == "" || e1 != nil || e2 != nil || e3 != nil || e5 !=nil { + util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎") + return + } + var arg = service.FileChunkCheckVo { + UserId: userM["id"].(string), + FileName: filename, + Identifier: identifier, + RelativePath: relativePath, + TotalChunks: totalChunks, + ChunkNumber: chunkNumber, + ChunkSize: chunkSize, + CurrentChunkSize:currentChunkSize, + } + var sv service.SysService + if b := sv.CheckUpdateFile(&arg);b { + c.String(http.StatusOK,"found") + } else { + c.String(http.StatusNoContent,"") + } +} + +// @Security ApiKeyAuth +// @Summary 绠楁硶瀹夎鍖呬笂浼� +// @Description 绠楁硶瀹夎鍖呬笂浼� +// @Accept multipart/form-data +// @Produce json +// @Tags sysset +// @Param chunkNumber formData int true "褰撳墠鏄鍑犱釜鍒嗗潡" +// @Param chunkSize formData int true "姣忎竴鍧楃殑澶у皬" +// @Param currentChunkSize formData int true "褰撳墠鍧楃殑澶у皬" +// @Param totalSize formData string true "鏂囦欢鎬诲ぇ灏�" +// @Param identifier formData string true "鏁翠釜鏂囦欢鐨勫敮涓�鏍囪瘑锛岀洰鍓嶆槸md5" +// @Param filename formData string true "鏂囦欢鍚嶇О" +// @Param relativePath formData string true "鏂囦欢鍦ㄥ鎴风鐢佃剳鐨勮矾寰�" +// @Param totalChunks formData int true "鏂囦欢鎬诲潡鏁�" +// @Param file formData file true "鏂囦欢鍒嗙墖鍐呭" +// @Success 200 {string} json "{"code":200, msg:"", success:true}" +// @Failure 500 {string} json "{"code":500, msg:"", success:false}" +// @Router /data/api-v/sdk/upload [post] +func (sc SdkController) UploadPack(c *gin.Context) { + authDriver := auth.GenerateAuthDriver() + userM := (*authDriver).User(c) + if userM == nil { + util.ResponseFormat(c, code.TokenNotFound, "鐧诲綍杩囨湡锛岃鐧诲綍") + return + } + chunkNumber, e1 := strconv.Atoi(c.Request.FormValue("chunkNumber")) + chunkSize, e2 := strconv.Atoi(c.Request.FormValue("chunkSize")) + currentChunkSize, e3 := strconv.Atoi(c.Request.FormValue("currentChunkSize")) + totalSize, e4 := strconv.ParseInt(c.Request.FormValue("totalSize"), 10, 64) + identifier := c.Request.FormValue("identifier") + filename := c.Request.FormValue("filename") + relativePath := c.Request.FormValue("relativePath") + totalChunks, e5 := strconv.Atoi(c.Request.FormValue("totalChunks")) + file, header, e6 := c.Request.FormFile("file") + if identifier == "" || e1 != nil || e2 != nil || e3 != nil || e4 != nil || e5 != nil || e6 != nil { + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟鏈夎") + return + } + var arg = service.FileUploadVo{ + UserId: userM["id"].(string), + FileName: filename, + Identifier: identifier, + RelativePath: relativePath, + TotalSize: totalSize, + TotalChunks: totalChunks, + ChunkNumber: chunkNumber, + ChunkSize: chunkSize, + CurrentChunkSize: currentChunkSize, + File: &file, + Header: header, + } + var sv service.SysService + if b,isComplete := sv.PatchUpload(&arg); b { + if isComplete { //涓婁紶瀹屾瘯闇�瑕佽嚜鍔ㄨЕ鍙戝畨瑁� + var sv service.SdkInstallService + if b,err := sv.SdkInstall(identifier, filename);b { + util.ResponseFormat(c,&code.Code{http.StatusOK, true, "绠楁硶瀹夎鎴愬姛"},"绠楁硶瀹夎鎴愬姛") + return + } else { + util.ResponseFormat(c,&code.Code{http.StatusBadRequest, false, "绠楁硶瀹夎澶辫触"},err.Error()) + return + } + } + util.ResponseFormat(c, code.Success, "") + } else { + util.ResponseFormat(c, code.ComError, "") + } +} + +// @Security ApiKeyAuth +// @Summary 浠庡晢鍩庝笅杞芥垨鍗囩骇绠楁硶 +// @Description 浠庡晢鍩庝笅杞芥垨鍗囩骇绠楁硶 +// @Produce json +// @Tags sysset +// @Param path query string true "绠楁硶id" +// @Success 200 {string} json "{"code":200, msg:"", success:true}" +// @Failure 500 {string} json "{"code":500, msg:"", success:false}" +// @Router /data/api-v/sdk/sdkDownload [get] +func (sc SdkController) SdkDownLoad(c *gin.Context) { + sdkId, exist := c.GetQuery("path") + if !exist { + util.ResponseFormat(c, code.RequestParamError, "涓嬭浇鐨勭畻娉曞弬鏁版湁璇�") + return + } + + if b,err := service.DownloadOrUpgrade(sdkId);b { + util.ResponseFormat(c, code.Success, "绠楁硶瀹夎鎴愬姛") + } else { + util.ResponseFormat(c, &code.Code{http.StatusBadRequest, false, err.Error()}, err.Error()) + } +} -- Gitblit v1.8.0