之前我们分享了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))

最新文章

  1. 【教程】简易CDQ分治教程&学习笔记
  2. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(六)地图搜索模块
  3. Win7下Hyenae的安装
  4. jQuery Ajax传递数组到asp.net web api参数为空
  5. NOIP模拟赛 寻找
  6. ci重定向
  7. BZOJ 1922: [Sdoi2010]大陆争霸
  8. 【Leetcode】【Medium】Group Anagrams
  9. VC++ 学习笔记(三):摩登之路——C++/CLI简介
  10. 原生js实现的效果
  11. eclipse 下面的folder,source folder,package的区别与作用
  12. WebSocket API简介
  13. JAX-WS开发WebService程序
  14. Android(java)学习笔记97:Scanner类使用
  15. Linux编程之定制带级别的log
  16. Ubuntu 14.04 标题栏实时显示上下行网速、CPU及内存使用情况
  17. Flex中如何通过showAllDataTips属性使鼠标移动到图表时显示所有的数据Tips的例子
  18. JAVA-反射-getGenericSuperclass()
  19. jQuery ajax表单提交实现局部刷新
  20. Mac之OS系统下搭建JavaEE环境 <四> 之IntelliJ IDEA 的内存优化

热门文章

  1. L2Dwidget二次元前端添加人物插件
  2. LGP5279题解
  3. 八、Java面向对象编程
  4. 反射getattr
  5. [SPDK/NVMe存储技术分析]010 - 理解SGL
  6. 论文解读(SUGRL)《Simple Unsupervised Graph Representation Learning》
  7. idea导入gitee下载的项目文件
  8. 使用SpringDataJdbc的@Query注解实现自动映射结果集 ----- RowMapper接口
  9. Dubbo 集群容错有几种方案?
  10. 你将如何使用 thread dump?你将如何分析 Thread dump?