Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions ruoyi-fastapi-backend/common/mixin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
from datetime import datetime

from sqlalchemy import Column, DateTime
from sqlalchemy.orm import Mapped, declared_attr


class CreateTimeMixin:
"""
创建时间字段Mixin
"""

__create_time_nullable__ = True
__create_time_comment__ = '创建时间'

@declared_attr
def create_time(cls) -> Mapped[datetime]: # noqa: N805
return Column(
DateTime,
nullable=cls.__create_time_nullable__,
default=datetime.now,
comment=cls.__create_time_comment__,
)


class UpdateTimeMixin:
"""
更新时间字段Mixin
"""

__update_time_nullable__ = True
__update_time_insert_default__ = True
__update_time_comment__ = '更新时间'

@declared_attr
def update_time(cls) -> Mapped[datetime]: # noqa: N805
return Column(
DateTime,
nullable=cls.__update_time_nullable__,
default=datetime.now if cls.__update_time_insert_default__ else None,
onupdate=datetime.now,
comment=cls.__update_time_comment__,
)


class AuditTimeMixin(CreateTimeMixin, UpdateTimeMixin):
"""
创建时间和更新时间字段Mixin
"""
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from datetime import datetime
from typing import Annotated

from fastapi import Form, Path, Query, Request, Response
Expand Down Expand Up @@ -65,9 +64,7 @@ async def add_system_config(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
add_config.create_by = current_user.user.user_name
add_config.create_time = datetime.now()
add_config.update_by = current_user.user.user_name
add_config.update_time = datetime.now()
add_config_result = await ConfigService.add_config_services(request, query_db, add_config)
logger.info(add_config_result.message)

Expand All @@ -91,7 +88,6 @@ async def edit_system_config(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
edit_config.update_by = current_user.user.user_name
edit_config.update_time = datetime.now()
edit_config_result = await ConfigService.edit_config_services(request, query_db, edit_config)
logger.info(edit_config_result.message)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from datetime import datetime
from typing import Annotated

from fastapi import Path, Query, Request, Response
Expand Down Expand Up @@ -86,9 +85,7 @@ async def add_system_dept(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
add_dept.create_by = current_user.user.user_name
add_dept.create_time = datetime.now()
add_dept.update_by = current_user.user.user_name
add_dept.update_time = datetime.now()
add_dept_result = await DeptService.add_dept_services(query_db, add_dept)
logger.info(add_dept_result.message)

Expand All @@ -115,7 +112,6 @@ async def edit_system_dept(
if not current_user.user.admin:
await DeptService.check_dept_data_scope_services(query_db, edit_dept.dept_id, data_scope_sql)
edit_dept.update_by = current_user.user.user_name
edit_dept.update_time = datetime.now()
edit_dept_result = await DeptService.edit_dept_services(query_db, edit_dept)
logger.info(edit_dept_result.message)

Expand Down Expand Up @@ -171,7 +167,6 @@ async def delete_system_dept(
await DeptService.check_dept_data_scope_services(query_db, int(dept_id), data_scope_sql)
delete_dept = DeleteDeptModel(deptIds=dept_ids)
delete_dept.update_by = current_user.user.user_name
delete_dept.update_time = datetime.now()
delete_dept_result = await DeptService.delete_dept_services(query_db, delete_dept)
logger.info(delete_dept_result.message)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from datetime import datetime
from typing import Annotated

from fastapi import Form, Path, Query, Request, Response
Expand Down Expand Up @@ -74,9 +73,7 @@ async def add_system_dict_type(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
add_dict_type.create_by = current_user.user.user_name
add_dict_type.create_time = datetime.now()
add_dict_type.update_by = current_user.user.user_name
add_dict_type.update_time = datetime.now()
add_dict_type_result = await DictTypeService.add_dict_type_services(request, query_db, add_dict_type)
logger.info(add_dict_type_result.message)

Expand All @@ -100,7 +97,6 @@ async def edit_system_dict_type(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
edit_dict_type.update_by = current_user.user.user_name
edit_dict_type.update_time = datetime.now()
edit_dict_type_result = await DictTypeService.edit_dict_type_services(request, query_db, edit_dict_type)
logger.info(edit_dict_type_result.message)

Expand Down Expand Up @@ -272,9 +268,7 @@ async def add_system_dict_data(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
add_dict_data.create_by = current_user.user.user_name
add_dict_data.create_time = datetime.now()
add_dict_data.update_by = current_user.user.user_name
add_dict_data.update_time = datetime.now()
add_dict_data_result = await DictDataService.add_dict_data_services(request, query_db, add_dict_data)
logger.info(add_dict_data_result.message)

Expand All @@ -298,7 +292,6 @@ async def edit_system_dict_data(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
edit_dict_data.update_by = current_user.user.user_name
edit_dict_data.update_time = datetime.now()
edit_dict_data_result = await DictDataService.edit_dict_data_services(request, query_db, edit_dict_data)
logger.info(edit_dict_data_result.message)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from datetime import datetime
from typing import Annotated

from fastapi import Form, Path, Query, Request, Response
Expand Down Expand Up @@ -74,9 +73,7 @@ async def add_system_job(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
add_job.create_by = current_user.user.user_name
add_job.create_time = datetime.now()
add_job.update_by = current_user.user.user_name
add_job.update_time = datetime.now()
add_job_result = await JobService.add_job_services(query_db, add_job)
logger.info(add_job_result.message)

Expand All @@ -100,7 +97,6 @@ async def edit_system_job(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
edit_job.update_by = current_user.user.user_name
edit_job.update_time = datetime.now()
edit_job_result = await JobService.edit_job_services(query_db, edit_job)
logger.info(edit_job_result.message)

Expand All @@ -126,7 +122,6 @@ async def change_system_job_status(
jobId=change_job.job_id,
status=change_job.status,
updateBy=current_user.user.user_name,
updateTime=datetime.now(),
type='status',
)
edit_job_result = await JobService.edit_job_services(query_db, edit_job)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from datetime import datetime
from typing import Annotated

from fastapi import Path, Query, Request, Response
Expand Down Expand Up @@ -100,9 +99,7 @@ async def add_system_menu(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
add_menu.create_by = current_user.user.user_name
add_menu.create_time = datetime.now()
add_menu.update_by = current_user.user.user_name
add_menu.update_time = datetime.now()
add_menu_result = await MenuService.add_menu_services(query_db, add_menu)
logger.info(add_menu_result.message)

Expand All @@ -126,7 +123,6 @@ async def edit_system_menu(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
edit_menu.update_by = current_user.user.user_name
edit_menu.update_time = datetime.now()
edit_menu_result = await MenuService.edit_menu_services(query_db, edit_menu)
logger.info(edit_menu_result.message)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from datetime import datetime
from typing import Annotated

from fastapi import Path, Query, Request, Response
Expand Down Expand Up @@ -143,9 +142,7 @@ async def add_system_notice(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
add_notice.create_by = current_user.user.user_name
add_notice.create_time = datetime.now()
add_notice.update_by = current_user.user.user_name
add_notice.update_time = datetime.now()
add_notice_result = await NoticeService.add_notice_services(query_db, add_notice)
logger.info(add_notice_result.message)

Expand All @@ -169,7 +166,6 @@ async def edit_system_notice(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
edit_notice.update_by = current_user.user.user_name
edit_notice.update_time = datetime.now()
edit_notice_result = await NoticeService.edit_notice_services(query_db, edit_notice)
logger.info(edit_notice_result.message)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from datetime import datetime
from typing import Annotated

from fastapi import Form, Path, Query, Request, Response
Expand Down Expand Up @@ -65,9 +64,7 @@ async def add_system_post(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
add_post.create_by = current_user.user.user_name
add_post.create_time = datetime.now()
add_post.update_by = current_user.user.user_name
add_post.update_time = datetime.now()
add_post_result = await PostService.add_post_services(query_db, add_post)
logger.info(add_post_result.message)

Expand All @@ -91,7 +88,6 @@ async def edit_system_post(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
edit_post.update_by = current_user.user.user_name
edit_post.update_time = datetime.now()
edit_post_result = await PostService.edit_post_services(query_db, edit_post)
logger.info(edit_post_result.message)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from datetime import datetime
from typing import Annotated

from fastapi import Form, Path, Query, Request, Response
Expand Down Expand Up @@ -102,9 +101,7 @@ async def add_system_role(
current_user: Annotated[CurrentUserModel, CurrentUserDependency()],
) -> Response:
add_role.create_by = current_user.user.user_name
add_role.create_time = datetime.now()
add_role.update_by = current_user.user.user_name
add_role.update_time = datetime.now()
add_role_result = await RoleService.add_role_services(query_db, add_role)
logger.info(add_role_result.message)

Expand Down Expand Up @@ -132,7 +129,6 @@ async def edit_system_role(
if not current_user.user.admin:
await RoleService.check_role_data_scope_services(query_db, str(edit_role.role_id), data_scope_sql)
edit_role.update_by = current_user.user.user_name
edit_role.update_time = datetime.now()
edit_role_result = await RoleService.edit_role_services(query_db, edit_role)
logger.info(edit_role_result.message)

Expand Down Expand Up @@ -164,7 +160,6 @@ async def edit_system_role_datascope(
deptIds=role_data_scope.dept_ids,
deptCheckStrictly=role_data_scope.dept_check_strictly,
updateBy=current_user.user.user_name,
updateTime=datetime.now(),
)
role_data_scope_result = await RoleService.role_datascope_services(query_db, edit_role)
logger.info(role_data_scope_result.message)
Expand Down Expand Up @@ -194,7 +189,7 @@ async def delete_system_role(
await RoleService.check_role_allowed_services(RoleModel(roleId=int(role_id)))
if not current_user.user.admin:
await RoleService.check_role_data_scope_services(query_db, role_id, data_scope_sql)
delete_role = DeleteRoleModel(roleIds=role_ids, updateBy=current_user.user.user_name, updateTime=datetime.now())
delete_role = DeleteRoleModel(roleIds=role_ids, updateBy=current_user.user.user_name)
delete_role_result = await RoleService.delete_role_services(query_db, delete_role)
logger.info(delete_role_result.message)

Expand Down Expand Up @@ -280,7 +275,6 @@ async def reset_system_role_status(
roleId=change_role.role_id,
status=change_role.status,
updateBy=current_user.user.user_name,
updateTime=datetime.now(),
type='status',
)
edit_role_result = await RoleService.edit_role_services(query_db, edit_role)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,7 @@ async def add_system_user(
await UserService.validate_password_services(request.app.state.redis, add_user.password)
add_user.password = PwdUtil.get_password_hash(add_user.password)
add_user.create_by = current_user.user.user_name
add_user.create_time = datetime.now()
add_user.update_by = current_user.user.user_name
add_user.update_time = datetime.now()
add_user_result = await UserService.add_user_services(query_db, add_user)
logger.info(add_user_result.message)

Expand Down Expand Up @@ -160,7 +158,6 @@ async def edit_system_user(
query_db, ','.join([str(item) for item in edit_user.role_ids]), role_data_scope_sql
)
edit_user.update_by = current_user.user.user_name
edit_user.update_time = datetime.now()
edit_user_result = await UserService.edit_user_services(query_db, edit_user)
logger.info(edit_user_result.message)

Expand Down Expand Up @@ -193,7 +190,7 @@ async def delete_system_user(
await UserService.check_user_allowed_services(UserModel(userId=int(user_id)))
if not current_user.user.admin:
await UserService.check_user_data_scope_services(query_db, int(user_id), data_scope_sql)
delete_user = DeleteUserModel(userIds=user_ids, updateBy=current_user.user.user_name, updateTime=datetime.now())
delete_user = DeleteUserModel(userIds=user_ids, updateBy=current_user.user.user_name)
delete_user_result = await UserService.delete_user_services(query_db, delete_user)
logger.info(delete_user_result.message)

Expand Down Expand Up @@ -227,7 +224,6 @@ async def reset_system_user_pwd(
password=PwdUtil.get_password_hash(reset_user.password),
pwdUpdateDate=datetime.now(),
updateBy=current_user.user.user_name,
updateTime=datetime.now(),
type='pwd',
)
edit_user_result = await UserService.edit_user_services(query_db, edit_user)
Expand Down Expand Up @@ -259,7 +255,6 @@ async def change_system_user_status(
userId=change_user.user_id,
status=change_user.status,
updateBy=current_user.user.user_name,
updateTime=datetime.now(),
type='status',
)
edit_user_result = await UserService.edit_user_services(query_db, edit_user)
Expand Down Expand Up @@ -348,7 +343,6 @@ async def change_system_user_profile_avatar(
userId=current_user.user.user_id,
avatar=f'{UploadConfig.UPLOAD_PREFIX}/{relative_path}/{avatar_name}',
updateBy=current_user.user.user_name,
updateTime=datetime.now(),
type='avatar',
)
edit_user_result = await UserService.edit_user_services(query_db, edit_user)
Expand Down Expand Up @@ -381,7 +375,6 @@ async def change_system_user_profile_info(
userId=current_user.user.user_id,
userName=current_user.user.user_name,
updateBy=current_user.user.user_name,
updateTime=datetime.now(),
roleIds=current_user.user.role_ids.split(',') if current_user.user.role_ids else [],
postIds=current_user.user.post_ids.split(',') if current_user.user.post_ids else [],
role=current_user.user.role,
Expand Down Expand Up @@ -412,7 +405,6 @@ async def reset_system_user_password(
password=reset_password.new_password,
pwdUpdateDate=datetime.now(),
updateBy=current_user.user.user_name,
updateTime=datetime.now(),
)
await UserService.validate_password_services(request.app.state.redis, reset_user.password)
reset_user_result = await UserService.reset_user_services(query_db, reset_user)
Expand Down
7 changes: 5 additions & 2 deletions ruoyi-fastapi-backend/module_admin/dao/config_dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ async def add_config_dao(cls, db: AsyncSession, config: ConfigModel) -> SysConfi
:param config: 参数配置对象
:return:
"""
db_config = SysConfig(**config.model_dump())
db_config = SysConfig(**config.model_dump(exclude={'create_time', 'update_time'}))
db.add(db_config)
await db.flush()

Expand All @@ -110,7 +110,10 @@ async def edit_config_dao(cls, db: AsyncSession, config: dict) -> None:
:param config: 需要更新的参数配置字典
:return:
"""
await db.execute(update(SysConfig), [config])
await db.execute(
update(SysConfig),
[{key: value for key, value in config.items() if key not in {'create_time', 'update_time'}}],
)

@classmethod
async def delete_config_dao(cls, db: AsyncSession, config: ConfigModel) -> None:
Expand Down
Loading
Loading