def super_like_someone(uid, sid): '''超级喜欢(右划)某人''' # 1. 在数据库中添加滑动记录 try: Swiped.objects.create(uid=uid, sid=sid, stype='superlike') except IntegrityError: # 重复滑动时, 直接返回当前用户是否已匹配成好友 return Friend.is_friends(uid, sid) # 强制将对方从自己的优先推荐队列删除 rds.lrem(keys.FIRST_RCMD_Q % uid, 0, sid) # 2. 检查对方是否右划或者上划过自己 like_status = Swiped.is_liked(sid, uid) if like_status is True: # 3.如果双方互相喜欢的话, 匹配成好友 Friend.make_friends(uid, sid) return True elif like_status is False: return False else: # 对方未滑动过自己时, 将自己的uid 添加到对方'优先推荐'列表 key = keys.FIRST_RCMD_Q % sid # 从右边推进去 rds.rpush(key, uid) return False
def like_someone(uid, sid): '''喜欢(右划)某人''' # 1. 在数据库中添加滑动记录 try: Swiped.objects.create(uid=uid, sid=sid, stype='like') # 前端的重复滑动: except IntegrityError: # 重复滑动时, 直接返回当前用户是否已匹配成好友 return Friend.is_friends(uid, sid) # 强制将对方从自己的优先推荐队列删除 rds.lrem(keys.FIRST_RCMD_Q % uid, 0, sid) # 2. 检查对方是否右划或者上划过自己 # 这里的uid 和 sid 需要换一下位置 # if Swiped.objects.filter(uid = sid).filter(sid = uid).filter(stype__in = ['like','superlike']): if Swiped.is_liked(sid, uid): # 3.如果双方互相喜欢的话, 匹配成好友 Friend.make_friends(uid, sid) return True else: return False