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) { //测试数据库连接 //err := Connect("127.0.0.1", "root", "root", "canyin", "3306") //err := PgConnect("192.168.233.157", "bin", "Bin123456", "canyin", "5432") //err := DmConnect("192.168.233.148", "SHOPV2", "Bin123456", "", "5236") err := DmConnect("10.33.0.91", "ZYSG", "Zysg!#2025", "", "5236") if err != nil { t.Log(err) } db_name := "" table_name := "ttl_user_log" //time := time.Now().Unix() //================查询表结构=========== ret, err := new(Query).Db(db_name).GetTableInfo(table_name) if err != nil { t.Log(err) } fmt.Println("===GetTableInfo:", ret) //==========获取信息================= /*query := new(Query).Db(db_name).Clean().Table("ttl_dorm_goods_reserve").Alias("a"). Join([]string{"ttl_dorm_goods_reserve_detail b", "a.id=b.reserve_id", "left"}). Join([]string{"ttl_dorm_goods c", "c.id=b.goods_id", "left"}). Join([]string{"ttl_dorm_room d", "d.id=a.room_id", "left"}). Join([]string{"dorm_room_item e", "e.id=a.room_item_id", "left"}). Where("a.user_id =?").Value(6006) info, err := query.Groupby("a.id").Title("a.id").BuildSelectSql()*/ //info, err := new(Query).Db(db_name).Clean().Table(table_name).Clean().Alias("user").Join([]string{"ttl_user u", "u.id = user.user_id", "inner"}).Where("user.id=?").Value("3").Title("user.id,user.user_id,u.nickname").Find() //info, err := GetDataByStmt(db_name, table_name, "*", []string{"id = ?"}, []interface{}{3}, nil) /*if err != nil { t.Log(err) } fmt.Println("===Find:", info)*/ //============获取列表================== list, err := new(Query).Db("").Table("ttl_area"). Title("`first`,id,level,mergename,name,pid,shortname"). Select() if err != nil { t.Log(err) } fmt.Println("===List:", list) //===========添加数据============ //insert_res, err := new(Query).Db(db_name).Clean().Table(table_name).Data("user_id=?").Value("1").Data("createtime=?").Value(time).Create() //insert_res, err := InsertByStmt(db_name, table_name, []string{"user_id=?", "createtime=?"}, []interface{}{"1", time}) //insert_res, err := Insert(db_name, table_name, map[string]string{"user_id": "1", "createtime": helper.ToStr(time)}) //if err != nil { // t.Log(err) //} //fmt.Println("===Insert:", insert_res) //================更新数据===================== //update_res, err := new(Query).Db(db_name).Clean().Table(table_name).Data("user_id=?").Value("2").Data("createtime=?").Value(time).Where("id=?").Value("6").Update() //update_res, err := UpdateByStmt(db_name, table_name, []string{"createtime=?", "user_id=?"}, []string{"id=?"}, []interface{}{time, 3, 6}) //if err != nil { // t.Log(err) //} //fmt.Println("===Update:", update_res) //=============事务================ /*fmt.Println("================开启事务============") tx, err := DB.Begin() if err != nil { t.Log(err) } update_log, err := TxPreUpdate(tx, db_name, table_name, []string{"createtime= ?"}, []string{"id=?"}, []interface{}{time, 2}) if err != nil { tx.Rollback() t.Log(err) } fmt.Println("===========事务执行:==================") fmt.Println("===事务update:", update_log) insert_log, err := TxPreInsert(tx, db_name, table_name, map[string]interface{}{"user_id": "1", "createtime": helper.ToStr(time)}) if err != nil { tx.Rollback() t.Log(err) } fmt.Println("===事务insert:", insert_log) del_log, err := TxDelete(tx, db_name, table_name, map[string]string{"id": "2"}) if err != nil { tx.Rollback() t.Log(err) } fmt.Println("====事务delete:", del_log) err = tx.Commit() if err != nil { t.Log(err) tx.Rollback() } fmt.Println("=======事务执行完成==========")*/ /*trans := NewTxQuery().Db(db_name) update_trans_res, err := trans.Clean().Table("ttl_dorm_check_in_apply").SaveData(map[string]interface{}{ "check_out_id": "48", "id": "21", "updatetime": time.Now().Unix(), }).UpdateAll() if err != nil { trans.Rollback() t.Log(err) } fmt.Println("=======事务update_trans", update_trans_res) err = trans.Commit() if err != nil { trans.Rollback() t.Log(err) }*/ /*fmt.Println("====================执行事务trans============") trans := NewTxQuery().Db(db_name) info_trans, err := trans.Clean().Table(table_name).Where("id = ?").Value(5).Find() if err != nil { trans.Rollback() t.Log(err) } fmt.Println("===事务Find_trans:", info_trans) list_trans, err := trans.Clean().Table(table_name).Title("*").Select() if err != nil { trans.Rollback() t.Log(err) } fmt.Println("=========事务List_trans:", list_trans) data := map[string]interface{}{ "user_id": 5, "memo": "test", "createtime": time, } add_trans, err := trans.Clean().Table(table_name).SaveData(data).CreateAll() if err != nil { trans.Rollback() t.Log(err) } fmt.Println("======事务Add_trans:", add_trans) data["id"] = 15 update_trans_res, err := trans.Clean().Table(table_name).SaveData(data).UpdateAll() if err != nil { trans.Rollback() t.Log(err) } fmt.Println("=======事务update_trans", update_trans_res) err = trans.Commit() if err != nil { trans.Rollback() t.Log(err) } fmt.Println("====================执行事务结束==================")*/ }