1+ from sqlalchemy import asc , desc
12from sqlalchemy .orm import Session
23from module_admin .entity .do .log_do import SysOperLog , SysLogininfor
34from module_admin .entity .vo .log_vo import *
45from utils .page_util import PageUtil
6+ from utils .common_util import CamelCaseUtil
57from datetime import datetime , time
68
79
@@ -18,6 +20,12 @@ def get_operation_log_list(cls, db: Session, query_object: OperLogPageQueryModel
1820 :param is_page: 是否开启分页
1921 :return: 操作日志列表信息对象
2022 """
23+ if query_object .is_asc == 'ascending' :
24+ order_by_column = asc (getattr (SysOperLog , CamelCaseUtil .camel_to_snake (query_object .order_by_column ), None ))
25+ elif query_object .is_asc == 'descending' :
26+ order_by_column = desc (getattr (SysOperLog , CamelCaseUtil .camel_to_snake (query_object .order_by_column ), None ))
27+ else :
28+ order_by_column = desc (SysOperLog .oper_time )
2129 query = db .query (SysOperLog ) \
2230 .filter (SysOperLog .title .like (f'%{ query_object .title } %' ) if query_object .title else True ,
2331 SysOperLog .oper_name .like (f'%{ query_object .oper_name } %' ) if query_object .oper_name else True ,
@@ -28,7 +36,7 @@ def get_operation_log_list(cls, db: Session, query_object: OperLogPageQueryModel
2836 datetime .combine (datetime .strptime (query_object .end_time , '%Y-%m-%d' ), time (23 , 59 , 59 )))
2937 if query_object .begin_time and query_object .end_time else True
3038 )\
31- .distinct ()
39+ .distinct (). order_by ( order_by_column )
3240 operation_log_list = PageUtil .paginate (query , query_object .page_num , query_object .page_size , is_page )
3341
3442 return operation_log_list
@@ -84,6 +92,12 @@ def get_login_log_list(cls, db: Session, query_object: LoginLogPageQueryModel, i
8492 :param is_page: 是否开启分页
8593 :return: 登录日志列表信息对象
8694 """
95+ if query_object .is_asc == 'ascending' :
96+ order_by_column = asc (getattr (SysLogininfor , CamelCaseUtil .camel_to_snake (query_object .order_by_column ), None ))
97+ elif query_object .is_asc == 'descending' :
98+ order_by_column = desc (getattr (SysLogininfor , CamelCaseUtil .camel_to_snake (query_object .order_by_column ), None ))
99+ else :
100+ order_by_column = desc (SysLogininfor .login_time )
87101 query = db .query (SysLogininfor ) \
88102 .filter (SysLogininfor .ipaddr .like (f'%{ query_object .ipaddr } %' ) if query_object .ipaddr else True ,
89103 SysLogininfor .user_name .like (f'%{ query_object .user_name } %' ) if query_object .user_name else True ,
@@ -93,7 +107,7 @@ def get_login_log_list(cls, db: Session, query_object: LoginLogPageQueryModel, i
93107 datetime .combine (datetime .strptime (query_object .end_time , '%Y-%m-%d' ), time (23 , 59 , 59 )))
94108 if query_object .begin_time and query_object .end_time else True
95109 )\
96- .distinct ()
110+ .distinct (). order_by ( order_by_column )
97111 login_log_list = PageUtil .paginate (query , query_object .page_num , query_object .page_size , is_page )
98112
99113 return login_log_list
0 commit comments