Commit 0466a9a7 authored by fangzhipeng's avatar fangzhipeng

实现其他逻辑

parent 5df36c5a
# coding: utf-8
from sqlalchemy import Column, DateTime, Index, Integer, String, Table, text
from sqlalchemy import Column, DateTime, Index, Integer, String, text
from sqlalchemy.ext.declarative import declarative_base
......@@ -7,10 +7,14 @@ Base = declarative_base()
metadata = Base.metadata
t_test = Table(
'test', metadata,
Column('test', String(2))
)
class UserFollow(Base):
__tablename__ = 'user_follow'
id = Column(Integer, primary_key=True)
fans_id = Column(Integer, nullable=False)
followed_id = Column(Integer, nullable=False)
create_at = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP"))
update_at = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"))
class UserInfo(Base):
......
......@@ -18,10 +18,27 @@ def add_record(user_record):
def select_by_user_id(user_id):
"""
获取用户自己所发的记录
:param user_id:
:return:
"""
session = sqlengin.getSession()
items = session.execute('select t.*, tt.nickname from user_record t, user_info tt WHERE t.user_id=tt.id AND t.user_id=:user_id ORDER BY t.create_at DESC ', {'user_id': user_id}).fetchall()
session.close()
return [ dict(x.items()) for x in items]
def select_follow_by_user_id(user_id):
"""
获取关注人所发的记录
:param user_id:
:return:
"""
session = sqlengin.getSession()
items = session.execute('select t.*, ttt.nickname from user_record t, user_follow tt, user_info ttt WHERE t.user_id=ttt.id AND t.user_id=tt.followed_id AND tt.fans_id=:user_id ORDER BY t.create_at DESC', {'user_id': user_id}).fetchall()
session.close()
return [dict(x.items()) for x in items]
if __name__ == '__main__':
print(json_util.to_json([ dict(x.items()) for x in select_by_user_id(1)]))
\ No newline at end of file
print(json_util.to_json(select_follow_by_user_id(2)))
\ No newline at end of file
......@@ -3,7 +3,7 @@ import datetime
import uuid
from daylife.dao import sqlengin
from daylife.dao.models import UserInfo, UserToken
from daylife.dao.models import UserInfo, UserToken, UserFollow
"""
session = sqlengin.getSession()
......@@ -44,6 +44,51 @@ def select_user_token_info(token):
session.close()
return item
def add_follow(fans_id, followed_id):
"""
增加关注
:param fans_id: 粉丝Id
:param followed_id: 被关注人Id
:return:
"""
user_follow = UserFollow(fans_id=fans_id, followed_id=followed_id)
session = sqlengin.getSession()
session.add(user_follow)
session.commit()
session.close()
def remove_follow(fans_id, followed_id):
"""
取消关注
:param fans_id: 粉丝Id
:param followed_id: 被关注人Id
:return:
"""
session = sqlengin.getSession()
session.query(UserFollow).filter(UserFollow.followed_id == followed_id).filter(UserFollow.fans_id == fans_id).delete()
session.commit()
session.close()
if __name__ == '__main__':
print(select_user_token_info('89bb221c349511e89cecb8e85634f0ac'))
\ No newline at end of file
def get_fans(user_id):
"""
返回用户粉丝列表
:param user_id:
:return:
"""
session = sqlengin.getSession()
items = session.execute('select tt.* from user_follow t, user_info tt WHERE t.fans_id=tt.id and t.followed_id=:user_id ORDER BY t.create_at DESC', {'user_id': user_id}).fetchall()
session.close()
return [dict(x.items()) for x in items]
def get_follows(user_id):
"""
获取用户关注列表
:param user_id:
:return:
"""
session = sqlengin.getSession()
items = session.execute('select * from user_follow t, user_info tt WHERE t.followed_id=tt.id AND t.fans_id=:user_id ORDER BY t.create_at DESC', {'user_id', user_id}).fetchall()
session.close()
return [dict(x.items()) for x in items]
\ No newline at end of file
......@@ -28,7 +28,9 @@ def get_my_follow():
我的关注人发布的记录
:return:
"""
pass
user_id = request.headers.get('user_id')
items = record_dao.select_follow_by_user_id(user_id)
return http.BaseRes(data=items).to_json()
@record.route('/publish', methods=['post', 'get'])
@login_require
......
......@@ -117,37 +117,49 @@ def follow():
关注
:return:
"""
return '返回关注列表'
user_id = request.headers.get('user_id')
items = user_dao.get_follows(user_id)
return http.BaseRes(data=items).to_json()
@user.route('/fans')
@login_require
def fans():
"""
粉丝
:return:
"""
pass
user_id = request.headers.get('user_id')
items = user_dao.get_fans(user_id)
return http.BaseRes(data=items).to_json()
@user.route('/do_follow')
@login_require
def do_follow():
"""
进行关注
:return:
"""
pass
user_id = request.headers.get('user_id')
followed_id = request.args.get('followed_id')
user_dao.add_follow(user_id, followed_id)
return http.BaseRes()
@user.route('/do_unfollow')
@login_require
def do_unfollow():
"""
取消关注
:return:
"""
pass
user_id = request.headers.get('user_id')
followed_id = request.args.get('followed_id')
user_dao.remove_follow(user_id, followed_id)
return http.BaseRes()
@user.route('/my_info')
@login_require
def my_info():
"""
我的个人信息
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment