|
|
@ -1,10 +1,96 @@ |
|
|
|
package dbquery |
|
|
|
|
|
|
|
import ( |
|
|
|
"encoding/json" |
|
|
|
"fmt" |
|
|
|
"git.tetele.net/tgo/helper" |
|
|
|
"log" |
|
|
|
"strings" |
|
|
|
"testing" |
|
|
|
"time" |
|
|
|
) |
|
|
|
|
|
|
|
func CreateData(dbname string, data []map[string]interface{}) (int64, error) { |
|
|
|
timestamp := time.Now().Unix() |
|
|
|
rows := make([]map[string]interface{}, 0) |
|
|
|
region_id_arr := []string{} |
|
|
|
for _, v := range data { |
|
|
|
region_id_arr = append(region_id_arr, helper.ToStr(v["regionId"])) |
|
|
|
rows = append(rows, map[string]interface{}{ |
|
|
|
"region_id": v["regionId"], |
|
|
|
"name": v["regionName"], |
|
|
|
"createtime": timestamp, |
|
|
|
"updatetime": timestamp, |
|
|
|
"is_delete": 0, |
|
|
|
"deletetime": 0, |
|
|
|
}) |
|
|
|
} |
|
|
|
where := "1=1" |
|
|
|
if len(region_id_arr) > 0 { |
|
|
|
where = "region_id not in('" + strings.Join(region_id_arr, "','") + "')" |
|
|
|
} |
|
|
|
_, err := new(Query).Db(dbname).Clean().Table("ttl_project"). |
|
|
|
Data("is_delete=?").Value(1). |
|
|
|
Data("deletetime=?").Value(timestamp). |
|
|
|
Where(where). |
|
|
|
Update() |
|
|
|
if err != nil { |
|
|
|
log.Println("update project err", err) |
|
|
|
} |
|
|
|
if len(rows) > 0 { |
|
|
|
_, err := new(Query).Db(dbname).Clean().Table("ttl_project"). |
|
|
|
SaveDatas(rows). |
|
|
|
UpdFields([]string{"updatetime", "is_delete", "deletetime", "name"}). |
|
|
|
MergeIntoWhereField([]string{"region_id"}). |
|
|
|
UpdateAll() |
|
|
|
if err != nil { |
|
|
|
log.Println("insert to project err", err) |
|
|
|
} |
|
|
|
} else { |
|
|
|
log.Println("rows is null", rows) |
|
|
|
} |
|
|
|
return 0, nil |
|
|
|
} |
|
|
|
|
|
|
|
func Test_ChainM(t *testing.T) { |
|
|
|
err := DmConnect("192.168.233.155", "WUYE", "Bin123456", "", "5236") |
|
|
|
if err != nil { |
|
|
|
t.Log(err) |
|
|
|
} |
|
|
|
db_name := "" |
|
|
|
var apiResp map[string]interface{} |
|
|
|
|
|
|
|
test_json := `{"code":0,"message":"success","data":[{"regionId":"1","regionName":"项目 1"},{"regionId":"2","regionName":"项目 2"}]}` |
|
|
|
err = json.Unmarshal([]byte(test_json), &apiResp) |
|
|
|
if err != nil { |
|
|
|
log.Println("------Get region queryType json Unmarshal err", err.Error()) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
if _, exist := apiResp["code"]; exist { |
|
|
|
if helper.ToInt(apiResp["code"]) == 0 { |
|
|
|
if _, exist = apiResp["data"]; exist { |
|
|
|
data, err := helper.InterfaceToMapInterfaceArr(apiResp["data"]) |
|
|
|
if err != nil { |
|
|
|
log.Println("数据转换失败,", err.Error()) |
|
|
|
} else { |
|
|
|
if len(data) > 0 { |
|
|
|
log.Println("data", data) |
|
|
|
CreateData(db_name, data) |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
log.Println("请求无数据返回") |
|
|
|
} |
|
|
|
} else { |
|
|
|
log.Println("请求异常message:", apiResp["message"]) |
|
|
|
} |
|
|
|
} else { |
|
|
|
log.Println("code is not exist", apiResp) |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 测试各数据库下各种情况
|
|
|
|
func Test_Chain(t *testing.T) { |
|
|
|
//测试数据库连接
|
|
|
|