/**
 数据权限管理
 @author linqian
 @Date：2021-04-09
 */

import request from '@/utils/request';
import qs from "qs"
const baseUrl = '/authsvr/v2/dataauth';


// 数据资源树联动勾选
export function reactTree(data) {
  return request({
    url: `${baseUrl}/tree-react`,
    method: 'POST',
    data
  });
}



/********************************************  数据授权  ******************************************/

// 标签树
export function getBusinessTagTree(data) {
  return request({
    url: `${baseUrl}/businessTreeList`,
    method: 'get'
  });
}

// 获取数据授权资源树
export function getAllDataTree(params) {
  return request({
    url: `${baseUrl}/allDataTree`,
    method: 'get',
    params
  });
}

// 获取单个主体数据权限
export function getSubDataAuth(data) {
  return request({
    url: `${baseUrl}/getSubDataAuth`,
    method: 'post',
    data
  });
}

// 人员视角数据权限查询
export function dataAuthInfoByUserId(params) {
  return request({
    url: `${baseUrl}/dataAuthInfoByUserId`,
    method: 'get',
    params
  });
}

// 业务域标签数据授权
export function saveLabelDataAuth(data) {
  return request({
    url: `${baseUrl}/labelDataAuth`,
    method: 'post',
    data
  });
}

// 机构数据授权
export function saveOrgDataAuth(data) {
  return request({
    url: `${baseUrl}/orgDataAuth`,
    method: 'post',
    data
  });
}

// 人员数据授权
export function saveUserDataAuth(data) {
  return request({
    url: `${baseUrl}/userDataAuth`,
    method: 'post',
    data
  });
}

/*********************************** 数据分级分类表码    ******************************************************/

const dataLevelBaseUrl = '/datalevelsvr/v2';
export const dataLevelTableUrl = `${dataLevelBaseUrl}/search`;
// 数据分级详情
export function getDataLevelDetail(id) {
  return request({
    url: `${dataLevelBaseUrl}/detail/` + id,
    method: 'get'
  });
}
// 保存数据分级
export function saveDataLevel(data) {
  return request({
    url: `${dataLevelBaseUrl}/save`,
    method: 'POST',
    data
  });
}
// 删除数据分级
export function delDataLevel(id) {
  return request({
    url: `${dataLevelBaseUrl}/deleteById/` + id,
    method: 'DELETE'
  });
}

// 数据安全等级
const dataSecLevBaseUrl = '/datasecsvr/v2';
export const dataSecLevTableUrl = `${dataSecLevBaseUrl}/search`;
// 获取数据安全等级详情
export function getDataSecLevDetail(id) {
  return request({
    url: `${dataSecLevBaseUrl}/detail/` + id,
    method: 'get'
  });
}
// 保存数据安全等级
export function saveDataSecLev(data) {
  return request({
    url: `${dataSecLevBaseUrl}/save`,
    method: 'POST',
    data
  });
}
// 删除数据安全等级
export function delDataSecLev(id) {
  return request({
    url: `${dataSecLevBaseUrl}/deleteById/` + id,
    method: 'DELETE'
  });
}

// 数据资源分类表码
const dataSourceClaBaseUrl = '/dataclassifysvr/v2';
export const dataSourceClaTableUrl = `${dataSourceClaBaseUrl}/search`;
// 获取数据资源分类详情
export function getDataSourceClaDetail(labId) {
  return request({
    url: `${dataSourceClaBaseUrl}/detailAllLevel/` + labId,
    method: 'get'
  });
}
// 添加数据资源分类
export function saveDataSourceCla(data) {
  return request({
    url: `${dataSourceClaBaseUrl}/save`,
    method: 'POST',
    data
  });
}

// 修改数据资源分类
export function updateDataSourceCla(data) {
  return request({
    url: `${dataSourceClaBaseUrl}/update`,
    method: 'POST',
    data
  });
}
// 删除数据资源分类
export function delDataSourceCla(id) {
  return request({
    url: `${dataSourceClaBaseUrl}/deleteById/` + id,
    method: 'DELETE'
  });
}

// 字段分类列表
const fieldClassifyBaseUrl = '/fieldclassifysvr/v2';
export const fieldClassifyTableUrl = `${fieldClassifyBaseUrl}/search`;
// 获取字段分类详情
export function getFieldClassifyDetail(labId) {
  return request({
    url: `${fieldClassifyBaseUrl}/detailAllLevel/` + labId,
    method: 'get'
  });
}
// 添加字段分类
export function saveFieldClassify(data) {
  return request({
    url: `${fieldClassifyBaseUrl}/save`,
    method: 'POST',
    data
  });
}

// 修改字段分类
export function updateFieldClassify(data) {
  return request({
    url: `${fieldClassifyBaseUrl}/update`,
    method: 'POST',
    data
  });
}
// 删除字段分类
export function delFieldClassify(id) {
  return request({
    url: `${fieldClassifyBaseUrl}/deleteById/` + id,
    method: 'DELETE'
  });
}

// 字段分类关系接口
const fieldRelBaseUrl = "/cloumnRelation/v2"
export const fieldRelTabelUrl = `${fieldRelBaseUrl}/search`;

// 获取关系分类
export function getSecLevelColumn() {
  return request({
    url: `/fieldclassifysvr/v2/getSecLevelColumn`,
    method: 'POST',
    data: qs.stringify({
      searchCondition: JSON.stringify([]),
      page: 0,
      size: 100
    })
  });
}


// 获取字段分类详情
export function getfieldRelDetail(id) {
  return request({
    url: `${fieldRelBaseUrl}/detail`,
    method: 'get',
    params: {
      id
    }
  });
}
// 添加字段分类
export function saveFieldRel(data) {
  return request({
    url: `${fieldRelBaseUrl}/relationAdd`,
    method: 'POST',
    data
  });
}

// 修改字段分类
export function updateFieldRel(data) {
  return request({
    url: `${fieldRelBaseUrl}/relationUpdate`,
    method: 'POST',
    data
  });
}
// 删除字段分类
export function delFieldRel(id) {
  return request({
    url: `${fieldRelBaseUrl}/deleteById`,
    method: 'DELETE',
    params: {
      id
    }
  });
}


/************************************ 清单  *****************************************/

// 清单列表
export function getDataDetailList() {
  return request({
    url: `${baseUrl}/dataDetailList`,
    method: 'POST'
  });
}

// 获取清单搜索下拉表
export function getSelectList(params) {
  return request({
    url: `${baseUrl}/getDataResourceTree`,
    method: 'GET',
    params: {
      typeCode: params
    }
  });
}

// 人员视角 - 授权列表
export function userDataTreeByIdcard(authType, idcard) {
  return request({
    url: `${baseUrl}/userDataTreeByIdcard`,
    method: 'GET',
    params: {
      authType,
      idcard
    }
  });
}

/****************************** 用户属性管理 ************************************ */

const authUserBaseUrl = '/authsvr/v2/authuserinfo';
export const authUserTableUrl = `${authUserBaseUrl}/page`;
// 获取人员详情
export function getAuthUserDetail(id) {
  return request({
    url: `${authUserBaseUrl}/detail/` + id,
    method: 'GET'
  });
}

/****************************** 机构属性管理 ************************************ */
const authOrgBaseUrl = '/authsvr/v2/authorginfo';
// 机构详情
export function orgInfoDetail(id) {
  return request({
    url: `${authOrgBaseUrl}/detail/` + id,
    method: 'GET'
  });
}

/******************************* 主客体授权管理    ********************************* */
const propBaseUrl = '/attrsvr/v2';
// 根据属性所属类别获取属性列表,返回树结构
export function getPropTreeByType(attrSubType) {
  return request({
    url: `${propBaseUrl}/getAttrTreeList`,
    method: 'GET',
    params: {
        attrSubType
    }
  });
}
// 获取属性详情
export function getPropDetail(params) {
  return request({
    url: `${propBaseUrl}/attrRelToIds`,
    method: 'GET',
    params
  });
}

// 保存属性
export function saveProp(data) {
  return request({
    url: `${propBaseUrl}/attrAdds`,
    method: 'POST',
    data
  });
}
// 删除属性
export function deleteProp(params) {
  return request({
    url: `${propBaseUrl}/deleteAllById`,
    method: 'GET',
    params
  });
}

// 添加属性关联应用
export function addAttrRelateSource(data) {
  return request({
    url: `${propBaseUrl}/attrRelAdd`,
    method: 'POST',
    data
  });
}

// 查询属性关联的id集合
export function getRelateIds(params) {
  return request({
    url: `${propBaseUrl}/attrRelToIds`,
    method: 'get',
    params
  });
}

// 删除被关联的资源
export function delAttrRelResource(attrRelId) {
    return request({
      url: `${propBaseUrl}/delAttrRelResource`,
      method: 'get',
      params: {
        attrRelId
      }
    });
  }

// 查询客体属性-关联应用列表
export const ObjRelAppTableUrl = `${propBaseUrl}/relAppPage`;

// 查询客体属性-未关联应用列表
export const ObjNotRelAppTableUrl = `${propBaseUrl}/notRelAppPage`;

// 查询客体属性-关联服务列表
export const ObjRelServiceTableUrl = `${propBaseUrl}/relServicePage`;

// 查询客体属性-未关联服务列表
export const ObjNotRelServiceTableUrl = `${propBaseUrl}/notRelServicePage`;
