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.StatColumnList // @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 }