sqlite的api,便于内部使用
liuxiaolong
2019-05-17 46f6aaeebd838b309411e7d8ab3de95d15fc42af
add api
10个文件已修改
265 ■■■■ 已修改文件
api_test.go 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cameraApi.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
client.go 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
deliver @ 5ff1f3 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
entites.go 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.mod 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.sum 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
reqrepClient.go 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdkApi.go 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
taskApi.go 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api_test.go
@@ -1 +1,70 @@
package dbapi
import (
    "fmt"
    "testing"
)
func TestGetLocalCameraTree(t *testing.T) {
    var api AreaApi
    body := api.GetLocalCameraTree(0, 0, "c")
    fmt.Println(body)
}
func TestAreaAdd(t *testing.T) {
    var api AreaApi
    var area = Area{
        Parentid: 0,
        Name:     "哈哈哈",
    }
    flag := api.AreaAdd(area)
    fmt.Println(flag)
}
func TestAreaUpdate(t *testing.T) {
    var api AreaApi
    var area = Area{
        Id:       1,
        Name:     "区域更新测试",
        Parentid: 0,
    }
    flag := api.AreaUpdate(area)
    fmt.Println(flag)
}
func TestGetCameraById(t *testing.T) {
    var api CameraApi
    camera, _ := api.GetCameraById("cid0")
    fmt.Println(camera)
}
func TestMangosReqClient(t *testing.T){
    var client ReqrepApi
    client.SendRequestAndGetReply("one")
}
func TestSdkApi_FindAll(t *testing.T) {
    var api SdkApi
    all := api.FindAll("")
    fmt.Println(all)
}
func TestSdkApi_GetById(t *testing.T) {
    var api SdkApi
    model := api.GetById("812b674b-2375-4589-919a-5c1c3278a97e")
    fmt.Println(model)
}
func TestSdkApi_GetAllSdkIds(t *testing.T) {
    var api SdkApi
    sdkIds := api.GetAllSdkIds()
    fmt.Println(sdkIds)
}
func TestTaskApi_FindAll(t *testing.T) {
    var api TaskApi
    taskInfos := api.FindAll()
    fmt.Println(taskInfos)
}
cameraApi.go
@@ -20,6 +20,7 @@
    var res Result
    if err = json.Unmarshal(body, &res); err != nil {
        fmt.Println(err)
        return result,err
    }
    bytes, _ := json.Marshal(res.Data)
client.go
@@ -11,10 +11,16 @@
    DoDeleteRequest(url string, contentType string, body map[string]interface{}, headers map[string]string) ([]byte, error)
}
var BASIC_URL            = "http://127.0.0.1:8001"
const (
    BASIC_URL            = "http://192.168.1.115:8000"
    DATA_URL_PREFIX      = "/data/api-v"
    CONTENT_TYPE_FORM    = "application/x-www-form-urlencoded"
    CONTENT_TYPE_MULFORM = "multipart/form-data"
    CONTENT_TYPE_JSON    = "application/json"
)
//初始化dbserver的地址和端口
func Init(ip string,port int){
    BASIC_URL = "http://"+ ip + ":" + string(port)
}
deliver
@@ -1 +1 @@
Subproject commit aaae9917c3df122e2bbcf591417c1b58021d79fc
Subproject commit 5ff1f32410e0697e581f6c389c8c22c5abd474c0
entites.go
@@ -81,15 +81,24 @@
type CameraTask struct {
    Cameraid   string `json:"cameraid"` //摄像机id 来自于摄像机表
    Taskid     string `json:"taskid"`   //任务id  来自于任务表
    Sdkid      string `json:"sdkId"`    //算法id 来自与算法表
    DelFlag    bool
    UpdateFlag bool   // 算法名称
    SdkArgs    string `json:"sdkArgs"` // 算法参数
    Enable     int    //默认启用
}
type TasksRes struct {
    Task      Task    `json:"task"` //任务结构体
    Sdks      []Sdk   `json:"sdks"` //任务对应的算法信息和参数
    CtlTime   TimeCtl `json:"ctlTime"`
    LinkType  string         `json:"linkType"`
    SdkFrames Frame   `json:"sdkFrames"` //画框的结构
}
//任务和算法关联
type TaskSdk struct {
    Id        string
    Taskid string
    Sdkid  string //来自于算法表
    Sort   int    `json:"sort"` //排序
go.mod
@@ -2,4 +2,10 @@
go 1.12
require nanomsg.org/go-mangos v1.4.0
require (
    github.com/Microsoft/go-winio v0.4.12 // indirect
    github.com/gogo/protobuf v1.2.1
    github.com/gorilla/websocket v1.4.0 // indirect
    golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872 // indirect
    nanomsg.org/go-mangos v1.4.0
)
go.sum
@@ -1,2 +1,13 @@
github.com/Microsoft/go-winio v0.4.12 h1:xAfWHN1IrQ0NJ9TBC0KBZoqLjzDTr1ML+4MywiUOryc=
github.com/Microsoft/go-winio v0.4.12/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872 h1:cGjJzUd8RgBw428LXP65YXni0aiGNA4Bl+ls8SmLOm8=
golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
nanomsg.org/go-mangos v1.4.0 h1:pVRLnzXePdSbhWlWdSncYszTagERhMG5zK/vXYmbEdM=
nanomsg.org/go-mangos v1.4.0/go.mod h1:MOor8xUIgwsRMPpLr9xQxe7bT7rciibScOqVyztNxHQ=
reqrepClient.go
@@ -1,12 +1,10 @@
package dbapi
import (
    "dbapi/deliver"
    "dbapi/protomsg"
    "encoding/json"
    "fmt"
    "os"
    "nanomsg.org/go-mangos"
    "nanomsg.org/go-mangos/protocol/req"
    "nanomsg.org/go-mangos/transport/ipc"
    "nanomsg.org/go-mangos/transport/tcp"
)
type ReqrepApi struct {
@@ -17,27 +15,22 @@
    ReqRep_URL = "tcp://127.0.0.1:8002"
)
func (api ReqrepApi)SendRequest(reqStr string) string {
    var sock mangos.Socket
    var err error
    var msg []byte
func (api ReqrepApi)SendRequestAndGetReply(reqStr string) string {
    sender := deliver.NewConsumer(deliver.Mode(deliver.ReqRep), ReqRep_URL)
    var sendMsg = protomsg.SdkMessage{}
    sendMsg.Cid = "kkkk"
    byteArr, _ := json.Marshal(sendMsg)
    err := sender.Send(byteArr)
    if err !=nil {
        fmt.Println(err)
    }
    fmt.Println("sendedMsg")
    if sock, err = req.NewSocket(); err !=nil {
        fmt.Println("can't get new req socket!")
        os.Exit(1)
    }
    sock.AddTransport(ipc.NewTransport())
    sock.AddTransport(tcp.NewTransport())
    if err = sock.Dial(ReqRep_URL);err !=nil {
        fmt.Println("can't dial on req socket!!")
        os.Exit(1)
    }
    if err =sock.Send([]byte(reqStr));err !=nil {
        fmt.Println("can't send msg")
    }
    if msg,err = sock.Recv();err !=nil {
        fmt.Println("can't get msg from mangos reqrep server")
    }
    defer sock.Close()
    return string(msg)
    //recvMsg, err := sender.Recv()
    //if err ==nil {
    //    fmt.Println(string(recvMsg))
    //}
    fmt.Println("SendRequest")
    return ""
}
sdkApi.go
@@ -1 +1,82 @@
package dbapi
import (
    "encoding/json"
    "fmt"
)
type SdkApi struct{
}
//保存算法,新增(算法id为空),更新(算法id不为空)
func (api SdkApi)Save(sdk Sdk)bool {
    flag := false
    url := BASIC_URL + DATA_URL_PREFIX + "/sdk/save"
    client := NewClient()
    paramBody := Struct2Map(sdk)
    respBody, err := client.DoPostRequest(url, CONTENT_TYPE_FORM, paramBody, nil, nil)
    if err != nil {
        return flag
    }
    var res Result
    if err = json.Unmarshal(respBody, &res); err != nil {
        fmt.Println(err)
        return flag
    }
    flag = res.Success
    return flag
}
//查找所有算法
func (api SdkApi) FindAll(sdkName string)[]Sdk{
    var sdkArr []Sdk
    url := BASIC_URL + DATA_URL_PREFIX + "/sdk/findAllSdk"
    client := NewClient()
    paramMap := make(map[string]string, 0)
    paramMap["sdkName"] = sdkName
    respBody, err := client.DoGetRequest(url, paramMap, nil)
    if err !=nil {
        return sdkArr
    }
    var res Result
    if err = json.Unmarshal(respBody, &res); err != nil {
        fmt.Println(err)
        return sdkArr
    }
    bytes, _ := json.Marshal(res.Data)
    err = json.Unmarshal(bytes, &sdkArr)
    return sdkArr
}
//查找算法id的slice
func (api SdkApi) GetAllSdkIds() (sdkIds []string){
    sdkArr := api.FindAll("")
    if len(sdkArr) == 0 {
        return nil
    }
    for _,sdk := range sdkArr{
        sdkIds = append(sdkIds, sdk.Uuid)
    }
    return sdkIds
}
//通过id获取算法信息
func (api SdkApi) GetById(id string) Sdk{
    var sdk Sdk
    url := BASIC_URL + DATA_URL_PREFIX + "/sdk/getById"
    client := NewClient()
    paramMap := make(map[string]string)
    paramMap["id"] = id
    respBody, err := client.DoGetRequest(url, paramMap, nil)
    if err !=nil {
        return sdk
    }
    var res Result
    if err = json.Unmarshal(respBody, &res); err != nil {
        fmt.Println(err)
        return sdk
    }
    bytes, _ := json.Marshal(res.Data)
    err = json.Unmarshal(bytes, &sdk)
    return sdk
}
taskApi.go
@@ -1,4 +1,31 @@
package dbapi
import (
    "encoding/json"
    "fmt"
)
type TaskApi struct {}
//获取所有任务信息
func (api TaskApi) FindAll() (taskInfos []TasksRes) {
    url := BASIC_URL + DATA_URL_PREFIX + "/task/findAll"
    client := NewClient()
    respBody, err := client.DoGetRequest(url, nil, nil)
    if err !=nil {
        return taskInfos
    }
    var res Result
    if err = json.Unmarshal(respBody, &res); err != nil {
        fmt.Println(err)
        return taskInfos
    }
    bytes, _ := json.Marshal(res.Data)
    err = json.Unmarshal(bytes, &taskInfos)
    return taskInfos
}
func (api TaskApi) FindAllTaskAndSdkInfo(){
}