2026-01-24 20:43:52 +08:00
|
|
|
|
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) {
|
|
|
|
|
|
|
2026-01-24 23:44:25 +08:00
|
|
|
|
//OpenFile读取文件,不存在时则创建
|
|
|
|
|
|
File, err := os.OpenFile(fileName, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
|
2026-01-24 20:43:52 +08:00
|
|
|
|
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("数据写入成功...")
|
|
|
|
|
|
}
|