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.

148 lines
4.5 KiB

package DataaccessService
import (
"dsSupport/MyModel/AccessSystem/AccessSystemDao"
"dsSupport/MyModel/DataAccess/DataaccessDAO"
"dsSupport/MyModel/DataSource/DatasourceService"
"dsSupport/MyModel/MySwagger"
"dsSupport/MyModel/OrgTree/OrgtreeService"
"dsSupport/Utils/CacheUtil"
"dsSupport/Utils/CommonUtil"
"dsSupport/models"
"html"
"strconv"
"strings"
"time"
)
func GetDataaccessResults(swag MySwagger.DataaccessSwag) (bool, string, int32, []map[string]interface{}, error) {
var condition string
var conditions []string
var page int
var query MySwagger.DataaccessQuery
if swag.DatasourceId != "" {
conditions = append(conditions, "datasource_id="+"'"+html.EscapeString(swag.DatasourceId)+"'")
}
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)+"'")
}
if swag.EnableFlag != 0 {
conditions = append(conditions, "enable_flag="+"'"+strconv.Itoa(swag.EnableFlag)+"'")
}
if swag.Page != 0 {
page = swag.Page
query.Page = (page - 1) * 100
} else {
query.Page = 0
}
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
}
func CreateDataaccess(model models.TDataexDataaccess) (bool, string, error) {
if !DatasourceService.IsDatasourceExistsById(model.DatasourceId) {
return false, "DatasourceId不存在", nil
}
_, e := AccessSystemDao.GetApp(model.ConsumeSystemid)
if e != nil {
return false, "SystemId不存在", nil
}
if !OrgtreeService.IsOrgtreeExistsById(model.ConsumeOrgid) {
return false, "OrgId不存在", nil
}
business := new(models.TDataexDataaccess)
business.Id = CommonUtil.GetUUID()
business.DatasourceId = html.EscapeString(model.DatasourceId)
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
}
func UpdateDataaccess(id string, model models.TDataexDataaccess) (bool, string, error) {
if !DatasourceService.IsDatasourceExistsById(model.DatasourceId) {
return false, "DatasourceId不存在", nil
}
_, e := AccessSystemDao.GetApp(model.ConsumeSystemid)
if e != nil {
return false, "SystemId不存在", nil
}
if !OrgtreeService.IsOrgtreeExistsById(model.ConsumeOrgid) {
return false, "OrgId不存在", 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.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
}
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
}