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 GetDataaccessRow(id string) (bool, string, map[string]interface{}, error) { sql := "SELECT * FROM t_dataex_dataaccess WHERE id = '" + id + "'" var dataaccess models.TDataexDataaccess has, _ := DbUtil.Engine.SQL(sql).Get(&dataaccess) if has == true { m := make(map[string]interface{}) j, _ := json.Marshal(dataaccess) json.Unmarshal(j, &m) return true, "数据获取成功", m, nil } else { return false, "数据获取失败,数据源不存在", nil, nil } } 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" joinList1, _ := DbUtil.Engine.SQL(sql1).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" joinList2, _ := DbUtil.Engine.SQL(sql2).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" joinList3, _ := DbUtil.Engine.SQL(sql3).Query().List() joinListJson3, _ := json.Marshal(joinList3) mergedList3 := CommonUtil.ListMerge(mergedList2, string(joinListJson3), "source_systemid", "app_code", "source_systemname", "app_name") sql4 := "SELECT * FROM t_app_base WHERE 1 = 1" joinList4, _ := DbUtil.Engine.SQL(sql4).Query().List() joinListJson4, _ := json.Marshal(joinList4) mergedList4 := CommonUtil.ListMerge(mergedList3, string(joinListJson4), "consume_systemid", "app_code", "consume_systemname", "app_name") sql5 := "SELECT * FROM t_dataex_orgtree WHERE id IN (SELECT consume_orgid FROM t_dataex_dataaccess WHERE 1 = 1" + query.Conditions + ")" joinList5, _ := DbUtil.Engine.SQL(sql5).Query().List() joinListJson5, _ := json.Marshal(joinList5) mergedList5 := CommonUtil.ListMerge(mergedList4, string(joinListJson5), "consume_orgid", "id", "consume_orgname", "org_name") //fmt.Println(mergedList5) var datas []map[string]interface{} json.Unmarshal([]byte(mergedList5), &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 } func GetDataaccessCountByDatasourceCodeAndConsumeSystemId(datasourceCode string, consumeSystemId string) int64 { business := new(models.TDataexDataaccess) total, err := db.Where("datasource_code =? and consume_systemid =?", datasourceCode, consumeSystemId).Count(business) if err != nil { LogUtil.Error(ErrorConst.SqlQueryError, "数据库操作发生严重错误:"+err.Error()) } return total } func IsDataaccessExistsByDatasourceCodeAndConsumeSystemId(datasourceCode string, consumeSystemId string) bool { if GetDataaccessCountByDatasourceCodeAndConsumeSystemId(datasourceCode, consumeSystemId) > 0 { return true } return false }