Skip to content

Commit 797c903

Browse files
committed
perf: 优化导出方法
1 parent afc9928 commit 797c903

File tree

9 files changed

+142
-86
lines changed

9 files changed

+142
-86
lines changed

dash-fastapi-backend/module_admin/service/config_service.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
from module_admin.dao.config_dao import ConfigDao
88
from module_admin.entity.vo.common_vo import CrudResponseModel
99
from module_admin.entity.vo.config_vo import ConfigModel, ConfigPageQueryModel, DeleteConfigModel
10-
from utils.common_util import export_list2excel, SqlalchemyUtil
10+
from utils.common_util import SqlalchemyUtil
11+
from utils.excel_util import ExcelUtil
1112

1213

1314
class ConfigService:
@@ -207,17 +208,12 @@ async def export_config_list_services(config_list: List):
207208
'remark': '备注',
208209
}
209210

210-
data = config_list
211-
212-
for item in data:
211+
for item in config_list:
213212
if item.get('config_type') == 'Y':
214213
item['config_type'] = '是'
215214
else:
216215
item['config_type'] = '否'
217-
new_data = [
218-
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
219-
]
220-
binary_data = export_list2excel(new_data)
216+
binary_data = ExcelUtil.export_list2excel(config_list, mapping_dict)
221217

222218
return binary_data
223219

dash-fastapi-backend/module_admin/service/dict_service.py

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
DictTypeModel,
1616
DictTypePageQueryModel,
1717
)
18-
from utils.common_util import export_list2excel, SqlalchemyUtil
18+
from utils.common_util import SqlalchemyUtil
19+
from utils.excel_util import ExcelUtil
1920

2021

2122
class DictTypeService:
@@ -192,17 +193,12 @@ async def export_dict_type_list_services(dict_type_list: List):
192193
'remark': '备注',
193194
}
194195

195-
data = dict_type_list
196-
197-
for item in data:
196+
for item in dict_type_list:
198197
if item.get('status') == '0':
199198
item['status'] = '正常'
200199
else:
201200
item['status'] = '停用'
202-
new_data = [
203-
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
204-
]
205-
binary_data = export_list2excel(new_data)
201+
binary_data = ExcelUtil.export_list2excel(dict_type_list, mapping_dict)
206202

207203
return binary_data
208204

@@ -331,9 +327,7 @@ async def add_dict_data_services(cls, request: Request, query_db: AsyncSession,
331327
dict_data_list = await cls.query_dict_data_list_services(query_db, page_object.dict_type)
332328
await request.app.state.redis.set(
333329
f'{RedisInitKeyConfig.SYS_DICT.key}:{page_object.dict_type}',
334-
json.dumps(
335-
SqlalchemyUtil.serialize_result(dict_data_list), ensure_ascii=False, default=str
336-
),
330+
json.dumps(SqlalchemyUtil.serialize_result(dict_data_list), ensure_ascii=False, default=str),
337331
)
338332
return CrudResponseModel(is_success=True, message='新增成功')
339333
except Exception as e:
@@ -364,9 +358,7 @@ async def edit_dict_data_services(cls, request: Request, query_db: AsyncSession,
364358
dict_data_list = await cls.query_dict_data_list_services(query_db, page_object.dict_type)
365359
await request.app.state.redis.set(
366360
f'{RedisInitKeyConfig.SYS_DICT.key}:{page_object.dict_type}',
367-
json.dumps(
368-
SqlalchemyUtil.serialize_result(dict_data_list), ensure_ascii=False, default=str
369-
),
361+
json.dumps(SqlalchemyUtil.serialize_result(dict_data_list), ensure_ascii=False, default=str),
370362
)
371363
return CrudResponseModel(is_success=True, message='更新成功')
372364
except Exception as e:
@@ -400,9 +392,7 @@ async def delete_dict_data_services(
400392
dict_data_list = await cls.query_dict_data_list_services(query_db, dict_type)
401393
await request.app.state.redis.set(
402394
f'{RedisInitKeyConfig.SYS_DICT.key}:{dict_type}',
403-
json.dumps(
404-
SqlalchemyUtil.serialize_result(dict_data_list), ensure_ascii=False, default=str
405-
),
395+
json.dumps(SqlalchemyUtil.serialize_result(dict_data_list), ensure_ascii=False, default=str),
406396
)
407397
return CrudResponseModel(is_success=True, message='删除成功')
408398
except Exception as e:
@@ -454,9 +444,7 @@ async def export_dict_data_list_services(dict_data_list: List):
454444
'remark': '备注',
455445
}
456446

457-
data = dict_data_list
458-
459-
for item in data:
447+
for item in dict_data_list:
460448
if item.get('status') == '0':
461449
item['status'] = '正常'
462450
else:
@@ -465,9 +453,6 @@ async def export_dict_data_list_services(dict_data_list: List):
465453
item['is_default'] = '是'
466454
else:
467455
item['is_default'] = '否'
468-
new_data = [
469-
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
470-
]
471-
binary_data = export_list2excel(new_data)
456+
binary_data = ExcelUtil.export_list2excel(dict_data_list, mapping_dict)
472457

473458
return binary_data

dash-fastapi-backend/module_admin/service/job_log_service.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from module_admin.entity.vo.common_vo import CrudResponseModel
77
from module_admin.entity.vo.job_vo import DeleteJobLogModel, JobLogModel, JobLogPageQueryModel
88
from module_admin.service.dict_service import DictDataService
9-
from utils.common_util import export_list2excel
9+
from utils.excel_util import ExcelUtil
1010

1111

1212
class JobLogService:
@@ -115,7 +115,6 @@ async def export_job_log_list_services(request: Request, job_log_list: List):
115115
'create_time': '创建时间',
116116
}
117117

118-
data = job_log_list
119118
job_group_list = await DictDataService.query_dict_data_list_from_cache_services(
120119
request.app.state.redis, dict_type='sys_job_group'
121120
)
@@ -129,7 +128,7 @@ async def export_job_log_list_services(request: Request, job_log_list: List):
129128
]
130129
job_executor_option_dict = {item.get('value'): item for item in job_executor_option}
131130

132-
for item in data:
131+
for item in job_log_list:
133132
if item.get('status') == '0':
134133
item['status'] = '正常'
135134
else:
@@ -138,9 +137,6 @@ async def export_job_log_list_services(request: Request, job_log_list: List):
138137
item['job_group'] = job_group_option_dict.get(str(item.get('job_group'))).get('label')
139138
if str(item.get('job_executor')) in job_executor_option_dict.keys():
140139
item['job_executor'] = job_executor_option_dict.get(str(item.get('job_executor'))).get('label')
141-
new_data = [
142-
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
143-
]
144-
binary_data = export_list2excel(new_data)
140+
binary_data = ExcelUtil.export_list2excel(job_log_list, mapping_dict)
145141

146142
return binary_data

dash-fastapi-backend/module_admin/service/job_service.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
from module_admin.entity.vo.common_vo import CrudResponseModel
99
from module_admin.entity.vo.job_vo import DeleteJobModel, EditJobModel, JobModel, JobPageQueryModel
1010
from module_admin.service.dict_service import DictDataService
11-
from utils.common_util import export_list2excel, SqlalchemyUtil
11+
from utils.common_util import SqlalchemyUtil
1212
from utils.cron_util import CronUtil
13+
from utils.excel_util import ExcelUtil
1314
from utils.string_util import StringUtil
1415

1516

@@ -227,7 +228,6 @@ async def export_job_list_services(request: Request, job_list: List):
227228
'remark': '备注',
228229
}
229230

230-
data = job_list
231231
job_group_list = await DictDataService.query_dict_data_list_from_cache_services(
232232
request.app.state.redis, dict_type='sys_job_group'
233233
)
@@ -241,7 +241,7 @@ async def export_job_list_services(request: Request, job_list: List):
241241
]
242242
job_executor_option_dict = {item.get('value'): item for item in job_executor_option}
243243

244-
for item in data:
244+
for item in job_list:
245245
if item.get('status') == '0':
246246
item['status'] = '正常'
247247
else:
@@ -260,9 +260,6 @@ async def export_job_list_services(request: Request, job_list: List):
260260
item['concurrent'] = '允许'
261261
else:
262262
item['concurrent'] = '禁止'
263-
new_data = [
264-
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
265-
]
266-
binary_data = export_list2excel(new_data)
263+
binary_data = ExcelUtil.export_list2excel(job_list, mapping_dict)
267264

268265
return binary_data

dash-fastapi-backend/module_admin/service/log_service.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
UnlockUser,
1515
)
1616
from module_admin.service.dict_service import DictDataService
17-
from utils.common_util import export_list2excel
17+
from utils.excel_util import ExcelUtil
1818

1919

2020
class OperationLogService:
@@ -122,7 +122,6 @@ async def export_operation_log_list_services(cls, request: Request, operation_lo
122122
'cost_time': '消耗时间(毫秒)',
123123
}
124124

125-
data = operation_log_list
126125
operation_type_list = await DictDataService.query_dict_data_list_from_cache_services(
127126
request.app.state.redis, dict_type='sys_oper_type'
128127
)
@@ -131,18 +130,14 @@ async def export_operation_log_list_services(cls, request: Request, operation_lo
131130
]
132131
operation_type_option_dict = {item.get('value'): item for item in operation_type_option}
133132

134-
for item in data:
133+
for item in operation_log_list:
135134
if item.get('status') == 0:
136135
item['status'] = '成功'
137136
else:
138137
item['status'] = '失败'
139138
if str(item.get('business_type')) in operation_type_option_dict.keys():
140139
item['business_type'] = operation_type_option_dict.get(str(item.get('business_type'))).get('label')
141-
142-
new_data = [
143-
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
144-
]
145-
binary_data = export_list2excel(new_data)
140+
binary_data = ExcelUtil.export_list2excel(operation_log_list, mapping_dict)
146141

147142
return binary_data
148143

@@ -253,16 +248,11 @@ async def export_login_log_list_services(login_log_list: List):
253248
'login_time': '登录日期',
254249
}
255250

256-
data = login_log_list
257-
258-
for item in data:
251+
for item in login_log_list:
259252
if item.get('status') == '0':
260253
item['status'] = '成功'
261254
else:
262255
item['status'] = '失败'
263-
new_data = [
264-
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
265-
]
266-
binary_data = export_list2excel(new_data)
256+
binary_data = ExcelUtil.export_list2excel(login_log_list, mapping_dict)
267257

268258
return binary_data

dash-fastapi-backend/module_admin/service/post_service.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
from module_admin.dao.post_dao import PostDao
66
from module_admin.entity.vo.common_vo import CrudResponseModel
77
from module_admin.entity.vo.post_vo import DeletePostModel, PostModel, PostPageQueryModel
8-
from utils.common_util import export_list2excel, SqlalchemyUtil
8+
from utils.common_util import SqlalchemyUtil
9+
from utils.excel_util import ExcelUtil
910

1011

1112
class PostService:
@@ -172,16 +173,11 @@ async def export_post_list_services(post_list: List):
172173
'remark': '备注',
173174
}
174175

175-
data = post_list
176-
177-
for item in data:
176+
for item in post_list:
178177
if item.get('status') == '0':
179178
item['status'] = '正常'
180179
else:
181180
item['status'] = '停用'
182-
new_data = [
183-
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
184-
]
185-
binary_data = export_list2excel(new_data)
181+
binary_data = ExcelUtil.export_list2excel(post_list, mapping_dict)
186182

187183
return binary_data

dash-fastapi-backend/module_admin/service/role_service.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
from module_admin.entity.vo.user_vo import UserInfoModel, UserRolePageQueryModel
1616
from module_admin.dao.role_dao import RoleDao
1717
from module_admin.dao.user_dao import UserDao
18-
from utils.common_util import export_list2excel, SqlalchemyUtil
18+
from utils.common_util import SqlalchemyUtil
19+
from utils.excel_util import ExcelUtil
1920
from utils.page_util import PageResponseModel
2021

2122

@@ -295,17 +296,12 @@ async def export_role_list_services(role_list: List):
295296
'remark': '备注',
296297
}
297298

298-
data = role_list
299-
300-
for item in data:
299+
for item in role_list:
301300
if item.get('status') == '0':
302301
item['status'] = '正常'
303302
else:
304303
item['status'] = '停用'
305-
new_data = [
306-
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
307-
]
308-
binary_data = export_list2excel(new_data)
304+
binary_data = ExcelUtil.export_list2excel(role_list, mapping_dict)
309305

310306
return binary_data
311307

dash-fastapi-backend/module_admin/service/user_service.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
from module_admin.service.dept_service import DeptService
3232
from module_admin.service.post_service import PostService
3333
from module_admin.service.role_service import RoleService
34-
from utils.common_util import export_list2excel, get_excel_template, SqlalchemyUtil
34+
from utils.common_util import SqlalchemyUtil
35+
from utils.excel_util import ExcelUtil
3536
from utils.page_util import PageResponseModel
3637
from utils.pwd_util import PwdUtil
3738

@@ -463,7 +464,7 @@ async def get_user_import_template_services():
463464
header_list = ['部门编号', '登录名称', '用户名称', '用户邮箱', '手机号码', '用户性别', '帐号状态']
464465
selector_header_list = ['用户性别', '帐号状态']
465466
option_list = [{'用户性别': ['男', '女', '未知']}, {'帐号状态': ['正常', '停用']}]
466-
binary_data = get_excel_template(
467+
binary_data = ExcelUtil.get_excel_template(
467468
header_list=header_list, selector_header_list=selector_header_list, option_list=option_list
468469
)
469470

@@ -494,9 +495,7 @@ async def export_user_list_services(user_list: List):
494495
'remark': '备注',
495496
}
496497

497-
data = user_list
498-
499-
for item in data:
498+
for item in user_list:
500499
if item.get('status') == '0':
501500
item['status'] = '正常'
502501
else:
@@ -507,10 +506,7 @@ async def export_user_list_services(user_list: List):
507506
item['sex'] = '女'
508507
else:
509508
item['sex'] = '未知'
510-
new_data = [
511-
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
512-
]
513-
binary_data = export_list2excel(new_data)
509+
binary_data = ExcelUtil.export_list2excel(user_list, mapping_dict)
514510

515511
return binary_data
516512

0 commit comments

Comments
 (0)