3333
from bson import ObjectId
from flask import Blueprint,request,jsonify
from setting import MDB,RET
import datetime
devices_bp = Blueprint('devices_bp', name)
@devices_bp.route('/scan_qr',methods=['post'])
def scan_qr():
device = request.form.to_dict() # device key
print(device)
device_info = MDB.Devices.find_one(device)
if device_info:
RET['CODE'] = 0
RET['MSG'] = "扫描成功"
RET['DATE'] = device
# 描二维码成功
else:
# 扫描二维码失败 可能不是玩具二维码 数据库中未存在deviceKey
RET['CODE'] = 1
RET['MSG'] = "请扫描玩具二维码"
RET['DATE'] = {}
return jsonify(RET)
@devices_bp.route('/bind_toy',methods=['post'])
def bind_toy():
'''
:return:
'''
toy_info = request.form.to_dict() # 获取玩具的信息
print(toy_info)
# {'toy_name': '小狐狸', 'baby_name': '小主人', 'remark': '爸爸', 'device_key': 'undefined', 'user_id': '5d351fe2e1361657b745d191'}
# {'_id': ObjectId('5d351fe2e1361657b745d191'), 'username': '3', 'password': 'eccbc87e4b5ce2fe28308fd9f2a7baf3', 'nickname': '3', 'gender': '1', 'avatar': 'mama.jpg', 'bind_toys': [], 'friend_list': []}
toy_info['avatar'] = 'toy.jpg' # 加入图片? 信息
user_id = toy_info.pop("user_id") # 删除获得user_id的值
toy_info['bind_user'] = user_id # 并给一个新的值 # // 玩具的绑定用户
toy_info['friend_list'] = [] # // 玩具通讯录信息
user_info = MDB.Users.find_one({'_id':ObjectId(user_id)}) #
print(user_info,user_id)
toy_add_user = {
"friend_id": user_id, # app id
"friend_nick": user_info.get('nickname'), # user 昵称
"friend_remark": user_info.get('remark'), # remark在哪里呢?
"friend_avatar": user_info.get('avatar'), # user有头像吗?
# "friend_chat": user_id,
"friend_type": "app" # 好友的用户类型 app / toy
}
toy_info["friend_list"].append(toy_add_user)
toy_id = MDB.Toys.insert_one(toy_info)
print(toy_info)
# print(list(toy_id)) # TypeError: 'InsertOneResult' object is not iterable
# print()
# '''
user_add_toy = {
"friend_id": toy_id.inserted_id, # toy_id str
"friend_nick": toy_info.get('baby_name'), # baby_name
"friend_remark": toy_info.get('toy_name'), # toy_name
"friend_avatar": toy_info.get('avatar'), # 阿凡达
# "friend_chat": toy_id.inserted_id, # chat_id # // 私聊窗口ID 聊天数据表对应值
"friend_type": "toy" # 好友的类型 toy
}
user_info["bind_toys"].append(str(toy_id.inserted_id))
user_info["friend_list"].append(user_add_toy)
print(user_info,toy_info)
# MDB.Users.update_one({'_id':ObjectId(toy_info["bind_user"])})
# 修改 Users 的全部数据
MDB.Users.update_one({'_id':ObjectId(user_id)},{"$set":user_info})
# Chats 数据也会变化 user_list player_list 将 toy_id 和 user_id 加入
# MDB.Chats.update_one({},{"$set":{"user_list":["toy_id","user_id"]}})
u_chat_list = []
t_chat_list = []
u_chat_t = {
"from_user": user_id, # 信息发送方ID
"to_user": toy_id.inserted_id, # 信息接收方ID
"chat": "回家吃饭?", # 语音消息文件名
"createTime": datetime.datetime.now() # 聊天创建时间
}
# MDB.Chats.insert_one(u_chat_t)
# chat_id = MDB.Chats.insert_one(u_chat_t).inserted_id
# print(chat_id)
# toy_add_user['friend_chat'] = chat_id
t_chat_u = {
"from_user": toy_id.inserted_id, # 信息发送方ID
"to_user": user_id, # 信息接收方ID
"chat": "在网吧呢!", # 语音消息文件名
"createTime": datetime.datetime.now() # 聊天创建时间
}
u_chat_list.append(u_chat_t)
t_chat_list.append(t_chat_u)
MDB.Chats.insert_one({'chat_list':t_chat_list})
MDB.Chats.insert_one({'chat_list':u_chat_list})
id1 = str(list(MDB.Chats.find({'chat_list': t_chat_list}))[0].get('_id')) # u_add 的聊天的 那个id
id2 = str(list(MDB.Chats.find({'chat_list': u_chat_list}))[0].get('_id'))
# toy_add_user['friend_chat'] = id1
# user_add_toy['friend_chat'] = id1
# print(id1,id2,user_add_toy)
# print(toy_add_user,user_add_toy,type(toy_add_user),type(user_add_toy)) # <class 'tuple'> <class 'dict'> 添加成元祖了怎么整
# 把聊天id 传给friend , 然后 保存到数据库
print(1)
toy_add_user['friend_chat'] = id1
user_add_toy['friend_chat'] = id2
toy_info["friend_list"].append(toy_add_user)
MDB.Toys.update({'_id': ObjectId(str(toy_id.inserted_id))}, {"$set": toy_info})
print(2)
user_info["bind_toys"].append(str(toy_id.inserted_id))
user_info["friend_list"].append(user_add_toy)
MDB.Users.update_one({'_id': ObjectId(str(user_id))}, {"$set": user_info})
# MDB.Chats.insert_one({'chat_list':t_chat_list})
# MDB.Chats.insert_one({'chat_list':u_chat_list})
print(3)
user_toy = [user_id, str(toy_id.inserted_id)]
toy_user = [str(toy_id.inserted_id), user_id]
MDB.Chats.update_one({'chat_list': t_chat_list}, {"$set": {'user_list': user_toy}})
MDB.Chats.update_one({'chat_list': u_chat_list}, {"$set": {'user_list': toy_user}})
print(4)
# print(str(list(MDB.Chats.find({'chat_list':t_chat_list}))[0].get('_id')))
# chat_id = MDB.Chats.insert_one(u_chat_t).inserted_id
# print(chat_id)
# print(list(MDB.Chats.find({})))
RET["CODE"] = 0
RET["MSG"] = "绑定完成"
RET["DATA"] = {}
# '''
return jsonify(RET)
@devices_bp.route('/toy_list',methods=['post'])
def toy_list():
bind_user = request.form.get('_id')
toyl = list(MDB.Toys.find({'bind_user':bind_user}))
for toy in toyl:
toy['_id'] = str(toy.get('_id'))
RET['CODE'] = 0
RET['MSG'] = '获取Toy列表'
RET["DATA"] = toyl
return jsonify(RET)