sqlite的api,便于内部使用
liuxiaolong
2019-07-24 b6ae903444054514d33963480a16bc5c64eefe1c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package dbapi
 
import (
    "basic.com/pubsub/protomsg.git"
    "encoding/json"
    "fmt"
)
 
type SdkApi struct{
}
 
//保存算法,新增(算法id为空),更新(算法id不为空)
func (api SdkApi)Save(paramBody map[string]interface{}) (bool,interface{}) {
    flag := false
    url := BASIC_URL + DATA_URL_PREFIX + "/sdk/saveSdk"
    client := NewClient()
    respBody, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil)
    if err != nil {
        return flag,nil
    }
    var res Result
    if err = json.Unmarshal(respBody, &res); err != nil {
        fmt.Println(err)
        return flag,nil
    }
    return res.Success,res.Data
}
 
//查找所有算法
func (api SdkApi) FindAll(sdkName string)[]protomsg.Sdk{
    var sdkArr []protomsg.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
}
 
func (api SdkApi) FindAllSdkRun()(sdkRuns []protomsg.SdkRun){
    sdkArr := api.FindAll("")
    if len(sdkArr) == 0 {
        return nil
    }
    idMap :=make(map[string]string,0)
    for _,sdk := range sdkArr{
        if sdk.IpcId !=""{
            if _,ok :=idMap[sdk.IpcId];!ok{
                idMap[sdk.IpcId] = sdk.IpcId
                sdkRuns = append(sdkRuns,protomsg.SdkRun{
                    IpcId:sdk.IpcId,
                    SdkType:sdk.SdkType,
                })
            }
        }
    }
    return sdkRuns
}
 
//查找算法id的slice
func (api SdkApi) GetAllSdkIds() (ipcIds []string){
    sdkArr := api.FindAll("")
    if len(sdkArr) == 0 {
        return nil
    }
    idMap :=make(map[string]string,0)
    for _,sdk := range sdkArr{
        if sdk.IpcId !=""{
            if _,ok :=idMap[sdk.IpcId];!ok{
                idMap[sdk.IpcId] = sdk.IpcId
                ipcIds = append(ipcIds,sdk.IpcId)
            }
        }
    }
    return ipcIds
}
 
//通过id获取算法信息
func (api SdkApi) GetById(id string) (bool,interface{}){
    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 false,nil
    }
    var res Result
    if err = json.Unmarshal(respBody, &res); err != nil {
        fmt.Println(err)
        return false,nil
    }
    return res.Success,res.Data
}
 
func (api SdkApi) FindByTaskId(taskId string) (flag bool,sdks []protomsg.Sdk) {
    url := BASIC_URL + DATA_URL_PREFIX + "/sdk/findByTaskId"
    client := NewClient()
    paramMap := make(map[string]string)
    paramMap["taskId"] = taskId
    respBody, err := client.DoGetRequest(url, paramMap, nil)
    if err !=nil {
        return false,nil
    }
    var res Result
    if err = json.Unmarshal(respBody, &res); err != nil {
        fmt.Println(err)
        return false,nil
    }
    bytes, _ := json.Marshal(res.Data)
    err = json.Unmarshal(bytes, &sdks)
    return true,sdks
}