def select_dir_page(count, page, _id): """ 根据page值获取前后页数据 :param count: 每页数量 :param page: 当前页与目标页之差,page > 0 为向后, page < 0 为向前 :param _id: 当前页第一条数据的_id :return: list or None """ success = None result = [] mongo = Mongo() try: if page > 0: skip_count = (page - 1) * count for item in mongo.card.find({"_id": {"$gt": ObjectId(_id)}, "delete": False}).skip(skip_count).limit(count): result.insert(0, item) success = result elif page < 0: skip_count = abs(page) * count - 1 for item in mongo.card.find({"_id": {"$lt": ObjectId(_id)}, "delete": False}).sort("_id", -1).skip(skip_count).limit(count): result.append(item) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def insert_account(username, pwd): """ 插入新用户 :param username: 用户名 str :param pwd: 密码 str :return: 是否成功 None or ObjectId """ success = None mongo = Mongo() try: data = { "username": username, "pwd": pwd, "admin": False, "favor": [], "vip": True, "avatar": "", "section": "", "position": "" } success = mongo.user.insert(data) except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_pre_page(count, page, _id): """ 获取前页数据 :param count: 每页数量 :param page: 当前页与目标页之差,应该大于0 :param _id: 当前页第一条数据的_id :return: list or None """ success = None result = [] mongo = Mongo() try: skip_count = (page - 1) * count for item in mongo.company.find({ "_id": { "$gt": ObjectId(_id) }, "delete": False }).skip(skip_count).limit(count): result.insert(0, item) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_next_page(count, page, _id): """ 获取后页数据 :param count: 每页数量 :param page: 当前页与目标页之差,应该小于0 :param _id: 当前页第一条数据的_id :return: list or None """ success = None result = [] mongo = Mongo() try: skip_count = abs(page) * count - 1 for item in mongo.company.find({ "_id": { "$lt": ObjectId(_id) }, "delete": False }).sort("_id", -1).skip(skip_count).limit(count): result.append(item) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def insert_account(username, pwd): """ 插入新用户 :param username: 用户名 str :param pwd: 密码 str :return: 是否成功 None or ObjectId """ success = None mongo = Mongo() try: if mongo.user.find_one({"username": username}) is None: data = { "username": username, "pwd": pwd, "admin": False, "vip": True, "delete": False, "system": False } success = mongo.user.insert(data) except Exception as e: traceback.print_exc() finally: mongo.close() return success
def count(): """ 返回企业数量 :return: int """ result = 0 mongo = Mongo() try: result = mongo.company.find({"delete": False}).count() except Exception as e: traceback.print_exc() finally: mongo.close() return result
def insert(data): """ 插入名片 :param data: 名片数据 dict :return: None or ObjectId """ success = None mongo = Mongo() try: success = mongo.card.insert(data) except Exception as e: traceback.print_exc() finally: mongo.close() return success
def del_account(username): """ :param username: 用户名 str :return: 是否成功 boolean """ success = False mongo = Mongo() try: result = mongo.user.remove({"username": username}) success = True except Exception as e: traceback.print_exc() finally: mongo.close() return success
def insert_login(username): """ 登录事件log :param username: 用户名 :return: ObjectId """ success = None mongo = Mongo() try: log_data = {"uuid": None, "username": username, "date": get_13ts(), "oper": "login"} success = mongo.log.insert_one(log_data) except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_id(_id): """ 通过id查询 :param _id: str :return: None or dict """ success = None mongo = Mongo() try: result = mongo.card.find_one({"_id": ObjectId(_id)}) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_username(username): """ 通过username查找用户信息 :param username: 用户名 str :return: 用户信息 list<dict> if 不为空 else () """ success = None mongo = Mongo() try: result = mongo.user.find_one({"username": username}) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_all(): """ :return: None or list """ success = None result = [] mongo = Mongo() try: for item in mongo.visit.find(): result.append(item) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def delete(uuid): """ 删除名片 :param uuid: 名片id str :return: boolean """ success = False mongo = Mongo() try: result = mongo.card.remove({"uuid": uuid}) success = True except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_id(_id): """ 通过uid查找用户信息 :param _id: 用户id str :return: 用户信息 list<dict> if 不为空 else () """ success = None mongo = Mongo() try: result = mongo.user.find_one({"_id": ObjectId(_id)}) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def update(uuid, new_data): """ 更新名片 :param uuid: 名片id str :param new_data: 新数据 dict :return: boolean """ success = False mongo = Mongo() try: result = mongo.card.update_one({"uuid": uuid}, {"$set": new_data}, upsert=True) success = True except Exception as e: traceback.print_exc() finally: mongo.close() return success
def insert_modify(uuid, username): """ 修改事件log记录 :param uuid: uuid :param username: 用户名 :return: ObjectId """ success = None mongo = Mongo() try: log_data = {"uuid": uuid, "username": username, "date": get_13ts(), "oper": "modify"} success = mongo.log.insert_one(log_data) except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_login(): """ 查询所有登录记录 :return: None or list """ success = None result = [] mongo = Mongo() try: for item in mongo.log.find({"oper": "login"}).sort('_id', -1): result.append(item) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_company(company): """ 通过company_name查询 :param name: str :return: None or list """ success = None result = [] mongo = Mongo() try: for item in mongo.card.find({"company_name": company}): result.append(item) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_first_page(count): """ 获取第一页数据 :param count: int 每页条数 :return: list or None """ success = None result = [] mongo = Mongo() try: for item in mongo.card.find({"delete": False}).sort("_id", -1).limit(count): result.append(item) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_all(): """ :return: None or list """ success = None result = [] mongo = Mongo() try: for item in mongo.visit.find({"delete": False}): if item is not None: del item["_id"] result.append(item) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_uuid(uuid): """ 通过id查询 :param uuid: str :return: None or dict """ success = None mongo = Mongo() try: result = mongo.visit.find_one({"uuid": uuid}) if result is not None: del result["_id"] success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_newest(timestamp): """ 将上次用户同步后的新数据uuid返回 :param timestamp: 时间戳timestamp :return: list or None """ success = None result = [] mongo = Mongo() try: for item in mongo.card.find({"create_time": {"$gt": timestamp}}, {"_id": 0, "uuid": 1}): result.append(item["uuid"]) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_username(username): """ 通过username查询记录 :param username: username :return: None or list """ success = None result = [] mongo = Mongo() try: for item in mongo.log.find({"username": username}).sort('_id', -1): result.append(item) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success
def update(uuid, new_data): """ 更新 :param uuid: id str :param new_data: 新数据 dict :return: boolean """ success = False mongo = Mongo() try: if "_id" in new_data: del new_data["id"] result = mongo.company.update_one({"uuid": uuid}, {"$set": new_data}) success = bool(True) except Exception as e: traceback.print_exc() finally: mongo.close() return success
def delete(uuid): """ 删除 :param uuid: id str :return: boolean """ success = False mongo = Mongo() try: result = mongo.company.update_one({"uuid": uuid}, {"$set": { "delete": True }}) success = bool(True) except Exception as e: traceback.print_exc() finally: mongo.close() return success
def set_admin(username): """ 修改用户组 :param username: 用户名 str :return: 是否成功 boolean """ success = False mongo = Mongo() try: result = mongo.user.update({"username": username}, {"$set": { "admin": True }}) success = True except Exception as e: traceback.print_exc() finally: mongo.close() return success
def select_name(name): """ 通过name查询 :param name: str :return: None or list """ success = None result = [] mongo = Mongo() try: for item in mongo.card.find({"name": name}): if item is not None: del item["_id"] result.append(item) success = result except Exception as e: traceback.print_exc() finally: mongo.close() return success