33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
# -*- 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})
|