@@ -335,10 +335,22 @@ def find_by_type(article_type, start, count):
335335 # 生成跟踪ID
336336 trace_id = get_articles_trace_id ()
337337
338+ # 确保 article_type 是整数类型
339+ try :
340+ article_type_int = int (article_type )
341+ except (ValueError , TypeError ):
342+ # 记录类型转换异常
343+ articles_logger .error ("文章类型参数转换异常" , {
344+ 'trace_id' : trace_id ,
345+ 'article_type' : article_type ,
346+ 'error' : f"无法将 { article_type } 转换为整数"
347+ })
348+ return []
349+
338350 # 记录查询开始
339351 articles_logger .info ("开始按类型查询文章" , {
340352 'trace_id' : trace_id ,
341- 'article_type' : article_type ,
353+ 'article_type' : article_type_int ,
342354 'start' : start ,
343355 'count' : count
344356 })
@@ -347,14 +359,17 @@ def find_by_type(article_type, start, count):
347359 # 执行查询
348360 query_start_time = time .time ()
349361 result = dbsession .query (Article , Users .nickname ).join (Users , Users .userid == Article .userid ) \
350- .filter (Article .hidden == 0 , Article .drafted == 0 , Article .checked == 1 , Article .type == article_type ) \
362+ .filter (Article .hidden == 0 ,
363+ Article .drafted == 0 ,
364+ # Article.checked == 1,
365+ Article .type == article_type_int ) \
351366 .order_by (Article .articleid .desc ()).limit (count ).offset (start ).all ()
352367 query_end_time = time .time ()
353368
354369 # 记录查询结果
355370 articles_logger .info ("按类型查询文章成功" , {
356371 'trace_id' : trace_id ,
357- 'article_type' : article_type ,
372+ 'article_type' : article_type_int ,
358373 'start' : start ,
359374 'count' : count ,
360375 'result_count' : len (result ) if result else 0 ,
@@ -366,7 +381,7 @@ def find_by_type(article_type, start, count):
366381 # 记录异常
367382 articles_logger .error ("按类型查询文章异常" , {
368383 'trace_id' : trace_id ,
369- 'article_type' : article_type ,
384+ 'article_type' : article_type_int ,
370385 'start' : start ,
371386 'count' : count ,
372387 'error' : str (e ),
@@ -381,25 +396,37 @@ def get_count_by_type(article_type):
381396 # 生成跟踪ID
382397 trace_id = get_articles_trace_id ()
383398
399+ # 确保 article_type 是整数类型
400+ try :
401+ article_type_int = int (article_type )
402+ except (ValueError , TypeError ):
403+ # 记录类型转换异常
404+ articles_logger .error ("文章类型参数转换异常" , {
405+ 'trace_id' : trace_id ,
406+ 'article_type' : article_type ,
407+ 'error' : f"无法将 { article_type } 转换为整数"
408+ })
409+ return 0
410+
384411 # 记录开始统计
385412 articles_logger .info ("开始按类型统计文章数量" , {
386413 'trace_id' : trace_id ,
387- 'article_type' : article_type
414+ 'article_type' : article_type_int
388415 })
389416
390417 try :
391418 # 执行统计查询
392419 query_start_time = time .time ()
393420 count = dbsession .query (Article ).filter (Article .hidden == 0 ,
394- Article .drafted == 0 ,
395- Article .checked == 1 ,
396- Article .type == article_type ).count ()
421+ Article .drafted == 0 ,
422+ # Article.checked == 1,
423+ Article .type == article_type_int ).count ()
397424 query_end_time = time .time ()
398425
399426 # 记录统计结果
400427 articles_logger .info ("按类型统计文章数量成功" , {
401428 'trace_id' : trace_id ,
402- 'article_type' : article_type ,
429+ 'article_type' : article_type_int ,
403430 'count' : count ,
404431 'query_time_ms' : round ((query_end_time - query_start_time ) * 1000 , 2 )
405432 })
@@ -409,7 +436,7 @@ def get_count_by_type(article_type):
409436 # 记录异常
410437 articles_logger .error ("按类型统计文章数量异常" , {
411438 'trace_id' : trace_id ,
412- 'article_type' : article_type ,
439+ 'article_type' : article_type_int ,
413440 'error' : str (e ),
414441 'error_type' : type (e ).__name__
415442 })
0 commit comments