• 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)
  • 相关阅读:
    [转发]UML类图符号 各种关系说明以及举例
    Promise 对象
    ES6基础(二)
    ES6基础
    JSON介绍
    Ajax的面试题
    Ajax请求
    jQuery从小白开始---初始jQuery
    常用的String原型
    JS之类数组
  • 原文地址:https://www.cnblogs.com/Doner/p/11228238.html
Copyright © 2020-2023  润新知