feat(repo): 全部模块 service 改用 repository(Repository 全面落地)

- 24 个模块 service 从直接 db.query 改为使用各自 repository(get_by_id/filter/create/update)
- 4 个 agent 并行分组转换:system 组、dictionary/configuration/member/region、cms/link/notice、job/log
- 保留合法 db 用法:跨模型查询(user→dept/level/position、ad→adsort、adsort→item/itemcate)、投影查询(role/menu)、按条件删除(set_permission/save_role_menu/add_user_role)、独立会话(record_job_log/record_operation_log)、db.commit(pause/resume)
- 修复 JobLogRepository 软删列 del_flag;修复 ad/notice create 重复传参 bug
- 修复 base_repository.get_by_id/get_by_ids 兼容字符串 ID
- 实测:27 个读接口 + dept/notice/member/level 写操作全通过

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Claude
2026-08-07 11:02:58 +08:00
co-authored by Claude
parent 13853daa4a
commit 969fdbbe7f
18 changed files with 219 additions and 388 deletions
+4 -7
View File
@@ -47,7 +47,6 @@ from datetime import datetime, timezone
from fastapi.logger import logger
from openpyxl.reader.excel import load_workbook
from openpyxl.workbook import Workbook
from sqlalchemy import and_
from shared.constants import PAGE_SIZE
@@ -201,13 +200,12 @@ async def import_level(request, file):
# 职级状态
status = ws.cell(item, 4).value
# 创建数据
level = Level(
level_repo.create(
name=name,
status=1 if status == "正常" else 2,
sort=sort,
create_user=get_user_id(request)
)
level.create_user = get_user_id(request)
level.save()
count += 1
# 关闭工作簿
@@ -229,7 +227,7 @@ async def import_level(request, file):
def export_level(request):
db = get_db_session()
# 查询数据
query = db.query(Level).filter(Level.is_delete == 0)
query = level_repo.filter(Level.is_delete == 0)
# 职级名称
name = request.query_params.get('name')
if name:
@@ -282,9 +280,8 @@ def export_level(request):
# 获取职级数据列表
def get_level_list():
db = get_db_session()
# 查询职级数据列表
level_rows = db.query(Level).filter(and_(Level.is_delete == 0, Level.status == 1)).order_by(Level.sort.asc()).all()
level_rows = level_repo.filter(Level.is_delete == 0, Level.status == 1).order_by(Level.sort.asc()).all()
# 实例化列表
level_list = []
# 遍历数据源