From 20ed84cad4fd237cca40619d0fe7ed39c5e030cd Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期日, 19 一月 2020 20:00:51 +0800
Subject: [PATCH] feat: add sdk download and regiter
---
controllers/task.go | 273 +++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 246 insertions(+), 27 deletions(-)
diff --git a/controllers/task.go b/controllers/task.go
index b70e24b..8c2e205 100644
--- a/controllers/task.go
+++ b/controllers/task.go
@@ -2,9 +2,13 @@
import (
"basic.com/dbapi.git"
+ "basic.com/pubsub/esutil.git"
"basic.com/pubsub/protomsg.git"
"encoding/json"
+ "strconv"
"time"
+ "webserver/cache"
+ "webserver/extend/config"
"github.com/gin-gonic/gin"
"webserver/extend/code"
@@ -34,6 +38,7 @@
FaceExtract_VirtualSdkId = "virtual-faceextract-sdk-pull"//缁撴灉杈撳嚭鐨勭畻娉昳d
)
+// @Security ApiKeyAuth
// @Summary 鏌ユ壘鎵�鏈変换鍔★紝鍖呭惈浠诲姟淇℃伅鍜屽搴旂殑绠楁硶淇℃伅
// @Description 鏌ユ壘鎵�鏈変换鍔�
// @Produce json
@@ -65,6 +70,64 @@
}
}
+// @Security ApiKeyAuth
+// @Summary 妫�绱㈤〉闈㈣幏鍙栨墍鏈変换鍔″垪琛紙鍖呭惈宸插垹闄ょ殑浠诲姟锛�
+// @Description 妫�绱㈤〉闈㈣幏鍙栨墍鏈変换鍔″垪琛紙鍖呭惈宸插垹闄ょ殑浠诲姟锛�
+// @Produce json
+// @Tags task
+// @Success 200 {string} json "{"code":200, msg:"璇锋眰澶勭悊鎴愬姛",data:"",success:true}"
+// @Failure 500 {string} json "{"code":500, msg:"璇锋眰澶辫触",data:"",success:false}"
+// @Router /data/api-v/task/aggregateTaskList [GET]
+func (tc TaskController) AggregateTaskList(c *gin.Context) {
+ // 鏄剧ず鎵�鏈変换鍔�: 鑾峰彇淇℃伅
+ var taskApi dbapi.TaskApi
+
+ taskInfos := taskApi.FindAll()
+ m := make(map[string]string)
+ var arr []protomsg.TaskSdkInfo
+ for _,ti :=range taskInfos{
+ if ti.Task.Taskid != FaceExtract_VirtualTaskId{
+ arr = append(arr,ti)
+ m[ti.Task.Taskid] = ti.Task.Taskid
+ }
+ }
+ var tasks []TaskSdkVo
+ dataBytes, err := json.Marshal(arr)
+ if err !=nil {
+ util.ResponseFormat(c,code.ComError,[]TaskSdkVo{})
+ } else {
+ if err := json.Unmarshal(dataBytes, &tasks);err !=nil {
+ util.ResponseFormat(c,code.ComError,[]TaskSdkVo{})
+ } else {
+ //澶勭悊宸茶鍒犻櫎鐨勪换鍔�
+ localConf, _ := cache.GetServerInfo()
+ if localConf.AlarmIp != "" && localConf.ServerId != "" && localConf.AlarmPort>0 {
+ indexName := config.EsInfo.EsIndex.AiOcean.IndexName
+ esTaskM, e := esutil.AggregateTaskList(localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)), indexName, localConf.ServerId)
+ if e==nil && esTaskM !=nil {
+ for _,tM :=range esTaskM {
+ if _,ok := m[tM["taskId"].(string)];!ok {//琛ㄧず姝や换鍔″凡琚垹闄�
+ taskId := tM["taskId"].(string)
+ m[taskId] = taskId
+ tasks = append(tasks, TaskSdkVo{
+ Task:TaskVo{
+ Taskid: taskId,
+ Taskname: tM["taskName"].(string),
+ DelFlag: true,
+ },
+ Sdks:[]SdkVo{},
+ })
+ }
+ }
+ }
+ }
+
+ util.ResponseFormat(c,code.Success,tasks)
+ }
+ }
+}
+
+// @Security ApiKeyAuth
// @Summary 娣诲姞浠诲姟
// @Description 鏌ユ壘鎵�鏈変换鍔�
// @Accept json
@@ -73,7 +136,7 @@
// @Param reqMap body controllers.TaskVo false "浠诲姟AAA"
// @Success 200 {string} json "{"code":200, msg:"璇锋眰澶勭悊鎴愬姛",data:"",success:true}"
// @Failure 500 {string} json "{"code":500, msg:"璇锋眰澶辫触",data:"",success:false}"
-// @Router /data/api-v/task/add [POST]
+// @Router /data/api-v/task/addTask [POST]
func (tc TaskController) AddTask(c *gin.Context) {
var task TaskVo
var taskApi dbapi.TaskApi
@@ -92,37 +155,49 @@
util.ResponseFormat(c, code.Success, data)
}
+type TaskSdkAdd struct {
+ TaskId string `json:"taskId"`
+ Sdks []SdkSort `json:"sdks"`
+}
+type SdkSort struct {
+ SdkId string `json:"sdkId"`
+ Sort int `json:"sort"`
+}
+
+// @Security ApiKeyAuth
// @Summary 缁欎换鍔℃坊鍔犵畻娉�
// @Description 浠诲姟娣诲姞绠楁硶
+// @Accept json
// @Produce json
// @Tags task
-// @Param taskId query string true "浠诲姟id"
-// @Param sdkId query string true "绠楁硶id"
+// @Param taskSdkAdd body controllers.TaskSdkAdd true "浠诲姟id"
// @Success 200 {string} json "{"code":200, msg:"璇锋眰澶勭悊鎴愬姛",data:"",success:true}"
// @Failure 500 {string} json "{"code":500, msg:"璇锋眰澶辫触",data:"",success:false}"
-// @Router /data/api-v/task/addTaskSdk [GET]
+// @Router /data/api-v/task/addTaskSdk [post]
func (tc TaskController) AddTaskSdk(c *gin.Context) {
- var taskApi dbapi.TaskApi
- taskId := c.Query("taskId")
- sdkId := c.Query("sdkId")
- if taskId == "" || sdkId == "" {
+ var addVo TaskSdkAdd
+ err := c.BindJSON(&addVo)
+ if err !=nil || addVo.TaskId == "" || len(addVo.Sdks)==0 {
util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎")
return
}
- flag,data := taskApi.AddTaskSdk(taskId,sdkId)
+ paramBody := util.Struct2Map(addVo)
+ var taskApi dbapi.TaskApi
+ flag,data := taskApi.AddTaskSdk(paramBody)
if flag {
- util.ResponseFormat(c, code.ComError, data)
+ util.ResponseFormat(c, code.Success, data)
} else {
- util.ResponseFormat(c,code.Success,data)
+ util.ResponseFormat(c,code.ComError,data)
}
}
+// @Security ApiKeyAuth
// @Summary 浠诲姟鍒犻櫎绠楁硶
// @Description 鏍规嵁taskid鍜宻dkid鍒犻櫎
// @Produce json
// @Tags task
-// @Param taskId path string true "浠诲姟id"
-// @Param sdkId path string true "绠楁硶id"
+// @Param taskId query string true "浠诲姟id"
+// @Param sdkId query string true "绠楁硶id"
// @Success 200 {string} json "{"code":200, msg:"璇锋眰澶勭悊鎴愬姛",data:"",success:true}"
// @Failure 500 {string} json "{"code":500, msg:"璇锋眰澶辫触",data:"",success:false}"
// @Router /data/api-v/task/delTaskSdk [GET]
@@ -136,30 +211,63 @@
}
flag,data := taskApi.DeleteTaskSdk(taskId,sdkId)
if flag {
- util.ResponseFormat(c, code.ComError, data)
+ util.ResponseFormat(c, code.Success, data)
} else {
- util.ResponseFormat(c,code.Success,data)
+ util.ResponseFormat(c,code.ComError, data)
}
}
-// @Summary 鏇存柊浠诲姟鐘舵��
-// @Description 锛堢畻娉曚笉鍙�,鍙洿鏂颁换鍔$姸鎬侊級
+// @Security ApiKeyAuth
+// @Summary 鏇存柊浠诲姟鍚嶇О
+// @Description 鏇存柊浠诲姟鍚嶇О
+// @Accept x-www-form-urlencoded
// @Produce json
// @Tags task
-// @Param taskId path string true "浠诲姟id"
-// @Param taskName path string true "浠诲姟鍚嶇О"
-// @Param isAlarm path bool true "鏄惁鎶ヨ"
-// @Param isEnable path bool true "鏄惁鍋滅敤"
+// @Param taskId formData string true "taskId"
+// @Param taskName formData string true "taskName"
+// @Success 200 {string} json "{"code":200, msg:"",data:"",success:true}"
+// @Failure 500 {string} json "{"code":500, msg:"",data:"",success:false}"
+// @Router /data/api-v/task/updateTaskName [POST]
+func (tc TaskController) UpdateTaskName(c *gin.Context) {
+ taskId := c.PostForm("taskId")
+ taskName := c.PostForm("taskName")
+ if taskId == "" || taskName == "" {
+ util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎")
+ return
+ }
+ var api dbapi.TaskApi
+ if api.UpdateTaskName(taskId, taskName) {
+ util.ResponseFormat(c,code.UpdateSuccess,"鏇存柊鎴愬姛")
+ } else {
+ util.ResponseFormat(c,code.ComError,"鏇存柊澶辫触")
+ }
+
+}
+
+type TaskStatusVo struct {
+ TaskId string `json:"taskId"`
+ Enable bool `json:"enable"`
+}
+
+// @Security ApiKeyAuth
+// @Summary 鏇存柊浠诲姟鐘舵��
+// @Description 锛堢畻娉曚笉鍙�,鍙洿鏂颁换鍔$姸鎬侊級
+// @Accept json
+// @Produce json
+// @Tags task
+// @Param taskStatus body controllers.TaskStatusVo 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/task/updateTaskStatus [POST]
func (tc TaskController) UpdateTaskStatus(c *gin.Context) {
+ var tsvo TaskStatusVo
+ err := c.BindJSON(&tsvo)
+ if err !=nil {
+ util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎")
+ return
+ }
var taskApi dbapi.TaskApi
- paramBody :=make(map[string]string,0)
- paramBody["taskId"] = c.Query("taskId")
- paramBody["taskName"] = c.Query("taskName")
- paramBody["isAlarm"] = c.Query("isAlarm")
- paramBody["isEnable"] = c.Query("isEnable")
+ paramBody := util.Struct2Map(tsvo)
flag, data := taskApi.UpdateTaskStatus(paramBody)
if flag {
util.ResponseFormat(c,code.Success,data)
@@ -168,11 +276,12 @@
}
}
+// @Security ApiKeyAuth
// @Summary 鍒犻櫎浠诲姟
// @Description 鏍规嵁浠诲姟id鍒犻櫎浠诲姟
// @Produce json
// @Tags task
-// @Param taskId path string true "浠诲姟id"
+// @Param taskId query string true "浠诲姟id"
// @Success 200 {string} json "{"code":200, msg:"璇锋眰澶勭悊鎴愬姛",data:"",success:true}"
// @Failure 500 {string} json "{"code":500, msg:"璇锋眰澶辫触",data:"",success:false}"
// @Router /data/api-v/task/delete [GET]
@@ -191,3 +300,113 @@
}
}
+
+type TaskSdkRules struct {
+ TaskId string `json:"taskId"`
+ SdkId string `json:"sdkId"`
+ Rules []TaskSdkRuleVo `json:"rules"`
+}
+
+type TaskSdkRuleVo struct {
+ Id string `json:"id"`
+ SdkArgAlias string `json:"sdk_arg_alias"`
+ Operator string `json:"operator"`
+ SdkArgValue string `json:"sdk_arg_value"`
+}
+
+// @Security ApiKeyAuth
+// @Summary 淇濆瓨绠楁硶瑙勫垯
+// @Description 淇濆瓨绠楁硶瑙勫垯
+// @Accept json
+// @Produce json
+// @Tags 绠楁硶瑙勫垯
+// @Param sdkrules body controllers.TaskSdkRules true "绠楁硶鍙傛暟瑙勫垯"
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/task/saveTaskSdkRule [post]
+func (tc TaskController) SaveTaskSdkRule(c *gin.Context) {
+ var rules TaskSdkRules
+ err := c.BindJSON(&rules)
+ if err !=nil || rules.TaskId == "" || rules.SdkId == "" || len(rules.Rules) == 0 {
+ util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎")
+ return
+ }
+ paramBody := util.Struct2Map(rules)
+ var api dbapi.TaskSdkRuleApi
+ b,d := api.SaveTaskSdkRule(paramBody)
+ if b {
+ util.ResponseFormat(c,code.Success,d)
+ } else {
+ util.ResponseFormat(c,code.ComError,"淇濆瓨澶辫触")
+ }
+}
+
+// @Security ApiKeyAuth
+// @Summary 鍒犻櫎绠楁硶瑙勫垯
+// @Description 鍒犻櫎绠楁硶瑙勫垯
+// @Accept x-www-form-urlencoded
+// @Produce json
+// @Tags 绠楁硶瑙勫垯
+// @Param taskId formData string true "taskId"
+// @Param sdkId formData string true "sdkId"
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/task/deleteTaskSdkRule [post]
+func (tc TaskController) DeleteTaskSdkRule(c *gin.Context) {
+ taskId := c.PostForm("taskId")
+ sdkId := c.PostForm("sdkId")
+ if taskId == "" || sdkId == "" {
+ util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎")
+ return
+ }
+ var api dbapi.TaskSdkRuleApi
+ if api.DeleteTaskSdkRule(taskId, sdkId) {
+ util.ResponseFormat(c,code.Success,"鍒犻櫎鎴愬姛")
+ } else {
+ util.ResponseFormat(c,code.ComError, "鍒犻櫎澶辫触")
+ }
+}
+
+// @Security ApiKeyAuth
+// @Summary 鏌ヨ绠楁硶瑙勫垯
+// @Description 鏌ヨ绠楁硶瑙勫垯
+// @Produce json
+// @Tags 绠楁硶瑙勫垯
+// @Param taskId query string true "浠诲姟id"
+// @Param sdkId query string true "绠楁硶id"
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/task/getRulesByTaskSdk [get]
+func (tc TaskController) GetRulesByTaskSdk(c *gin.Context) {
+ taskId := c.Query("taskId")
+ sdkId := c.Query("sdkId")
+ if taskId == "" || sdkId == ""{
+ util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎")
+ return
+ }
+ var taskSdkApi dbapi.TaskSdkRuleApi
+ b, d := taskSdkApi.GetRulesByTaskSdk(taskId, sdkId)
+ if b {
+ util.ResponseFormat(c,code.Success,d)
+ } else {
+ util.ResponseFormat(c,code.ComError,"鏌ヨ澶辫触")
+ }
+}
+
+// @Security ApiKeyAuth
+// @Summary 缁熻姣忎釜浠诲姟鐨勬憚鍍忔満鏁伴噺
+// @Description 缁熻姣忎釜浠诲姟鐨勬憚鍍忔満鏁伴噺
+// @Produce json
+// @Tags task
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/task/statisticTaskCamera [get]
+func (tc TaskController) StatisticTaskCamera(c *gin.Context) {
+ var taskApi dbapi.TaskApi
+ b,d := taskApi.StatisticTaskCamera()
+ if b {
+ util.ResponseFormat(c,code.Success, d)
+ } else {
+ util.ResponseFormat(c,code.ComError, "")
+ }
+}
--
Gitblit v1.8.0