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
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
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)
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)
def evict_guardian_nickname(db: Session, user_id: int): if not user_id: return None orm_user.upsert_user_info(db, user_id, nickname='')