89 lines
2.5 KiB
Python
89 lines
2.5 KiB
Python
|
#!/usr/bin/python
|
|||
|
# -*- coding: utf-8 -*-
|
|||
|
# @version : 1.0
|
|||
|
# @Create Time : 2021/10/18 22:18
|
|||
|
# @File : crud.py
|
|||
|
# @IDE : PyCharm
|
|||
|
# @desc : 数据库 增删改查操作
|
|||
|
|
|||
|
import random
|
|||
|
from motor.motor_asyncio import AsyncIOMotorDatabase
|
|||
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|||
|
from . import models, schemas
|
|||
|
from core.crud import DalBase
|
|||
|
from core.mongo_manage import MongoManage
|
|||
|
|
|||
|
|
|||
|
class LoginRecordDal(DalBase):
|
|||
|
|
|||
|
def __init__(self, db: AsyncSession):
|
|||
|
super(LoginRecordDal, self).__init__()
|
|||
|
self.db = db
|
|||
|
self.model = models.VadminLoginRecord
|
|||
|
self.schema = schemas.LoginRecordSimpleOut
|
|||
|
|
|||
|
async def get_user_distribute(self) -> list[dict]:
|
|||
|
"""
|
|||
|
获取用户登录分布情况
|
|||
|
高德经纬度查询:https://lbs.amap.com/tools/picker
|
|||
|
|
|||
|
{
|
|||
|
name: '北京',
|
|||
|
center: [116.407394, 39.904211],
|
|||
|
total: 20
|
|||
|
}
|
|||
|
|
|||
|
:return: List[dict]
|
|||
|
"""
|
|||
|
result = [{
|
|||
|
"name": '北京',
|
|||
|
"center": [116.407394, 39.904211],
|
|||
|
},
|
|||
|
{
|
|||
|
"name": '重庆',
|
|||
|
"center": [106.551643, 29.562849],
|
|||
|
},
|
|||
|
{
|
|||
|
"name": '郑州',
|
|||
|
"center": [113.778584, 34.759197],
|
|||
|
},
|
|||
|
{
|
|||
|
"name": '南京',
|
|||
|
"center": [118.796624, 32.059344],
|
|||
|
},
|
|||
|
{
|
|||
|
"name": '武汉',
|
|||
|
"center": [114.304569, 30.593354],
|
|||
|
},
|
|||
|
{
|
|||
|
"name": '乌鲁木齐',
|
|||
|
"center": [87.616824, 43.825377],
|
|||
|
},
|
|||
|
{
|
|||
|
"name": '新乡',
|
|||
|
"center": [113.92679, 35.303589],
|
|||
|
}]
|
|||
|
for data in result:
|
|||
|
assert isinstance(data, dict)
|
|||
|
data["total"] = random.randint(2, 80)
|
|||
|
return result
|
|||
|
|
|||
|
|
|||
|
class SMSSendRecordDal(DalBase):
|
|||
|
|
|||
|
def __init__(self, db: AsyncSession):
|
|||
|
super(SMSSendRecordDal, self).__init__()
|
|||
|
self.db = db
|
|||
|
self.model = models.VadminSMSSendRecord
|
|||
|
self.schema = schemas.SMSSendRecordSimpleOut
|
|||
|
|
|||
|
|
|||
|
class OperationRecordDal(MongoManage):
|
|||
|
|
|||
|
def __init__(self, db: AsyncIOMotorDatabase):
|
|||
|
super(OperationRecordDal, self).__init__()
|
|||
|
self.db = db
|
|||
|
self.collection = db["operation_record"]
|
|||
|
self.schema = schemas.OperationRecordSimpleOut
|
|||
|
self.is_object_id = True
|