package data_manage import ( "eta_gn/eta_api/models" "eta_gn/eta_api/models/data_manage" "eta_gn/eta_api/services/data" "eta_gn/eta_api/utils" "fmt" "github.com/rdlucklib/rdluck_tools/paging" "time" ) // @Title 指标一键刷新-统计 // @Description 指标一键刷新-统计接口 // @Success 200 {object} data_manage.UpdatesStatisticalResp // @router /edb_info/updates/statistical [get] func (this *EdbInfoController) EdbInfoUpdatesStatistical() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() var condition string var pars []interface{} condition += ` AND is_update=? AND edb_info_type = ?` pars = append(pars, 2, 0) updateList, _ := data_manage.GetUpdatesStatistical(condition, pars) resp := new(data_manage.UpdatesStatisticalResp) for _, v := range updateList { if v.Source == utils.DATA_SOURCE_THS { resp.ThsUpdate = v.Total } if v.Source == utils.DATA_SOURCE_WIND { resp.WindUpdate = v.Total } if v.Source == utils.DATA_SOURCE_PB { resp.PbUpdate = v.Total } if v.Source == utils.DATA_SOURCE_PB_FINANCE { resp.PbFinanceUpdate = v.Total } if v.Source == utils.DATA_SOURCE_LZ { resp.LzUpdate = v.Total } if v.Source == utils.DATA_SOURCE_YS { resp.SmmUpdate = v.Total } if v.Source == utils.DATA_SOURCE_GL { resp.MysteelUpdate = v.Total } if v.Source == utils.DATA_SOURCE_MANUAL { resp.ManualUpdate = v.Total } if v.Source == utils.DATA_SOURCE_ZZ { resp.ZzUpdate = v.Total } if v.Source == utils.DATA_SOURCE_DL { resp.DlUpdate = v.Total } if v.Source == utils.DATA_SOURCE_SH { resp.ShUpdate = v.Total } if v.Source == utils.DATA_SOURCE_CFFEX { resp.CffexUpdate = v.Total } if v.Source == utils.DATA_SOURCE_SHFE { resp.ShfeUpdate = v.Total } if v.Source == utils.DATA_SOURCE_GIE { resp.GieUpdate = v.Total } //if v.Source == utils.DATA_SOURCE_CALCULATE || // v.Source == utils.DATA_SOURCE_CALCULATE_LJZZY || // v.Source == utils.DATA_SOURCE_CALCULATE_TBZ || // v.Source == utils.DATA_SOURCE_CALCULATE_TCZ || // v.Source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS || // v.Source == utils.DATA_SOURCE_CALCULATE_HBZ || // v.Source == utils.DATA_SOURCE_CALCULATE_HCZ || // v.Source == utils.DATA_SOURCE_CALCULATE_BP || // v.Source == utils.DATA_SOURCE_CALCULATE_TIME_SHIFT || // v.Source == utils.DATA_SOURCE_CALCULATE_ZJPJ || // v.Source == utils.DATA_SOURCE_CALCULATE_LJZTBPJ || // v.Source == utils.DATA_SOURCE_CALCULATE_CJJX || // v.Source == utils.DATA_SOURCE_CALCULATE_NHCC { // resp.CalculateUpdate += v.Total //} if v.EdbType == 2 { resp.CalculateUpdate += v.Total } if v.Source == utils.DATA_SOURCE_LT { resp.LtUpdate = v.Total } if v.Source == utils.DATA_SOURCE_COAL { resp.CoalUpdate = v.Total } if v.Source == utils.DATA_SOURCE_GOOGLE_TRAVEL { resp.GoogleTravelUpdate = v.Total } if v.Source == utils.DATA_SOURCE_EIA_STEO { resp.EiaSteoUpdate = v.Total } if v.Source == utils.DATA_SOURCE_COM_TRADE { resp.UNUpdate = v.Total } if v.Source == utils.DATA_SOURCE_SCI { resp.SciUpdate = v.Total } if v.Source == utils.DATA_SOURCE_BAIINFO { resp.BaiinfoUpdate = v.Total } if v.Source == utils.DATA_SOURCE_NATIONAL_STATISTICS { resp.NationalStatisticsUpdate = v.Total } if v.Source == utils.DATA_SOURCE_FUBAO { resp.FubaoUpdate = v.Total } } var notUpdateCondition string var notUpdatePars []interface{} notUpdateCondition += ` AND is_update=? AND edb_info_type = ? ` notUpdatePars = append(notUpdatePars, 1, 0) notUpdateList, _ := data_manage.GetUpdatesStatistical(notUpdateCondition, notUpdatePars) for _, v := range notUpdateList { if v.Source == utils.DATA_SOURCE_THS { resp.ThsNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_WIND { resp.WindNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_PB { resp.PbNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_PB_FINANCE { resp.PbFinanceNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_LZ { resp.LzNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_YS { resp.SmmNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_GL { resp.MysteelNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_MANUAL { resp.ManualNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_ZZ { resp.ZzNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_DL { resp.DlNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_SH { resp.ShNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_CFFEX { resp.CffexNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_SHFE { resp.ShfeNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_GIE { resp.GieNotUpdate = v.Total } //if v.Source == utils.DATA_SOURCE_CALCULATE || // v.Source == utils.DATA_SOURCE_CALCULATE_LJZZY || // v.Source == utils.DATA_SOURCE_CALCULATE_TBZ || // v.Source == utils.DATA_SOURCE_CALCULATE_TCZ || // v.Source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS || // v.Source == utils.DATA_SOURCE_CALCULATE_HBZ || // v.Source == utils.DATA_SOURCE_CALCULATE_HCZ || // v.Source == utils.DATA_SOURCE_CALCULATE_BP || // v.Source == utils.DATA_SOURCE_CALCULATE_TIME_SHIFT || // v.Source == utils.DATA_SOURCE_CALCULATE_ZJPJ || // v.Source == utils.DATA_SOURCE_CALCULATE_LJZTBPJ || // v.Source == utils.DATA_SOURCE_CALCULATE_CJJX || // v.Source == utils.DATA_SOURCE_CALCULATE_NHCC { // resp.CalculateNotUpdate += v.Total //} if v.EdbType == 2 { resp.CalculateNotUpdate += v.Total } if v.Source == utils.DATA_SOURCE_LT { resp.LtNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_COAL { resp.CoalNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_GOOGLE_TRAVEL { resp.GoogleTravelNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_EIA_STEO { resp.EiaSteoNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_COM_TRADE { resp.UNNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_SCI { resp.SciNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_BAIINFO { resp.BaiinfoNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_NATIONAL_STATISTICS { resp.NationalStatisticsNotUpdate = v.Total } if v.Source == utils.DATA_SOURCE_FUBAO { resp.FubaoNotUpdate = v.Total } } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 指标一键刷新->列表接口 // @Description 指标一键刷新->列表接口 // @Param Status query int true "1:未更新,2:已更新" // @Param Source query int true "来源:0:全部,1:同花顺,2:wind,3:彭博,9:手工指标,10:隆众,11:有色,99:计算指标" // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Success Ret=200 刷新成功 // @router /edb_info/updates/list [get] func (this *EdbInfoController) EdbInfoUpdatesList() { 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 } status, _ := this.GetInt("Status") source, _ := this.GetInt("Source") 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{} condition += ` AND edb_info_type = ? ` pars = append(pars, 0) if status > 0 { condition += ` AND is_update=?` pars = append(pars, status) } if source == 99 { condition += ` AND edb_type=? ` pars = append(pars, 2) } if source > 0 && source != 99 { condition += ` AND source=?` pars = append(pars, source) } condition += ` ORDER BY modify_time ASC ` list, err := data_manage.GetUpdatesList(condition, pars, startSize, pageSize) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } total, err := data_manage.GetUpdatesListTotal(condition, pars) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取更新数据总数失败,Err:" + err.Error() return } page := paging.GetPaging(currentIndex, pageSize, total) resp := new(data_manage.UpdatesListResp) resp.List = list resp.Total = total resp.Paging = page br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // EdbInfoUpdates // @Title 指标一键刷新接口 // @Description 指标一键刷新接口 // @Success Ret=200 更新成功 // @router /edb_info/updates [post] func (this *EdbInfoController) EdbInfoUpdates() { br := new(models.BaseResponse).Init() setNxKey := "EDB_INFO_UPDATES" deleteCache := true defer func() { if deleteCache { utils.Rc.Delete(setNxKey) } this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } if !utils.Rc.SetNX(setNxKey, 1, 30*time.Minute) { deleteCache = false br.Msg = "系统处理中,请勿重复操作!" br.IsSendEmail = false return } list, err := data_manage.GetAllUpdatesList() if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } for _, v := range list { err = data.EdbInfoRefresh(v, false) if err != nil { br.Msg = "刷新失败" br.ErrMsg = "刷新指标失败,指标id:" + fmt.Sprint(v.EdbInfoId) + ", Err:" + err.Error() return } } br.Ret = 200 br.Success = true br.Msg = "更新成功" } // @Title 指标一键刷新接口 // @Description 指标一键刷新接口 // @Success Ret=200 更新成功 // @router /edb_info/updates/check [post] func (this *EdbInfoController) EdbInfoUpdatesCheck() { br := new(models.BaseResponse).Init() setNxKey := "EDB_INFO_UPDATES" defer func() { this.Data["json"] = br this.ServeJSON() }() status := 0 if utils.Rc.IsExist(setNxKey) { status = 1 } else { status = 2 } br.Ret = 200 br.Success = true br.Msg = "检测成功" br.Data = status }