fix: 修复UserModel、RoleModel的admin属性与sqlalchemy表模型无法匹配的问题

This commit is contained in:
insistence
2024-01-24 20:52:40 +08:00
parent f0c38a87dc
commit 88de6058ef
5 changed files with 10 additions and 7 deletions

View File

@@ -1,6 +1,7 @@
from fastapi import APIRouter, Request
from fastapi import Depends, File, Query
from config.get_db import get_db
from config.env import UploadConfig
from module_admin.service.login_service import LoginService
from module_admin.service.user_service import *
from module_admin.service.dept_service import DeptService
@@ -8,6 +9,7 @@ from utils.page_util import *
from utils.response_util import *
from utils.log_util import *
from utils.common_util import bytes2file_response
from utils.upload_util import UploadUtil
from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
from module_admin.aspect.data_scope import GetDataScope
from module_admin.annotation.log_annotation import log_decorator
@@ -166,18 +168,19 @@ async def query_detail_system_user(request: Request, user_id: Optional[Union[int
@log_decorator(title='个人信息', business_type=2)
async def change_system_user_profile_avatar(request: Request, avatarfile: bytes = File(), query_db: Session = Depends(get_db), current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
try:
dir_path = os.path.join(CachePathConfig.PATH, 'profile', 'avatar')
relative_path = f'avatar/{datetime.now().strftime("%Y")}/{datetime.now().strftime("%m")}/{datetime.now().strftime("%d")}'
dir_path = os.path.join(UploadConfig.UPLOAD_PATH, relative_path)
try:
os.makedirs(dir_path)
except FileExistsError:
pass
avatar_name = f'blob_{datetime.now().strftime("%Y%m%d%H%M%S")}.jpeg'
avatar_name = f'avatar_{datetime.now().strftime("%Y%m%d%H%M%S")}{UploadConfig.UPLOAD_MACHINE}{UploadUtil.generate_random_number()}.png'
avatar_path = os.path.join(dir_path, avatar_name)
with open(avatar_path, 'wb') as f:
f.write(avatarfile)
edit_user = EditUserModel(
userId=current_user.user.user_id,
avatar=f'/common/{CachePathConfig.PATHSTR}?taskPath=profile&taskId=avatar&filename={avatar_name}',
avatar=f'{UploadConfig.UPLOAD_PREFIX}/{relative_path}/{avatar_name}',
updateBy=current_user.user.user_name,
updateTime=datetime.now(),
type='avatar'

View File

@@ -115,7 +115,7 @@ class RoleDao:
:param role: 角色对象
:return:
"""
db_role = SysRole(**role.model_dump())
db_role = SysRole(**role.model_dump(exclude={'admin'}))
db.add(db_role)
db.flush()

View File

@@ -175,7 +175,7 @@ class UserDao:
:param user: 用户对象
:return: 新增校验结果
"""
db_user = SysUser(**user.model_dump())
db_user = SysUser(**user.model_dump(exclude={'admin'}))
db.add(db_user)
db.flush()

View File

@@ -87,7 +87,7 @@ class RoleService:
:param page_object: 编辑角色对象
:return: 编辑角色校验结果
"""
edit_role = page_object.model_dump(exclude_unset=True)
edit_role = page_object.model_dump(exclude_unset=True, exclude={'admin'})
if page_object.type != 'status':
del edit_role['menu_ids']
if page_object.type == 'status':

View File

@@ -66,7 +66,7 @@ class UserService:
:param page_object: 编辑用户对象
:return: 编辑用户校验结果
"""
edit_user = page_object.model_dump(exclude_unset=True)
edit_user = page_object.model_dump(exclude_unset=True, exclude={'admin'})
if page_object.type != 'status' and page_object.type != 'avatar' and page_object.type != 'pwd':
del edit_user['role_ids']
del edit_user['post_ids']