项目实训(十四)帖子相关接口的实现

  

1.发布帖子   

发布帖子需要传入的参数包括帖子的内容,发帖用户的id,以及帖子图片的url。

   在数据库中加入帖子的数据,包括帖子的id(自增),发帖用户的id,帖子的内容,图片的url(用json格式存储多个图片url),帖子的发布时间。

   在数据库中,一条帖子的所有图片会以url的方式存到json格式的字符串里,真实的图片存储在七牛云上,方便图片的传输。一条帖子的所有点赞用户id、所有评论的信息也会存到json格式的字符串里。

关键代码:

                sql = "INSERT INTO moment (uid,text,imgs,date) VALUES (?,?,?,?)";
                statement = conn.prepareStatement(sql);
                statement.setInt(1, Integer.parseInt(userId));
                statement.setString(2, text);
                statement.setString(3, imgs);
                statement.setString(4, dateStr);
                statement.executeUpdate();
                status.setStatus(BaseConsts.STATUS_SUCESSED);

2.删除帖子

 删除帖子的时候,需要传入的参数包括帖子的id,发帖用户的id,在数据库中查询到帖子的id,并且对应的用户id是匹配的才会删除帖子。

关键代码:

                String sql="DELETE FROM moment WHERE mid=? AND uid=?";
                statement=conn.prepareStatement(sql);
                statement.setInt(1,Integer.parseInt(mid));
                statement.setInt(2,Integer.parseInt(uid));
                statement.executeUpdate();
                status.setStatus(BaseConsts.STATUS_SUCESSED);

3.获取帖子 

每次请求获取帖子接口时,分页获取帖子,每次返回五个帖子。

   当请求的参数mid即帖子的id为-1时,返回最新的5个帖子,逆序返回;当请求的参数mid即帖子的id大于等于0时,返回mid~mid-4的五个帖子,逆序返回。

    返回的内容包括:帖子的内容、图片、评论、帖子创建时间、点赞数、该用户是否点赞。

关键代码:

                if (mid < 0) {
                    sql = "SELECT MAX(mid) AS maxid FROM moment";
                    statement = conn.prepareStatement(sql);
                    resultSet = statement.executeQuery();
                    if (resultSet.next()) {
                        mid = resultSet.getInt("maxid");
                    }
                }
                sql = "SELECT * FROM moment WHERE mid<=? AND mid>? ORDER BY mid DESC ";
                statement = conn.prepareStatement(sql);
                statement.setInt(1, mid);
                statement.setInt(2, mid - 5);
                resultSet = statement.executeQuery();
                while (resultSet.next()) {
                    String comments = resultSet.getString("comments");
                    String likes = resultSet.getString("likes");
                    momentBean.moments.add(new MomentBean()
                            .setComments(getCommentBack(comments, conn))
                            .setImgs(resultSet.getString("imgs"))
                            .setText(resultSet.getString("text"))
                            .setMomentId(resultSet.getInt("mid"))
                            .setTime(resultSet.getString("date"))
                            .setUserId(Integer.parseInt(resultSet.getString("uid")))
                            .setLikes(getLikesNum(likes))
                            .setHasLike(getHasLike(likes, uid)));
                }
                momentBean.status = BaseConsts.STATUS_SUCESSED;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值