liuxiaolong
2019-09-19 2dd1fa03c93b400ff1e8e4f44e27387965e4daa7
get ip,port config from db,update realtime
1个文件已添加
18个文件已修改
362 ■■■■ 已修改文件
cache/cache.go 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/area.go 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/capture.go 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/dbtableperson.go 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/dbtablesCon.go 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/es.go 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/esSearch.go 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/fileController.go 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/initForData.go 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/monitoring.go 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/taglist.go 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/tasklist.go 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.mod 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.sum 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.go 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/CameraVideoService.go 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/CamraUpdatesnashot.go 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/EnableStatusControlService.go 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cache/cache.go
New file
@@ -0,0 +1,77 @@
package cache
import (
    "basic.com/dbapi.git"
    "basic.com/pubsub/protomsg.git"
    "basic.com/valib/gopherdiscovery.git"
    "basic.com/pubsub/cache.git/shardmap"
    "basic.com/valib/logger.git"
    "errors"
    "github.com/gogo/protobuf/proto"
    "fmt"
    "github.com/satori/go.uuid"
    "strconv"
)
const (
    SERVER_KEY = "SERVERINFO"
)
var cMap *shardmap.ShardMap
func Init(initChan chan bool,dbIp string,surveyPort int,pubSubPort int){
    cMap = shardmap.New(uint8(32))
    urlSurvey := "tcp://" + dbIp + ":" + strconv.Itoa(surveyPort)
    urlPubSub := "tcp://" + dbIp + ":" + strconv.Itoa(pubSubPort)
    client, _ := gopherdiscovery.ClientWithSub(urlSurvey, urlPubSub, "webServerProc_"+uuid.NewV4().String())
    recvMsg := client.HeartBeatMsg()
    fmt.Println(<-recvMsg)
    initCacheData(initChan)
    peers, _ := client.Peers()
    for b := range peers{
        logger.Debug("peerMsg:",b)
        updateData(b)
    }
}
func initCacheData(initChan chan bool) {
    initServerInfo()//初始化服务器配置信息
    initChan <- true
}
var newUpdateMsg = &protomsg.DbChangeMessage{}
func updateData(b []byte){
    if err :=proto.Unmarshal(b,newUpdateMsg);err !=nil{
        logger.Debug("dbChangeMsg unmarshal err:",err)
        return
    }
    switch newUpdateMsg.Table {
    case protomsg.TableChanged_T_Server:
        initServerInfo()
    default:
        logger.Debug("other updateData operation")
    }
}
func initServerInfo() {
    var api dbapi.SysSetApi
    b, s := api.GetServerInfo()
    if b{
        cMap.Set(SERVER_KEY,s)
    }
}
func GetServerInfo() (conf protomsg.LocalConfig,err error) {
    config, b := cMap.Get(SERVER_KEY)
    if b {
        return config.(protomsg.LocalConfig),nil
    } else {
        return conf,errors.New("conf not found")
    }
}
controllers/area.go
@@ -20,7 +20,9 @@
// @Description 显示左侧所有区域和摄像机
// @Produce json
// @Tags menu
// @Param parentid query int true "区域的id"
// @Param parentid query string true "区域的id"
// @Param searchType query int true "查询类型(0:全部,1:分析摄像机,2:监控摄像机)"
// @Param cameraName query string false "摄像机名称"
// @Success 200 {string} json "{"code":200, msg:"目录结构数据"}"
// @Failure 500 {string} json "{"code":500,  msg:"返回错误信息"}"
// @Router /data/api-v/area/localmenu [get]
@@ -38,10 +40,12 @@
// @Description 显示Gb28181树形结构
// @Produce json
// @Tags menu
// @Param parentid query int true "区域的id"
// @Param parentid query string true "区域的id"
// @Param searchType query int true "查询类型(0:全部,1:分析摄像机,2:监控摄像机)"
// @Param cameraName query string false "摄像机名称"
// @Success 200 {string} json "{"code":200, msg:"目录结构数据"}"
// @Failure 500 {string} json "{"code":500,  msg:"返回错误信息"}"
// @Router /data/api-v/area/localmenu [get]
// @Router /data/api-v/area/gb28181Tree [get]
func (ac AreaController) CameraGb28181Tree(c *gin.Context) {
    parentIdStr := c.Query("parentid")
    searchTypeStr := c.Query("searchType")
@@ -52,6 +56,44 @@
    util.ResponseFormat(c, code.Success, arr)
}
// @Summary 刷新Gb28181平台树
// @Description 刷新Gb28181平台树
// @Produce json
// @Tags menu
// @Param id formData string true "国标平台id"
// @Success 200 {string} json "{"code":200, data:"",msg:"请求成功", success:true}"
// @Failure 200 {string} json "{"code":500, data:"",msg:"请求失败", success:false}"
// @Router /data/api-v/area/gb28181TreeRefresh [post]
func (ac AreaController) Gb28181TreeRefresh(c *gin.Context) {
    id := c.PostForm("id")
    if id =="" {
        util.ResponseFormat(c, code.RequestParamError, "参数错误")
        return
    }
    var api dbapi.AreaApi
    if api.Gb28181TreeRefresh(id) {
        util.ResponseFormat(c,code.UpdateSuccess,"更新成功")
    } else {
        util.ResponseFormat(c,code.UpdateFail, "更新失败")
    }
}
// @Summary 删除Gb28181平台
// @Description 删除Gb28181平台
// @Produce json
// @Tags menu
// @Success 200 {string} json "{"code":200, data:"",msg:"请求成功", success:true}"
// @Failure 200 {string} json "{"code":500, data:"",msg:"请求失败", success:false}"
// @Router /data/api-v/area/gb28181TreeDelete [post]
func (ac AreaController) Gb28181TreeDelete(c *gin.Context) {
    var api dbapi.AreaApi
    if api.Gb28181TreeDelete() {
        util.ResponseFormat(c,code.DelSuccess,"删除成功")
    } else {
        util.ResponseFormat(c,code.ComError, "删除失败")
    }
}
// @Summary 添加menu的区域
// @Description 添加目录上区域
// @Produce json
controllers/capture.go
@@ -2,9 +2,12 @@
import (
    "basic.com/dbapi.git"
    "basic.com/valib/logger.git"
    "fmt"
    "github.com/gin-gonic/gin"
    "strconv"
    "strings"
    "webserver/cache"
    "webserver/extend/code"
    "webserver/extend/config"
    "webserver/extend/esutil"
@@ -38,7 +41,13 @@
        cameraIdStr = "{\"terms\":{\"cameraId\":[\"" + esCameraId + "\"]}},"
    }
    //请求头
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        util.ResponseFormat(c,code.ComError,"es config err")
        return
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + index + "/_search"
    var setApi dbapi.SysSetApi
@@ -52,7 +61,6 @@
        "\"sort\":[{\"picDate\":{\"order\":\"desc\"}}]," +
        "\"size\":\"1000\"," +
        "\"_source\":[\"baseInfo\",\"alarmRules\",\"sex\",\"analyServerName\",\"sdkName\",\"ageDescription\",\"content\",\"id\",\"cameraAddr\",\"picMaxUrl\",\"picDate\",\"race\",\"videoUrl\",\"picSmUrl\",\"taskName\",\"personIsHub\",\"isAlarm\",\"analyServerIp\",\"cameraId\"]}"
    fmt.Println(prama)
    tokenRes := esutil.GetEsDataReq(url, prama, true)
    util.ResponseFormat(c, code.Success, tokenRes)
}
controllers/dbtableperson.go
@@ -11,6 +11,7 @@
    "strconv"
    "time"
    "basic.com/valib/logger.git"
    "webserver/cache"
    "webserver/service"
    "github.com/gin-gonic/gin"
@@ -277,7 +278,12 @@
            break
        }
    }
    var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit"
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.WebPicIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return
    }
    var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit"
    //根据人脸坐标扣出人脸小图
    t1 := time.Now()
    cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom))
@@ -306,7 +312,12 @@
}
func UpdateDbPersonsOfDbTable(id string) (message string) {
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return "修改失败"
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexName + "/_update_by_query?refresh"
    jsonDSL := `
            {
controllers/dbtablesCon.go
@@ -6,7 +6,9 @@
    "fmt"
    "github.com/gin-gonic/gin"
    "github.com/satori/go.uuid"
    "strconv"
    "time"
    "webserver/cache"
    "webserver/extend/code"
    "webserver/extend/config"
    "webserver/extend/esutil"
@@ -40,7 +42,12 @@
// 依据底库id  查询数据
func QueryDbTableInfo(tableId string) map[string]interface{} {
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return nil
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + tableId
    logger.Debug("请求url:%s;", url)
    data := esutil.GetEsDataInfo(url, true)
@@ -169,7 +176,12 @@
func UpdateEndTime(id string) (flag bool) {
    flag = false
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return false
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + id + "/_update?refresh=wait_for"
    prama := "{\"script\":\"ctx._source.remove(\\\"endTime\\\")\"}"
    buf, err := esutil.EsReq("POST", url, []byte(prama))
controllers/es.go
@@ -2,11 +2,13 @@
import (
    "basic.com/dbapi.git"
    "basic.com/valib/logger.git"
    "fmt"
    "github.com/gin-gonic/gin"
    "math/rand"
    "strconv"
    "strings"
    "webserver/cache"
    "webserver/extend/code"
    "webserver/extend/config"
    "webserver/extend/esutil"
@@ -103,7 +105,12 @@
    esSize := strconv.Itoa(webSize)
    //使用es底层机制处理分页
    //请求头
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return nil
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + index + "/_search?search_type=dfs_query_then_fetch"
    var setApi dbapi.SysSetApi
controllers/esSearch.go
@@ -6,6 +6,7 @@
        "github.com/gin-gonic/gin"
        "strconv"
        "strings"
        "webserver/cache"
        "webserver/extend/code"
        "webserver/extend/config"
        "webserver/extend/esutil"
@@ -140,7 +141,12 @@
    //使用es底层机制处理分页
    //请求头
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return nil
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + index + "/_search?search_type=dfs_query_then_fetch"
    var setApi dbapi.SysSetApi
    _, sysconf := setApi.GetServerInfo()
@@ -196,7 +202,12 @@
}
func GetLinkInfo(linkId string, id string) []map[string]interface{} {
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return nil
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + config.EsInfo.EsIndex.VideoPersons.IndexName + "," + config.EsInfo.EsIndex.Personaction.IndexName + "/_search?search_type=dfs_query_then_fetch"
    jsonDSL := "{\"query\":{\"bool\":{\"filter\":[{\"term\":{\"linkId.keyword\":\"" + linkId + "\"}}],\"must_not\":[{\"term\":{\"id\":\"" + id + "\"}}]}},\"size\":100}"
controllers/fileController.go
@@ -24,6 +24,7 @@
    "strings"
    "sync"
    "time"
    "webserver/cache"
    "webserver/extend/code"
    "webserver/extend/config"
    "webserver/extend/esutil"
@@ -122,7 +123,12 @@
        util.ResponseFormat(c, code.RequestParamError, "参数有误")
        return
    }
    var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit"
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.WebPicIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return
    }
    var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit"
    resultMap :=make(map[string]interface{},0)
    //将上传的图片交人脸检测和人脸提取,获得特征
    fileBytes, _ := ioutil.ReadAll(file)
@@ -268,7 +274,12 @@
        }
    }
    if len(captureIds) >0 {
        videopersons, _ := esApi.Videopersonsinfosbyid(captureIds, config.EsInfo.EsIndex.VideoPersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport)
        localConf, err2 := cache.GetServerInfo()
        if err2 !=nil || localConf.AlarmIp == "" {
            logger.Debug("localConfig is wrong!!!")
            return nil
        }
        videopersons, _ := esApi.Videopersonsinfosbyid(captureIds, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)))
        logger.Debug("comp videoPersons.len:",len(videopersons))
        for _,vp :=range videopersons {
            isAlarmInt, _ := strconv.Atoi(vp.IsAlarm)
@@ -343,7 +354,13 @@
    }
    var faceB []byte
    if searchBody.CaptureId != "" {//做查找此人,搜所有抓拍和底库
        searchBase64Fea, err := esApi.GetVideoPersonFaceFeatureById(searchBody.CaptureId, config.EsInfo.EsIndex.VideoPersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport)
        localConf, err2 := cache.GetServerInfo()
        if err2 !=nil || localConf.AlarmIp == "" {
            logger.Debug("localConfig is wrong!!!")
            util.ResponseFormat(c,code.ComError,"localConf wrong")
            return
        }
        searchBase64Fea, err := esApi.GetVideoPersonFaceFeatureById(searchBody.CaptureId, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)))
        if err !=nil {
            util.ResponseFormat(c, code.ComError, "抓拍数据不存在,请检查")
            return
@@ -551,7 +568,12 @@
        util.ResponseFormat(c, code.RequestParamError, "参数有误")
        return
    }
    var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit"
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.WebPicIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return
    }
    var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit"
    //将上传的图片交人脸检测和人脸提取,获得特征
    fileBytes, _ := ioutil.ReadAll(file)
@@ -610,7 +632,12 @@
            break
        }
    }
    var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit"
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.WebPicIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return "",nil,err2
    }
    var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit"
    //根据人脸坐标扣出人脸小图
    t1 := time.Now()
    cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom))
@@ -753,7 +780,12 @@
        util.ResponseFormat(c, code.UploadFileError, err2.Error())
        return
    }
    var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit"
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.WebPicIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return
    }
    var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit"
    {
        uri := weedfsUri
        fileInfo, e := esutil.PostFormBufferData(uri, filename, "file", uploadData)
controllers/initForData.go
@@ -2,9 +2,12 @@
import (
    "basic.com/dbapi.git"
    "basic.com/valib/logger.git"
    "fmt"
    "github.com/gin-gonic/gin"
    "strconv"
    "strings"
    "webserver/cache"
    "webserver/extend/code"
    "webserver/extend/config"
    "webserver/extend/esutil"
@@ -29,7 +32,13 @@
    var searchBody RealTimeArg
    c.BindJSON(&searchBody)
    index := config.EsInfo.EsIndex.VideoPersons.IndexName + "," + config.EsInfo.EsIndex.Personaction.IndexName
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        util.ResponseFormat(c,code.ComError,"localConf wrong")
        return
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + index + "/_search"
    cameraIdStr := ""
    if searchBody.TreeNodes !=nil {
@@ -88,7 +97,13 @@
        taskIdStr = "{\"terms\":{\"taskId\":[\"" + esTaskId + "\"]}},"
    }
    //请求头
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        util.ResponseFormat(c,code.ComError,"localConf wrong")
        return
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + index + "/_search"
    var setApi dbapi.SysSetApi
    _, sysconf := setApi.GetServerInfo()
controllers/monitoring.go
@@ -2,8 +2,11 @@
import (
    "basic.com/dbapi.git"
    "basic.com/valib/logger.git"
    "fmt"
    "strconv"
    "strings"
    "webserver/cache"
    "github.com/gin-gonic/gin"
    "webserver/extend/code"
@@ -41,7 +44,13 @@
        taskIdStr = "{\"terms\":{\"taskId\":[\"" + esTaskId + "\"]}},"
    }
    //请求头
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        util.ResponseFormat(c,code.ComError,"localConf wrong")
        return
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + index + "/_search"
    var setApi dbapi.SysSetApi
controllers/taglist.go
@@ -2,8 +2,11 @@
import (
    "basic.com/dbapi.git"
    "basic.com/valib/logger.git"
    "encoding/json"
    "fmt"
    "strconv"
    "webserver/cache"
    "webserver/extend/code"
    "webserver/extend/config"
    "webserver/extend/esutil"
@@ -50,7 +53,12 @@
//判断底库是否有数据
func GetTotalFromDb(id string) (flag bool) {
    flag = false
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return false
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + config.EsInfo.EsIndex.VideoPersons.IndexName + "/_search"
    prama := "{\"query\":{\"bool\":{\"filter\":[{\"term\":{\"baseInfo.tableId\":\"" + id + "\"}}]}},\"size\":0}"
    buf, err := esutil.EsReq("POST", url, []byte(prama))
controllers/tasklist.go
@@ -1,7 +1,10 @@
package controllers
import (
    "basic.com/valib/logger.git"
    "fmt"
    "strconv"
    "webserver/cache"
    "github.com/gin-gonic/gin"
    "webserver/extend/code"
@@ -20,8 +23,13 @@
// @Failure 500 {string} json "{"code":500,  msg:"返回错误信息", success:false}"
// @Router /data/api-v/es/tagList [POST]
func (sc *EsSearchController) PostEsTaskList(c *gin.Context) {
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        util.ResponseFormat(c,code.ComError,"localConf wrong")
        return
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + config.EsInfo.EsIndex.VideoPersons.IndexName + "," + config.EsInfo.EsIndex.Personaction.IndexName + "/_search"
    prama := "{\"size\":0,\"aggs\":{\"taskId_list\":{\"terms\":{\"field\":\"taskId\"}}}}"
go.mod
@@ -3,8 +3,9 @@
go 1.12
require (
    basic.com/dbapi.git v0.0.0-20190823075733-e5071de98457
    basic.com/fileServer/WeedFSClient.git v0.0.0-20190816064005-fe514a350280
    basic.com/dbapi.git v0.0.0-20190919084344-7b9de135dd96 // indirect
    basic.com/fileServer/WeedFSClient.git v0.0.0-20190919054037-0182b6c3f5cb // indirect
    basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48 // indirect
    basic.com/pubsub/esutil.git v0.0.0-20190807083318-4431a8860d47
    basic.com/pubsub/protomsg.git v0.0.0-20190829113947-eb5a5f99a745
    basic.com/syncdb.git v0.0.0-20190806090534-6ef6050a854c // indirect
@@ -12,6 +13,7 @@
    basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051
    basic.com/valib/goffmpeg.git v0.0.0-20190910083410-a6dd7933e0bd // indirect
    basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28 // indirect
    basic.com/valib/gosdk.git v0.0.0-20190718022708-f0fe2e735c89 // indirect
    basic.com/valib/logger.git v0.0.0-20190912074549-ac4e947b5e9e
    github.com/Microsoft/go-winio v0.4.12 // indirect
    github.com/ajg/form v1.5.1 // indirect
go.sum
@@ -1,7 +1,9 @@
basic.com/dbapi.git v0.0.0-20190823075733-e5071de98457 h1:DKxGzMvuCShPR0AtEpPl2WM4nrh2cuLHGUksxCCUnJg=
basic.com/dbapi.git v0.0.0-20190823075733-e5071de98457/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
basic.com/fileServer/WeedFSClient.git v0.0.0-20190816064005-fe514a350280 h1:fDHXmFgRM6a3pWfh18sXjofprz8AnUaiVDN+yToXtRY=
basic.com/fileServer/WeedFSClient.git v0.0.0-20190816064005-fe514a350280/go.mod h1:FTryK8BsVLfUplx8a3+l8hJWub6VbAWZCUH7sPRZaso=
basic.com/dbapi.git v0.0.0-20190919084344-7b9de135dd96 h1:iBqHj7uNMko4BcijsdNVATbTqn2PJO18BWKUAEMPvag=
basic.com/dbapi.git v0.0.0-20190919084344-7b9de135dd96/go.mod h1:eDXPnxaz6jZPDvBSk7ya7oSASWPCuUEgRTJCjsfKt/Q=
basic.com/fileServer/WeedFSClient.git v0.0.0-20190919054037-0182b6c3f5cb h1:fM6DojeInFSCFO+wkba1jtyPiSDqw0jYKi4Tk+e+ka4=
basic.com/fileServer/WeedFSClient.git v0.0.0-20190919054037-0182b6c3f5cb/go.mod h1:FTryK8BsVLfUplx8a3+l8hJWub6VbAWZCUH7sPRZaso=
basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48 h1:BBA30Rgljn6MRieC4gUncETJDyna3ObyubTo9HEQ2M0=
basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY=
basic.com/pubsub/esutil.git v0.0.0-20190807083318-4431a8860d47 h1:/c8JYWHOjxfrYMTLum6EHx3rcfz8oo0JUf9FGyfkCmk=
basic.com/pubsub/esutil.git v0.0.0-20190807083318-4431a8860d47/go.mod h1:yIvppFPFGC61DOdm71ujnsxZBMFUu2yKjr5O43bMWCw=
basic.com/pubsub/protomsg.git v0.0.0-20190829113947-eb5a5f99a745 h1:NQ/172pylwH5BnVwt4vlrXVN+UDn8YJc+5V2ZPaC4P0=
@@ -17,6 +19,8 @@
basic.com/valib/goffmpeg.git v0.0.0-20190910083410-a6dd7933e0bd/go.mod h1:1x75Hawh/BjgPsQtuJ24px89gzk3uAslD8e0Xs6Z7GQ=
basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28 h1:3hejanzPEBvZSSvjIqayB83/6/6SLLrX9oNZAdiYELg=
basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28/go.mod h1:CQ+UJyZV8MRzwwckncdUDu6/RDTKAzSIPCxc9tFcwPs=
basic.com/valib/gosdk.git v0.0.0-20190718022708-f0fe2e735c89 h1:obAoWgx9gdZOUGLNvkYUEmSjuMUXN0gJ+YBEawBDYEE=
basic.com/valib/gosdk.git v0.0.0-20190718022708-f0fe2e735c89/go.mod h1:mT/jbyl3++GmYjh/jBF65Ein6O6/yd4qIQbSFMCZoE4=
basic.com/valib/logger.git v0.0.0-20190912074549-ac4e947b5e9e h1:erv1TT6tc7yaNrEh6/niANgtIJQ6WhsapyTc+DN1/lg=
basic.com/valib/logger.git v0.0.0-20190912074549-ac4e947b5e9e/go.mod h1:SPlOGUUlxCscwF1dkqmLb0oJXVqg1uJ8hsPXLFxrw1M=
basic.com/valib/logger.git.git v0.0.0-20190904090733-b737ad2f8f18 h1:lfBv29ApfEvecKkUIpKHHsS1qu74ZZGNmzZkazK9PJ8=
main.go
@@ -4,9 +4,9 @@
    "basic.com/dbapi.git"
    "basic.com/valib/logger.git"
    "flag"
    "github.com/golang/glog"
    "github.com/spf13/viper"
    "strconv"
    "webserver/cache"
    "webserver/extend/config"
    "webserver/router"
)
@@ -14,6 +14,9 @@
var envirment = flag.String("e", "dev", "")
var dbIp = flag.String("dbIp", "127.0.0.1", "default dbIp=127.0.0.1")
var dbPort = flag.String("dbPort", "8001", "default dbPort=8001")
var surveyPort = flag.Int("surveyPort", 40007, "survey port") //心跳
var pubPort = flag.Int("pubPort", 50007, "pubsub port")       //数据更新
var initchan = make(chan bool)
func init() {
    flag.Parse()
@@ -42,16 +45,12 @@
    }
    logger.SetSaveDays(logSaveDays)
    logger.Info("loginit success !")
    flag.Usage = func() {
        glog.Exit("flag parse usage !")
    }
    flag.Lookup("alsologtostderr").Value.Set("true")
    flag.Lookup("log_dir").Value.Set("./log")
}
func main() {
    flag.Parse()
    go cache.Init(initchan, *dbIp, *surveyPort,*pubPort)
    logger.Debug("heartBeat with db done!",<-initchan)
    r := router.NewRouter()
    r.Run("0.0.0.0:8000")
}
router/router.go
@@ -67,6 +67,8 @@
        area.POST("/add", areaController.AreaAdd)
        area.POST("/del", areaController.AreaDelete)
        area.POST("/update", areaController.AreaUpdate)
        area.POST("/gb28181TreeRefresh", areaController.Gb28181TreeRefresh)
        area.POST("/gb28181TreeDelete", areaController.Gb28181TreeDelete)
    }
    //摄像机管理
service/CameraVideoService.go
@@ -1,8 +1,11 @@
package service
import (
    "basic.com/valib/logger.git"
    "encoding/json"
    "fmt"
    "strconv"
    "webserver/cache"
    "webserver/extend/config"
    "webserver/extend/esutil"
    "webserver/models"
@@ -10,7 +13,12 @@
// 地库人员数据 为 比对做准备
func QueryDbPersonsForCompare(reqBody models.EsSearch) map[string]interface{} {
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return nil
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexName + "/_search"
    tableIds := make([]string, 20)
    if reqBody.DataBases != nil {
service/CamraUpdatesnashot.go
@@ -4,9 +4,10 @@
    "basic.com/dbapi.git"
    "basic.com/fileServer/WeedFSClient.git"
    "basic.com/valib/capture.git"
    "basic.com/valib/logger.git"
    "errors"
    "strconv"
    "webserver/extend/config"
    "webserver/cache"
)
/*以下属于旧版本地摄像机获取截图(国标摄像机底图无法刷新)
func PostFormBufferData(uri string, filepath string, fileName string) (maps map[string]interface{}, err0 error) {
@@ -145,7 +146,12 @@
    }
    b,err := capture.Capture("libcffmpeg.so",m,camera.Rtsp,capture.JPEGFileExt,1280,720,10)
    if err == nil{
        var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit"
        localConf, err2 := cache.GetServerInfo()
        if err2 !=nil || localConf.WebPicIp == "" {
            logger.Debug("localConfig is wrong!!!")
            return "",err2
        }
        var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit"
        weedFilePath, err := WeedFSClient.UploadFile(weedfsUri, camera.Name+".jpg", b)
        if err != nil {
            return "",err
service/EnableStatusControlService.go
@@ -2,18 +2,24 @@
import (
    "basic.com/dbapi.git"
    "basic.com/valib/logger.git"
    "encoding/json"
    "fmt"
    "strconv"
    "strings"
    "time"
    "webserver/cache"
    "webserver/extend/config"
    "webserver/extend/esutil"
    "basic.com/valib/logger.git"
)
func GetVerificationData() []map[string]interface{} {
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return nil
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/_search"
    var setApi dbapi.SysSetApi
    _, sysconf := setApi.GetServerInfo()
@@ -83,7 +89,12 @@
        status = 1
    }
    enable := strconv.Itoa(status)
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.AlarmIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return "localConf wrong"
    }
    url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) +
        "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/_update_by_query?refresh"
    jsonDsl := `
            {