Browse Source

Merge branch 'eta/2.0.2' into debug

# Conflicts:
#	controllers/chart.go
#	utils/common.go
Roc 9 months ago
parent
commit
c43e1233b6
6 changed files with 81 additions and 3 deletions
  1. 16 0
      models/business_conf.go
  2. 1 1
      models/chart.go
  3. 13 1
      models/db.go
  4. 5 1
      services/dw_mini/base_mini_lib.go
  5. 40 0
      utils/common.go
  6. 6 0
      utils/config.go

+ 16 - 0
models/business_conf.go

@@ -1,6 +1,7 @@
 package models
 
 import (
+	"eta/eta_chart_lib/utils"
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
 	"html"
@@ -61,3 +62,18 @@ func GetBusinessConfByKey(key string) (item *BusinessConf, err error) {
 	err = o.Raw(sql, key).QueryRow(&item)
 	return
 }
+
+// InitUseMongoConf
+// @Description:
+// @author: Roc
+// @datetime 2024-07-01 13:49:09
+func InitUseMongoConf() {
+	useMongo, e := GetBusinessConfByKey("UseMongo")
+	if e != nil {
+		return
+	}
+
+	if useMongo.ConfVal == `true` {
+		utils.UseMongo = true
+	}
+}

+ 1 - 1
models/chart.go

@@ -145,7 +145,7 @@ type EdbDataList struct {
 // GetEdbDataList 获取指标的数据(日期正序返回)
 func GetEdbDataList(source, subSource, edbInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
 	// 自有数据需要额外处理(从mongo获取)
-	if source == utils.DATA_SOURCE_BUSINESS {
+	if source == utils.DATA_SOURCE_BUSINESS && utils.UseMongo {
 		return getEdbDataListByMongo(source, subSource, edbInfoId, startDate, endDate)
 	}
 

+ 13 - 1
models/db.go

@@ -43,7 +43,7 @@ func init() {
 	initFutureGood()
 
 	// 初始化部分数据表变量(直接init会有顺序问题=_=!)
-	data_manage.InitEdbSourceVar()
+	afterInitTable()
 }
 
 // initFutureGood 注册期货数据 数据表
@@ -55,3 +55,15 @@ func initFutureGood() {
 		new(future_good.ChartInfoFutureGoodProfit), //期货利润图的扩展表
 	)
 }
+
+// afterInitTable
+// @Description: 初始化表结构的的后置操作
+// @author: Roc
+// @datetime 2024-07-01 13:31:09
+func afterInitTable() {
+	// 初始化指标来源配置
+	data_manage.InitEdbSourceVar()
+
+	// 初始化是否启用mongo配置
+	InitUseMongoConf()
+}

+ 5 - 1
services/dw_mini/base_mini_lib.go

@@ -1,6 +1,7 @@
 package dwmini
 
 import (
+	"eta/eta_chart_lib/utils"
 	"fmt"
 	"io"
 	"net/http"
@@ -19,7 +20,10 @@ func HttpPost(url, postData, token string) ([]byte, error) {
 	resp, err := client.Do(req)
 	defer resp.Body.Close()
 	b, err := io.ReadAll(resp.Body)
-	fmt.Println("HttpGet:" + string(b))
+	fmt.Println("HttpPost:" + string(b))
+	str := string(b)
+	str = strings.Trim(str, `"`)
+	b = utils.DesBase64Decrypt([]byte(str), utils.ETA_MINI_DES_KEY)
 	return b, err
 
 }

+ 40 - 0
utils/common.go

@@ -2,6 +2,8 @@ package utils
 
 import (
 	"bufio"
+	"crypto/cipher"
+	"crypto/des"
 	"crypto/hmac"
 	"crypto/md5"
 	"crypto/sha1"
@@ -1210,3 +1212,41 @@ func TimeTransferString(format string, t time.Time) string {
 	}
 	return str
 }
+
+func DesBase64Decrypt(crypted []byte, desKey string) []byte {
+	result, _ := base64.StdEncoding.DecodeString(string(crypted))
+	remain := len(result) % 8
+	if remain > 0 {
+		mod := 8 - remain
+		for i := 0; i < mod; i++ {
+			result = append(result, 0)
+		}
+	}
+	origData, err := TripleDesDecrypt(result, []byte(desKey))
+	if err != nil {
+		panic(any(err))
+	}
+	return origData
+}
+
+// // 3DES解密
+func TripleDesDecrypt(crypted, key []byte) ([]byte, error) {
+	block, err := des.NewTripleDESCipher(key)
+	if err != nil {
+		return nil, err
+	}
+	blockMode := cipher.NewCBCDecrypter(block, key[:8])
+	origData := make([]byte, len(crypted))
+	// origData := crypted
+	blockMode.CryptBlocks(origData, crypted)
+	origData = PKCS5UnPadding(origData)
+	// origData = ZeroUnPadding(origData)
+	return origData, nil
+}
+
+func PKCS5UnPadding(origData []byte) []byte {
+	length := len(origData)
+	// 去掉最后一个字节 unpadding 次
+	unpadding := int(origData[length-1])
+	return origData[:(length - unpadding)]
+}

+ 6 - 0
utils/config.go

@@ -49,6 +49,7 @@ var (
 	APP_EDB_LIB_NAME_EN string
 	EDB_LIB_Md5_KEY     string
 	ETA_MINI_URL        string
+	ETA_MINI_DES_KEY    string
 )
 
 var (
@@ -61,6 +62,10 @@ var (
 	LogMaxDays int //日志最大保留天数
 )
 
+var (
+	UseMongo bool // 是否使用mongo
+)
+
 func init() {
 	tmpRunMode, err := web.AppConfig.String("run_mode")
 	if err != nil {
@@ -137,6 +142,7 @@ func init() {
 		APP_EDB_LIB_NAME_EN = config["app_edb_lib_name_en"]
 		EDB_LIB_Md5_KEY = config["edb_lib_md5_key"]
 		ETA_MINI_URL = config["eta_mini_url"]
+		ETA_MINI_DES_KEY = config["eta_mini_des_key"]
 	}
 	//日志配置
 	{