# -*- coding: utf-8 -*- from datetime import datetime from typing import Sequence from app.core.base_crud import CRUDBase from app.api.v1.module_system.auth.schema import AuthSchema from .model import MiniappUserModel from .schema import MiniappUserCreateSchema, MiniappUserUpdateSchema class MiniappUserCRUD(CRUDBase[MiniappUserModel, MiniappUserCreateSchema, MiniappUserUpdateSchema]): """小程序用户数据层""" def __init__(self, auth: AuthSchema) -> None: super().__init__(model=MiniappUserModel, auth=auth) async def get_by_openid(self, openid: str) -> MiniappUserModel | None: """根据openid获取用户""" return await self.get(openid=openid) async def get_by_id_crud(self, id: int) -> MiniappUserModel | None: """根据ID获取用户""" return await self.get(id=id) async def update_last_login(self, id: int) -> MiniappUserModel | None: """更新最后登录时间""" return await self.update(id=id, data={"last_login": datetime.now()}) async def update_session_key(self, id: int, session_key: str) -> MiniappUserModel | None: """更新session_key""" return await self.update(id=id, data={"session_key": session_key})