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
|