浏览代码

修改克拉克森bug

317699326@qq.com 3 月之前
父节点
当前提交
ed772a51f4
共有 5 个文件被更改,包括 43 次插入26 次删除
  1. 9 5
      controllers/base_from_clarksons.go
  2. 1 0
      go.mod
  3. 22 17
      models/base_from_clarksons.go
  4. 5 4
      models/db.go
  5. 6 0
      utils/config.go

+ 9 - 5
controllers/base_from_clarksons.go

@@ -35,7 +35,7 @@ func (this *ClarksonsDataController) ClarksonsData() {
 		return
 	}
 
-	var dateMap = make(map[int]string)
+	var dateMap = make(map[int]time.Time)
 	var indexMap = make(map[string]*models.BaseFromClarksonsIndex)
 	//var indexMap = make(map[string]string)
 	var itemsIndex []*models.BaseFromClarksonsData
@@ -105,7 +105,7 @@ func (this *ClarksonsDataController) ClarksonsData() {
 
 				// 数据及日期
 				if i > 5 {
-					var date string
+					var date time.Time
 					if len(cells) == 0 {
 						break
 					}
@@ -122,7 +122,8 @@ func (this *ClarksonsDataController) ClarksonsData() {
 										fmt.Println("解析时间字符串出错:", err)
 										return
 									}
-									date = dataTime.Format(utils.FormatDate)
+									//date = dataTime.Format(utils.FormatDate)
+									date = dataTime
 								}
 								dateMap[k] = date
 							}
@@ -145,8 +146,11 @@ func (this *ClarksonsDataController) ClarksonsData() {
 				}
 			}
 			if len(itemsIndex) > 2 {
-				time1, _ := time.Parse(utils.FormatDate, itemsIndex[0].DataTime)
-				time2, _ := time.Parse(utils.FormatDate, itemsIndex[1].DataTime)
+				//time1, _ := time.Parse(utils.FormatDate, itemsIndex[0].DataTime)
+				//time2, _ := time.Parse(utils.FormatDate, itemsIndex[1].DataTime)
+
+				time1 := itemsIndex[0].DataTime
+				time2 := itemsIndex[1].DataTime
 				diff := time2.Sub(time1).Hours() / 24
 
 				if diff < 5 {

+ 1 - 0
go.mod

@@ -10,6 +10,7 @@ require (
 	github.com/go-redis/redis/v8 v8.11.5
 	github.com/go-sql-driver/mysql v1.8.1
 	github.com/gonum/stat v0.0.0-20181125101827-41a0da705a5b
+	github.com/lib/pq v1.10.5
 	github.com/mozillazg/go-pinyin v0.20.0
 	github.com/nosixtools/solarlunar v0.0.0-20211112060703-1b6dea7b4a19
 	github.com/olivere/elastic/v7 v7.0.32

+ 22 - 17
models/base_from_clarksons.go

@@ -10,13 +10,13 @@ import (
 )
 
 type BaseFromClarksonsIndex struct {
-	BaseFromClarksonsIndexId int       `orm:"pk"`
-	ClassifyId               int       `description:"指标分类id"`
-	IndexCode                string    `description:"指标编码"`
-	IndexName                string    `description:"指标名称"`
-	Unit                     string    `description:"单位"`
-	Frequency                string    `description:"频度"`
-	Sort                     int       `description:"排序"`
+	BaseFromClarksonsIndexId int    `orm:"pk"`
+	ClassifyId               int    `description:"指标分类id"`
+	IndexCode                string `description:"指标编码"`
+	IndexName                string `description:"指标名称"`
+	Unit                     string `description:"单位"`
+	Frequency                string `description:"频度"`
+	Sort                     int    `description:"排序"`
 	CreateTime               time.Time
 	ModifyTime               time.Time
 }
@@ -25,7 +25,7 @@ type BaseFromClarksonsData struct {
 	BaseFromClarksonsDataId  int       `orm:"column(base_from_clarksons_data_id);pk"`
 	BaseFromClarksonsIndexId int       `description:"指标id"`
 	IndexCode                string    `description:"指标编码"`
-	DataTime                 string    `description:"数据日期"`
+	DataTime                 time.Time `description:"数据日期"`
 	Value                    string    `description:"数据值"`
 	CreateTime               time.Time `description:"创建时间"`
 	ModifyTime               time.Time `description:"修改时间"`
@@ -79,18 +79,22 @@ func AddEdbDataFromClarksons(edbCode string) (err error) {
 	addSql := ` INSERT INTO edb_data_clarksons(edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	existMap := make(map[string]string)
 	for _, sv := range coalBaseDataAll {
-		eDate := sv.DataTime
+		eDate := sv.DataTime.Format(utils.FormatDate)
 		var timeStr string
 		var dataTime time.Time
 		var sDataTime string
 		var timestamp int64
 
-		sDataTime = eDate
-		dataTime, err = time.ParseInLocation(utils.FormatDate, eDate, time.Local)
-		if err != nil {
-			fmt.Println("time.Parse Err:" + eDate)
-			return err
-		}
+		sDataTime = sv.DataTime.Format(utils.FormatDate)
+		//dataTime, err = time.ParseInLocation(utils.FormatDate, eDate, time.Local)
+		//fmt.Println(edbCode, dataTime, err)
+		//fmt.Println(eDate)
+		//fmt.Println(sDataTime)
+		//
+		//if err != nil {
+		//	fmt.Println("time.Parse Err:" + eDate)
+		//	return err
+		//}
 		timestamp = dataTime.UnixNano() / 1e6
 		timeStr = fmt.Sprintf("%d", timestamp)
 
@@ -110,6 +114,7 @@ func AddEdbDataFromClarksons(edbCode string) (err error) {
 		utils.FileLog.Info("addSql:" + addSql)
 		_, err = o.Raw(addSql).Exec()
 		if err != nil {
+			fmt.Println("o.Raw(addSql).Exec() Err:" + err.Error())
 			return err
 		}
 	}
@@ -185,8 +190,8 @@ func RefreshEdbDataFromClarksons(edbInfoId int, edbCode, startDate string) (err
 		value = strings.Replace(v.Value, "%", "", -1)
 		item := v
 		itemValue := value
-		if _, ok := existMap[v.DataTime]; !ok {
-			eDate := item.DataTime
+		if _, ok := existMap[v.DataTime.Format(utils.FormatDate)]; !ok {
+			eDate := item.DataTime.Format(utils.FormatDate)
 			var timeStr string
 			var dataTime time.Time
 			var sDataTime string

+ 5 - 4
models/db.go

@@ -11,24 +11,25 @@ import (
 
 	"github.com/beego/beego/v2/client/orm"
 	_ "github.com/go-sql-driver/mysql"
+	_ "github.com/lib/pq"
 )
 
 func init() {
-	_ = orm.RegisterDataBase("default", "mysql", utils.MYSQL_URL)
+	_ = orm.RegisterDataBase("default", utils.DBDRIVER_NAME, utils.MYSQL_URL)
 	orm.SetMaxIdleConns("default", 50)
 	orm.SetMaxOpenConns("default", 100)
 
 	db, _ := orm.GetDB("default")
 	db.SetConnMaxLifetime(10 * time.Minute)
 
-	_ = orm.RegisterDataBase("edb", "mysql", utils.MYSQL_URL_EDB)
+	_ = orm.RegisterDataBase("edb", utils.DBDRIVER_NAME, utils.MYSQL_URL_EDB)
 	orm.SetMaxIdleConns("edb", 50)
 	orm.SetMaxOpenConns("edb", 100)
 
 	edb_db, _ := orm.GetDB("edb")
 	edb_db.SetConnMaxLifetime(10 * time.Minute)
 
-	_ = orm.RegisterDataBase("gl", "mysql", utils.MYSQL_URL_GL)
+	_ = orm.RegisterDataBase("gl", utils.DBDRIVER_NAME, utils.MYSQL_URL_GL)
 	orm.SetMaxIdleConns("gl", 50)
 	orm.SetMaxOpenConns("gl", 100)
 
@@ -37,7 +38,7 @@ func init() {
 
 	// master库
 	{
-		_ = orm.RegisterDataBase("master", "mysql", utils.MYSQL_URL_MASTER)
+		_ = orm.RegisterDataBase("master", utils.DBDRIVER_NAME, utils.MYSQL_URL_MASTER)
 		orm.SetMaxIdleConns("master", 50)
 		orm.SetMaxOpenConns("master", 100)
 

+ 6 - 0
utils/config.go

@@ -26,6 +26,7 @@ var (
 	PYTHON_MONGO_DATABASE       string // python链接mongo的库名
 	PYTHON_MONGO_AUTH_MECHANISM string // python认证机制
 	PYTHON_PATH                 string // python可执行文件地址
+	DBDRIVER_NAME               string //数据库驱动
 
 	REDIS_CACHE string //缓存地址
 	//Rc          *cache.Cache //redis缓存
@@ -161,6 +162,11 @@ func init() {
 
 	PYTHON_PATH = config["python_path"]
 
+	DBDRIVER_NAME = config["db_driver_name"]
+	if DBDRIVER_NAME == "" {
+		DBDRIVER_NAME = "mysql"
+	}
+
 	REDIS_CACHE = config["beego_cache"]
 	if len(REDIS_CACHE) <= 0 {
 		panic("redis链接参数没有配置")