diff --git a/iniDataForLinux b/iniDataForLinux index 0744b9d..bf81f0f 100755 Binary files a/iniDataForLinux and b/iniDataForLinux differ diff --git a/iniDataForMacOs b/iniDataForMacOs index 5b5475b..bb609f5 100755 Binary files a/iniDataForMacOs and b/iniDataForMacOs differ diff --git a/main.go b/main.go index ee59961..787d3ea 100644 --- a/main.go +++ b/main.go @@ -53,7 +53,6 @@ func init() { applogger.Info(fmt.Sprintf("程序启动,加载%s环境,尝试执行...", env)) go downloadDecompression() // 启动立即执行一次数据下载、处理 go queryBatchState() - } func main() { @@ -436,78 +435,75 @@ func downloadDecompression() { func batchInsert(fileName string, isLastCall bool, excludedFilename string) int { start := time.Now() - db, _ := connectToDB() + db, err := connectToDB() + handleError(err, "连接数据库失败") + file, err := os.Open(path.Join(executableDir, txtPath, fileName)) - if err != nil { - return -1 - } else { - defer file.Close() - reader := csv.NewReader(bufio.NewReader(file)) - reader.Read() - batchRows := 0 - for { - record, err := reader.Read() - if err != nil { - break - } + handleError(err, fmt.Sprintf("打开文件失败: %s", fileName)) + defer file.Close() - TargetsMember, _ := strconv.ParseUint(strings.TrimSpace(record[2]), 10, 32) - templateID, _ := strconv.ParseUint(strings.TrimSpace(record[3]), 10, 32) - status := 1 - - t := time.Now() - s := t.Format("2006-01-02 15:04:05") - var batchName, dataFileName string - - if isLastCall { - batchName = fmt.Sprintf("lastCall-%s-%s-%s", record[1], record[0], excludedFilename) - dataFileName = fmt.Sprintf("lastCall-%s", excludedFilename) - } else { - batchName = fmt.Sprintf("%s-%s", record[1], record[0]) - dataFileName = fileName[:len(fileName)-10] - } - - batchParams := BatchParams{ - BatchName: batchName, - BatchDesc: record[4], - IsPersonal: 0, - Message: record[4], - IsInternational: 0, - IsSchedule: 0, //点发 - ScheduleTime: s, - Token: token, - } - - sid, err := CreateBatch(batchParams) - if err != nil { - fmt.Println(err) - return -1 - } - - batch := Batch{ - CommunicationChannelID: record[0], - CommunicationName: batchName, - TargetsMember: uint(TargetsMember), - TemplateID: uint(templateID), - Content: record[4], - Status: status, - DataFileName: dataFileName, - Sid: sid, - } - db.Create(&batch) - batchRows++ + reader := csv.NewReader(bufio.NewReader(file)) + reader.Read() + batchRows := 0 + for { + record, err := reader.Read() + if err != nil { + break } - time.Sleep(time.Second) - elapsed := time.Since(start) - subject := "丝芙兰批次文件处理完成" - body := fmt.Sprintf("批次数:%d;\n批次文件:%s;\n处理完成,请前往管理平台查看处理。", batchRows, fileName) - SendEmail(subject, body) + TargetsMember, _ := strconv.ParseUint(strings.TrimSpace(record[2]), 10, 32) + templateID, _ := strconv.ParseUint(strings.TrimSpace(record[3]), 10, 32) + status := 1 - applogger.Info(fmt.Sprintf("%s(批次文件)入库完成", fileName)) - applogger.Info(fmt.Sprintf("%s(批次文件)执行时间%s 插入批次次数:%d", fileName, elapsed, batchRows)) - return 0 + s := time.Now().Format("2006-01-02 15:04:05") + var batchName, dataFileName string + + if isLastCall { + batchName = fmt.Sprintf("lastCall-%s-%s-%s", record[1], record[0], excludedFilename) + dataFileName = fmt.Sprintf("lastCall-%s", excludedFilename) + } else { + batchName = fmt.Sprintf("%s-%s", record[1], record[0]) + dataFileName = fileName[:len(fileName)-10] + } + + batchParams := BatchParams{ + BatchName: batchName, + BatchDesc: record[4], + IsPersonal: 0, + Message: record[4], + IsInternational: 0, + IsSchedule: 0, + ScheduleTime: s, + Token: token, + } + + sid, err := CreateBatch(batchParams) + handleError(err, "创建批次失败") + + batch := Batch{ + CommunicationChannelID: record[0], + CommunicationName: batchName, + TargetsMember: uint(TargetsMember), + TemplateID: uint(templateID), + Content: record[4], + Status: status, + DataFileName: dataFileName, + Sid: sid, + } + db.Create(&batch) + batchRows++ } + time.Sleep(time.Second) + elapsed := time.Since(start) + + subject := "丝芙兰批次文件处理完成" + body := fmt.Sprintf("批次数:%d;\n批次文件:%s;\n处理完成,请前往管理平台查看处理。", batchRows, fileName) + SendEmail(subject, body) + + applogger.Info(fmt.Sprintf("%s(批次文件)入库完成", fileName)) + applogger.Info(fmt.Sprintf("%s(批次文件)执行时间%s 插入批次次数:%d", fileName, elapsed, batchRows)) + return 0 + } func CreateBatch(batchParams BatchParams) (int, error) {