diff --git a/service/import.go b/service/import.go index f1dd934..32094ae 100644 --- a/service/import.go +++ b/service/import.go @@ -25,7 +25,7 @@ func ImportAliPayCSV(c *gin.Context) { for { lines, err := reader.Read() - if err == io.EOF { + if errors.Is(err, io.EOF) { break } else if err != nil { script.LogError(ledgerConfig.Mail, err.Error()) @@ -36,6 +36,10 @@ func ImportAliPayCSV(c *gin.Context) { script.LogInfo(ledgerConfig.Mail, err.Error()) continue } + if transaction.Account == "" { + script.LogInfo(ledgerConfig.Mail, "Invalid transaction") + continue + } result = append(result, transaction) } else if len(lines) == 12 { transaction, err := importMobileAliPayCSV(lines, currency, currencySymbol) @@ -43,6 +47,10 @@ func ImportAliPayCSV(c *gin.Context) { script.LogInfo(ledgerConfig.Mail, err.Error()) continue } + if transaction.Account == "" { + script.LogInfo(ledgerConfig.Mail, "Invalid transaction") + continue + } result = append(result, transaction) } } @@ -54,7 +62,9 @@ func importBrowserAliPayCSV(lines []string, currency string, currencySymbol stri dateColumn := strings.Fields(lines[2]) status := strings.Trim(lines[15], " ") account := "" - if status == "已收入" { + if status == "" { + account = "" + } else if status == "已收入" { account = "Income:" } else { account = "Expenses:" @@ -79,7 +89,9 @@ func importMobileAliPayCSV(lines []string, currency string, currencySymbol strin dateColumn := strings.Fields(lines[10]) status := strings.Trim(lines[0], " ") account := "" - if status == "支出" { + if status == "" { + account = "" + } else if status == "支出" { account = "Expenses:" } else { account = "Income:"