68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
package main
|
||
|
||
import (
|
||
"encoding/csv"
|
||
"log"
|
||
"os"
|
||
|
||
"git.apinb.com/bsm-sdk/core/utils"
|
||
"git.apinb.com/dataset/stock/internal/config"
|
||
"git.apinb.com/dataset/stock/internal/impl"
|
||
"git.apinb.com/dataset/stock/internal/logic/a"
|
||
"git.apinb.com/dataset/stock/internal/models"
|
||
)
|
||
|
||
var (
|
||
ServiceKey = "stock"
|
||
)
|
||
|
||
func main() {
|
||
// 配置初始化
|
||
config.New(ServiceKey)
|
||
|
||
// 创建实现层
|
||
impl.NewImpl()
|
||
|
||
body := [][]string{}
|
||
for _, code := range a.GetStockCodes() {
|
||
var dCnt int64
|
||
impl.DBService.Model(&models.StockDaily{}).Where("ts_code=?", code).Count(&dCnt)
|
||
var iCnt int64
|
||
impl.DBService.Model(&models.StockIndicator{}).Where("ts_code=?", code).Count(&iCnt)
|
||
var fCnt int64
|
||
impl.DBService.Model(&models.StockFinaIndicator{}).Where("ts_code=?", code).Count(&fCnt)
|
||
|
||
log.Println("Checking...", code, "Daily", dCnt, "Indicator", iCnt, "FinaIndicator", fCnt)
|
||
body = append(body, []string{code, utils.Int2String(int(dCnt)), utils.Int2String(int(iCnt)), utils.Int2String(int(fCnt))})
|
||
}
|
||
|
||
WriterCSV("./result/check.csv", body)
|
||
}
|
||
|
||
// csv文件写入
|
||
func WriterCSV(fileName string, datas [][]string) {
|
||
|
||
//OpenFile读取文件,不存在时则创建
|
||
File, err := os.OpenFile(fileName, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
|
||
if err != nil {
|
||
log.Println("文件打开失败!")
|
||
}
|
||
defer File.Close()
|
||
|
||
//创建写入接口
|
||
WriterCsv := csv.NewWriter(File)
|
||
str := []string{"Code", "Daily", "Indicator", "FinaIndicator"} //需要写入csv的数据,切片类型
|
||
|
||
//写入一条数据,传入数据为切片(追加模式)
|
||
err1 := WriterCsv.Write(str)
|
||
if err1 != nil {
|
||
log.Println("WriterCsv写入文件失败")
|
||
}
|
||
|
||
for _, s := range datas {
|
||
WriterCsv.Write(s)
|
||
}
|
||
WriterCsv.Flush() //刷新,不刷新是无法写入的
|
||
log.Println("数据写入成功...")
|
||
}
|