1. 新增文档源管理模块(documentSource) - 控制器:documentSourceController.py - DAO层:documentSourceDao.py - 模型:documentSourceModel.py - 服务层:documentSourceService.py 2. 新增技能管理模块(skill) - 控制器:skillController.py - DAO层:skillDao.py - 模型:skillModel.py - 服务层:skillService.py 3. 新增AI服务(aiService.py) 4. 新增配置文件 - AI配置:config/ai_config.py - 技能配置:config/skills/test-case-generator/ 5. 新增SQL脚本 - 文档权限:add_document_permissions.sql - 模块状态字段:add_module_status_field.sql - 文档源表:create_document_source_table.sql - 技能规则:skills_rules_pgsql.sql
76 lines
2.4 KiB
Python
76 lines
2.4 KiB
Python
# encoding: UTF-8
|
|
from sqlalchemy import func
|
|
|
|
from ..model.documentSourceModel import DocumentSource
|
|
|
|
|
|
class DocumentSourceDao:
|
|
|
|
@staticmethod
|
|
def create(session, document_source):
|
|
session.add(document_source)
|
|
session.flush()
|
|
return document_source.id
|
|
|
|
@staticmethod
|
|
def get_by_id(session, document_id):
|
|
return session.query(DocumentSource).filter(
|
|
DocumentSource.id == document_id,
|
|
DocumentSource.is_delete == 0
|
|
).first()
|
|
|
|
@staticmethod
|
|
def get_by_source(session, source):
|
|
return session.query(DocumentSource).filter(
|
|
DocumentSource.source == source,
|
|
DocumentSource.is_delete == 0
|
|
).first()
|
|
|
|
@staticmethod
|
|
def list_by_filters(session, filters, page_no=1, page_size=20, order_by=None):
|
|
query = session.query(DocumentSource).filter(*filters)
|
|
|
|
if order_by is not None:
|
|
query = query.order_by(order_by)
|
|
|
|
total = query.count()
|
|
|
|
items = query.offset((page_no - 1) * page_size).limit(page_size).all()
|
|
|
|
return items, total
|
|
|
|
@staticmethod
|
|
def update_by_id(session, document_id, update_info):
|
|
result = session.query(DocumentSource).filter(
|
|
DocumentSource.id == document_id,
|
|
DocumentSource.is_delete == 0
|
|
).update(update_info)
|
|
session.flush()
|
|
return result
|
|
|
|
@staticmethod
|
|
def delete_by_id(session, document_id):
|
|
return session.query(DocumentSource).filter(
|
|
DocumentSource.id == document_id,
|
|
DocumentSource.is_delete == 0
|
|
).update({'is_delete': 1})
|
|
|
|
@staticmethod
|
|
def get_latest_version(session, product_id, project_id, source):
|
|
return session.query(DocumentSource).filter(
|
|
DocumentSource.product_id == product_id,
|
|
DocumentSource.project_id == project_id,
|
|
DocumentSource.source == source,
|
|
DocumentSource.is_delete == 0
|
|
).order_by(DocumentSource.version.desc()).first()
|
|
|
|
@staticmethod
|
|
def get_max_version(session, product_id, project_id, source):
|
|
result = session.query(func.max(DocumentSource.version)).filter(
|
|
DocumentSource.product_id == product_id,
|
|
DocumentSource.project_id == project_id,
|
|
DocumentSource.source == source,
|
|
DocumentSource.is_delete == 0
|
|
).scalar()
|
|
return result if result else 0
|