def get_pu(ip="", html="", start="", end=""): try: session = get_session() # verify date if start and not is_date(start): gen_log.info("start format error:%s, %s"%(start, type(start))) return [] if end and not is_date(end): gen_log.info("end format error:%s, %s" % (end, type(start))) return [] query = api.get_pu_count(session, ip, html, start, end) results = query.all() _ = [] for result in results: _.append({ "ip": result.ip, "html": result.html, "count": int(result[2]) }) return _ except Exception as ex: gen_log.error("pu query error:%r"%ex) return [] finally: session.close()
def update_product(productinfo, con_dic): """ 更新产品 :param productinfo:{"name": "sdfds"} :param con_dic: {"name": ["sdfdsd"]} :return: """ try: session = get_session() sort_num = productinfo.get("sort_num", 10000) if sort_num == 0: productinfo.update({"sort_num": 10000}) if sort_num > 0 and sort_num < 10000: api.set_product_sort_num(session, sort_num) name = productinfo.get("name", "") _ = verify_product(session, name) if _ != 0: return False query = api.model_query(session, "Product", con_dic) query.update(productinfo, synchronize_session=False) session.commit() return True except Exception as ex: gen_log.error("update user error:%r" % ex) return False finally: session.close()
def get_product(**kwargs): id = kwargs.get("id", "") name = kwargs.get("name", "") offset = kwargs.get("offset", 0) limit = kwargs.get("limit", 0) try: session = get_session() results = [] if id: query = api.model_query(session, "Product", {"id": [id]}) result = query.first() if result: results.append(result.to_dict()) return init_like_count(session, results) if name: query = api.model_query(session, "Product", {"name": [name]}) result = query.first() if result: results.append(result.to_dict()) return init_like_count(session, results) query = api.model_query(session, "Product", {}) results = query.order_by("sort_num").all() results = [result.to_dict() for result in results] return init_like_count(session, results) except Exception as ex: gen_log.error("Get product error:%r" % ex) return [] finally: session.close()
def get_creating_user(**kwargs): email = kwargs.get("email", "") user_name = kwargs.get("name", "") gen_log.info("user name:%s" % user_name) try: #email = bs2unicode(email) session = get_session() if email: gen_log.info(1) query = api.model_query(session, "User", { "email": [email], "status": ["creating"] }) result = query.first() return result if user_name: gen_log.info(2) query = api.model_query(session, "User", { "name": [user_name], "status": ["creating"] }) result = query.first() return result except Exception as ex: gen_log.error("get creating user error:%r" % ex) finally: session.close()
def pu_add(ip, html, product_id="", product_name=""): try: session = get_session() current_month = datetime.datetime.now().strftime('%Y-%m-%d')+" 00:00:00" query = api.model_query(session, "Product_PU", {"ip": [ip], "html": [html], "visit_date": [current_month]}) if query.count() == 0: data = { "ip": ip, "html": html, "product_id": product_id, "product_name": product_name, "pu_count": 1, "visit_date": current_month } data = api.convert_model("Product_PU", data) session.add(data) else: current_pu = query.first() current_pu.pu_count += 1 #query.update({ # models.Product_PU.pu_count: current_pu.pu_count +1 #}) session.commit() return True except Exception as ex: gen_log.error("pu add error:%r" % ex) return False finally: session.close()
def get_company(): try: session = get_session() query = api.model_query(session, "Company", {}) _ = query.first() return _.to_dict() except Exception as ex: gen_log.error("get all company error:%r"%ex) return {} finally: session.close()
def del_user(user_name): try: session = get_session() query = api.model_query(session, "User", {"name": [user_name]}) query.delete(synchronize_session=False) session.commit() return 0 except Exception as ex: gen_log.error("del user error:%r" % ex) return 1 finally: session.close()
def update_company(company_info, company_name): try: session = get_session() query = api.model_query(session, "Company", {"name": [company_name]}) query.update(company_info, synchronize_session=False) session.commit() return True except Exception as ex: gen_log.error("update company error:%r" % ex) return False finally: session.close()
def get_keyword_like_count(keyword_id): try: session = get_session() query = api.model_query(session, "ProductKeyword", {"id": [keyword_id]}) result = query.first() if not result: return 0 query = api.model_query(session, "User_Like", {"keyword_id": [keyword_id]}) real_count = query.count() return real_count + result.like_add_count except Exception as ex: gen_log.error("Query keyword like count error:%r."%ex) return 0 finally: session.close()
def get_product_by_names(product_names): try: session = get_session() query = api.model_query( session, "Product", { "name": product_names if isinstance(product_names, list) else [product_names] }) results = query.all() return [result.to_dict() for result in results] except Exception as ex: gen_log.error("Get product by name error:%r" % ex) finally: session.close()
def del_product(product_names): try: session = get_session() query = api.model_query( session, "Product", { "name": product_names if isinstance(product_names, list) else [product_names] }) query.delete(synchronize_session=False) session.commit() return True except Exception as ex: gen_log.error("del product error:%r" % ex) return False finally: session.close()
def del_keyword(keyword_name): try: session = get_session() query = api.model_query( session, "ProductKeyword", { "name": keyword_name if isinstance(keyword_name, list) else [keyword_name] }) query.delete(synchronize_session=False) session.commit() return True except Exception as ex: gen_log.error("del keyword error:%r" % ex) return False finally: session.close()
def get_product_like_theme(product_keyword, offset=0, limit=0): """ 获取产品列表,根据关键字模糊查询 :param product_keyword: :return: """ if not product_keyword: return try: session = get_session() query = api.get_product_like_theme(session, product_keyword) results = query.order_by("sort_num").all() results = [result.to_dict() for result in results] return init_like_count(session, results) except Exception as ex: gen_log.error("like query product error: %r" % ex) finally: session.close()
def update_user(userinfo, con_dic): """ 更新用户 :param userinfo: 字典,key必须和models.User匹配,待更新的用户信息 :param con_dic: 字典,待更新的条件 :return: """ try: session = get_session() query = api.model_query(session, "User", con_dic) query.update(userinfo, synchronize_session=False) session.commit() return True except Exception as ex: gen_log.error("update user error:%r" % ex) return False finally: session.close()
def is_exit_avai_email(email=""): if not email: raise ValueError('email is none') try: #email = bs2unicode(email) session = get_session() query = api.model_query(session, "User", { "email": [email], "status": ["available"] }) result = query.first() if result: return True return False except Exception as ex: gen_log.error("exit email error:%r" % ex) raise ex finally: session.close()
def get_all_user(): """ 获取所有的用户 :return: """ try: session = get_session() query = api.model_query(session, "User", {}) results = query.all() _result = [] for result in results: result.pwd = "" _result.append(result.to_dict()) return _result except Exception as ex: gen_log.error("get all user error:%r" % ex) return [] finally: session.close()
def add_product(productinfo): try: name = productinfo.get("name", "") session = get_session() _ = verify_product(session, name) if _ != 0: return False sort_num = productinfo.get("sort_num", 10000) if sort_num <= 0: productinfo.update({"sort_num": 10000}) if sort_num > 0 and sort_num < 10000: api.set_product_sort_num(session, sort_num) model_user = api.convert_model("Product", productinfo) session.add(model_user) session.commit() return True except Exception as ex: gen_log.error("add user error:%r" % ex) raise ex finally: session.close()
def add_keyword(keywordinfo): try: name = keywordinfo.get("name", "") session = get_session() _ = verify_keyword(session, name) if _ != 0: return False sort_num = keywordinfo.get("sort_num", 10000) if sort_num == 0: keywordinfo.update({"sort_num": 10000}) if sort_num > 0 and sort_num < 10000: api.set_keyword_sort_num(session, sort_num) model_keyword = api.convert_model("ProductKeyword", keywordinfo) session.add(model_keyword) session.commit() return True except Exception as ex: gen_log.error("add keyword error:%r" % ex) raise ex finally: session.close()
def add_user(userinfo): """ 添加用户 :param userinfo: 字典,key必须和models.User匹配 :return: """ try: email = userinfo.get("email", "") name = userinfo.get("name", "") telephone = userinfo.get("telephone", "") session = get_session() _ = verify_user(session, name, email, telephone) if _ != 0: return False model_user = api.convert_model("User", userinfo) session.add(model_user) session.commit() return True except Exception as ex: gen_log.error("add user error:%r" % ex) return False finally: session.close()
def update_keyword(keywordinfo, con_dic): try: session = get_session() name = keywordinfo.get("name", "") _ = verify_keyword(session, name) if _ != 0: return False sort_num = keywordinfo.get("sort_num", 10000) if sort_num == 0: keywordinfo.update({"sort_num": 10000}) if sort_num > 0 and sort_num < 10000: api.set_keyword_sort_num(session, sort_num) query = api.model_query(session, "ProductKeyword", con_dic) query.update(keywordinfo, synchronize_session=False) session.commit() return True except Exception as ex: gen_log.error("update keyword error:%r" % ex) return False finally: session.close()
def get_available_user(**kwargs): email = kwargs.get("email", "") user_name = kwargs.get("name", "") try: session = get_session() if email: query = api.model_query(session, "User", { "email": [email], "status": ["available"] }) result = query.first() return result if user_name: query = api.model_query(session, "User", { "name": [user_name], "status": ["available"] }) result = query.first() return result except Exception as ex: gen_log.error("get available user error:%r" % ex) finally: session.close()
def like_product(product_id, user_name): try: session = get_session() query = api.model_query(session, "User_Like", {"product_id": [product_id], "user_name": [user_name]}) if query.count() > 0: gen_log.log("The user has already clicked.") return False query = api.model_query(session, "Product", {"id": [product_id]}) if query.count() == 0: gen_log.log("Product id no exist.") return False data = { "user_name": user_name, "product_id": product_id } model_like = api.convert_model("User_Like", data) session.add(model_like) session.commit() return True except Exception as ex: gen_log.error("like product error:%r" % ex) return False finally: session.close()