"""sys_message 站内信仓储(投顾触达客户,发送报告时写入)。""" from __future__ import annotations from sqlalchemy import select from model.sys_message import SysMessage from repositories.base import BaseRepository class SysMessageRepo(BaseRepository): model = SysMessage async def get_by_biz_id(self, biz_id: str, *, user_id: int) -> SysMessage | None: """按收件人和业务号查询已写入的站内信,供发送重试幂等使用。""" return await self.db.scalar( select(SysMessage).where( SysMessage.biz_id == biz_id, SysMessage.user_id == user_id, ) ) async def list_by_user( self, user_id: int, limit: int = 100, offset: int = 0 ) -> list[SysMessage]: """某用户(客户)的站内信,倒序分页。""" stmt = ( select(SysMessage) .where(SysMessage.user_id == user_id) .order_by(SysMessage.id.desc()) .limit(limit) .offset(offset) ) return list((await self.db.scalars(stmt)).all())