|
|
@@ -1,10 +1,12 @@
|
|
|
package cronjob
|
|
|
|
|
|
import (
|
|
|
+ "encoding/csv"
|
|
|
"encoding/xml"
|
|
|
"fmt"
|
|
|
"kng_feed_api/helper"
|
|
|
"kng_feed_api/model"
|
|
|
+ "log"
|
|
|
"os"
|
|
|
"path/filepath"
|
|
|
"strconv"
|
|
|
@@ -67,7 +69,7 @@ func CreateXMLFeed() {
|
|
|
yml_catalog.Date = time_now.Format("2006-01-02 15:04")
|
|
|
|
|
|
var shop = &Shop{}
|
|
|
- shop.Name = "ООО \"Княгиня\""
|
|
|
+ shop.Name = "ООО КНЯГИНЯ"
|
|
|
shop.URL = "https://b2bn.kngnn.ru"
|
|
|
|
|
|
for _, value := range categoryRows {
|
|
|
@@ -165,8 +167,45 @@ func CreateXMLFeed() {
|
|
|
fmt.Printf("error: %v\n", err)
|
|
|
} else {
|
|
|
var Header = `<?xml version="1.0" encoding="UTF-8"?>` + "\n"
|
|
|
- var byteXmlText_withHeasder = []byte(Header + string(byteXmlText))
|
|
|
+ var byteXmlTextWithHeader = []byte(Header + string(byteXmlText))
|
|
|
|
|
|
- os.WriteFile(filepath.Join(helper.RootDir(), "feed.xml"), byteXmlText_withHeasder, 0666)
|
|
|
+ os.WriteFile(filepath.Join(helper.RootDir(), "feed.xml"), byteXmlTextWithHeader, 0666)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func CreateCSVDeltaFeed() {
|
|
|
+ rows, err := model.GetAllAvailability()
|
|
|
+ if err != nil {
|
|
|
+ log.Printf("Не удалось получить данные для формирования дельта-фида из базы по причине [%s]", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ file, err := os.Create(filepath.Join(helper.RootDir(), "delta.csv"))
|
|
|
+ if err != nil {
|
|
|
+ log.Printf("Не удалось сформировать пустой файл дельта-фида по причине [%s]", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer file.Close()
|
|
|
+
|
|
|
+ csvWriter := csv.NewWriter(file)
|
|
|
+ csvWriter.Comma = ';'
|
|
|
+
|
|
|
+ defer csvWriter.Flush()
|
|
|
+
|
|
|
+ var records [][]string
|
|
|
+
|
|
|
+ for _, row := range rows {
|
|
|
+ var record []string
|
|
|
+ record = append(record, row.CodeCarCaDe)
|
|
|
+ record = append(record, "0")
|
|
|
+ record = append(record, strconv.Itoa(row.Available))
|
|
|
+
|
|
|
+ records = append(records, record)
|
|
|
+ }
|
|
|
+
|
|
|
+ writeError := csvWriter.WriteAll(records)
|
|
|
+ if writeError != nil {
|
|
|
+ log.Printf("Не удалось сохранить файл дельта-фида на диск по причине [%s]", writeError)
|
|
|
+ return
|
|
|
}
|
|
|
}
|