zwxi 7 місяців тому
батько
коміт
143a72a08a

+ 47 - 0
controllers/data_manage/edb_info.go

@@ -1803,6 +1803,53 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				searchItem.Unit = "元/吨"
 				searchItem.EdbName = indexInfo.IndexName
 			}
+		} else if source == utils.DATA_SOURCE_OILCHEM { //隆众资讯
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取隆众资讯已存在信息失败,Err:" + err.Error()
+				return
+			}
+
+			if len(dataItems) > 0 {
+				searchItem.EdbCode = edbCode
+				minDate, maxDate, err := data_manage.GetEdbDataOilchemMaxOrMinDate(edbCode)
+				if err != nil {
+					br.Msg = "获取失败"
+					br.ErrMsg = "获取上期所日期信息失败,Err:" + err.Error()
+					return
+				}
+				searchItem.DataList = dataItems
+				searchItem.StartDate = minDate
+				searchItem.EndDate = maxDate
+			} else {
+				respItem, err := data.AddEdbData(source, edbCode, frequency)
+				if err != nil {
+					br.Msg = "获取失败"
+					br.ErrMsg = "获取失败,Err:" + err.Error()
+					return
+				}
+				if respItem.Ret != 200 {
+					br.Msg = "未搜索到该指标"
+					br.ErrMsg = respItem.ErrMsg + ";EdbCode:" + edbCode
+					return
+				}
+				isAdd = true
+			}
+
+			//获取指标信息
+			indexInfo, err := data_manage.GetBaseInfoFromOilchemByIndexCode(edbCode)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取上期所指标详情失败,Err:" + err.Error()
+				return
+			}
+
+			if indexInfo != nil {
+				searchItem.Frequency = indexInfo.Frequency
+				searchItem.Unit = indexInfo.Unit
+				searchItem.EdbName = indexInfo.IndexName
+			}
 		} else {
 			// 代码中没有的来源那么从edb_source中找是否有对应的
 			sourceItem := data_manage.EdbSourceIdMap[source]

+ 465 - 0
controllers/oilchem_data.go

@@ -0,0 +1,465 @@
+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"
+//
+//}

+ 135 - 0
models/data_manage/base_from_oilchem.go

@@ -0,0 +1,135 @@
+package data_manage
+
+import (
+	"eta/eta_api/utils"
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+)
+
+type BaseFromOilchemClassify struct {
+	BaseFromCcfClassifyId int       // 分类ID
+	ClassifyName          string    // 分类名称
+	ParentID              int       // 上级ID
+	Level                 int       // 层级
+	Sort                  int       // 排序
+	CreateTime            string // 创建时间
+	ModifyTime            string // 修改时间
+}
+
+type BaseFromOilchemIndex struct {
+	BaseFromOilchemIndexId int    // 主键ID
+	IndexCode              string // 指标编码
+	IndexName              string // 指标名称
+	ClassifyId             uint   // 分类ID
+	Unit                   string // 单位
+	Frequency              string // 频度
+	Describe               string // 指标描述
+	Sort                   int    // 排序
+	CreateTime             string // 创建时间
+	ModifyTime             string // 修改时间
+}
+
+type BaseFromOilchemData struct {
+	BaseFromOilchemDataId  int    // 数据表ID
+	BaseFromOilchemIndexId int    // 指标ID
+	IndexCode              string // 指标编码
+	DataTime               string
+	Value                  string
+	CreateTime             string
+	ModifyTime             string
+}
+
+func GetOilchemClassifyList() (list []*BaseFromOilchemClassify, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := "SELECT * FROM base_from_oilchem_classify ORDER BY sort ASC"
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}
+
+type BaseFromOilchemIndexList struct {
+	BaseFromOilchemIndexId int    // 主键ID
+	IndexCode              string // 指标编码
+	IndexName              string // 指标名称
+	ClassifyId             uint   // 分类ID
+	Unit                   string // 单位
+	Frequency              string // 频度
+	Describe               string // 指标描述
+	Sort                   int    // 排序
+	CreateTime             string // 创建时间
+	ModifyTime             string // 修改时间
+	DataList               []*BaseFromOilchemData
+	Paging                 *paging.PagingItem `description:"分页数据"`
+}
+
+
+type BaseFromOilchemIndexListResp struct {
+	List   []*BaseFromOilchemIndex
+	Paging *paging.PagingItem `description:"分页数据"`
+}
+
+func GetOilchemIndexById(indexId int) (item *BaseFromOilchemIndex, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT * FROM base_from_oilchem_index WHERE 1=1 base_from_oilchem_index_id = ? `
+	sql += `ORDER BY base_from_oilchem_index_id ASC `
+	err = o.Raw(sql, indexId).QueryRow(&item)
+	return
+}
+func GetOilchemIndexByCode(indexCode string) (item *BaseFromOilchemIndex, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT * FROM base_from_oilchem_index WHERE 1=1 and index_code = ? `
+	sql += `ORDER BY base_from_oilchem_index_id ASC `
+	err = o.Raw(sql, indexCode).QueryRow(&item)
+	return
+}
+
+func GetOilchemIndexList(condition string, pars interface{}, startSize, pageSize int) (items []*BaseFromOilchemIndex, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT * FROM base_from_oilchem_index WHERE 1=1  `
+	if condition != "" {
+		sql += condition
+	}
+
+	sql += `group BY index_code ASC order by create_time DESC LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+func GetOilchemIndexListCount(condition string, pars interface{}) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT COUNT(1) AS count FROM base_from_oilchem_index WHERE 1=1  `
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
+func GetOilchemDataListCount(condition string, pars interface{}) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT COUNT(1) AS count FROM base_from_oilchem_data WHERE 1=1  `
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
+func GetOilchemIndexData(condition string, pars interface{}, startSize, pageSize int) (items []*BaseFromOilchemData, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT * FROM base_from_oilchem_data WHERE 1=1  `
+	if condition != "" {
+		sql += condition
+	}
+
+	sql += ` order by data_time DESC LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+// GetOilchemItemList 模糊查询隆众资讯数据库指标列表
+func GetOilchemItemList(keyword string) (items []*BaseFromOilchemIndex, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := "SELECT * FROM base_from_oilchem_index WHERE CONCAT(index_name,index_code) LIKE ? "
+	_, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
+	return
+}

+ 39 - 0
models/data_manage/edb_data_oilchem.go

@@ -0,0 +1,39 @@
+package data_manage
+
+import (
+	"fmt"
+	"github.com/beego/beego/v2/client/orm"
+)
+
+type OilchemData struct {
+	InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
+	DataTime   string `orm:"column(DATA_DATE)" description:"值"`
+}
+
+func GetEdbDataOilchemMaxOrMinDate(edbCode string) (minDate, maxDate string, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT MIN(data_time) AS minDate,MAX(data_time) AS maxDate FROM edb_data_oilchem WHERE edb_code=? `
+	err = o.Raw(sql, edbCode).QueryRow(&minDate, &maxDate)
+	return
+}
+
+type BaseFromOilchemIndexItem struct {
+	BaseFromSciIndexId int    `orm:"column(base_from_oilchem_index_id);pk"` // 主键,自动递增
+	IndexCode          string // 指标编码
+	IndexName          string // 指标名称
+	ClassifyId         int    // 分类Id
+	Unit               string // 单位
+	Frequency          string // 频度
+	Describe           string // 指标描述
+	CreateTime         string // 创建时间
+	ModifyTime         string // 修改时间
+}
+
+// GetBaseInfoFromOilchemByIndexCode 获取指标信息
+func GetBaseInfoFromOilchemByIndexCode(indexCode string) (item *BaseFromOilchemIndexItem, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT * FROM base_from_oilchem_index WHERE index_code=? `
+	sql = fmt.Sprintf(sql)
+	err = o.Raw(sql, indexCode).QueryRow(&item)
+	return
+}

+ 2 - 2
models/data_manage/edb_data_sci99.go

@@ -12,13 +12,13 @@ type Sci99Data struct {
 
 func GetEdbDataSci99MaxOrMinDate(edbCode string) (minDate, maxDate string, err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT MIN(data_time) AS minDate,MAX(data_time) AS maxDate FROM edb_data_icpi WHERE edb_code=? `
+	sql := ` SELECT MIN(data_time) AS minDate,MAX(data_time) AS maxDate FROM edb_data_sci99 WHERE edb_code=? `
 	err = o.Raw(sql, edbCode).QueryRow(&minDate, &maxDate)
 	return
 }
 
 type BaseFromSci99IndexItem struct {
-	BaseFromSciIndexId int    `orm:"column(base_from_sci_index_id);pk"` // 主键,自动递增
+	BaseFromSciIndexId int    `orm:"column(base_from_sci99_index_id);pk"` // 主键,自动递增
 	IndexCode          string // 指标编码
 	IndexName          string // 指标名称
 	ClassifyId         int    // 分类Id

+ 36 - 0
routers/commentsRouter.go

@@ -10177,6 +10177,42 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"],
+        beego.ControllerComments{
+            Method: "OilchemClassify",
+            Router: `/data/oilchem/classify`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"],
+        beego.ControllerComments{
+            Method: "OilchemData",
+            Router: `/data/oilchem/data`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"],
+        beego.ControllerComments{
+            Method: "OilchemIndexList",
+            Router: `/data/oilchem/indexList`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"],
+        beego.ControllerComments{
+            Method: "OilchemSearchList",
+            Router: `/data/oilchem/search`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"],
         beego.ControllerComments{
             Method: "ShfeDataList",

+ 1 - 0
utils/constants.go

@@ -173,6 +173,7 @@ const (
 	DATA_SOURCE_BLOOMBERG                            = 83       // bloomberg彭博数据
 	DATA_SOURCE_BUSINESS                             = 84       // 来源于自有数据
 	DATA_SOURCE_SCI99                                = 85       // 卓创资讯 -> 85
+	DATA_SOURCE_OILCHEM                              = 89       // 隆众资讯 -> 89
 )
 
 // 数据刷新频率