add check module

This commit is contained in:
yanweidong
2026-01-24 20:43:52 +08:00
parent 0e1dcd6f9e
commit d636bf502b

67
cmd/check/main.go Normal file
View File

@@ -0,0 +1,67 @@
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_RDWR|os.O_APPEND|os.O_CREATE, 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("数据写入成功...")
}