package data_stat import ( "encoding/json" "eta/eta_api/controllers" "eta/eta_api/models" "eta/eta_api/models/data_stat" "eta/eta_api/utils" "fmt" "github.com/rdlucklib/rdluck_tools/paging" "strings" "time" ) // EdbSourceStatController 数据源统计表管理模块 type EdbSourceStatController struct { controllers.BaseAuthController } // Column // @Title 数据源统计表自定义列列表 // @Description 查询 数据源统计表自定义列列表 // @Success 200 {object} data_stat.StatColumnList // @router /source_column [get] func (this *EdbSourceStatController) Column() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } columnType, _ := this.GetInt("ColumnType") if columnType <= 0 { br.Msg = "请选择表类型" return } tmpList, err := data_stat.GetStatColumn(columnType) if err != nil { br.Msg = "获取自定义列失败" br.ErrMsg = "获取自定义列失败,Err:" + err.Error() return } var list []*data_stat.EdbInfoStatColumnListItem for _, v := range tmpList { tmp := new(data_stat.EdbInfoStatColumnListItem) tmp.ColumnKey = v.ColumnKey tmp.IsShow = v.IsShow tmp.ColumnName = v.ColumnName tmp.Id = v.Id tmp.IsMust = v.IsMust tmp.IsSort = v.IsSort tmp.Type = v.Type list = append(list, tmp) } var statColumnList data_stat.StatColumnList statColumnList.List = list br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = statColumnList } // EditColumn // @Title 编辑数据源统计表自定义列 // @Description 编辑 数据源统计表自定义列列表 // @Success 200 {object} data_stat.StatColumnList // @router /source_column/edit [post] func (this *EdbSourceStatController) EditColumn() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } var req data_stat.EditStatColumnReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if len(req.List) <= 0 { br.Msg = "请选择要修改的列" br.IsSendEmail = false return } var list []*data_stat.EdbInfoStatColumn for k, v := range req.List { if v.Id == 0 { br.Msg = "列序号不能为空" return } tmp := new(data_stat.EdbInfoStatColumn) tmp.Id = v.Id tmp.Sort = k + 1 tmp.IsShow = v.IsShow list = append(list, tmp) } err = data_stat.UpdateStatColumn(list) if err != nil { br.Msg = "更新自定义列操作失败!" br.ErrMsg = "更新自定义列操作失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "获取成功" return } // EdbDeleteLog // @Title 查询删除指标列表 // @Description 查询删除指标列表接口 // @Success 200 {object} data_stat.GetEdbDeleteLogResp // @router /edb_delete_log [get] func (this *EdbSourceStatController) EdbDeleteLog() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } sortParamReq := this.GetString("SortParam", "") sortType := this.GetString("SortType", "desc") createTime := this.GetString("CreateTime", "") pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = paging.StartIndex(currentIndex, pageSize) var condition string var pars []interface{} if createTime != "" { startT, err := time.ParseInLocation(utils.FormatDate, createTime, time.Local) if err != nil { br.Msg = "请求时间格式错误" return } endT := startT.AddDate(0, 0, 1) condition += " AND create_time >= ? AND create_time < ?" pars = append(pars, createTime, endT.Format(utils.FormatDate)) } sortStr := `` sortParam := `` if sortParamReq != `` { switch sortParamReq { case "CreateTime": sortParam = "create_time" case "ErDataUpdateDate": sortParam = "er_data_update_date" case "LatestDate": sortParam = "latest_date" case "StartDate": sortParam = "start_date" } if sortParam == "" { br.Msg = "请输入正确的排序字段" return } if strings.ToLower(sortType) != "asc" && strings.ToLower(sortType) != "desc" { br.Msg = "请输入正确的排序类型" return } sortStr = fmt.Sprintf(" order by %s %s, id desc ", sortParam, sortType) } total, err := data_stat.GetEdbDeleteLogCount(condition, pars) if err != nil { if err.Error() != utils.ErrNoRow() { br.Msg = "获取指标删除列表总数失败" br.ErrMsg = "获取指标删除列表总数失败,Err:" + err.Error() return } else { err = nil } } list := make([]*data_stat.EdbInfoDeleteLogItem, 0) page := paging.GetPaging(currentIndex, pageSize, total) if total == 0 { resp := data_stat.GetEdbDeleteLogResp{ Paging: page, List: list, } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp return } tmpList, err := data_stat.GetEdbDeleteLogByCondition(condition, pars, sortStr, pageSize, startSize) if err != nil { br.Msg = "获取指标删除列表失败" br.ErrMsg = "获取指标删除列表失败,Err:" + err.Error() return } for _, v := range tmpList { tmp := new(data_stat.EdbInfoDeleteLogItem) tmp.EdbCode = v.EdbCode tmp.EdbInfoId = v.EdbInfoId tmp.Id = v.Id tmp.StartDate = v.StartDate tmp.Unit = v.Unit tmp.TerminalCode = v.TerminalCode tmp.CreateTime = v.CreateTime tmp.Frequency = v.Frequency tmp.Source = v.Source tmp.SourceName = v.SourceName tmp.EdbNameSource = v.EdbNameSource tmp.LatestDate = v.LatestDate tmp.DataUpdateTime = v.DataUpdateTime tmp.DelSysUserId = v.DelSysUserId tmp.DelSysUserRealName = v.DelSysUserRealName tmp.SysUserId = v.SysUserId tmp.LatestValue = v.LatestValue tmp.ErDataUpdateDate = v.ErDataUpdateDate list = append(list, tmp) } resp := data_stat.GetEdbDeleteLogResp{ Paging: page, List: list, } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // EdbUpdateLog // @Title 查询指标信息变更列表 // @Description 查询指标信息变更列表接口 // @Success 200 {object} data_stat.GetEdbUpdateLogResp // @router /edb_update_log [get] func (this *EdbSourceStatController) EdbUpdateLog() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } sortParamReq := this.GetString("SortParam", "") sortType := this.GetString("SortType", "desc") updateTime := this.GetString("UpdateTime", "") pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = paging.StartIndex(currentIndex, pageSize) var condition string var pars []interface{} if updateTime != "" { startT, err := time.ParseInLocation(utils.FormatDate, updateTime, time.Local) if err != nil { br.Msg = "请求时间格式错误" return } endT := startT.AddDate(0, 0, 1) condition += " AND update_time >= ? AND update_time < ?" pars = append(pars, updateTime, endT.Format(utils.FormatDate)) } sortStr := `` sortParam := `` if sortParamReq != `` { switch sortParamReq { case "UpdateTime": sortParam = "update_time" case "DataUpdateTime": sortParam = "data_update_time" case "ErDataUpdateDate": sortParam = "er_data_update_date" case "LatestDate": sortParam = "latest_date" case "StartDate": sortParam = "start_date" } if sortParam == "" { br.Msg = "请输入正确的排序字段" return } if strings.ToLower(sortType) != "asc" && strings.ToLower(sortType) != "desc" { br.Msg = "请输入正确的排序类型" return } sortStr = fmt.Sprintf(" order by %s %s, id desc ", sortParam, sortType) } total, err := data_stat.GetEdbUpdateLogCount(condition, pars) if err != nil { if err.Error() != utils.ErrNoRow() { br.Msg = "获取指标删除列表总数失败" br.ErrMsg = "获取指标删除列表总数失败,Err:" + err.Error() return } else { err = nil } } list := make([]*data_stat.EdbInfoUpdateLogItem, 0) page := paging.GetPaging(currentIndex, pageSize, total) if total == 0 { resp := data_stat.GetEdbUpdateLogResp{ Paging: page, List: list, } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp return } tmpList, err := data_stat.GetEdbUpdateLogByCondition(condition, pars, sortStr, pageSize, startSize) if err != nil { br.Msg = "获取指标更新列表失败" br.ErrMsg = "获取指标更新列表失败,Err:" + err.Error() return } for _, v := range tmpList { tmp := new(data_stat.EdbInfoUpdateLogItem) tmp.Id = v.Id tmp.EdbInfoId = v.EdbInfoId tmp.SourceName = v.SourceName tmp.Source = v.Source tmp.EdbCode = v.EdbCode tmp.EdbName = v.EdbName tmp.EdbNameSource = v.EdbNameSource tmp.Frequency = v.Frequency tmp.Unit = v.Unit tmp.StartDate = v.StartDate tmp.EndDate = v.EndDate tmp.SysUserId = v.SysUserId tmp.SysUserRealName = v.SysUserRealName tmp.UniqueCode = v.UniqueCode tmp.UpdateTime = v.UpdateTime tmp.LatestDate = v.LatestDate tmp.LatestValue = v.LatestValue tmp.TerminalCode = v.TerminalCode tmp.DataUpdateTime = v.DataUpdateTime.Format(utils.FormatDateTime) tmp.ErDataUpdateDate = v.ErDataUpdateDate.Format(utils.FormatDate) list = append(list, tmp) } resp := data_stat.GetEdbUpdateLogResp{ Paging: page, List: list, } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // EdbUpdateStat // @Title 查询数据源明细列表 // @Description 查询数据源明细列表接口 // @Success 200 {object} data_stat.GetEdbUpdateStatResp // @router /edb_update_stat [get] func (this *EdbSourceStatController) EdbUpdateStat() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } sortParamReq := this.GetString("SortParam", "") sortType := this.GetString("SortType", "desc") source, _ := this.GetInt("Source") terminalCode := this.GetString("TerminalCode", "") sysUserId, _ := this.GetInt("SysUserId") frequency := this.GetString("Frequency", "") keyWord := this.GetString("KeyWord", "") //指标ID/指标名称 updateTime := this.GetString("UpdateTime", "") pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = paging.StartIndex(currentIndex, pageSize) var condition string var pars []interface{} if updateTime != "" { startT, err := time.ParseInLocation(utils.FormatDate, updateTime, time.Local) if err != nil { br.Msg = "请求时间格式错误" return } endT := startT.AddDate(0, 0, 1) condition += " AND update_time >= ? AND update_time < ?" pars = append(pars, updateTime, endT.Format(utils.FormatDate)) } if source > 0 { condition += " AND source = ?" pars = append(pars, source) } if terminalCode != "" { condition += " AND terminal_code = ?" pars = append(pars, terminalCode) } if sysUserId > 0 { condition += " AND sys_user_id = ?" pars = append(pars, sysUserId) } if frequency != "" { condition += " AND frequency = ?" pars = append(pars, frequency) } if keyWord != "" { condition += ` AND (edb_name LIKE ? OR edb_code LIKE ? ) ` pars = append(pars, "%"+keyWord+"%", "%"+keyWord+"%") } sortStr := `` sortParam := `` if sortParamReq != `` { switch sortParamReq { case "UpdateTime": sortParam = "update_time" case "DataUpdateTime": sortParam = "data_update_time" case "ErDataUpdateDate": sortParam = "er_data_update_date" case "LatestDate": sortParam = "latest_date" case "StartDate": sortParam = "start_date" } if sortParam == "" { br.Msg = "请输入正确的排序字段" return } if strings.ToLower(sortType) != "asc" && strings.ToLower(sortType) != "desc" { br.Msg = "请输入正确的排序类型" return } sortStr = fmt.Sprintf(" order by %s %s, id desc ", sortParam, sortType) } total, err := data_stat.GetEdbUpdateStatCount(condition, pars) if err != nil { if err.Error() != utils.ErrNoRow() { br.Msg = "获取指标删除列表总数失败" br.ErrMsg = "获取指标删除列表总数失败,Err:" + err.Error() return } else { err = nil } } list := make([]*data_stat.EdbInfoUpdateStatItem, 0) page := paging.GetPaging(currentIndex, pageSize, total) if total == 0 { resp := data_stat.GetEdbUpdateStatResp{ Paging: page, List: list, } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp return } tmpList, err := data_stat.GetEdbUpdateStatByCondition(condition, pars, sortStr, pageSize, startSize) if err != nil { br.Msg = "获取指标更新列表失败" br.ErrMsg = "获取指标更新列表失败,Err:" + err.Error() return } for _, v := range tmpList { tmp := new(data_stat.EdbInfoUpdateStatItem) tmp.Id = v.Id tmp.EdbInfoId = v.EdbInfoId tmp.SourceName = v.SourceName tmp.Source = v.Source tmp.EdbCode = v.EdbCode tmp.EdbName = v.EdbName tmp.EdbNameSource = v.EdbNameSource tmp.Frequency = v.Frequency tmp.Unit = v.Unit tmp.StartDate = v.StartDate tmp.SysUserId = v.SysUserId tmp.SysUserRealName = v.SysUserRealName tmp.LatestDate = v.LatestDate tmp.LatestValue = v.LatestValue tmp.TerminalCode = v.TerminalCode tmp.DataUpdateTime = v.DataUpdateTime.Format(utils.FormatDateTime) tmp.ErDataUpdateDate = v.ErDataUpdateDate.Format(utils.FormatDate) tmp.UpdateResult = v.UpdateResult tmp.UpdateFailedReason = v.UpdateFailedReason tmp.UpdateTime = v.UpdateTime tmp.IsAdd = v.IsAdd tmp.NeedRefresh = v.NeedRefresh tmp.HasRefresh = v.HasRefresh list = append(list, tmp) } resp := data_stat.GetEdbUpdateStatResp{ Paging: page, List: list, } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // EdbSourceStat // @Title 查询数据源统计列表 // @Description 查询数据源统计列表接口 // @Success 200 {object} data_stat.GetEdbUpdateLogResp // @router /source_stat [get] func (this *EdbSourceStatController) EdbSourceStat() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } sortParamReq := this.GetString("SortParam", "") sortType := this.GetString("SortType", "desc") statTime := this.GetString("StatTime", "") pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = paging.StartIndex(currentIndex, pageSize) var condition string var pars []interface{} if statTime != "" { _, err := time.ParseInLocation(utils.FormatDate, statTime, time.Local) if err != nil { br.Msg = "请求时间格式错误" return } condition += " AND stat_time = ?" pars = append(pars, statTime) } sortStr := `` sortParam := `` if sortParamReq != `` { switch sortParamReq { case "EdbNum": sortParam = "edb_num" } if sortParam == "" { br.Msg = "请输入正确的排序字段" return } if strings.ToLower(sortType) != "asc" && strings.ToLower(sortType) != "desc" { br.Msg = "请输入正确的排序类型" return } sortStr = fmt.Sprintf(" order by %s %s, id desc ", sortParam, sortType) } total, err := data_stat.GetEdbSourceStatCount(condition, pars) if err != nil { if err.Error() != utils.ErrNoRow() { br.Msg = "获取指标删除列表总数失败" br.ErrMsg = "获取指标删除列表总数失败,Err:" + err.Error() return } else { err = nil } } list := make([]*data_stat.EdbInfoSourceStatItem, 0) page := paging.GetPaging(currentIndex, pageSize, total) if total == 0 { resp := data_stat.GetEdbSourceStatResp{ Paging: page, List: list, } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp return } tmpList, err := data_stat.GetEdbSourceStatByCondition(condition, pars, sortStr, pageSize, startSize) if err != nil { br.Msg = "获取指标删除列表失败" br.ErrMsg = "获取指标删除列表失败,Err:" + err.Error() return } for _, v := range tmpList { tmp := new(data_stat.EdbInfoSourceStatItem) tmp.Id = v.Id tmp.SourceName = v.SourceName tmp.Source = v.Source tmp.TerminalCode = v.TerminalCode tmp.EdbNum = v.EdbNum tmp.EdbNewNum = v.EdbNewNum tmp.EdbDelNum = v.EdbDelNum tmp.NeedUpdateNum = v.NeedUpdateNum tmp.HasUpdateNum = v.HasUpdateNum tmp.UpdateSuccessNum = v.UpdateSuccessNum tmp.UpdateFailedNum = v.UpdateFailedNum tmp.DataUpdateSuccessNum = v.DataUpdateSuccessNum tmp.StatTime = v.StatTime list = append(list, tmp) } resp := data_stat.GetEdbSourceStatResp{ Paging: page, List: list, } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp }