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.
236 lines
7.4 KiB
236 lines
7.4 KiB
package DataaccessService
|
|
|
|
import (
|
|
"dsSupport/MyModel/AccessSystem/AccessSystemDao"
|
|
"dsSupport/MyModel/DataAccess/DataaccessDAO"
|
|
"dsSupport/MyModel/DataSource/DatasourceDAO"
|
|
"dsSupport/MyModel/MySwagger"
|
|
"dsSupport/MyModel/OrgTree/OrgtreeDAO"
|
|
"dsSupport/Utils/CacheUtil"
|
|
"dsSupport/Utils/CommonUtil"
|
|
"dsSupport/models"
|
|
"html"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
/**
|
|
* @title GetDataaccessResults
|
|
* @Description 获取订阅集合
|
|
* @Author wangshuai
|
|
* @Date 2020-09-17
|
|
* @Param swag MySwagger.DataaccessSwag 查询条件
|
|
* @Return bool 执行结果
|
|
* @Return string 提示信息
|
|
* @Return int 订阅数量
|
|
* @Return []map[string]interface{} 订阅集合
|
|
* @Return error 错误信息
|
|
*/
|
|
func GetDataaccessResults(swag MySwagger.DataaccessSwag) (bool, string, int, []map[string]interface{}, error) {
|
|
var condition string
|
|
var conditions []string
|
|
var query MySwagger.DataaccessQuery
|
|
|
|
if swag.DatasourceId != "" {
|
|
conditions = append(conditions, "datasource_id="+"'"+html.EscapeString(swag.DatasourceId)+"'")
|
|
}
|
|
if swag.SourceSystemid != "" {
|
|
var query MySwagger.DatasourceQuery
|
|
query.Conditions = "system_id=" + "'" + html.EscapeString(swag.SourceSystemid) + "'"
|
|
result, _, _, datasources, _ := DatasourceDAO.GetDatasourceResults(query)
|
|
if result == true {
|
|
var SourceSystemIdString string
|
|
for k, v := range datasources {
|
|
if k == 0 {
|
|
SourceSystemIdString = "'" + v["id"].(string) + "'"
|
|
} else {
|
|
SourceSystemIdString += ", '" + v["id"].(string) + "'"
|
|
}
|
|
}
|
|
conditions = append(conditions, "datasource_id in "+"("+html.EscapeString(SourceSystemIdString)+")")
|
|
}
|
|
}
|
|
if swag.ConsumeSystemid != "" {
|
|
conditions = append(conditions, "consume_systemid="+"'"+html.EscapeString(swag.ConsumeSystemid)+"'")
|
|
}
|
|
if swag.QueryFlag != 0 {
|
|
conditions = append(conditions, "query_flag="+"'"+strconv.Itoa(swag.QueryFlag)+"'")
|
|
}
|
|
if swag.SetFlag != 0 {
|
|
conditions = append(conditions, "set_flag="+"'"+strconv.Itoa(swag.SetFlag)+"'")
|
|
}
|
|
if swag.ConsumeType != 0 {
|
|
conditions = append(conditions, "consume_type="+"'"+strconv.Itoa(swag.ConsumeType)+"'")
|
|
}
|
|
if swag.ConsumeOrgid != "" {
|
|
conditions = append(conditions, "consume_orgid="+"'"+html.EscapeString(swag.ConsumeOrgid)+"'")
|
|
}
|
|
if swag.DeleteFlag != 0 {
|
|
conditions = append(conditions, "delete_flag="+"'"+strconv.Itoa(swag.DeleteFlag)+"'")
|
|
} else {
|
|
conditions = append(conditions, "delete_flag='-1'")
|
|
}
|
|
if swag.EnableFlag != 0 {
|
|
conditions = append(conditions, "enable_flag="+"'"+strconv.Itoa(swag.EnableFlag)+"'")
|
|
}
|
|
if swag.Page != 0 {
|
|
query.Page = swag.Page
|
|
} else {
|
|
query.Page = 1
|
|
}
|
|
|
|
if len(conditions) > 0 {
|
|
condition = " AND " + strings.Join(conditions, " AND ")
|
|
} else {
|
|
condition = ""
|
|
}
|
|
query.Conditions = condition
|
|
|
|
result, message, count, data, failResult := DataaccessDAO.GetDataaccessResults(query)
|
|
|
|
return result, message, count, data, failResult
|
|
}
|
|
|
|
/**
|
|
* @title GetDataaccessRow
|
|
* @Description 获取订阅详情
|
|
* @Author wangshuai
|
|
* @Date 2020-09-28
|
|
* @Param swag MySwagger.DataaccessSwag 查询条件
|
|
* @Return bool 执行结果
|
|
* @Return string 提示信息
|
|
* @Return map[string]interface{} 订阅详情
|
|
* @Return error 错误信息
|
|
*/
|
|
func GetDataaccessRow(id string) (bool, string, map[string]interface{}, error) {
|
|
|
|
result, message, data, failResult := DataaccessDAO.GetDataaccessRow(id)
|
|
|
|
return result, message, data, failResult
|
|
}
|
|
|
|
/**
|
|
* @title CreateDataaccess
|
|
* @Description 创建订阅
|
|
* @Author wangshuai
|
|
* @Date 2020-09-17
|
|
* @Param model models.TDataexDataaccess 订阅信息
|
|
* @Return bool 执行结果
|
|
* @Return string 提示信息
|
|
* @Return error 错误信息
|
|
*/
|
|
func CreateDataaccess(model models.TDataexDataaccess) (bool, string, error) {
|
|
// 校验数据源编码是否存在
|
|
if !DatasourceDAO.IsDatasourceExistsByCode(html.EscapeString(model.DatasourceCode)) {
|
|
return false, "数据源编码不存在", nil
|
|
}
|
|
// 校验数据使用系统是否存在
|
|
_, e := AccessSystemDao.GetAppByCode(model.ConsumeSystemid)
|
|
if e != nil {
|
|
return false, "数据使用系统不存在", nil
|
|
}
|
|
// 校验数据源订阅是否存在
|
|
if DataaccessDAO.IsDataaccessExistsByDatasourceCodeAndConsumeSystemId(html.EscapeString(model.DatasourceCode), html.EscapeString(model.ConsumeSystemid)) {
|
|
return false, "数据源订阅已存在", nil
|
|
}
|
|
// 校验机构是否存在
|
|
if !OrgtreeDAO.IsOrgtreeExistsById(model.ConsumeOrgid) {
|
|
return false, "机构不存在", nil
|
|
}
|
|
|
|
business := new(models.TDataexDataaccess)
|
|
business.Id = CommonUtil.GetUUID()
|
|
business.DatasourceId = html.EscapeString(model.DatasourceId)
|
|
business.DatasourceCode = html.EscapeString(model.DatasourceCode)
|
|
business.ConsumeSystemid = html.EscapeString(model.ConsumeSystemid)
|
|
business.QueryFlag = model.QueryFlag
|
|
business.SetFlag = model.SetFlag
|
|
business.ConsumeType = model.ConsumeType
|
|
business.ConsumeOrgid = html.EscapeString(model.ConsumeOrgid)
|
|
business.CreateTime = time.Now()
|
|
business.DeleteFlag = -1
|
|
business.EnableFlag = 1
|
|
|
|
result, message, error := DataaccessDAO.CreateDataaccess(business)
|
|
|
|
return result, message, error
|
|
}
|
|
|
|
/**
|
|
* @title UpdateDataaccess
|
|
* @Description 编辑订阅
|
|
* @Author wangshuai
|
|
* @Date 2020-09-17
|
|
* @Param id string 订阅ID
|
|
* @Param model models.TDataexDataaccess 订阅信息
|
|
* @Return bool 执行结果
|
|
* @Return string 提示信息
|
|
* @Return error 错误信息
|
|
*/
|
|
func UpdateDataaccess(id string, model models.TDataexDataaccess) (bool, string, error) {
|
|
// 校验数据源编码是否存在
|
|
if !DatasourceDAO.IsDatasourceExistsByCode(html.EscapeString(model.DatasourceCode)) {
|
|
return false, "数据源编码不存在", nil
|
|
}
|
|
_, e := AccessSystemDao.GetAppByCode(model.ConsumeSystemid)
|
|
if e != nil {
|
|
return false, "SystemId不存在", nil
|
|
}
|
|
// 校验机构是否存在
|
|
if !OrgtreeDAO.IsOrgtreeExistsById(model.ConsumeOrgid) {
|
|
return false, "机构不存在", nil
|
|
}
|
|
|
|
business := new(models.TDataexDataaccess)
|
|
|
|
//清除Redis缓存
|
|
var ids = []string{id}
|
|
var selector = CacheUtil.GetBean("t_dataex_dataaccess")
|
|
CacheUtil.DeleteCacheByIds(ids, selector)
|
|
|
|
business.ChangeTime = time.Now()
|
|
business.DatasourceId = html.EscapeString(model.DatasourceId)
|
|
business.DatasourceCode = html.EscapeString(model.DatasourceCode)
|
|
business.ConsumeSystemid = html.EscapeString(model.ConsumeSystemid)
|
|
business.QueryFlag = model.QueryFlag
|
|
business.SetFlag = model.SetFlag
|
|
business.ConsumeType = model.ConsumeType
|
|
business.ConsumeOrgid = html.EscapeString(model.ConsumeOrgid)
|
|
business.CreateTime = time.Now()
|
|
business.DeleteFlag = -1
|
|
business.EnableFlag = 1
|
|
result, message, error := DataaccessDAO.UpdateDataaccess(id, business)
|
|
|
|
return result, message, error
|
|
}
|
|
|
|
/**
|
|
* @title RemoveDataaccess
|
|
* @Description 删除订阅
|
|
* @Author wangshuai
|
|
* @Date 2020-09-17
|
|
* @Param id string 订阅ID
|
|
* @Return bool 执行结果
|
|
* @Return string 提示信息
|
|
* @Return error 错误信息
|
|
*/
|
|
func RemoveDataaccess(id string) (bool, string, error) {
|
|
business := new(models.TDataexDataaccess)
|
|
|
|
//清除Redis缓存
|
|
var ids = []string{id}
|
|
var selector = CacheUtil.GetBean("t_dataex_dataaccess")
|
|
CacheUtil.DeleteCacheByIds(ids, selector)
|
|
|
|
business.Id = html.EscapeString(id)
|
|
business.ChangeTime = time.Now()
|
|
business.DeleteTime = time.Now()
|
|
business.DeleteFlag = 1
|
|
business.EnableFlag = -1
|
|
|
|
result, message, error := DataaccessDAO.RemoveDataaccess(id, business)
|
|
|
|
return result, message, error
|
|
}
|