tfse-app-api-v0.2/user/user_db.py

139 lines
3.1 KiB
Python

import pymongo
from bson import ObjectId
from gridfs import GridFS
DB_USER = "root"
DB_PASS = "sromitdTW569kC#M"
DB_HOST = "116.63.130.34"
DB_PORT = "27018"
client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format(DB_USER, DB_PASS, DB_HOST, DB_PORT))
def FIND_VERIFY_CODE(param):
"""
查询验证记录
Parameters:
param: 查询条件
Returns:
record: 记录
"""
collection = client['用户']['验证记录']
data = collection.find(param, {'_id': False})
record = list(data)
return record
def UPDATE_VERIFY_CODE(email, data):
"""
查询验证记录
Parameters:
email: 邮箱
data: 要更新的数据
Returns:
record: 记录
"""
collection = client['用户']['验证记录']
collection.update_one({"邮箱": email}, {"$set": data}, upsert=True)
def CLEAN_VERIFY_CODE(email):
"""
清除验证码和验证时间戳
Parameters:
email: 邮箱
Returns:
-
"""
UPDATE_VERIFY_CODE(email, {"验证码": None, "验证有效期": None})
def FIND_USER_INFO(param):
"""
查询用户信息
Parameters:
param: 查询条件
Returns:
record: 记录
"""
collection = client['用户']['用户信息']
data = collection.find(param, {'_id': False})
record = list(data)
return record
def INSERT_USER_INFO(data):
"""
插入一条用户信息
Parameters:
data: 用户信息对象
Returns:
-
"""
collection = client['用户']['用户信息']
collection.insert_one(data)
def UPDATE_USER_INFO_BY_CID(cid, data):
"""
更新用户信息
Parameters:
cid: 企业ID
data: 更新数据
Returns:
info: 信息
"""
collection = client['用户']['用户信息']
collection.update_one({"企业ID": cid}, {"$set": data})
def FIND_FILE(bucket, file_id):
"""
读取一个文件
Parameters:
bucket:
file_id:
Returns:
data 文件二进制
"""
# 实例化一个文件存储器
gfs = GridFS(client['用户'], collection=bucket)
# 二进制读取文件
data = gfs.get(ObjectId(file_id)).read()
# 返回文件二进制流
return data
def INSERT_FILE(bucket, file_stream, content_type, filename):
"""
插入一个文件
Returns:
obj_id 文件ID
"""
# 实例化一个文件存储器
gfs = GridFS(client['用户'], bucket)
# 保存文件
obj_id = gfs.put(file_stream, content_type=content_type, filename=filename)
# 返回文件的obj_id
return str(obj_id)
def DELETE_FILE(bucket, file_id):
# 实例化一个文件存储器
gfs = GridFS(client['用户'], collection=bucket)
# 删除文件
gfs.delete(ObjectId(file_id))
def FIND_FID_IN_RATING_RECORD(cid):
"""
在评价记录中根据企业ID查询文件ID
Parameters:
cid: 企业ID
Returns:
record: 记录
"""
collection = client['评价']['评价记录']
data = collection.find({"企业ID": cid}, {'_id': False, "报告fid": 1, "证书fid": 1})
record = list(data)
return record