liuxiaolong
2020-07-02 1b4337e04bc35c8b6f4931a5896f04884fef69c6
fix AggregateTaskList
4个文件已修改
162 ■■■■■ 已修改文件
controllers/sdk.go 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/task.go 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/SdkInstall.go 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/sdk.go
@@ -47,7 +47,7 @@
// @Description 算法保存
// @Accept json
// @Produce json
// @Tags sdk
// @Tags 算法
// @Param reqMap body controllers.SdkVo true "人脸检测"
// @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"",success:true}"
// @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}"
@@ -73,7 +73,7 @@
// @Summary 查找所有算法
// @Description 查找所有算法
// @Produce json
// @Tags sdk
// @Tags 算法
// @Param sdkName query string false "可选参数"
// @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"算法列表",success:true}"
// @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"[]",success:false}"
@@ -91,7 +91,7 @@
// @Summary 根据id获取算法信息
// @Description 根据id获取算法信息
// @Produce json
// @Tags sdk
// @Tags 算法
// @Param id query string true "算法id,必填"
// @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"算法信息",success:true}"
// @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}"
@@ -134,7 +134,7 @@
// @Summary 根据taskId获取算法信息
// @Description 根据taskId获取算法信息
// @Produce json
// @Tags sdk
// @Tags 算法
// @Param taskId query string true "taskId,必填"
// @Success 200 {string} json "{"code":200, msg:"请求处理成功",data:"算法信息",success:true}"
// @Failure 500 {string} json "{"code":500, msg:"请求失败",data:"",success:false}"
@@ -158,7 +158,7 @@
// @Description 算法安装包上传(分块检查)
// @Accept multipart/form-data
// @Produce json
// @Tags sdk
// @Tags 算法
// @Param chunkNumber formData int true "当前是第几个分块"
// @Param chunkSize formData int true "每一块的大小"
// @Param currentChunkSize formData int true "当前块的大小"
@@ -210,7 +210,7 @@
// @Description 算法安装包上传
// @Accept multipart/form-data
// @Produce json
// @Tags sysset
// @Tags 算法
// @Param chunkNumber formData int true "当前是第几个分块"
// @Param chunkSize formData int true "每一块的大小"
// @Param currentChunkSize formData int true "当前块的大小"
@@ -278,7 +278,7 @@
// @Summary 从商城下载或升级算法
// @Description 从商城下载或升级算法
// @Produce json
// @Tags sysset
// @Tags 算法
// @Param path query string true "算法id"
// @Success 200 {string} json "{"code":200, msg:"", success:true}"
// @Failure 500 {string} json "{"code":500, msg:"", success:false}"
@@ -296,3 +296,27 @@
        util.ResponseFormat(c, &code.Code{http.StatusBadRequest, false, err.Error()}, err.Error())
    }
}
// @Security ApiKeyAuth
// @Summary 使用激活码激活安装算法
// @Description 使用激活码激活安装算法
// @Produce json
// @Tags 算法
// @Param code query string true "激活码"
// @Success 200 {string} json "{"code":200, msg:"", success:true}"
// @Failure 500 {string} json "{"code":500, msg:"", success:false}"
// @Router /data/api-v/sdk/active [get]
func (sc SdkController) Active(c *gin.Context) {
    cod := c.GetString("code")
    if cod == "" {
        util.ResponseFormat(c, code.RequestParamError, "激活码不能为空")
        return
    }
    var sv service.SdkInstallService
    err := sv.Active(cod)
    if err == nil {
        util.ResponseFormat(c,code.Success,  "激活成功")
    } else {
        util.ResponseFormat(c,code.ComError, err.Error())
    }
}
controllers/task.go
@@ -1,9 +1,14 @@
package controllers
import (
    "basic.com/dbapi.git"
    "basic.com/pubsub/esutil.git"
    "github.com/gin-gonic/gin"
    "strconv"
    "time"
    "webserver/cache"
    "webserver/extend/code"
    "webserver/extend/config"
    "webserver/extend/util"
)
@@ -72,52 +77,43 @@
// @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)
    //    }
    //}
    util.ResponseFormat(c,code.Success,[]interface{}{})
    var api dbapi.CameraRuleApi
    var result []SceneIfDelResult
    m := make(map[string]string)
    if b, allRules := api.FindAll(); b {
        for _,cg :=range allRules {
            for _,g := range cg.Rules {
                m[g.Id] = g.SceneName
                result = append(result, SceneIfDelResult{
                    Id: g.Id,
                    Name: g.SceneName,
                    IsDelete: false,
                })
            }
        }
    }
    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)
                    taskName := tM["taskName"].(string)
                    m[taskId] = taskName
                    result = append(result, SceneIfDelResult{
                        Id: taskId,
                        Name: taskName,
                        IsDelete: true,
                    })
                }
            }
        }
    }
    util.ResponseFormat(c, code.Success, result)
}
//// @Security ApiKeyAuth
router/router.go
@@ -292,6 +292,7 @@
        sdkApi.GET("/sdkDownload", sdkController.SdkDownLoad)
        sdkApi.GET("/upload", sdkController.Upload)
        sdkApi.POST("/upload", sdkController.UploadPack)
        sdkApi.GET("/active", sdkController.Active)
    }
    //算法参数
service/SdkInstall.go
@@ -2,6 +2,7 @@
import (
    "basic.com/dbapi.git"
    "basic.com/valib/licence.git"
    "basic.com/valib/logger.git"
    "encoding/json"
    "errors"
@@ -13,12 +14,46 @@
    "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
}
//算法安装包安装
func (sv SdkInstallService) SdkInstall(identifier string,filename string) (bool,error) {
    configPatchPath := ""