547a4eeae6
* docs(requirements.txt):升级fastapi、uvicorn版本 * refactor(user):重构用户router、service * ref: role list api * doc: 1 * refactor(backend): mvc ref
64 lines
1.7 KiB
Python
64 lines
1.7 KiB
Python
from core.dbhelper import DbHelper
|
|
|
|
|
|
class Service:
|
|
|
|
filter_del = {"status__not": 9}
|
|
|
|
def __init__(self, dao: DbHelper):
|
|
self.dao = dao
|
|
|
|
async def get_items(self, offset, limit):
|
|
"""
|
|
分页获取数据, 过滤掉删除
|
|
:param offset: 起始值
|
|
:param limit: 偏移量
|
|
:return:
|
|
"""
|
|
skip = (offset - 1) * limit
|
|
return dict(data=await self.dao.selects(skip, limit, Service.filter_del))
|
|
|
|
async def query_items(self, query):
|
|
"""
|
|
根据条件查询结果
|
|
:param query:
|
|
:return:
|
|
"""
|
|
size = query.limit
|
|
skip = (query.offset - 1) * size
|
|
del query.offset, query.limit
|
|
filters = {f"{k}__contains": v for k, v in query.dict().items()}
|
|
filters.update(Service.filter_del)
|
|
return dict(data=await self.dao.selects(skip, size, filters))
|
|
|
|
async def delete_item(self, pk):
|
|
"""
|
|
逻辑删除数据
|
|
:param pk:主键
|
|
:return:
|
|
"""
|
|
filters = {"id": pk}
|
|
filters.update(Service.filter_del)
|
|
if await self.dao.update(filters, {"status": 9}) == 0:
|
|
return dict(code=400, msg="数据不存在")
|
|
return dict()
|
|
|
|
async def update_item(self, pk, data):
|
|
"""
|
|
更新数据,不通用,可重写
|
|
:param pk: 主键
|
|
:param data: pydantic model
|
|
:return:
|
|
"""
|
|
if await self.dao.update({"id": pk}, data.dict()) == 0:
|
|
return dict(code=400, msg="数据不存在")
|
|
return dict()
|
|
|
|
async def create_item(self, data):
|
|
"""
|
|
创建数据,不通用可重写
|
|
:param data: pydantic model
|
|
:return:
|
|
"""
|
|
return await self.dao.insert(data.dict())
|