def relation_status(user_Id): sql = " ".join(['SELECT f1.status AS status1,f2.status AS status2 FROM follow f1,follow f2', 'WHERE f1.user_id = f2.followed_user AND f1.followed_user = f2.user_id' "AND f1.user_id = '%s'"%user_Id]) follow = yield from Follow.unionSelect(sql) print (follow) return follow
def followedUser(request,*,page=1): if request.__user__ is not None: user_Id = request.__user__.id # sql = " ".join(['SELECT u.*,f.followed_user FROM follow f ', # 'LEFT JOIN users u ON f.followed_user = u.id', # "WHERE f.user_id ='%s'"%user_Id, # "and f.status=1"]) # follows = yield from Follow.unionSelect(sql) # sql = " ".join(['SELECT f1.status AS status1,f2.status AS status2 FROM follow f1,follow f2', # 'WHERE f1.user_id = f2.followed_user AND f1.followed_user = f2.user_id', # "AND f1.user_id = '%s'"%user_Id]) # follow_relation = yield from Follow.unionSelect(sql) page_index = get_page_index(page) num = yield from Follow.findNumber('count(id)',"user_id=? and status=?",[user_Id,1]) page = Page(num,page_index) newFollows = [] sql = " ".join(['SELECT u.*,f1.user_id,f1.followed_user,f1.status AS status1,f2.status AS status2 FROM follow f1', 'LEFT JOIN follow f2 ON f1.user_id = f2.followed_user AND f1.followed_user = f2.user_id', 'LEFT JOIN users u ON f1.followed_user = u.id', "WHERE f1.user_id = '%s'"%user_Id, 'LIMIT %s,%s'%(page.offset, page.limit)]) follows = yield from Follow.unionSelect(sql) for index,follow in enumerate(follows): newFollow = {} newFollow['index']= index newFollow['user_id'] = follow.id newFollow['user_name'] = follow.name newFollow['avatar_url'] = follow.avatar sql2 = " ".join(['SELECT u.* FROM users u WHERE id IN(SELECT t1.followed_user FROM', '(SELECT user_Id,followed_user FROM follow', "WHERE user_id = '%s'"%user_Id, ')AS t1 INNER JOIN' '(SELECT user_Id,followed_user FROM follow', "WHERE user_id = '%s'"%follow.followed_user, ')AS t2', 'ON t1.followed_user = t2.followed_user) AND u.`status` = 1']) followInfos = yield from Follow.unionSelect(sql2) if(len(followInfos) >0): newFollow['cf_count'] = len(followInfos) newFollow['cf_info'] = followInfos[0].name newFollow['followed_user'] = followInfos[0].id else: newFollow['cf_count'] = 0 newFollow['cf_info'] = '' newFollow['followed_user'] = '******' if follow.status1 == '1' and follow.status2 == '1': relation_status = 2 is_followed = True is_following = True elif follow.status1 == '0' and follow.status2 == '1': relation_status = 1 is_followed = False is_following = True elif follow.status1 == '1' and (follow.status2 == '0' or follow.status2 == None): relation_status = 1 is_followed = True is_following = False else: relation_status = 0 is_followed = False is_following = False newFollow['is_followed'] = is_followed newFollow['is_following'] = is_following newFollow['relation_status'] = relation_status newFollows.append(newFollow) return { '__template__': 'user/follow.html', 'page':page, 'follows': newFollows } #return dict(data=newFollows) else: return web.HTTPFound('/signin')