FastAPI(七十二)实战开发《在线课程学习系统》接口开发-- 留言列表开发
2024-09-03 10:04:43
之前我们分享了FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言,这次我们分享留言列表开发。
列表获取,也需要登录,根据登录用户来获取对应的留言。逻辑梳理如下。
1.判断用户是否登录
2.根据登录用户查询留言列表
3.留言列表中要根据是留言回复,进行列表重组
我们根据逻辑去梳理下对应的crud
def get_message_list(db: Session, userid: int):
return db.query(Message).filter(or_(Message.senduser.id == userid, Message.acceptusers.id == userid,Message.status==0)).all()
我们根据逻辑去开发对应的代码。
@usersRouter.get(path="/messagelist")
async def messagelist(user: UsernameRole = Depends(get_cure_user),
db: Session = Depends(get_db)):
users = get_user_username(db, user.username)
messagelist = get_message_list(db=db, userid=users.id)
message_list = []
mainmessage = []
if len(messagelist) > 0:
for item in messagelist:
if item.pid == "":
messageone = MessageOne(id=item.id,
senduser=get_user(db,item.senduser).username,
acceptusers=get_user(db,item.acceptusers).username,
read=item.read,
sendtime=item.sendtime,
addtime=str(item.addtime),
context=item.context)
mainmessage.append(messageone.id)
all_pid = get_pid_message(db, item.id)
if len(all_pid) > 0:
allpidlist = []
for items in all_pid:
message = MessagePid(id=item.id,
senduser=get_user(db,items.senduser).username,
acceptusers=get_user(db,items.acceptusers).username,
read=items.read,
sendtime=items.sendtime,
addtime=str(items.addtime),
context=items.context,
pid=items.pid)
allpidlist.append(message)
messageone.pid = allpidlist
message_list.append(messageone)
else:
if item.pid not in mainmessage:
message = get_message(db, item.pid)
if message:
all_pid = get_pid_message(db, message.id)
messageone = MessageOne(id=message.id,
senduser=get_user(db,message.senduser).username,
acceptusers=get_user(db,message.acceptusers).username,
read=message.read,
sendtime=message.sendtime,
addtime=str(message.addtime),
context=message.context)
if len(all_pid) > 0:
allpidlist = []
for item in all_pid:
messagepid = MessagePid(id=message.id,
senduser=get_user(db,item.senduser).username,
acceptusers=get_user(db,item.acceptusers).username,
read=item.read,
sendtime=item.sendtime,
addtime=str(item.addtime),
context=item.context, pid=item.pid)
allpidlist.append(messagepid)
messageone.pid = allpidlist
message_list.append(messageone)
return reponse(code=200, message='成功', data=jsonable_encoder(message_list))
最新文章
- 【教程】简易CDQ分治教程&;学习笔记
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(六)地图搜索模块
- Win7下Hyenae的安装
- jQuery Ajax传递数组到asp.net web api参数为空
- NOIP模拟赛 寻找
- ci重定向
- BZOJ 1922: [Sdoi2010]大陆争霸
- 【Leetcode】【Medium】Group Anagrams
- VC++ 学习笔记(三):摩登之路——C++/CLI简介
- 原生js实现的效果
- eclipse 下面的folder,source folder,package的区别与作用
- WebSocket API简介
- JAX-WS开发WebService程序
- Android(java)学习笔记97:Scanner类使用
- Linux编程之定制带级别的log
- Ubuntu 14.04 标题栏实时显示上下行网速、CPU及内存使用情况
- Flex中如何通过showAllDataTips属性使鼠标移动到图表时显示所有的数据Tips的例子
- JAVA-反射-getGenericSuperclass()
- jQuery ajax表单提交实现局部刷新
- Mac之OS系统下搭建JavaEE环境 <;四>; 之IntelliJ IDEA 的内存优化