|
|
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
|
|
|
} |