Skip to content

服务器托管,北京服务器托管,服务器租用-价格及机房咨询

Menu
  • 首页
  • 关于我们
  • 新闻资讯
  • 数据中心
  • 服务器托管
  • 服务器租用
  • 机房租用
  • 支持中心
  • 解决方案
  • 联系我们
Menu

交友项目【根据id查询单条动态&发布评论&查询评论列表】

Posted on 2023年5月6日 by hackdl

目录

1:根据id查询单条动态

1.1:接口分析

1.2:流程分析

1.3:代码实现

2:发布评论

2.1:接口分析

2.2:流程分析

2.3:代码实现

3:查询评论列表

3.1:接口分析

3.2:流程分析

3.3:代码实现


1:根据id查询单条动态

1.1:接口分析

API
接口文档:
http://192.168.136.160:3000/project/19/interface/api/151

注意: 单条动态 和 查询评论列表 ,同时完成,app端才可以显示内容

1.2:流程分析

根据id查询对应动态详情信息,接收到前端传来的id信息,到数据库中查询指定的数据,将数据处理封装返回前端,这个功能需要和该动态的所有评论一起实现才能在探花app上显示页面。

1.3:代码实现

接收请求的app服务端

app-server服务:controller层

@GetMapping("/{id}")
    public ResponseEntity findmovement(@PathVariable("id") ObjectId id){
        MovementVo findmovement = movementService.findmovement(id);
        System.out.println(findmovement);
        return ResponseEntity.ok(findmovement);
    }

app-server服务:service层 

public MovementVo findmovement(ObjectId id) {
        //处理评论
        Movement movement = movementApi.findmovement(id);

        UserInfo userInfo = userInfoApi.findUser(movement.getUserId());

        MovementVo movementVo = new MovementVo(movement.getId().toString(),
                userInfo.getId(),userInfo.getAvatar(),userInfo.getNickname(),userInfo.getGender(),Integer.valueOf(userInfo.getAge()),
                userInfo.getTags().split(","),movement.getTextContent(),movement.getMedias(),"500米",movement.getCreated().toString()
                ,movement.getLikeCount(),movement.getCommentCount(),movement.getLoveCount(),0,0);
        return movementVo;
    }

接口模块:专门封装接口的模块

Movement findmovement(ObjectId id);
public UserInfo findUser(Long id);

db提供者服务:mysql

@Override
    public UserInfo findUser(Long id) {
        UserInfo userInfo = this.userInfoMapper.selectById(id);
        return userInfo;
    }

mongo提供者服务:mongo

@Override
    public Movement findmovement(ObjectId id) {
        Query query = new Query();
        query.addCriteria(Criteria.where("id").is(id));
        Movement one = mongoTemplate.findOne(query, Movement.class);
        return one;
    }

2:发布评论

2.1:接口分析

接口: http://192.168.136.160:3000/project/19/interface/api/154

2.2:流程分析

接收到前端传入的发布动态参数,将图片信息上传到阿里云上面,将数据处理保存到数据库中。

2.3:代码实现

 接收请求的app服务端

app-server服务:controller层

@PostMapping
    public ResponseEntity fabudongtai(@RequestParam("imageContent") List imageContent,PostUpdateVo postUpdateVo){
        movementService.fabudongtai(imageContent,postUpdateVo,UserHolder.getUserId(),UserHolder.getMobile());
        return ResponseEntity.ok(null);
    }

app-server服务:service层 

public void fabudongtai(List imageContent, PostUpdateVo postUpdateVo, Long userId, String mobile) {
        for (MultipartFile multipartFile : imageContent) {
            String upload = ossTemplate.upload(multipartFile);
            System.out.println(upload);
            postUpdateVo.getImages().add(upload);
        }
        movementApi.fabudongtai(postUpdateVo,userId,mobile);
    }

接口模块:专门封装接口的模块

void fabudongtai(PostUpdateVo postUpdateVo, Long userId, String mobile);

mongo提供者服务:mongo

@Override
    public void fabudongtai(PostUpdateVo postUpdateVo, Long userId, String mobile) {
        //保存动态到mongo动态表中
        Movement movement = new Movement();
        Long movement1 = idWorker.getNextId("movement");
        movement.setPid(movement1);
        movement.setUserId(userId);
        movement.setTextContent(postUpdateVo.getTextContent());
        movement.setMedias(postUpdateVo.getImages().toArray(new String[0]));
        movement.setState(0);
        movement.setLongitude(Double.valueOf(postUpdateVo.getLongitude()));
        movement.setLatitude(Double.valueOf(postUpdateVo.getLatitude()));
        movement.setLocationName(postUpdateVo.getLocation());
        movement.setCreated(new Date().getTime());
        //保存动态表
        Movement save = mongoTemplate.save(movement);

        //查询好友列表
        //构建条件
        Query query = new Query();
        Criteria criteria = Criteria.where("userId").is(userId);
        query.addCriteria(criteria);
        List friends = mongoTemplate.find(query, Friend.class);

        //保存时间线数据
        for (Friend friend : friends) {
            MovementTimeline movementTimeline = new MovementTimeline(save.getCreated(),friend.getFriendId(),save.getId(),save.getUserId());
            mongoTemplate.save(movementTimeline);
        }
        //处理结束
    }

3:查询评论列表

3.1:接口分析

接口地址: http://192.168.136.160:3000/project/19/interface/api/178

3.2:流程分析

通过动态id,到评论表中查找对应的所有评论

3.3:代码实现

 接收请求的app服务端

app-server服务:controller层

@GetMapping
    public ResponseEntity findComments(@RequestParam("movementId") ObjectId movementId, PublicPageVo publicPageVo){
        System.out.println(movementId);
        ResultList comments = commentService.findComments(movementId, publicPageVo);
        return ResponseEntity.ok(comments);
    }

app-server服务:service层 

public ResultList findComments(ObjectId movementId, PublicPageVo publicPageVo) {
        ResultList comments = commentApi.findComments(movementId, publicPageVo);
        List items = comments.getItems();


        //传入用户APi
        Map userInfoMap = userInfoApi.findUserByids(items.stream().map(comment -> comment.getUserId()).collect(Collectors.toList()));

        List commentVoList = new ArrayList();
        //处理返回数据
        for (Comment comment : items) {
            UserInfo userInfo = userInfoMap.get(comment.getUserId());
            CommentVo commentVo = new CommentVo(comment.getId().toString(),userInfo.getAvatar(),userInfo.getNickname(),comment.getContent(),
                    comment.getCreated().toString(), (int) comment.getLikeCount(),0);
            commentVoList.add(commentVo);
        }
        comments.setItems(commentVoList);
        return comments;

    }

接口模块:专门封装接口的模块

Map findUserByids(List collect);
ResultList findComments(ObjectId movementId, PublicPageVo publicPageVo);

db提供者服务:mysql

@Override
    public Map findUserByids(List collect) {
        Map userInfoMap = new HashMap();
        //传入的是用户id
        for (Long userid : collect) {
            UserInfo userInfo = userInfoMapper.selectById(userid);
            if (userInfo!=null){
                userInfoMap.put(userInfo.getId(),userInfo);
            }
        }
        return userInfoMap;
    }

mongo提供者服务:mongo

@Override
    public ResultList findComments(ObjectId movementId, PublicPageVo publicPageVo) {
        ResultList objectResultList = new ResultList();
        //拼凑条件
        Query query = new Query();
        //添加条件
        query.addCriteria(Criteria.where("publishId").is(movementId));

        long count = mongoTemplate.count(query, Comment.class);
        query.limit(publicPageVo.getPagesize().intValue()).skip((publicPageVo.getPage()-1)*publicPageVo.getPagesize()).with(Sort.by(Sort.Order.desc("created")));

        List comments = mongoTemplate.find(query, Comment.class);
        objectResultList.setItems(comments);
        objectResultList.setCounts(Integer.valueOf(count+""));
        objectResultList.setPagesize(publicPageVo.getPagesize().intValue());
        objectResultList.setPage(publicPageVo.getPage().intValue());
        objectResultList.setPages((int) (count%publicPageVo.getPagesize() == 0 ? count/ publicPageVo.getPagesize():(count/ publicPageVo.getPagesize())+1));
        //返回处理的数据
        return objectResultList;
    }

服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net

Related posts:

  1. 探析服务器托管案件的管辖范围
  2. 黑龙江DNS服务器托管服务:稳定高效的网络解析方案
  3. 丰城北京idc采购批发
  4. 建立托管网站:服务器安置指南
  5. 高效稳定:服务器租用与托管服务

服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用

服务器托管

咨询:董先生

电话13051898268 QQ/微信93663045!

上一篇: ZLMeidiaKit实现推流时(FFmpeg推rtmp流)时非127.0.0.1被拒绝需要鉴权的解决方式
下一篇: 交友项目【动态点赞&动态喜欢】

最新更新

  • 五月学习之keepalived 软件简介
  • Cibersort免疫浸润的在线分析及R语言代码实现
  • 阿里云的认证最有几个等级?考试费用是多少?
  • 京东APP百亿级商品与车关系数据检索实践 | 京东云技术团队
  • 【Hello Network】TCP协议 TCP协议 确认应答机制 (ACK) 超时重传机制 连接管理机制 流量控制 滑动窗口 拥塞控制 延时应答 捎带应答 面向字节流 粘包问题 TCP的异常情况 TCP小结 基于TCP的应用层协议

随机推荐

  • 国内大带宽服务器哪里的比较好
  • 中小型服务器托管企业解析:服务可靠,成本低效
  • g口独享大带宽服务器限量促销
  • 服务器租用:客户网站优化案例分析
  • 牛街庄 机房 主机托管

客服咨询

  • 董先生
  • 微信/QQ:93663045
  • 电话:13051898268
  • 邮箱:dongli@hhisp.com
  • 地址:北京市石景山区重聚园甲18号2层

友情链接

  • 服务器托管
  • 服务器租用
  • 机房租用托管
  • 服务器租用托管
©2023 服务器托管,北京服务器托管,服务器租用-价格及机房咨询 京ICP备13047091号-8