Browse Source

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

master
insistence 1 year ago
parent
commit
88de6058ef
  1. 9
      ruoyi-fastapi-backend/module_admin/controller/user_controller.py
  2. 2
      ruoyi-fastapi-backend/module_admin/dao/role_dao.py
  3. 2
      ruoyi-fastapi-backend/module_admin/dao/user_dao.py
  4. 2
      ruoyi-fastapi-backend/module_admin/service/role_service.py
  5. 2
      ruoyi-fastapi-backend/module_admin/service/user_service.py

9
ruoyi-fastapi-backend/module_admin/controller/user_controller.py

@ -1,6 +1,7 @@
from fastapi import APIRouter, Request from fastapi import APIRouter, Request
from fastapi import Depends, File, Query from fastapi import Depends, File, Query
from config.get_db import get_db from config.get_db import get_db
from config.env import UploadConfig
from module_admin.service.login_service import LoginService from module_admin.service.login_service import LoginService
from module_admin.service.user_service import * from module_admin.service.user_service import *
from module_admin.service.dept_service import DeptService from module_admin.service.dept_service import DeptService
@ -8,6 +9,7 @@ from utils.page_util import *
from utils.response_util import * from utils.response_util import *
from utils.log_util import * from utils.log_util import *
from utils.common_util import bytes2file_response 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.interface_auth import CheckUserInterfaceAuth
from module_admin.aspect.data_scope import GetDataScope from module_admin.aspect.data_scope import GetDataScope
from module_admin.annotation.log_annotation import log_decorator 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) @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)): 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: 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: try:
os.makedirs(dir_path) os.makedirs(dir_path)
except FileExistsError: except FileExistsError:
pass 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) avatar_path = os.path.join(dir_path, avatar_name)
with open(avatar_path, 'wb') as f: with open(avatar_path, 'wb') as f:
f.write(avatarfile) f.write(avatarfile)
edit_user = EditUserModel( edit_user = EditUserModel(
userId=current_user.user.user_id, 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, updateBy=current_user.user.user_name,
updateTime=datetime.now(), updateTime=datetime.now(),
type='avatar' type='avatar'

2
ruoyi-fastapi-backend/module_admin/dao/role_dao.py

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

2
ruoyi-fastapi-backend/module_admin/dao/user_dao.py

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

2
ruoyi-fastapi-backend/module_admin/service/role_service.py

@ -87,7 +87,7 @@ class RoleService:
:param page_object: 编辑角色对象 :param page_object: 编辑角色对象
:return: 编辑角色校验结果 :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': if page_object.type != 'status':
del edit_role['menu_ids'] del edit_role['menu_ids']
if page_object.type == 'status': if page_object.type == 'status':

2
ruoyi-fastapi-backend/module_admin/service/user_service.py

@ -66,7 +66,7 @@ class UserService:
:param page_object: 编辑用户对象 :param page_object: 编辑用户对象
:return: 编辑用户校验结果 :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': if page_object.type != 'status' and page_object.type != 'avatar' and page_object.type != 'pwd':
del edit_user['role_ids'] del edit_user['role_ids']
del edit_user['post_ids'] del edit_user['post_ids']

Loading…
Cancel
Save