package controllers import ( "eta/eta_api/models" "eta/eta_api/models/data_manage" "eta/eta_api/utils" "github.com/rdlucklib/rdluck_tools/paging" ) // OilchemClassify // @title 获取隆众资讯分类列表 // @Description 获取隆众资讯分类列表 // @Success 200 {object} models. // @router /data/oilchem/classify [get] func (this *TradeCommonController) OilchemClassify() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() classifies, e := data_manage.GetOilchemClassifyList() if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取隆众资讯分类数据分类失败, Err: " + e.Error() return } br.Data = classifies br.Ret = 200 br.Success = true br.Msg = "获取成功" } // OilchemIndexList // @title 获取隆众资讯指标列表 // @Description 获取隆众资讯指标列表 // @Success 200 {object} models. // @router /data/oilchem/indexList [get] func (this *TradeCommonController) OilchemIndexList() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = utils.StartIndex(currentIndex, pageSize) classifyId, _ := this.GetInt("ClassifyId") var condition string var pars []interface{} if classifyId > 0{ condition += ` AND classify_id=? ` pars = append(pars, classifyId) } keyword := this.GetString("KeyWord") if keyword != "" { condition += ` AND (index_code =? OR index_name LIKE ?) ` pars = append(pars, keyword) pars = append(pars, "%"+keyword+"%") } indexList, e := data_manage.GetOilchemIndexList(condition, pars, startSize, pageSize) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取隆众资讯分类数据分类失败, Err: " + e.Error() return } total, err := data_manage.GetOilchemIndexListCount(condition, pars) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取隆众资讯分类数据分类失败, Err: " + err.Error() return } page := paging.GetPaging(currentIndex, pageSize, total) resp := data_manage.BaseFromOilchemIndexListResp{} resp.List = indexList resp.Paging = page br.Data = indexList br.Ret = 200 br.Success = true br.Msg = "获取成功" } // OilchemMineData // @title 获取隆众资讯详细数据列表 // @Description 获取隆众资讯详细数据接口 // @Param ClassifyId query int true "数据id" // @Param GroupName query string true "分组名" // @Param Frequency query string true "频度" // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Success 200 {object} []data_manage.CoalmineDataResp // @router /data/oilchem/data [get] func (this *TradeCommonController) OilchemData() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = utils.StartIndex(currentIndex, pageSize) indexCode := this.GetString("IndexCode") if indexCode == "" { br.Msg = "请选择指标" br.ErrMsg = "请选择指标" return } //获取指标 var condition string var pars []interface{} condition += ` AND index_code =? ` pars = append(pars, indexCode) index, err := data_manage.GetOilchemIndexByCode(indexCode) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } dataList, err := data_manage.GetOilchemIndexData(condition, pars, startSize, pageSize) if err != nil { br.Msg = "获取数据失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } resp := data_manage.BaseFromOilchemIndexList{} resp.BaseFromOilchemIndexId = index.BaseFromOilchemIndexId resp.ClassifyId = index.ClassifyId resp.IndexCode = index.IndexCode resp.IndexName = index.IndexName resp.Frequency = index.Frequency resp.Unit = index.Unit total, err := data_manage.GetOilchemDataListCount(condition, pars) page := paging.GetPaging(currentIndex, pageSize, total) if len(dataList) > 0 { resp.ModifyTime = dataList[0].ModifyTime } resp.Paging = page resp.DataList = dataList br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // CoalSearchList // @Title 隆众资讯模糊搜索 // @Description 隆众资讯模糊搜索 // @Param Keyword query string ture "关键字搜索" // @Success 200 {object} models.BaseResponse // @router /data/oilchem/search [get] func (this *TradeCommonController) OilchemSearchList() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() //关键字 keyword := this.GetString("Keyword") list, err := data_manage.GetOilchemItemList(keyword) if err != nil { br.ErrMsg = "获取失败,Err:" + err.Error() br.Msg = "获取失败" return } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = list } // ExportCoalList // @Title 导出隆众资讯数据 // @Description 导出隆众资讯数据 // @Param ClassifyId query int true "数据id" // @Param IndexName query string true "名称关键词" // @Param IndexCode query string true "指标唯一编码" // @Param TypeName query string true "分类" // @Param Frequency query string false "频度" // @Param UnitName query string false "单位" // @Success 200 导出成功 // @router /export/mtjh [get] //func (this *TradeCommonController) ExportMtjhList() { // br := new(models.BaseResponse).Init() // defer func() { // this.Data["json"] = br // this.ServeJSON() // }() // area := this.GetString("Area") // indexCode := this.GetString("IndexCode") //指标唯一编码 // // secNameList := make([]*models.EdbdataExportList, 0) // // dir, _ := os.Executable() // exPath := filepath.Dir(dir) // // downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx" // xlsxFile := xlsx.NewFile() // // //不为空就是导出分类表 // if indexCode == "" { // //获取指标 // var secNameList []*string // var err error // // secNameList, err = data_manage.GetClassifyMtjhByArea(area) // if err != nil { // fmt.Println("获取数据失败,Err:" + err.Error()) // return // } // // if len(secNameList) <= 0 { // fmt.Println("secNameList长度为0") // return // } // sheetNew, err := xlsxFile.AddSheet(area) // // if err != nil { // fmt.Println("新增Sheet失败", err.Error()) // return // } // //sheetNew.SetColWidth() // //获取指标数据 // windRow := sheetNew.AddRow() // secNameRow := sheetNew.AddRow() // indexCodeRow := sheetNew.AddRow() // frequencyRow := sheetNew.AddRow() // unitRow := sheetNew.AddRow() // lastModifyDateRow := sheetNew.AddRow() // //获取分类下指标最大数据量 // var dataMax int // // dataMax, err = data_manage.GetCoalMtjhMaxCount(area) // if err != nil { // fmt.Println("获取指标最大数据量失败", err.Error()) // return // } // // setRowIndex := 6 // for k, sv := range secNameList { // //获取数据 // dataList, err := data_manage.GetBaseFromMtjhIndexByCode(*sv) // if err != nil { // br.Msg = "获取数据失败" // br.ErrMsg = "获取数据失败,Err:" + err.Error() // return // } // windRow.AddCell().SetValue(area) // secNameRow.AddCell().SetValue("指标名称") // indexCodeRow.AddCell().SetValue("指标ID") // frequencyRow.AddCell().SetValue("频率") // unitRow.AddCell().SetValue("单位") // lastModifyDateRow.AddCell().SetValue("更新时间") // // secNameRow.AddCell().SetValue(dataList[0].IndexName) // indexCodeRow.AddCell().SetValue(dataList[0].IndexCode) // frequencyRow.AddCell().SetValue(dataList[0].Frequency) // unitRow.AddCell().SetValue(dataList[0].Unit) // lastModifyDateRow.AddCell().SetValue(dataList[0].ModifyTime) // // windRow.AddCell() // windRow.AddCell() // secNameRow.AddCell() // indexCodeRow.AddCell() // frequencyRow.AddCell() // unitRow.AddCell() // lastModifyDateRow.AddCell() // min := k * 3 // sheetNew.SetColWidth(min, min, 15) // // if len(dataList) <= 0 { // for n := 0; n < dataMax; n++ { // rowIndex := setRowIndex + n // row := sheetNew.Row(rowIndex) // row.AddCell() // row.AddCell() // row.AddCell() // } // } else { // endRowIndex := 0 // for rk, dv := range dataList { // rowIndex := setRowIndex + rk // row := sheetNew.Row(rowIndex) // // displayDate, _ := time.Parse(utils.FormatDate, dv.DataTime) // displayDateCell := row.AddCell() // style := new(xlsx.Style) // style.ApplyAlignment = true // style.Alignment.WrapText = true // displayDateCell.SetStyle(style) // displayDateCell.SetDate(displayDate) // // row.AddCell().SetValue(dv.DealValue) // row.AddCell() // endRowIndex = rowIndex // } // if len(dataList) < dataMax { // dataLen := dataMax - len(dataList) // for n := 0; n < dataLen; n++ { // rowIndex := (endRowIndex + 1) + n // row := sheetNew.Row(rowIndex) // row.AddCell() // row.AddCell() // row.AddCell() // } // } // } // } // } else { // sheet, err := xlsxFile.AddSheet("指标") // if err != nil { // br.Msg = "新增Sheet失败" // br.ErrMsg = "新增Sheet失败,Err:" + err.Error() // return // } // //获取数据 // dataList, err := data_manage.GetBaseFromMtjhIndexByCode(indexCode) // if err != nil { // br.Msg = "获取数据失败" // br.ErrMsg = "获取数据失败,Err:" + err.Error() // return // } // // mapping, err := data_manage.GetMtjhMappingItemByCode(indexCode) // if err != nil { // br.Msg = "获取煤炭数据失败" // br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error() // return // } // //获取指标数据 // windRow := sheet.AddRow() // windRow.AddCell().SetValue("隆众资讯") // rowSecName := sheet.AddRow() // celSecName := rowSecName.AddCell() // celSecName.SetValue("指标名称") // cellSenName := rowSecName.AddCell() // cellSenName.SetValue(mapping.IndexName) // indexCodeRow := sheet.AddRow() // indexCodeRow.AddCell().SetValue("指标ID") // indexCodeRow.AddCell().SetValue(indexCode) // // rowFrequency := sheet.AddRow() // celFrequency := rowFrequency.AddCell() // celFrequency.SetValue("频率") // rowFrequency.AddCell().SetValue(mapping.Frequency) // // rowUnit := sheet.AddRow() // celUnit := rowUnit.AddCell() // celUnit.SetValue("单位") // cellUnit := rowUnit.AddCell() // cellUnit.SetValue(mapping.Unit) // // rowModifyDate := sheet.AddRow() // rowModifyCell := rowModifyDate.AddCell() // rowModifyCell.SetValue("更新时间") // rowModifyCell = rowModifyDate.AddCell() // rowModifyCell.SetValue(dataList[len(dataList)-1].ModifyTime) // // fmt.Println("len(dataList):", len(dataList)) // dataMax, err := data_manage.GetMtjhCount(indexCode) // if err != nil { // fmt.Println("获取指标最大数据量失败", err.Error()) // return // } // fmt.Println("dataMax:", dataMax) // if len(dataList) <= 0 { // for n := 0; n < dataMax; n++ { // rowIndex := 6 + n // row := sheet.Row(rowIndex) // row.AddCell() // row.AddCell() // row.AddCell() // } // } else { // endRowIndex := 0 // for rk, dv := range dataList { // rowIndex := 6 + rk // row := sheet.Row(rowIndex) // displayDate, _ := time.Parse(utils.FormatDate, dv.DataTime) // displayDateCell := row.AddCell() // style := new(xlsx.Style) // style.ApplyAlignment = true // style.Alignment.WrapText = true // displayDateCell.SetStyle(style) // displayDateCell.SetDate(displayDate) // // row.AddCell().SetValue(dv.DealValue) // row.AddCell() // endRowIndex = rowIndex // } // if len(dataList) < dataMax { // dataLen := dataMax - len(dataList) // for n := 0; n < dataLen; n++ { // rowIndex := (endRowIndex + 1) + n // row := sheet.Row(rowIndex) // row.AddCell() // row.AddCell() // row.AddCell() // } // } // } // } // // err := xlsxFile.Save(downLoadnFilePath) // if err != nil { // br.Msg = "保存文件失败" // br.ErrMsg = "保存文件失败" // return // } // fileName := `隆众资讯数据` // if len(secNameList) > 0 { // fileName = secNameList[0].ClassifyName // } // fileName += time.Now().Format(utils.FormatDateUnSpace) + `.xlsx` //文件名称 // this.Ctx.Output.Download(downLoadnFilePath, fileName) // defer func() { // os.Remove(downLoadnFilePath) // }() // br.Ret = 200 // br.Success = true // br.Msg = "success" // //}