package DataexDAO import ( "dsDataex/Utils/CacheUtil" "dsDataex/Utils/DbUtil" "html" "strings" ) //数据库 var db = DbUtil.Engine /** * @Author zhangjun * @Description 获取数据源信息 * @Date 2020-06-16 09:35 * @Param systemID string 接入系统id * @return 【】map 数据map数组 * @return error 错误 **/ func GetbySystemID(systemID string) (bool, string, []map[string]interface{}, error){ sql := "SELECT id from t_dataex_datasource where delete_flag = -1 and enable_flag = 1 and system_id = '" + html.EscapeString(systemID) + "'" //通过SQL获取带缓存的数据 list, count, _ := CacheUtil.Page(sql, 100,0) if count >0 { return true, "数据获取成功", list,nil }else { return false, "数据获取失败,systemID对应的数据源类型不存在", nil,nil } } func GetParentIDBaseGO(areaCode string) string{ sql := "SELECT id from t_dataex_orgtree where org_type = 1 and area_id = '" + areaCode + "'" //通过SQL获取带缓存的数据 list, count, _ := CacheUtil.Page(sql, 100,0) if count >0 { return list[0]["id"].(string) }else { return "" } } func GetParentID2BaseGO(areaCodes []string) map[string] string{ var areaCode = strings.Join(areaCodes, "','") sql := "SELECT id from t_dataex_orgtree where org_type = 1 and area_id in ('" + areaCode + "')" //通过SQL获取带缓存的数据 list, count, _ := CacheUtil.Page(sql, 100,0) var result=make( map[string]string) if count >0 { for no:=0;no< len(list);no++{ result[list[no]["area_id"].(string)]=list[no]["id"].(string) } return result }else { return nil } } /** * @Author zhangjun * @Description 校验接入系统是否为数据源提供者 * @Date 2020-06-16 09:35 * @Param systemID string 接入系统ID * @Param datasource string 数据类型code * @return bool 成功/失败 * @return string 结果 * @return map 数据map * @return error 错误 **/ func CheckDatasourceSet(systemID string,datasource string) (bool, string, map[string]interface{}, error){ sql := "SELECT id from t_dataex_datasource where delete_flag = -1 and enable_flag = 1 and datasource_code = '" + html.EscapeString(datasource) + "' and system_id = '" + html.EscapeString(systemID) + "'" //通过SQL获取带缓存的数据 list, count, _ := CacheUtil.Page(sql, 100,0) if count==1 { return true, "数据源校验成功", list[0],nil }else { return false, "数据源校验失败,接入系统无权操作此数据源", nil,nil } } /** * @Author zhangjun * @Description 校验接入系统是否为数据源消费者 * @Date 2020-06-23 08:10 * @Param * @return **/ func CheckDatasourceGet(systemID string,datasource string) (bool, string, map[string]interface{}, error){ sql:="SELECT id from t_dataex_dataaccess where delete_flag = -1 and enable_flag = 1 and datasource_code = '" + html.EscapeString(datasource) + "' and consume_systemid = '" + html.EscapeString(systemID) + "'" list, count, _ := CacheUtil.Page(sql, 100,0) if count==1 { return true, "数据源校验成功", list[0],nil }else { return false, "数据源校验失败,接入系统无权操作此数据源", nil,nil } } func GetDatasourceOrgIDS(consumeType int,orgID string) []string { var result []string switch consumeType{ case 1: result=append(result,orgID) break case 2: result=CacheUtil.OrgtreeGetScope(orgID) break case -1: result=append(result,orgID) break default: break } return result } /** * @Author zhangjun * @Description 获取机构权限信息 * @Date 2020-06-16 09:39 * @Param provideType int 配置机构校验类型(1:本机构、2:本机构和下属机构、-1:不校验) * @Param provideOrgid string 配置机构id * @Param orgID string 数据所属机构id * @return bool 成功/失败 * @return string 结果 * @return map 数据map * @return error 错误 **/ func CheckProvideOrgID(provideType int, provideOrgid string,orgID string) (bool, string, map[string]interface{}, error){ //change by zhangjun 2020-07-15 //ids:=[]string{orgID} ids:=[]string{strings.ToLower(orgID)} result := CacheUtil.GetListByIds( ids ,CacheUtil.GetBean("t_dataex_orgtree")) switch provideType{ case 1: if provideOrgid==orgID{ if len(result)==1{ return true,"获取机构数据成功",result[0],nil }else { return false,"获取机构数据失败,无此机构",nil,nil } }else { return false,"数据权限校验不通过,无权操作此机构下属数据",nil,nil } break case 2: if provideOrgid=="-1"{ if len(result)==1{ return true,"获取机构数据成功",result[0],nil }else { return false,"获取机构数据失败,无此机构",nil,nil } } else { if CacheUtil.OrgtreeCheckScope(provideOrgid,orgID) == true{ if len(result)==1{ return true,"获取机构数据成功",result[0],nil }else { return false,"获取机构数据失败,无此机构",nil,nil } }else { return false,"数据权限校验不通过,无权操作此机构下属数据",nil,nil } } break case -1: if len(result)==1{ return true,"获取机构数据成功",result[0],nil }else { return false,"获取机构数据失败,无此机构",nil,nil } break default: return false,"provideType数据配置错误",nil,nil break } return false,"获取机构数据失败,无此机构",nil,nil } /** * @Author zhangjun * @Description * @Date 2020-06-23 08:28 * @Param * @return **/ func CheckConsumeOrgID(consumeType int, consumeOrgid string,orgID string) (bool, string, error) { switch consumeType { case 1: if consumeOrgid == orgID { return true, "数据权限校验通过", nil }else { return false, "数据权限校验不通过,无权访问此机构下属数据", nil } break case 2: if consumeOrgid=="-1"{ return true, "数据权限校验通过", nil } else { if CacheUtil.OrgtreeCheckScope(consumeOrgid,orgID) == true{ return true, "数据权限校验通过", nil }else { return false, "数据权限校验不通过,无权访问此机构下属数据", nil } } break case -1: return true, "数据权限校验通过", nil break default: return false,"consumeType数据配置错误",nil break } return false, "数据权限校验不通过,无权访问此机构下属数据", nil }