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("数据写入成功...") }