Example #1
0
def verify_user(session, name="", email="", telephone=""):
    """
    验证用户名、邮箱、手机号码不能重复
    :param name:
    :param email:
    :param telephone:
    :return: 0:没有重复;1:邮箱重复;2:用户名重复;3:电话号码重复;4:代码错误
    """
    try:
        if email:
            query = api.model_query(session, "User", {"email": [email]})
            if query.count() > 0:
                return 1
        if name:
            query = api.model_query(session, "User", {"name": [name]})
            if query.count() > 0:
                return 2
        if telephone:
            query = api.model_query(session, "User",
                                    {"telephone": [telephone]})
            if query.count() > 0:
                return 3
        if not email and not name and not telephone:
            return 4
        return 0
    except Exception as ex:
        gen_log.error("get available user error:%r" % ex)
        raise ex
Example #2
0
def delete_student(student_id=""):
    session = get_session()
    with session.begin():
        try:
            # del relation
            query = model_query(models.RelationInfo,
                                session=session,
                                student_id=student_id)
            relative_ids = [relation.relative_id for relation in query.all()]
            query.delete(synchronize_session=False)

            # del student
            query = model_query(models.StudentInfo,
                                session=session,
                                id=student_id)
            query.update({"deleted": True}, synchronize_session=False)

            # del relative
            query = model_query(models.RelativeInfo,
                                session=session,
                                id=relative_ids)
            query.update({"deleted": True}, synchronize_session=False)
        except Exception as ex:
            session.rollback()
            raise ex
Example #3
0
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()
Example #4
0
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()
Example #5
0
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()
Example #6
0
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()
Example #7
0
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()
Example #8
0
def init_like_count(session, keyword_list):
    result = []
    for keyword in keyword_list:
        query = api.model_query(session, "User_Like",
                                {"keyword_id": [keyword.get("id")]})
        keyword.update({"like_count": query.count()})
        result.append(keyword)
    return result
Example #9
0
def init_like_count(session, product_list):
    result = []
    for product in product_list:
        query = api.model_query(session, "User_Like",
                                {"product_id": [product.get("id")]})
        product.update({"like_count": query.count()})
        result.append(product)
    return result
Example #10
0
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()
Example #11
0
def verify_keyword(session, name):
    """
    :param session:
    :param name:
    :return:
    """
    if not name:
        return 0
    query = api.model_query(session, "ProductKeyword", {"name": [name]})
    if query.count() > 0:
        return 1
    return 0
Example #12
0
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()
Example #13
0
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()
Example #14
0
def verify_product(session, name):
    """
    验证产品名是否已经存在
    :param session:
    :param name:
    :return:
    """
    if not name:
        return 0
    query = api.model_query(session, "Product", {"name": [name]})
    if query.count() > 0:
        return 1
    return 0
Example #15
0
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()
Example #16
0
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()
Example #17
0
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()
Example #18
0
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()
Example #19
0
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()
Example #20
0
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()
Example #21
0
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()
Example #22
0
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()
Example #23
0
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 info_userid(self, user_id):
     query = api.model_query(self.model)
     result = query.filter_by(user_id=user_id).first()
     if not result:
         return None
     return result
Example #25
0
 def info_by_index(self, index):
     query = api.model_query(self.model)
     result = query.filter_by(chapter_index=index).first()
     if not result:
         return None
     return result