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()
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}})
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()
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()
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()
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()
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()
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()
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})
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()
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)