前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言

FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言

作者头像
雷子
发布2021-11-04 15:19:35
4910
发布2021-11-04 15:19:35
举报
文章被收录于专栏:雷子说测试开发

前言

我们上一次分享了实战FastAPI(七十)实战开发《在线课程学习系统》接口开发-- 查看留言,这次我们留言列表开发。

正文

列表获取,也需要登录,根据登录用户来获取对应的留言。逻辑梳理如下。

代码语言:javascript
复制
1.判断用户是否登录
2.根据登录用户查询留言列表
3.留言列表中要根据是留言回复,进行列表重组

我们根据逻辑去梳理下对应的crud

代码语言:javascript
复制
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()

我们根据逻辑去开发对应的代码。

代码语言:javascript
复制
@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))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档