Browse Source

Merge branch 'fix/mazong' into debug

Roc 1 year ago
parent
commit
2e9ac4cbab

+ 64 - 0
controllers/edb.go

@@ -0,0 +1,64 @@
+package controllers
+
+import (
+	"hongze/hongze_open_api/models/response/edb"
+	"hongze/hongze_open_api/services/edb_data"
+)
+
+// EdbController 指标模块
+type EdbController struct {
+	BaseAuth
+}
+
+// Detail
+// @Title 获取指标详情
+// @Description 图表变更通知的插入点接口
+// @Param   unique_code   query   string  true       "指标唯一编码"
+// @Param	request	body chart.CreatChartCeluePushReq true "type json string"
+// @Success 200 创建成功
+// @router /detail [get]
+func (c *EdbController) Detail() {
+	uniqueCode := c.GetString("unique_code")
+	if uniqueCode == `` {
+		c.FailWithMessage("指标编码必传")
+		return
+	}
+	edbInfoDetail, err, errMsg := edb_data.EdbDetail(uniqueCode)
+	if err != nil {
+		if errMsg == `` {
+			errMsg = "获取失败"
+		}
+		c.FailWithMessage(errMsg)
+		return
+	}
+
+	dataList := make([]edb.EdbInfoSearchData, 0)
+	if edbInfoDetail.DataList != nil && len(edbInfoDetail.DataList) > 0 {
+		for _, data := range edbInfoDetail.DataList {
+			dataList = append(dataList, edb.EdbInfoSearchData{
+				DataTime: data.DataTime,
+				Value:    data.Value,
+			})
+		}
+	}
+	resp := edb.EdbInfoDetailResp{
+		SourceName:  edbInfoDetail.SourceName,
+		EdbCode:     edbInfoDetail.EdbCode,
+		EdbName:     edbInfoDetail.EdbName,
+		Frequency:   edbInfoDetail.Frequency,
+		Unit:        edbInfoDetail.Unit,
+		StartDate:   edbInfoDetail.StartDate,
+		EndDate:     edbInfoDetail.EndDate,
+		UniqueCode:  edbInfoDetail.UniqueCode,
+		MinValue:    edbInfoDetail.MinValue,
+		MaxValue:    edbInfoDetail.MaxValue,
+		EdbNameEn:   edbInfoDetail.EdbNameEn,
+		UnitEn:      edbInfoDetail.UnitEn,
+		LatestDate:  edbInfoDetail.LatestDate,
+		LatestValue: edbInfoDetail.LatestValue,
+		ChartImage:  edbInfoDetail.ChartImage,
+		DataList:    dataList,
+	}
+
+	c.OkDetailed(resp, "获取成功")
+}

BIN
hongze_open_api.exe


+ 70 - 0
models/response/edb/edb_lib.go

@@ -0,0 +1,70 @@
+package edb
+
+import "time"
+
+type BaseResponse struct {
+	Ret         int
+	Msg         string
+	ErrMsg      string
+	ErrCode     string
+	Data        interface{}
+	Success     bool `description:"true 执行成功,false 执行失败"`
+	IsSendEmail bool `json:"-" description:"true 发送邮件,false 不发送邮件"`
+	IsAddLog    bool `json:"-" description:"true 新增操作日志,false 不新增操作日志" `
+}
+
+// BaseEdbInfoDetailResp 指标详情
+type BaseEdbInfoDetailResp 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 `description:"create_time"`
+	ModifyTime    time.Time `description:"modify_time" `
+	MinValue      float64   `description:"指标最小值" `
+	MaxValue      float64   `description:"指标最大值" `
+	EdbNameEn     string    `description:"英文指标名称" `
+	UnitEn        string    `description:"英文单位" `
+	LatestDate    string    `description:"数据最新日期"`
+	LatestValue   float64   `description:"数据最新值" `
+	ChartImage    string    `description:"图表图片" `
+	DataList      []BaseEdbInfoSearchData
+}
+
+// BaseEdbInfoSearchData 数据日期
+type BaseEdbInfoSearchData struct {
+	EdbDataId int     `description:"数据ID"`
+	DataTime  string  `description:"数据日期"`
+	Value     float64 `description:"数据"`
+}
+
+// EdbInfoDetailResp 指标详情
+type EdbInfoDetailResp struct {
+	SourceName  string              `description:"来源名称" json:"source_name"`
+	EdbCode     string              `description:"指标编码" json:"edb_code"`
+	EdbName     string              `description:"指标名称" json:"edb_name"`
+	Frequency   string              `description:"频率" json:"frequency"`
+	Unit        string              `description:"单位" json:"unit"`
+	StartDate   string              `description:"起始日期" json:"start_date"`
+	EndDate     string              `description:"终止日期" json:"end_date"`
+	UniqueCode  string              `description:"指标唯一编码" json:"unique_code"`
+	MinValue    float64             `description:"指标最小值" json:"min_value"`
+	MaxValue    float64             `description:"指标最大值" json:"max_value"`
+	EdbNameEn   string              `description:"英文指标名称" json:"edb_name_en"`
+	UnitEn      string              `description:"英文单位" json:"unit_en"`
+	LatestDate  string              `description:"数据最新日期" json:"latest_date"`
+	LatestValue float64             `description:"数据最新值" json:"latest_value"`
+	ChartImage  string              `description:"图表图片" json:"chart_image"`
+	DataList    []EdbInfoSearchData `json:"data_list"`
+}
+
+// EdbInfoSearchData 数据日期
+type EdbInfoSearchData struct {
+	DataTime string  `description:"数据日期" json:"data_time"`
+	Value    float64 `description:"数据" json:"value"`
+}

+ 9 - 0
routers/commentsRouter.go

@@ -61,6 +61,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_open_api/controllers:EdbController"] = append(beego.GlobalControllerRouter["hongze/hongze_open_api/controllers:EdbController"],
+        beego.ControllerComments{
+            Method: "Detail",
+            Router: `/detail`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_open_api/controllers:EnglishReportController"] = append(beego.GlobalControllerRouter["hongze/hongze_open_api/controllers:EnglishReportController"],
         beego.ControllerComments{
             Method: "PublishNotify",

+ 5 - 0
routers/router.go

@@ -71,6 +71,11 @@ func init() {
 				&controllers.ChartController{},
 			),
 		),
+		web.NSNamespace("/edb",
+			web.NSInclude(
+				&controllers.EdbController{},
+			),
+		),
 	)
 	web.AddNamespace(ns)
 }

+ 79 - 0
services/edb_data/base_edb_lib.go

@@ -0,0 +1,79 @@
+package edb_data
+
+import (
+	"encoding/json"
+	"errors"
+	"fmt"
+	"hongze/hongze_open_api/models/response/edb"
+	"hongze/hongze_open_api/utils"
+	"io/ioutil"
+	"net/http"
+	"strings"
+)
+
+// EdbDetail 指标详情
+func EdbDetail(uniqueCode string) (edbInfoDetail *edb.BaseEdbInfoDetailResp, err error, msg string) {
+	param := make(map[string]interface{})
+	param["UniqueCode"] = uniqueCode
+	urlStr := `open/edb/detail`
+	resp, err := postRefreshEdbData(param, urlStr)
+	if err != nil {
+		return
+	}
+
+	if resp.Ret != 200 {
+		msg = resp.Msg
+		err = errors.New(resp.ErrMsg)
+		return
+	}
+
+	dataBytes, err := json.Marshal(resp.Data)
+	if err != nil {
+		return
+	}
+
+	err = json.Unmarshal(dataBytes, &edbInfoDetail)
+	if err != nil {
+		return
+	}
+	return
+}
+
+// postRefreshEdbData 刷新指标数据
+func postRefreshEdbData(param map[string]interface{}, urlStr string) (resp *edb.BaseResponse, err error) {
+	postUrl := utils.EDB_LIB_URL + urlStr
+	postData, err := json.Marshal(param)
+	if err != nil {
+		return
+	}
+	result, err := HttpPost(postUrl, string(postData), "application/json")
+	if err != nil {
+		return
+	}
+	utils.FileLog.Info("postRefreshEdbData:" + postUrl + ";" + string(postData) + ";result:" + string(result))
+	err = json.Unmarshal(result, &resp)
+	if err != nil {
+		return
+	}
+	return resp, nil
+}
+
+func HttpPost(url, postData string, params ...string) ([]byte, error) {
+	body := ioutil.NopCloser(strings.NewReader(postData))
+	client := &http.Client{}
+	req, err := http.NewRequest("POST", url, body)
+	if err != nil {
+		return nil, err
+	}
+	contentType := "application/x-www-form-urlencoded;charset=utf-8"
+	if len(params) > 0 && params[0] != "" {
+		contentType = params[0]
+	}
+	req.Header.Set("Content-Type", contentType)
+	req.Header.Set("authorization", utils.MD5(utils.APP_EDB_LIB_NAME_EN+utils.EDB_LIB_Md5_KEY))
+	resp, err := client.Do(req)
+	defer resp.Body.Close()
+	b, err := ioutil.ReadAll(resp.Body)
+	fmt.Println("HttpPost:" + string(b))
+	return b, err
+}

+ 11 - 1
utils/config.go

@@ -35,7 +35,7 @@ var (
 	YIDONG_HONGZE_KEY    string //易董加密的盐值
 )
 
-//全时会议账号信息
+// 全时会议账号信息
 var (
 	QsAppID     string
 	QsSecretKey string
@@ -45,6 +45,11 @@ var (
 
 var EnPolicyReportUrl string
 
+// 经济数据库
+var (
+	EDB_LIB_URL string
+)
+
 func init() {
 	tmpRunMode, err := web.AppConfig.String("run_mode")
 	if err != nil {
@@ -98,6 +103,8 @@ func init() {
 		ReportSecret = "vRVFCk182Hpv8CyrHsxaHhA3CgGhh4Uu" //AppSecret
 		YIDONG_HONGZE_KEY = "YIDONG20220816VshIcFonYccA"  //易董加密的盐值
 		EnPolicyReportUrl = "https://en.hzinsights.com/v2api/"
+
+		EDB_LIB_URL = "http://172.19.173.232:8300/edbapi/"
 	} else {
 		ApiLog = log.Init("20060102.api")
 		ResearchReportUrl = "http://advisoryadmin.brilliantstart.cn/xcx_h5/"
@@ -107,6 +114,9 @@ func init() {
 		YIDONG_HONGZE_KEY = "YIDONG20220816QxbNHiYNnnhT"  //易董加密的盐值
 		//EnPolicyReportUrl = "https://beta.internal.hzinsights.com/v2api/"
 		EnPolicyReportUrl = "https://en.hzinsights.com/v2api/"
+
+		//EDB_LIB_URL = "http://8.136.199.33:8300/edbapi/"
+		EDB_LIB_URL = "http://127.0.0.1:8900/edbapi/"
 	}
 
 	//初始化系统用户角色map集合

+ 6 - 0
utils/constants.go

@@ -111,3 +111,9 @@ const HZ_DEFAULT_AVATAR = "https://hzstatic.hzinsights.com/static/yb_wx/hz_defau
 const HZPHONE = "057187186319" //弘则电话
 
 const CLPT_APPID = "XVuGlcyEEVNYVWx5" //策略平台APPID
+
+// EDB_LIB
+var (
+	APP_EDB_LIB_NAME_EN = "hongze_edb_lib"
+	EDB_LIB_Md5_KEY     = "GuRaB6dY1bXOJcwG"
+)