Пример #1
0
def update_user_info(db: Session,
                     user_id: int,
                     id_card_no: str,
                     realname: str,
                     mobile: str,
                     child_relation: int,
                     avatar: ObjectInfo = None):

    # 身份证号 和 姓名 必须都有, 否则无法进行实名认证
    if (id_card_no and not realname) or (not id_card_no and realname):
        raise exception.InvalidIDCardNumber(user_id, id_card_no, realname)

    if id_card_no:
        m_existing = user_model.find_user_info_by_id(db, user_id)
        if m_existing and m_existing.id_card_no:
            raise exception.IDCardNumberOrRealnameAlreadyExisted(
                user_id, id_card_no, realname)
        id_card_info = identity_usecase.verify_and_parse_id_card_no(
            user_id, id_card_no, realname)
        if not id_card_info:
            raise exception.InvalidIDCardNumber(user_id, id_card_no, realname)

    avatar_oss = ""
    if avatar:
        avatar_oss = ":".join([
            "qiniu", Facade.config["qiniu"]["category"]["avatar"]["bucket"],
            avatar.key
        ])
        """
        from kombu.exceptions import OperationalError as KombuOperationalError  # noqa
        from entity import Facade as EntityFacade  # noqa
        try:
            oss_provider = EntityFacade.oss_provider
            oss_provider.add_object_reference(i_user_id, "avatar", avatar)
        except KombuOperationalError as err:
            print("add_object_reference", err)
        """

    if child_relation:
        # Evict nickname if `child_relation` is to be updated
        result = user_model.upsert_user_info(db,
                                             user_id,
                                             id_card_no,
                                             realname,
                                             mobile,
                                             child_relation,
                                             avatar_oss,
                                             nickname="")
    else:
        result = user_model.upsert_user_info(
            db,
            user_id,
            id_card_no,
            realname,
            mobile,
            child_relation,
            avatar_oss,
        )

    return result
Пример #2
0
def update_guardian_nickname(db: Session, user_id: int,
                             child_relation: int) -> str:
    if not user_id:
        return None
    if not child_relation:
        m_user_info = orm_user.find_user_info_by_id(db, user_id)
        if not m_user_info:
            return None
        child_relation = m_user_info.child_relation

    m_children = orm_user.find_children_by_user_id(db, user_id)
    nickname = ui.build_family_nickname(CHILD_RELATION_INT2CN[child_relation],
                                        [c.nickname for c in m_children])

    orm_user.upsert_user_info(db, user_id, nickname=nickname)

    return nickname
Пример #3
0
def store_first_launch_user_info(db: Session, user_id: int, mobile: str,
                                 first_launch_info: FirstLaunchInfo):
    """ 保存 App初次启动 时用户填写的信息
    """

    child_relation = first_launch_info.relation if first_launch_info.relation\
        else 7

    # TODO: 把下面两部合并成一个 transaction
    upsert_user_info(db, user_id, mobile=mobile, child_relation=child_relation)

    create_child_transaction(db,
                             user_id,
                             birth_ts=first_launch_info.birth_ts
                             if first_launch_info.born else None,
                             gender=first_launch_info.gender,
                             nickname=first_launch_info.nickname)
Пример #4
0
def store_preset_user_info(db: Session,
                           user_id: int,
                           born: bool,
                           nickname: str,
                           relation: int,
                           birth_ts: int = None,
                           gender: int = None):

    user_model.upsert_user_info(db,
                                user_id,
                                child_relation=relation,
                                born=born,
                                nickname='')

    user_model.create_child_transaction(db,
                                        user_id,
                                        nickname=nickname,
                                        birth_ts=birth_ts,
                                        gender=gender)
Пример #5
0
def evict_guardian_nickname(db: Session, user_id: int):
    if not user_id:
        return None
    orm_user.upsert_user_info(db, user_id, nickname='')