style: 使用ruff格式化字典管理模块,优化导入
This commit is contained in:
@@ -1,11 +1,21 @@
|
||||
from fastapi import Request
|
||||
import json
|
||||
from module_admin.dao.dict_dao import *
|
||||
from module_admin.entity.vo.common_vo import CrudResponseModel
|
||||
from fastapi import Request
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from typing import List
|
||||
from config.constant import CommonConstant
|
||||
from config.env import RedisInitKeyConfig
|
||||
from exceptions.exception import ServiceException
|
||||
from utils.common_util import export_list2excel, CamelCaseUtil
|
||||
from module_admin.dao.dict_dao import DictDataDao, DictTypeDao
|
||||
from module_admin.entity.vo.common_vo import CrudResponseModel
|
||||
from module_admin.entity.vo.dict_vo import (
|
||||
DeleteDictDataModel,
|
||||
DeleteDictTypeModel,
|
||||
DictDataModel,
|
||||
DictDataPageQueryModel,
|
||||
DictTypeModel,
|
||||
DictTypePageQueryModel,
|
||||
)
|
||||
from utils.common_util import CamelCaseUtil, export_list2excel
|
||||
|
||||
|
||||
class DictTypeService:
|
||||
@@ -14,7 +24,9 @@ class DictTypeService:
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
async def get_dict_type_list_services(cls, query_db: AsyncSession, query_object: DictTypePageQueryModel, is_page: bool = False):
|
||||
async def get_dict_type_list_services(
|
||||
cls, query_db: AsyncSession, query_object: DictTypePageQueryModel, is_page: bool = False
|
||||
):
|
||||
"""
|
||||
获取字典类型列表信息service
|
||||
:param query_db: orm对象
|
||||
@@ -35,7 +47,9 @@ class DictTypeService:
|
||||
:return: 校验结果
|
||||
"""
|
||||
dict_id = -1 if page_object.dict_id is None else page_object.dict_id
|
||||
dict_type = await DictTypeDao.get_dict_type_detail_by_info(query_db, DictTypeModel(dictType=page_object.dict_type))
|
||||
dict_type = await DictTypeDao.get_dict_type_detail_by_info(
|
||||
query_db, DictTypeModel(dictType=page_object.dict_type)
|
||||
)
|
||||
if dict_type and dict_type.dict_id != dict_id:
|
||||
return CommonConstant.NOT_UNIQUE
|
||||
return CommonConstant.UNIQUE
|
||||
@@ -55,7 +69,9 @@ class DictTypeService:
|
||||
try:
|
||||
await DictTypeDao.add_dict_type_dao(query_db, page_object)
|
||||
await query_db.commit()
|
||||
await request.app.state.redis.set(f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{page_object.dict_type}", '')
|
||||
await request.app.state.redis.set(
|
||||
f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{page_object.dict_type}", ''
|
||||
)
|
||||
result = dict(is_success=True, message='新增成功')
|
||||
except Exception as e:
|
||||
await query_db.rollback()
|
||||
@@ -83,13 +99,20 @@ class DictTypeService:
|
||||
dict_data_list = await DictDataDao.get_dict_data_list(query_db, query_dict_data, is_page=False)
|
||||
if dict_type_info.dict_type != page_object.dict_type:
|
||||
for dict_data in dict_data_list:
|
||||
edit_dict_data = DictDataModel(dictCode=dict_data.dict_code, dictType=page_object.dict_type, updateBy=page_object.update_by).model_dump(exclude_unset=True)
|
||||
edit_dict_data = DictDataModel(
|
||||
dictCode=dict_data.dict_code,
|
||||
dictType=page_object.dict_type,
|
||||
updateBy=page_object.update_by,
|
||||
).model_dump(exclude_unset=True)
|
||||
await DictDataDao.edit_dict_data_dao(query_db, edit_dict_data)
|
||||
await DictTypeDao.edit_dict_type_dao(query_db, edit_dict_type)
|
||||
await query_db.commit()
|
||||
if dict_type_info.dict_type != page_object.dict_type:
|
||||
dict_data = [CamelCaseUtil.transform_result(row) for row in dict_data_list if row]
|
||||
await request.app.state.redis.set(f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{page_object.dict_type}", json.dumps(dict_data, ensure_ascii=False, default=str))
|
||||
await request.app.state.redis.set(
|
||||
f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{page_object.dict_type}",
|
||||
json.dumps(dict_data, ensure_ascii=False, default=str),
|
||||
)
|
||||
return CrudResponseModel(is_success=True, message='更新成功')
|
||||
except Exception as e:
|
||||
await query_db.rollback()
|
||||
@@ -98,7 +121,9 @@ class DictTypeService:
|
||||
raise ServiceException(message='字典类型不存在')
|
||||
|
||||
@classmethod
|
||||
async def delete_dict_type_services(cls, request: Request, query_db: AsyncSession, page_object: DeleteDictTypeModel):
|
||||
async def delete_dict_type_services(
|
||||
cls, request: Request, query_db: AsyncSession, page_object: DeleteDictTypeModel
|
||||
):
|
||||
"""
|
||||
删除字典类型信息service
|
||||
:param request: Request对象
|
||||
@@ -151,15 +176,15 @@ class DictTypeService:
|
||||
"""
|
||||
# 创建一个映射字典,将英文键映射到中文键
|
||||
mapping_dict = {
|
||||
"dictId": "字典编号",
|
||||
"dictName": "字典名称",
|
||||
"dictType": "字典类型",
|
||||
"status": "状态",
|
||||
"createBy": "创建者",
|
||||
"createTime": "创建时间",
|
||||
"updateBy": "更新者",
|
||||
"updateTime": "更新时间",
|
||||
"remark": "备注",
|
||||
'dictId': '字典编号',
|
||||
'dictName': '字典名称',
|
||||
'dictType': '字典类型',
|
||||
'status': '状态',
|
||||
'createBy': '创建者',
|
||||
'createTime': '创建时间',
|
||||
'updateBy': '更新者',
|
||||
'updateTime': '更新时间',
|
||||
'remark': '备注',
|
||||
}
|
||||
|
||||
data = dict_type_list
|
||||
@@ -169,7 +194,9 @@ class DictTypeService:
|
||||
item['status'] = '正常'
|
||||
else:
|
||||
item['status'] = '停用'
|
||||
new_data = [{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data]
|
||||
new_data = [
|
||||
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
|
||||
]
|
||||
binary_data = export_list2excel(new_data)
|
||||
|
||||
return binary_data
|
||||
@@ -194,7 +221,9 @@ class DictDataService:
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
async def get_dict_data_list_services(cls, query_db: AsyncSession, query_object: DictDataPageQueryModel, is_page: bool = False):
|
||||
async def get_dict_data_list_services(
|
||||
cls, query_db: AsyncSession, query_object: DictDataPageQueryModel, is_page: bool = False
|
||||
):
|
||||
"""
|
||||
获取字典数据列表信息service
|
||||
:param query_db: orm对象
|
||||
@@ -236,7 +265,10 @@ class DictDataService:
|
||||
dict_type = dict_type_obj.dict_type
|
||||
dict_data_list = await DictDataDao.query_dict_data_list(query_db, dict_type)
|
||||
dict_data = [CamelCaseUtil.transform_result(row) for row in dict_data_list if row]
|
||||
await redis.set(f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{dict_type}", json.dumps(dict_data, ensure_ascii=False, default=str))
|
||||
await redis.set(
|
||||
f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{dict_type}",
|
||||
json.dumps(dict_data, ensure_ascii=False, default=str),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
async def query_dict_data_list_from_cache_services(cls, redis, dict_type: str):
|
||||
@@ -277,13 +309,18 @@ class DictDataService:
|
||||
:return: 新增字典数据校验结果
|
||||
"""
|
||||
if not await cls.check_dict_data_unique_services(query_db, page_object):
|
||||
raise ServiceException(message=f'新增字典数据{page_object.dict_label}失败,{page_object.dict_type}下已存在该字典数据')
|
||||
raise ServiceException(
|
||||
message=f'新增字典数据{page_object.dict_label}失败,{page_object.dict_type}下已存在该字典数据'
|
||||
)
|
||||
else:
|
||||
try:
|
||||
await DictDataDao.add_dict_data_dao(query_db, page_object)
|
||||
await query_db.commit()
|
||||
dict_data_list = await cls.query_dict_data_list_services(query_db, page_object.dict_type)
|
||||
await request.app.state.redis.set(f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{page_object.dict_type}", json.dumps(CamelCaseUtil.transform_result(dict_data_list), ensure_ascii=False, default=str))
|
||||
await request.app.state.redis.set(
|
||||
f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{page_object.dict_type}",
|
||||
json.dumps(CamelCaseUtil.transform_result(dict_data_list), ensure_ascii=False, default=str),
|
||||
)
|
||||
return CrudResponseModel(is_success=True, message='新增成功')
|
||||
except Exception as e:
|
||||
await query_db.rollback()
|
||||
@@ -302,13 +339,18 @@ class DictDataService:
|
||||
dict_data_info = await cls.dict_data_detail_services(query_db, page_object.dict_code)
|
||||
if dict_data_info.dict_code:
|
||||
if not await cls.check_dict_data_unique_services(query_db, page_object):
|
||||
raise ServiceException(message=f'新增字典数据{page_object.dict_label}失败,{page_object.dict_type}下已存在该字典数据')
|
||||
raise ServiceException(
|
||||
message=f'新增字典数据{page_object.dict_label}失败,{page_object.dict_type}下已存在该字典数据'
|
||||
)
|
||||
else:
|
||||
try:
|
||||
await DictDataDao.edit_dict_data_dao(query_db, edit_data_type)
|
||||
await query_db.commit()
|
||||
dict_data_list = await cls.query_dict_data_list_services(query_db, page_object.dict_type)
|
||||
await request.app.state.redis.set(f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{page_object.dict_type}", json.dumps(CamelCaseUtil.transform_result(dict_data_list), ensure_ascii=False, default=str))
|
||||
await request.app.state.redis.set(
|
||||
f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{page_object.dict_type}",
|
||||
json.dumps(CamelCaseUtil.transform_result(dict_data_list), ensure_ascii=False, default=str),
|
||||
)
|
||||
return CrudResponseModel(is_success=True, message='更新成功')
|
||||
except Exception as e:
|
||||
await query_db.rollback()
|
||||
@@ -317,7 +359,9 @@ class DictDataService:
|
||||
raise ServiceException(message='字典数据不存在')
|
||||
|
||||
@classmethod
|
||||
async def delete_dict_data_services(cls, request: Request, query_db: AsyncSession, page_object: DeleteDictDataModel):
|
||||
async def delete_dict_data_services(
|
||||
cls, request: Request, query_db: AsyncSession, page_object: DeleteDictDataModel
|
||||
):
|
||||
"""
|
||||
删除字典数据信息service
|
||||
:param request: Request对象
|
||||
@@ -336,7 +380,10 @@ class DictDataService:
|
||||
await query_db.commit()
|
||||
for dict_type in list(set(delete_dict_type_list)):
|
||||
dict_data_list = await cls.query_dict_data_list_services(query_db, dict_type)
|
||||
await request.app.state.redis.set(f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{dict_type}", json.dumps(CamelCaseUtil.transform_result(dict_data_list), ensure_ascii=False, default=str))
|
||||
await request.app.state.redis.set(
|
||||
f"{RedisInitKeyConfig.SYS_DICT.get('key')}:{dict_type}",
|
||||
json.dumps(CamelCaseUtil.transform_result(dict_data_list), ensure_ascii=False, default=str),
|
||||
)
|
||||
return CrudResponseModel(is_success=True, message='删除成功')
|
||||
except Exception as e:
|
||||
await query_db.rollback()
|
||||
@@ -369,20 +416,20 @@ class DictDataService:
|
||||
"""
|
||||
# 创建一个映射字典,将英文键映射到中文键
|
||||
mapping_dict = {
|
||||
"dictCode": "字典编码",
|
||||
"dictSort": "字典标签",
|
||||
"dictLabel": "字典键值",
|
||||
"dictValue": "字典排序",
|
||||
"dictType": "字典类型",
|
||||
"cssClass": "样式属性",
|
||||
"listClass": "表格回显样式",
|
||||
"isDefault": "是否默认",
|
||||
"status": "状态",
|
||||
"createBy": "创建者",
|
||||
"createTime": "创建时间",
|
||||
"updateBy": "更新者",
|
||||
"updateTime": "更新时间",
|
||||
"remark": "备注",
|
||||
'dictCode': '字典编码',
|
||||
'dictSort': '字典标签',
|
||||
'dictLabel': '字典键值',
|
||||
'dictValue': '字典排序',
|
||||
'dictType': '字典类型',
|
||||
'cssClass': '样式属性',
|
||||
'listClass': '表格回显样式',
|
||||
'isDefault': '是否默认',
|
||||
'status': '状态',
|
||||
'createBy': '创建者',
|
||||
'createTime': '创建时间',
|
||||
'updateBy': '更新者',
|
||||
'updateTime': '更新时间',
|
||||
'remark': '备注',
|
||||
}
|
||||
|
||||
data = dict_data_list
|
||||
@@ -396,7 +443,9 @@ class DictDataService:
|
||||
item['isDefault'] = '是'
|
||||
else:
|
||||
item['isDefault'] = '否'
|
||||
new_data = [{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data]
|
||||
new_data = [
|
||||
{mapping_dict.get(key): value for key, value in item.items() if mapping_dict.get(key)} for item in data
|
||||
]
|
||||
binary_data = export_list2excel(new_data)
|
||||
|
||||
return binary_data
|
||||
|
Reference in New Issue
Block a user