fix: GetEnabledTokens优先返回有login_name的记录, 代码去重

This commit is contained in:
ShenQiLun 2026-06-30 13:31:18 +08:00
parent fc9bd41b6d
commit 804dfb6812

View File

@ -204,8 +204,18 @@ func (r *TokenRepository) Delete(id int64) error {
} }
// GetEnabledTokens 获取所有启用状态的Token // GetEnabledTokens 获取所有启用状态的Token
// 优先返回有 login_name 的记录(老的空 login_name 记录被忽略)
func (r *TokenRepository) GetEnabledTokens() ([]*KfzToken, error) { func (r *TokenRepository) GetEnabledTokens() ([]*KfzToken, error) {
query := `SELECT id, login_name, username, password, token, is_enable FROM kfz_token WHERE is_enable = 1 ORDER BY id ASC` // 先查有无 login_name 不为空的记录
var hasLoginName int
database.DB.QueryRow("SELECT COUNT(*) FROM kfz_token WHERE is_enable = 1 AND login_name != ''").Scan(&hasLoginName)
var query string
if hasLoginName > 0 {
query = `SELECT id, login_name, username, password, token, is_enable FROM kfz_token WHERE is_enable = 1 AND login_name != '' ORDER BY id ASC`
} else {
query = `SELECT id, login_name, username, password, token, is_enable FROM kfz_token WHERE is_enable = 1 ORDER BY id ASC`
}
rows, err := database.DB.Query(query) rows, err := database.DB.Query(query)
if err != nil { if err != nil {