package DataaccessDAO import ( "dsSupport/MyModel/MySwagger" "dsSupport/Utils/CommonUtil" "dsSupport/Utils/DbUtil" "dsSupport/Utils/ErrorConst" "dsSupport/Utils/LogUtil" "dsSupport/models" "encoding/json" "fmt" ) // 数据库 var db = DbUtil.Engine func GetDataaccessResults(query MySwagger.DataaccessQuery) (bool, string, int, []map[string]interface{}, error) { //sql := "SELECT ls.id source_systemid, ls.system_name source_systemname, ls1.system_name consume_systemname, da.* FROM t_dataex_dataaccess da LEFT JOIN t_dataex_datasource ds ON da.datasource_id = ds.id LEFT JOIN t_dataex_linksystem ls ON ls.id = ds.system_id LEFT JOIN t_dataex_linksystem ls1 ON ls1.id = da.consume_systemid" + query.Conditions sql := "SELECT * FROM t_dataex_dataaccess WHERE 1 = 1" + query.Conditions + " ORDER BY create_time DESC, change_time DESC" //接收传入参数 var limit = 100 var offset = (query.Page - 1) * limit //条件查询语句 conditionSql := fmt.Sprintf("%s", " limit ? offset ? ") //分页的语句 pageSql := fmt.Sprintf("%s %s", sql, conditionSql) //数据条数 count, _ := DbUtil.Engine.SQL(sql).Query().Count() //分页数据 list, _ := DbUtil.Engine.SQL(pageSql, limit, offset).Query().List() if list != nil { listJson, _ :=json.Marshal(list) sql1 := "SELECT * FROM t_dataex_datasource WHERE 1 = 1" var offset1 = (query.Page - 1) * 10 conditionSql1 := fmt.Sprintf("%s", " limit ? offset ? ") pageSql1 := fmt.Sprintf("%s %s", sql1, conditionSql1) joinList1, _ := DbUtil.Engine.SQL(pageSql1, limit, offset1).Query().List() joinListJson1, _ := json.Marshal(joinList1) mergedList1 := CommonUtil.ListMerge(string(listJson), string(joinListJson1), "datasource_id", "id", "source_systemid", "system_id") sql2 := "SELECT * FROM t_dataex_datasource WHERE 1 = 1" var offset2 = (query.Page - 1) * 10 conditionSql2 := fmt.Sprintf("%s", " limit ? offset ? ") pageSql2 := fmt.Sprintf("%s %s", sql2, conditionSql2) joinList2, _ := DbUtil.Engine.SQL(pageSql2, limit, offset2).Query().List() joinListJson2, _ := json.Marshal(joinList2) mergedList2 := CommonUtil.ListMerge(mergedList1, string(joinListJson2), "datasource_id", "id", "datasource_name", "datasource_name") sql3 := "SELECT * FROM t_app_base WHERE 1 = 1" var offset3 = (query.Page - 1) * 10 conditionSql3 := fmt.Sprintf("%s", " limit ? offset ? ") pageSql3 := fmt.Sprintf("%s %s", sql3, conditionSql3) joinList3, _ := DbUtil.Engine.SQL(pageSql3, limit, offset3).Query().List() joinListJson3, _ := json.Marshal(joinList3) mergedList3 := CommonUtil.ListMerge(mergedList2, string(joinListJson3), "source_systemid", "app_id", "source_systemname", "app_name") sql4 := "SELECT * FROM t_app_base WHERE 1 = 1" var offset4 = (query.Page - 1) * 10 conditionSql4 := fmt.Sprintf("%s", " limit ? offset ? ") pageSql4 := fmt.Sprintf("%s %s", sql4, conditionSql4) joinList4, _ := DbUtil.Engine.SQL(pageSql4, limit, offset4).Query().List() joinListJson4, _ := json.Marshal(joinList4) mergedList4 := CommonUtil.ListMerge(mergedList3, string(joinListJson4), "consume_systemid", "app_id", "consume_systemname", "app_name") //通过SQL获取带缓存的数据 /* list, count, _ := CacheUtil.Page(sql, 100, query.Page) listJson, _ :=json.Marshal(list) sql1 := "SELECT id FROM t_dataex_datasource WHERE 1 = 1" joinList1, _, _ := CacheUtil.Page(sql1, 10000, 0) joinListJson1, _ := json.Marshal(joinList1) mergedList1 := CommonUtil.ListMerge(string(listJson), string(joinListJson1), "datasource_id", "id", "source_systemid", "system_id") sql2 := "SELECT id FROM t_dataex_datasource WHERE 1 = 1" joinList2, _, _ := CacheUtil.Page(sql2, 10000, 0) joinListJson2, _ := json.Marshal(joinList2) mergedList2 := CommonUtil.ListMerge(mergedList1, string(joinListJson2), "datasource_id", "id", "datasource_name", "datasource_name") sql3 := "SELECT app_id FROM t_app_base WHERE 1 = 1" joinList3, _, _ := CacheUtil.Page(sql3, 10000, 0) joinListJson3, _ := json.Marshal(joinList3) mergedList3 := CommonUtil.ListMerge(mergedList2, string(joinListJson3), "source_systemid", "app_id", "source_systemname", "app_name") sql4 := "SELECT app_id FROM t_app_base WHERE 1 = 1" joinList4, _, _ := CacheUtil.Page(sql4, 10000, 0) joinListJson4, _ := json.Marshal(joinList4) mergedList4 := CommonUtil.ListMerge(mergedList3, string(joinListJson4), "consume_systemid", "app_id", "consume_systemname", "app_name") */ fmt.Println(mergedList4) var datas []map[string]interface{} json.Unmarshal([]byte(mergedList4), &datas) fmt.Println(datas) return true, "数据获取成功", count, datas, nil } else { return false, "数据获取失败,数据不存在", count, nil, nil } } func CreateDataaccess(model *models.TDataexDataaccess) (bool, string, error) { _, err := db.Insert(model) if err != nil { fmt.Println("err=", err) LogUtil.Error(ErrorConst.SqlUpdateError, "接入系统authToken Update,数据库操作发生严重错误:"+err.Error()) return false, "数据库操作失败", err } return true, "创建成功!", nil } func UpdateDataaccess(id string, model *models.TDataexDataaccess) (bool, string, error) { _, err := db.Where(" id = ?", id).Update(model) if err != nil { LogUtil.Error(ErrorConst.SqlUpdateError, "接入系统authToken Update,数据库操作发生严重错误:"+err.Error()) return false, "数据库操作失败", err } return true, "修改成功!", nil } func RemoveDataaccess(id string, model *models.TDataexDataaccess) (bool, string, error) { _, err := db.Where(" id = ?", id).Update(model) if err != nil { LogUtil.Error(ErrorConst.SqlUpdateError, "接入系统authToken Update,数据库操作发生严重错误:"+err.Error()) return false, "数据库操作失败", err } return true, "删除成功!", nil }