You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

255 lines
6.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
}