feat: bank card.

This commit is contained in:
tx7do
2023-10-18 00:04:28 +08:00
parent 9ca6286281
commit 92be8b878a
2 changed files with 14 additions and 14 deletions

View File

@@ -662,7 +662,7 @@ func QueryBankByCardNumber(cardNo string) *BankCard {
return nil return nil
} }
for i := 6; i <= 8; i++ { for i := 8; i >= 6; i-- {
cardBin := cardNo[0:i] cardBin := cardNo[0:i]
bin, _ := strconv.Atoi(cardBin) bin, _ := strconv.Atoi(cardBin)
bank := defaultDatabase.queryBankCard(uint32(bin)) bank := defaultDatabase.queryBankCard(uint32(bin))

View File

@@ -4,6 +4,7 @@ import (
"context" "context"
"database/sql" "database/sql"
_ "embed" _ "embed"
"errors"
"fmt" "fmt"
"log" "log"
@@ -129,16 +130,16 @@ func (d *Database) UpdateBankCardTableCardName(bin uint32, cardName string) {
// queryBank 查询银行信息 // queryBank 查询银行信息
func (d *Database) queryBank(bankCode string) *Bank { func (d *Database) queryBank(bankCode string) *Bank {
strSql := fmt.Sprintf("SELECT id, bank_code, bank_name FROM banks WHERE bank_code = '%s' LIMIT 1;", bankCode) strSql := fmt.Sprintf("SELECT id, bank_code, bank_name FROM banks WHERE bank_code = '%s' LIMIT 1;", bankCode)
rows, err := d.db.Query(strSql) row := d.db.QueryRow(strSql)
if err != nil { if row == nil {
log.Fatal("query bank failed:", err)
return nil return nil
} }
defer rows.Close()
rows.Next()
var bank Bank var bank Bank
if err = rows.Scan(&bank.Id, &bank.BankCode, &bank.BankName); err != nil { if err := row.Scan(&bank.Id, &bank.BankCode, &bank.BankName); err != nil {
if errors.Is(err, sql.ErrNoRows) {
return nil
}
log.Fatal("scan bank failed:", err) log.Fatal("scan bank failed:", err)
return nil return nil
} }
@@ -151,20 +152,19 @@ func (d *Database) queryBank(bankCode string) *Bank {
// queryBankCard 查询银行卡信息 // queryBankCard 查询银行卡信息
func (d *Database) queryBankCard(bin uint32) *BankCard { func (d *Database) queryBankCard(bin uint32) *BankCard {
strSql := fmt.Sprintf("SELECT bin, bank_code, card_name, card_type, card_length FROM bank_cards WHERE bin = '%d' LIMIT 1;", bin) strSql := fmt.Sprintf("SELECT bin, bank_code, card_name, card_type, card_length FROM bank_cards WHERE bin = '%d' LIMIT 1;", bin)
rows, err := d.db.Query(strSql) row := d.db.QueryRow(strSql)
if err != nil { if row == nil {
log.Fatal("query bank card failed:", err)
return nil return nil
} }
defer rows.Close()
rows.Next()
var bankCard BankCard var bankCard BankCard
if err = rows.Scan(&bankCard.BIN, &bankCard.BankCode, &bankCard.CardName, &bankCard.CardType, &bankCard.CardLength); err != nil { if err := row.Scan(&bankCard.BIN, &bankCard.BankCode, &bankCard.CardName, &bankCard.CardType, &bankCard.CardLength); err != nil {
if errors.Is(err, sql.ErrNoRows) {
return nil
}
log.Fatal("scan bank card failed:", err) log.Fatal("scan bank card failed:", err)
return nil return nil
} }
rows.Close()
bank := d.queryBank(bankCard.BankCode) bank := d.queryBank(bankCard.BankCode)
if bank != nil { if bank != nil {