| 12345678910111213141516171819202122232425262728293031323334353637 |
- from sqlalchemy.ext.asyncio import AsyncSession
- from alien_store.db.models.contract_store import ContractStore
- class ContractRepository:
- """合同数据访问层"""
- def __init__(self, db: AsyncSession):
- self.db = db
- async def get_by_store_id(self, store_id: int):
- """根据店铺id查询所有合同"""
- result = await self.db.execute(
- ContractStore.__table__.select().where(ContractStore.store_id == store_id)
- )
- # 返回列表[dict],避免 Pydantic 序列化 Row 对象出错
- return [dict(row) for row in result.mappings().all()]
- async def create(self, user_data):
- """创建未签署合同模板"""
- db_templates = ContractStore(
- store_id=user_data.store_id,
- merchant_name=user_data.merchant_name,
- business_segment=user_data.business_segment,
- contact_phone=user_data.contact_phone,
- contract_url=user_data.contract_url,
- seal_url='0.0',
- )
- self.db.add(db_templates)
- await self.db.commit()
- await self.db.refresh(db_templates)
- return db_templates
|