From d636bf502b4814e1ba385a052af81d4b4407c7fd Mon Sep 17 00:00:00 2001 From: yanweidong Date: Sat, 24 Jan 2026 20:43:52 +0800 Subject: [PATCH] add check module --- cmd/check/main.go | 67 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 cmd/check/main.go diff --git a/cmd/check/main.go b/cmd/check/main.go new file mode 100644 index 0000000..bd7e68b --- /dev/null +++ b/cmd/check/main.go @@ -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("数据写入成功...") +}