Example #1
0
def run(gid,uid):
    if isinstance(uid,list)==False:
        uid=[uid]
    with dbconfig.Session() as session:

        group=session.query(Group).filter(Group.gid==gid).first()
        if group is None:
            return Res(errno=2,error="group not exists")
        if  group.everyone_caninvite==0 and group.creator!=BackEndEnvData.uid:
            return Res(errno=2,error="not everyone can invaite and you are not creator")
        if group.creator!=uid:
            gm=session.query(GroupMember).filter(and_(GroupMember.gid==gid,GroupMember.uid==BackEndEnvData.uid)).first()
            if gm is None:
                return Res(errno=2,error="you are not member")

        events=[]
        for u in uid:
            event=Events()
            event.touid=u
            event.type="group_invite"
            event.param1=gid
            event.param2=BackEndEnvData.uid
            event=session.merge(event)
            events.append(event)
        session.commit()
        for ev in events:
            AddEventNotify(ev)
    return Res()
Example #2
0
def run(uid,recommend_word,city,sex,sex_want,contact,age,tags):
    with dbconfig.Session() as session:
        user=session.query(User).filter(User.uid==uid)
        if user is None:
            return Res({},errno=3,error='user not exists')
        ru=RecommendUser()
        ru.uid=uid
        ru.recommend_uid=BackEndEnvData.uid
        ru.recommend_word=recommend_word
        ru.city=city
        ru.sex=sex
        ru.sex_want=sex_want
        ru.contact=contact
        ru.age=age
        if isinstance(tags,list):
            ru.tags='|'.join(tags)

        session.merge(ru)
        session.commit()

        event=Events()
        event.touid=uid
        event.param1=uid
        event.param2=BackEndEnvData.uid
        event.type="recommend"
        event=session.merge(event)
        session.commit()

        AddEventNotify(event)

    return Res()
Example #3
0
def run(uid, type=0):
    if isinstance(uid, list) == False:
        uid = [uid]
    uids = []
    for u in uid:
        if u != BackEndEnvData.uid:
            uids.append(u)
    with dbconfig.Session() as session:
        eventpost = []
        for id in uids:
            friend = FriendList()
            friend.uid = BackEndEnvData.uid
            friend.friendid = id
            friend.type = type
            session.merge(friend)

            event = Events()
            event.touid = id
            event.param1 = BackEndEnvData.uid
            event.type = "add_friend"
            event = session.merge(event)
            eventpost.append(event)

        session.commit()
        for e in eventpost:
            AddEventNotify(e)
    return Res()
Example #4
0
def run(uid,type=0):
    if isinstance(uid,list)==False:
        uid=[uid]
    uids=[]
    for u in uid:
        if u!=BackEndEnvData.uid:
            uids.append(u)
    with dbconfig.Session() as session:
        eventpost=[]
        for id in uids:
            friend=FriendList()
            friend.uid=BackEndEnvData.uid
            friend.friendid=id
            friend.type=type
            session.merge(friend)

            event=Events()
            event.touid=id
            event.param1=BackEndEnvData.uid
            event.type="add_friend"
            event=session.merge(event)
            eventpost.append(event)

        session.commit()
        for e in eventpost:
            AddEventNotify(e)
    return Res()
Example #5
0
def run(active_code):
    actinfo=dbconfig.memclient.get(("active_code:%s"%active_code).encode('utf-8'))
    if actinfo is None:
        return Res({},3,"not active code")
    if actinfo['uid']==BackEndEnvData.uid:
        return Res({},3,"do not self active")
    with dbconfig.Session() as session:
        user=session.query(User).filter(User.uid==BackEndEnvData.uid).first()
        user.active_by=actinfo['uid']
        user.active_level=actinfo['level']
        user.active_time=datetime.datetime.now()
        user=session.merge(user)
        session.commit()
        #添加好友
        friend=FriendList()
        friend.uid=BackEndEnvData.uid
        friend.friendid=user.active_by
        friend.type=2
        friend1=session.merge(friend)
        friend=FriendList()
        friend.uid=user.active_by
        friend.friendid=BackEndEnvData.uid
        friend.type=2
        friend2=session.merge(friend)
        session.commit()
        #发送通知
        event=Events()
        event.touid=user.active_by
        event.param1=BackEndEnvData.uid
        event.type="add_friend"
        event1=session.merge(event)
        event=Events()
        event.touid=BackEndEnvData.uid
        event.param1=user.active_by
        event.type="add_friend"
        event2=session.merge(event)
        session.commit()
        AddEventNotify(event1)
        AddEventNotify(event2)

        return Res({'active_level':user.active_level,'active_by':user.active_by})
Example #6
0
def run(uid, recommend_word, city, sex, sex_want, contact, age, tags):
    with dbconfig.Session() as session:
        user = session.query(User).filter(User.uid == uid)
        if user is None:
            return Res({}, errno=3, error='user not exists')
        ru = RecommendUser()
        ru.uid = uid
        ru.recommend_uid = BackEndEnvData.uid
        ru.recommend_word = recommend_word
        ru.city = city
        ru.sex = sex
        ru.sex_want = sex_want
        ru.contact = contact
        ru.age = age
        if isinstance(tags, list):
            ru.tags = '|'.join(tags)

        session.merge(ru)
        session.commit()

        event = Events()
        event.touid = uid
        event.param1 = uid
        event.param2 = BackEndEnvData.uid
        event.type = "recommend"
        event = session.merge(event)
        session.commit()

        AddEventNotify(event)

    return Res()
Example #7
0
def run(gid,uid):
    if isinstance(uid,list)==False:
        uid=[uid]
    with dbconfig.Session() as session:

        group=session.query(Group).filter(Group.gid==gid).first()
        if group is None or (group.everyone_caninvite==0 and group.creator!=BackEndEnvData.uid):
            return Res(errno=2,error="not everyone can invaite and you are not creator")
        if group.creator!=uid:
            gm=session.query(GroupMember).filter(and_(GroupMember.gid==gid,GroupMember.uid==uid)).first()
            if gm is None:
                return Res(errno=2,error="you are not member")

        events=[]
        for u in uid:
            event=Events()
            event.touid=u
            event.type="group_invite"
            event.param1=gid
            event.param2=BackEndEnvData.uid
            event=session.merge(event)
            events.append(event)
        session.commit()
        for ev in events:
            AddEventNotify(ev)
    return Res()
Example #8
0
def run(uid,cid=None):
    if uid==BackEndEnvData.uid:
        return Res(errno=2,error="not self invite")
    with dbconfig.Session() as session:
        findparam=UserCircle.uid==uid
        if cid != None:
            findparam=and_(findparam,UserCircle.cid==cid)
        by_user_c=session.query(UserCircle).filter(findparam).order_by(UserCircle.time).first()
        if by_user_c is None:
            return Res(errno=3,error="user not in any circle")
        cdef=session.query(CircleDef).filter(CircleDef.cid==by_user_c.cid).first()

        self_uc=UserCircle()
        self_uc.uid=BackEndEnvData.uid
        self_uc.cid=by_user_c.cid
        self_uc.roleid=cdef.default_roleid
        self_uc.by_uid=by_user_c.uid
        self_uc=session.merge(self_uc)
        session.commit()

        #添加好友
        friend=FriendList()
        friend.uid=BackEndEnvData.uid
        friend.friendid=self_uc.by_uid
        friend.type=2
        friend1=session.merge(friend)
        friend=FriendList()
        friend.uid=self_uc.by_uid
        friend.friendid=BackEndEnvData.uid
        friend.type=2
        friend2=session.merge(friend)
        session.commit()
        #发送通知
        event=Events()
        event.touid=self_uc.by_uid
        event.param1=BackEndEnvData.uid
        event.type="add_friend"
        event1=session.merge(event)
        event=Events()
        event.touid=BackEndEnvData.uid
        event.param1=self_uc.by_uid
        event.type="add_friend"
        event2=session.merge(event)
        session.commit()
        AddEventNotify(event1)
        AddEventNotify(event2)

        return Res({"circle":{"cid":self_uc.cid,"roleid":self_uc.roleid}})
Example #9
0
def run(uid,cid):
    if uid==BackEndEnvData.uid:
        return Res(errno=2,error="not self invite")
    with dbconfig.Session() as session:
        findparam=UserCircle.uid==uid
        findparam=and_(findparam,UserCircle.cid==cid)
        by_user_c=session.query(UserCircle).filter(findparam).order_by(UserCircle.time).first()
        if by_user_c is None:
            return Res(errno=3,error="user not in any circle")
        self_uc=session.query(UserCircle).filter(and_(UserCircle.uid==BackEndEnvData.uid,UserCircle.cid==by_user_c.cid)).first()
        if self_uc:
            return Res({"circle":{"cid":self_uc.cid,"roleid":self_uc.roleid}})

        new_event=Events()
        new_event.type="request_join_circle"
        new_event.param1=BackEndEnvData.uid
        new_event.param2=cid
        new_event.touid=uid
        new_event=session.merge(new_event)
        session.commit()

        AddEventNotify(new_event)

        return Res()
Example #10
0
def run(eid,roleid=None):
    with dbconfig.Session() as session:
        event=session.query(Events).filter(Events.eid==eid).first()
        if event is None or event.type!="request_join_circle":
            return Res(errno=3,error="not event")

        uid=event.param1
        cid=event.param2

        cdef=session.query(CircleDef).filter(CircleDef.cid==cid).first()

        self_uc=UserCircle()
        self_uc.uid=uid
        self_uc.cid=cid
        self_uc.roleid=cdef.default_roleid
        self_uc.by_uid=BackEndEnvData.uid
        self_uc=session.merge(self_uc)
        session.commit()

        #添加好友
        friend=FriendList()
        friend.uid=self_uc.uid
        friend.friendid=self_uc.by_uid
        friend.type=2
        friend1=session.merge(friend)
        friend=FriendList()
        friend.uid=self_uc.by_uid
        friend.friendid=self_uc.uid
        friend.type=2
        friend2=session.merge(friend)
        session.commit()
        #发送通知
        event=Events()
        event.touid=friend1.uid
        event.param1=friend1.friendid
        event.type="add_friend"
        event1=session.merge(event)
        event=Events()
        event.touid=friend1.friendid
        event.param1=friend1.uid
        event.type="add_friend"
        event2=session.merge(event)

        event=Events()
        event.touid=self_uc.uid
        event.param1=self_uc.cid
        event.param2=self_uc.roleid
        event.param3=self_uc.by_uid
        event.type="accept_join_circle"
        event3=session.merge(event)

        session.commit()
        AddEventNotify(event1)
        AddEventNotify(event2)
        AddEventNotify(event3)
        return Res()
Example #11
0
def run(sessionid):
    if BackEndEnvData.uid is None:
        data=dbconfig.redisdb.get(str('session:%s'%sessionid))
        if data is None:
            return {"errno":1,"error":"session not found","result":{}}
        data=json.loads(data)
        be_uid=int(data['uid'])
    else:
        be_uid=BackEndEnvData.uid
    beinvitelist=[]
    with dbconfig.Session() as session:
        user_data=session.query(User).filter(User.uid==be_uid).first()
        new_user=not user_data.nick
        session.execute(text('delete from connection_info where uid=:uid or (queue_id=:queue_id and connection_id=:connection_id);'+
                    'insert into connection_info(uid,queue_id,connection_id) values(:uid,:queue_id,:connection_id);'),
                             {"uid":user_data.uid,"queue_id":BackEndEnvData.reply_queue,"connection_id":BackEndEnvData.connection_id})
        session.commit()

        if new_user:
            eventpost=[]
            for one in list(UserInviteLog.objects(phone=user_data.phone).order_by('-invite_id')):
                one.joined_uid=user_data.uid
                one.save()
                if one.join_cid and one.join_roleid:
                    usercircle=UserCircle()
                    usercircle.uid=user_data.uid
                    usercircle.by_uid=one.uid
                    usercircle.cid=one.join_cid
                    usercircle.roleid=one.join_roleid
                    session.merge(usercircle)

                friend=FriendList()
                friend.uid=user_data.uid
                friend.friendid=one.uid
                friend.type=2
                session.merge(friend)

                friend=FriendList()
                friend.uid=one.uid
                friend.friendid=user_data.uid
                friend.type=3
                session.merge(friend)

                event=Events()
                event.touid=one.uid
                event.param1=user_data.uid
                event.param2=3
                event.type="add_friend"
                event=session.merge(event)
                eventpost.append(event)

                beinvitelist.append(one.toJson())
            session.commit()
            if beinvitelist:
                inviteinfo=beinvitelist[0]
                user_data.nick=inviteinfo['nick']
                user_data.headpic=inviteinfo['headpic']
                user_data.sex=inviteinfo['sex']
                user_data.birthday=inviteinfo['birthday']
                user_data.marriage=inviteinfo['marriage']
                user_data.height=inviteinfo['height']
                user_data.position=inviteinfo['position']
                user_data=session.merge(user_data)
                session.commit()
            for one in eventpost:
                AddEventNotify(one)

        uexd=UserExData.objects(uid=BackEndEnvData.uid).first()
        resultdata={"user":user_data.toJson()}
        if uexd:
            resultdata['client_data']=uexd.client_data
        if beinvitelist:
            resultdata['invite_list']=beinvitelist
        einfo=session.query(EndorsementInfo).filter(EndorsementInfo.uid==user_data.uid).first()
        if einfo:
            resultdata['endorsement']=einfo.toJson()
        return Res(resultdata)