ziwen 3 年之前
父节点
当前提交
e911f33363
共有 1 个文件被更改,包括 95 次插入16 次删除
  1. 95 16
      models/base_from_coal.go

+ 95 - 16
models/base_from_coal.go

@@ -71,18 +71,60 @@ func AddEdbDataFromCoal(edbCode string) (err error) {
 	existMap := make(map[string]string)
 	for _, sv := range coalBaseDataAll {
 		eDate := sv.DataTime
-		dataTime, err := time.Parse(utils.FormatDate, eDate)
-		if err != nil {
-			fmt.Println("time.Parse Err:" + eDate)
-			return err
+		var timeStr string
+		var dataTime time.Time
+		var sDataTime string
+		var timestamp int64
+		if suffix == "firm_index"{
+			syear := eDate[:4]
+			year,_ := strconv.Atoi(syear)
+			smonth := eDate[7:]
+			smonth = strings.Split(smonth, "月份")[0]
+			month,_ :=strconv.Atoi(smonth)
+			var day int
+			if strings.Contains(eDate,"上旬"){
+				day = 15
+				currentLocation := time.Now().Location()
+				dataTime = time.Date(year, time.Month(month), day,0,0,0,0,currentLocation)
+				sDataTime = dataTime.Format(utils.FormatDate)
+				timestamp = dataTime.UnixNano() / 1e6
+				timeStr = fmt.Sprintf("%d", timestamp)
+			} else if strings.Contains(eDate,"中旬") {
+				day = 25
+				currentLocation := time.Now().Location()
+				dataTime = time.Date(year, time.Month(month), day,0,0,0,0,currentLocation)
+				sDataTime = dataTime.Format(utils.FormatDate)
+				timestamp = dataTime.UnixNano() / 1e6
+				timeStr = fmt.Sprintf("%d", timestamp)
+			}else {
+				currentLocation := time.Now().Location()
+				firstOfMonth := time.Date(year, time.Month(month),1,0,0,0,0,currentLocation)
+				dataTime = firstOfMonth.AddDate(0,1,-1)
+				sDataTime = dataTime.Format(utils.FormatDate)
+				timestamp = dataTime.UnixNano() / 1e6
+				timeStr = fmt.Sprintf("%d", timestamp)
+			}
+		}else {
+			sDataTime = eDate
+			dataTime, err = time.Parse(utils.FormatDate, eDate)
+			if err != nil {
+				fmt.Println("time.Parse Err:" + eDate)
+				return err
+			}
+			timestamp = dataTime.UnixNano() / 1e6
+			timeStr = fmt.Sprintf("%d", timestamp)
 		}
-		timestamp := dataTime.UnixNano() / 1e6
-		timeStr := fmt.Sprintf("%d", timestamp)
-		if _, ok := existMap[eDate]; !ok {
-			addSql += GetAddSql("0", edbCode, eDate, timeStr, sv.DealValue)
+
+		value := strings.Replace(sv.DealValue,"%","",-1)
+		if _, ok := existMap[sDataTime]; !ok {
+			addSql += GetAddSql("0", edbCode, sDataTime, timeStr, value)
+			fmt.Println("edbCode:", edbCode)
+			fmt.Println("sDataTime:", sDataTime)
+			fmt.Println("timeStr:", timeStr)
+			fmt.Println("value:", value)
 			isAdd = true
 		}
-		existMap[eDate] = sv.DealValue
+		existMap[eDate] = value
 	}
 	if isAdd {
 		addSql = strings.TrimRight(addSql, ",")
@@ -153,23 +195,60 @@ func RefreshEdbDataFromCoal(edbInfoId int, edbCode, startDate string) (err error
 	var isAdd bool
 	for _, v := range glDataList {
 		var value string
-		value = v.DealValue
+		value = strings.Replace(v.DealValue,"%","",-1)
 		item := v
 		itemValue := value
 		if _, ok := existMap[v.DataTime]; !ok {
 			eDate := item.DataTime
-			sValue := itemValue
-			if sValue != "" {
-				dataTime, err := time.Parse(utils.FormatDate, eDate)
+			var timeStr string
+			var dataTime time.Time
+			var sDataTime string
+			var timestamp int64
+			if suffix == "firm_index"{
+				syear := eDate[:4]
+				year,_ := strconv.Atoi(syear)
+				smonth := eDate[7:]
+				smonth = strings.Split(smonth, "月份")[0]
+				month,_ :=strconv.Atoi(smonth)
+				var day int
+				if strings.Contains(eDate,"上旬"){
+					day = 15
+					currentLocation := time.Now().Location()
+					dataTime = time.Date(year, time.Month(month), day,0,0,0,0,currentLocation)
+					sDataTime = dataTime.Format(utils.FormatDate)
+					timestamp = dataTime.UnixNano() / 1e6
+					timeStr = fmt.Sprintf("%d", timestamp)
+				} else if strings.Contains(eDate,"中旬") {
+					day = 25
+					currentLocation := time.Now().Location()
+					dataTime = time.Date(year, time.Month(month), day,0,0,0,0,currentLocation)
+					sDataTime = dataTime.Format(utils.FormatDate)
+					timestamp = dataTime.UnixNano() / 1e6
+					timeStr = fmt.Sprintf("%d", timestamp)
+				}else {
+					currentLocation := time.Now().Location()
+					firstOfMonth := time.Date(year, time.Month(month),1,0,0,0,0,currentLocation)
+					dataTime = firstOfMonth.AddDate(0,1,-1)
+					sDataTime = dataTime.Format(utils.FormatDate)
+					timestamp = dataTime.UnixNano() / 1e6
+					timeStr = fmt.Sprintf("%d", timestamp)
+				}
+			}else {
+				sDataTime = eDate
+				dataTime, err = time.Parse(utils.FormatDate, eDate)
 				if err != nil {
+					fmt.Println("time.Parse Err:" + eDate)
 					return err
 				}
-				timestamp := dataTime.UnixNano() / 1e6
-				timeStr := fmt.Sprintf("%d", timestamp)
+				timestamp = dataTime.UnixNano() / 1e6
+				timeStr = fmt.Sprintf("%d", timestamp)
+			}
+			sValue := itemValue
+			if sValue != "" {
 				saveValue := sValue
 
 				if findItem, ok := existMap[eDate]; !ok {
-					addSql += GetAddSql(edbInfoIdStr, edbCode, eDate, timeStr, saveValue)
+					addSql += GetAddSql(edbInfoIdStr, edbCode, sDataTime, timeStr, saveValue)
 					isAdd = true
 				} else {
 					if findItem != nil && utils.SubFloatToString(findItem.Value, 30) != sValue {