From f4e8f206a6760bdc31734dfcb1c65916b5b76311 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期四, 22 八月 2019 12:05:58 +0800 Subject: [PATCH] add cluster --- controllers/task.go | 203 ++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 179 insertions(+), 24 deletions(-) diff --git a/controllers/task.go b/controllers/task.go index 07420dc..f27e9d0 100644 --- a/controllers/task.go +++ b/controllers/task.go @@ -2,11 +2,13 @@ import ( "basic.com/dbapi.git" + "basic.com/pubsub/protomsg.git" + "encoding/json" "time" + "github.com/gin-gonic/gin" "webserver/extend/code" "webserver/extend/util" - "github.com/gin-gonic/gin" ) type TaskController struct{} @@ -22,6 +24,16 @@ DelFlag bool `json:"del_flag"` } +type TaskSdkVo struct { + Task TaskVo `json:"task"` + Sdks []SdkVo `json:"sdks"` +} + +var ( + FaceExtract_VirtualTaskId = "92496BDF-2BFA-98F2-62E8-96DD9866ABD2"//铏氭嫙浠诲姟id + FaceExtract_VirtualSdkId = "virtual-faceextract-sdk-pull"//缁撴灉杈撳嚭鐨勭畻娉昳d +) + // @Summary 鏌ユ壘鎵�鏈変换鍔★紝鍖呭惈浠诲姟淇℃伅鍜屽搴旂殑绠楁硶淇℃伅 // @Description 鏌ユ壘鎵�鏈変换鍔� // @Produce json @@ -34,7 +46,23 @@ var taskApi dbapi.TaskApi taskInfos := taskApi.FindAll() - util.ResponseFormat(c, code.Success, taskInfos) + var arr []protomsg.TaskSdkInfo + for _,ti :=range taskInfos{ + if ti.Task.Taskid != FaceExtract_VirtualTaskId{ + arr = append(arr,ti) + } + } + 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 { + util.ResponseFormat(c,code.Success,tasks) + } + } } // @Summary 娣诲姞浠诲姟 @@ -45,7 +73,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 @@ -64,28 +92,37 @@ 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"` +} + // @Summary 缁欎换鍔℃坊鍔犵畻娉� // @Description 浠诲姟娣诲姞绠楁硶 // @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) } } @@ -108,30 +145,59 @@ } 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 鏇存柊浠诲姟鍚嶇О +// @Produce json +// @Tags task +// @Param taskId query string true "taskId" +// @Param taskName query 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"` } // @Summary 鏇存柊浠诲姟鐘舵�� // @Description 锛堢畻娉曚笉鍙�,鍙洿鏂颁换鍔$姸鎬侊級 // @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 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) @@ -139,6 +205,7 @@ util.ResponseFormat(c,code.ComError,data) } } + // @Summary 鍒犻櫎浠诲姟 // @Description 鏍规嵁浠诲姟id鍒犻櫎浠诲姟 @@ -163,3 +230,91 @@ } } + +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"` +} + +// @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,"淇濆瓨澶辫触") + } +} + +// @Summary 鍒犻櫎绠楁硶瑙勫垯 +// @Description 鍒犻櫎绠楁硶瑙勫垯 +// @Produce json +// @Tags 绠楁硶瑙勫垯 +// @Param id 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/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, "鍒犻櫎澶辫触") + } +} + + +// @Summary 鏌ヨ绠楁硶瑙勫垯 +// @Description 鏌ヨ绠楁硶瑙勫垯 +// @Produce json +// @Tags 绠楁硶瑙勫垯 +// @Param taskId path string true "浠诲姟id" +// @Param sdkId path 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,"鏌ヨ澶辫触") + } +} -- Gitblit v1.8.0