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