|
@@ -5,11 +5,11 @@ import (
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
|
"hongze/hongze_edb_lib/services"
|
|
|
"hongze/hongze_edb_lib/utils"
|
|
|
+ "strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-
|
|
|
func AddEdbDataFromWind(edbCode string, item *services.EdbDataFromWind) (err error) {
|
|
|
var errMsg string
|
|
|
o := orm.NewOrm()
|
|
@@ -21,18 +21,15 @@ func AddEdbDataFromWind(edbCode string, item *services.EdbDataFromWind) (err err
|
|
|
|
|
|
var isAdd bool
|
|
|
addSql := ` INSERT INTO edb_data_wind(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
|
|
|
- nowStr := time.Now().Format(utils.FormatDateTime)
|
|
|
for k, v := range item.Dt {
|
|
|
timeStr := fmt.Sprintf("%d", v)
|
|
|
v = v / 1000
|
|
|
t := time.Unix(v, 0)
|
|
|
dateTime := t.Format(utils.FormatDate)
|
|
|
val := item.Close[k]
|
|
|
+ saveVal:=utils.SubFloatToString(val, 20)
|
|
|
+ addSql += GetAddSql("0", edbCode, dateTime, timeStr, saveVal)
|
|
|
|
|
|
- addSql += "("
|
|
|
- addSql += "0," + "'" + edbCode + "'" + "," + "'" + dateTime + "'" + "," + utils.SubFloatToString(val, 20) + "," + "'" + nowStr + "'" +
|
|
|
- "," + "'" + nowStr + "'" + "," + "0" + "," + "'" + timeStr + "'"
|
|
|
- addSql += "),"
|
|
|
isAdd = true
|
|
|
}
|
|
|
|
|
@@ -46,3 +43,59 @@ func AddEdbDataFromWind(edbCode string, item *services.EdbDataFromWind) (err err
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+//刷新wind指标数据
|
|
|
+func RefreshEdbDataFromWind(edbInfoId int, edbCode, startDate string, item *services.EdbDataFromWind) (err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ source := utils.DATA_SOURCE_WIND
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition += " AND edb_info_id=? "
|
|
|
+ pars = append(pars, edbInfoId)
|
|
|
+
|
|
|
+ condition += " AND data_time>=? "
|
|
|
+ pars = append(pars, startDate)
|
|
|
+ existList, err := GetEdbDataByCondition(source, condition, pars)
|
|
|
+ existMap := make(map[string]*EdbInfoSearchData)
|
|
|
+ for _, v := range existList {
|
|
|
+ existMap[v.DataTime] = v
|
|
|
+ }
|
|
|
+ addSql := ` INSERT INTO edb_data_wind(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
|
|
|
+ var isAdd bool
|
|
|
+ addMap := make(map[string]string)
|
|
|
+ edbInfoIdStr := strconv.Itoa(edbInfoId)
|
|
|
+ for k, v := range item.Dt {
|
|
|
+ timeStr := fmt.Sprintf("%d", v)
|
|
|
+ v = v / 1000
|
|
|
+ t := time.Unix(v, 0)
|
|
|
+ dateTime := t.Format(utils.FormatDate)
|
|
|
+ val := item.Close[k]
|
|
|
+ saveVal := utils.SubFloatToString(val, 30)
|
|
|
+
|
|
|
+ if findItem, ok := existMap[dateTime]; !ok {
|
|
|
+ if _, existOk := addMap[dateTime]; !existOk {
|
|
|
+ isAdd = true
|
|
|
+ addSql += GetAddSql(edbInfoIdStr, edbCode, dateTime, timeStr, saveVal)
|
|
|
+ addMap[dateTime] = saveVal
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if findItem != nil && utils.SubFloatToString(findItem.Value, 30) != saveVal {
|
|
|
+ err = ModifyEdbDataById(source, findItem.EdbDataId, saveVal)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if isAdd {
|
|
|
+ addSql = strings.TrimRight(addSql, ",")
|
|
|
+ _, err = o.Raw(addSql).Exec()
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("RefreshEdbDataFromWind add Err", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|