Roc 1 year ago
parent
commit
f72d678499
4 changed files with 145 additions and 0 deletions
  1. 94 0
      controllers/open/edb_info.go
  2. 36 0
      models/edb_info.go
  3. 9 0
      routers/commentsRouter.go
  4. 6 0
      routers/router.go

+ 94 - 0
controllers/open/edb_info.go

@@ -0,0 +1,94 @@
+package open
+
+import (
+	"encoding/json"
+	"fmt"
+	"hongze/hongze_edb_lib/controllers"
+	"hongze/hongze_edb_lib/models"
+	"hongze/hongze_edb_lib/utils"
+)
+
+// EdbInfoController 指标数据
+type EdbInfoController struct {
+	controllers.BaseAuthController
+}
+
+// Detail
+// @Title 指标详情接口
+// @Description  指标详情接口
+// @Success 200 {object} models.EdbInfoDetailReq
+// @router /edb/detail [post]
+func (this *EdbInfoController) Detail() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req models.EdbInfoDetailReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.UniqueCode == "" {
+		br.Msg = "请输入指标编码!"
+		br.ErrMsg = "请输入指标编码,指标编码为空"
+		return
+	}
+	edbInfo, err := models.GetEdbInfoByUniqueCode(req.UniqueCode)
+	if err != nil {
+		br.Msg = "获取失败"
+		if err.Error() == utils.ErrNoRow() {
+			br.Msg = "找不到该指标"
+		}
+		br.ErrMsg = "获取失败,ERR;" + err.Error()
+		return
+	}
+
+	dataList := make([]*models.EdbInfoSearchData, 0)
+	switch edbInfo.EdbInfoType {
+	case 0:
+		var condition string
+		var pars []interface{}
+		condition += " AND edb_info_id=? "
+		pars = append(pars, edbInfo.EdbInfoId)
+
+		//获取来源指标的数据
+		dataList, err = models.GetEdbDataListAll(condition, pars, edbInfo.Source, 1)
+	case 1:
+		dataList, err = models.GetPredictEdbDataListAllByStartDate(edbInfo, 1, "")
+	default:
+		br.Msg = "获取失败"
+		br.ErrMsg = fmt.Sprint("获取失败,指标base类型异常", edbInfo.EdbInfoType)
+		return
+	}
+
+	resp := models.EdbInfoDetailResp{
+		SourceName:    edbInfo.SourceName,
+		EdbCode:       edbInfo.EdbCode,
+		EdbName:       edbInfo.EdbName,
+		EdbNameSource: edbInfo.EdbNameSource,
+		Frequency:     edbInfo.Frequency,
+		Unit:          edbInfo.Unit,
+		StartDate:     edbInfo.StartDate,
+		EndDate:       edbInfo.EndDate,
+		UniqueCode:    edbInfo.UniqueCode,
+		CreateTime:    edbInfo.CreateTime,
+		ModifyTime:    edbInfo.ModifyTime,
+		MinValue:      edbInfo.MinValue,
+		MaxValue:      edbInfo.MaxValue,
+		EdbNameEn:     edbInfo.EdbNameEn,
+		UnitEn:        edbInfo.UnitEn,
+		LatestDate:    edbInfo.LatestDate,
+		LatestValue:   edbInfo.LatestValue,
+		ChartImage:    edbInfo.ChartImage,
+		DataList:      dataList,
+	}
+
+	br.Data = resp
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+}

+ 36 - 0
models/edb_info.go

@@ -122,6 +122,14 @@ func GetEdbInfoById(edbInfoId int) (item *EdbInfo, err error) {
 	return
 }
 
+// GetEdbInfoByUniqueCode 根据指标唯一编码获取指标信息
+func GetEdbInfoByUniqueCode(uniqueCode string) (item *EdbInfo, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM edb_info WHERE unique_code=? `
+	err = o.Raw(sql, uniqueCode).QueryRow(&item)
+	return
+}
+
 // GetEdbInfoByIdList 根据指标id列表获取指标信息
 func GetEdbInfoByIdList(edbInfoIdList []int) (items []*EdbInfo, err error) {
 	num := len(edbInfoIdList)
@@ -976,3 +984,31 @@ func GetEdbInfoItemByCondition(condition string, pars []interface{}) (item *EdbI
 	err = o.Raw(sql, pars).QueryRow(&item)
 	return
 }
+
+// EdbInfoDetailReq 指标详情请求
+type EdbInfoDetailReq struct {
+	UniqueCode string `description:"指标唯一编码"`
+}
+
+// EdbInfoDetailResp 指标详情返回
+type EdbInfoDetailResp struct {
+	SourceName    string `description:"来源名称"`
+	EdbCode       string `description:"指标编码"`
+	EdbName       string `description:"指标名称"`
+	EdbNameSource string `description:"指标名称来源"`
+	Frequency     string `description:"频率"`
+	Unit          string `description:"单位"`
+	StartDate     string `description:"起始日期"`
+	EndDate       string `description:"终止日期"`
+	UniqueCode    string `description:"指标唯一编码"`
+	CreateTime    time.Time
+	ModifyTime    time.Time
+	MinValue      float64 `description:"指标最小值"`
+	MaxValue      float64 `description:"指标最大值"`
+	EdbNameEn     string  `description:"英文指标名称"`
+	UnitEn        string  `description:"英文单位"`
+	LatestDate    string  `description:"数据最新日期"`
+	LatestValue   float64 `description:"数据最新值"`
+	ChartImage    string  `description:"图表图片"`
+	DataList      []*EdbInfoSearchData
+}

+ 9 - 0
routers/commentsRouter.go

@@ -34,6 +34,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_edb_lib/controllers/open:EdbInfoController"] = append(beego.GlobalControllerRouter["hongze/hongze_edb_lib/controllers/open:EdbInfoController"],
+        beego.ControllerComments{
+            Method: "Detail",
+            Router: `/edb/detail`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_edb_lib/controllers:BaiinfoController"] = append(beego.GlobalControllerRouter["hongze/hongze_edb_lib/controllers:BaiinfoController"],
         beego.ControllerComments{
             Method: "Add",

+ 6 - 0
routers/router.go

@@ -11,6 +11,7 @@ import (
 	beego "github.com/beego/beego/v2/server/web"
 	"hongze/hongze_edb_lib/controllers"
 	"hongze/hongze_edb_lib/controllers/future_good"
+	"hongze/hongze_edb_lib/controllers/open"
 )
 
 func init() {
@@ -165,6 +166,11 @@ func init() {
 				&controllers.FuBaoController{},
 			),
 		),
+		beego.NSNamespace("/open",
+			beego.NSInclude(
+				&open.EdbInfoController{},
+			),
+		),
 	)
 	beego.AddNamespace(ns)
 }