如何为合肥的视频网站进行有效的网页制作备案?

摘要:视频网站 备案,合肥网页网站制作,淮北论坛最新招聘信息,偃师做网站目录 1:圈子 1.1:查询好友动态 1.1.1:接口分析 1.1.2&am
视频网站 备案,合肥网页网站制作,淮北论坛最新招聘信息,偃师做网站目录 1#xff1a;圈子 1.1#xff1a;查询好友动态 1.1.1#xff1a;接口分析 1.1.2#xff1a;流程分析 1.1.2#xff1a;代码实现 1.2#xff1a;查询推荐动态 1.2.1#xff1a;接口分析 1.2.2#xff1a;流程分析 1.2.3#xff1a;代码实现 1#xff1a…目录 1圈子 1.1查询好友动态 1.1.1接口分析 1.1.2流程分析 1.1.2代码实现 1.2查询推荐动态 1.2.1接口分析 1.2.2流程分析 1.2.3代码实现 1圈子 1.1查询好友动态 1.1.1接口分析 API接口文档http://192.168.136.160:3000/project/19/interface/api/148 1.1.2流程分析 当你的一个好友发了一个动态他可能不想让你不想看到那你就没有看到他这条动态的权限也就是说这条动态在数据库中的标注没有你这个好友的查看这个功能的实现就是根据当前用户id到数据库中的控制动态谁可以查看的表中时间线表去查找对应的好友想让你看到的数据。时间线表通过判断当前用户的id查找出来对应的动态id数据。 1.1.2代码实现 与前端交互的app-server模块 controller层实现 GetMappingpublic ResponseEntity friendmovements(PublicPageVo publicPageVo){ResultList friendmovements movementService.friendmovements(publicPageVo,UserHolder.getUserId());return ResponseEntity.ok(friendmovements);} service层实现 public ResultList friendmovements(PublicPageVo publicPageVo, Long userId) {ResultList friendmovements movementApi.friendmovements(publicPageVo, userId);ListMovement items friendmovements.getItems();ListMovementVo movements new ArrayList();for (Movement movement : items) {UserInfo userInfo userInfoApi.findUser(movement.getUserId());extracted(userId, movements, movement, userInfo);}friendmovements.setItems(movements);return friendmovements;} 统一封装接口的模块 ResultList friendmovements(PublicPageVo publicPageVo,Long Userid); public UserInfo findUser(Long id); 提供者模块(提供相关接口的实现) mongo提供者 Overridepublic ResultList friendmovements(PublicPageVo publicPageVo, Long userId) {//创建封装类ResultList movementVoResultList new ResultList();//通过userIdQuery query new Query();query.addCriteria(Criteria.where(friendId).is(userId));long count mongoTemplate.count(query,MovementTimeline.class);query.skip((publicPageVo.getPage()-1L)*publicPageVo.getPagesize()).limit(publicPageVo.getPagesize().intValue());ListMovementTimeline movementTimelineList mongoTemplate.find(query, MovementTimeline.class);System.out.println(movementTimelineList);//处理数据获得动态idListObjectId movementId CollUtil.getFieldValues(movementTimelineList, movementId, ObjectId.class);//查询对应的动态Query movementQuery new Query(Criteria.where(id).in(movementId)).with(Sort.by(Sort.Order.desc(created)));ListMovement movements mongoTemplate.find(movementQuery, Movement.class);//设置列表movementVoResultList.setItems(movements);//设置当前页码movementVoResultList.setPage(publicPageVo.getPage().intValue());//设置总记录数movementVoResultList.setCounts((int) count);//设置页大小movementVoResultList.setPagesize(publicPageVo.getPagesize().intValue());//设置总页数movementVoResultList.setPages((int) (count%publicPageVo.getPagesize() 0 ? count/ publicPageVo.getPagesize():(count/ publicPageVo.getPagesize())1));return movementVoResultList;} db提供者服务 Overridepublic UserInfo findUser(Long id) {UserInfo userInfo this.userInfoMapper.selectById(id);return userInfo;} 1.2查询推荐动态 推荐动态是通过推荐系统计算出的结果现在我们只需要实现查询即可 推荐系统计算完成后会将结果数据写入到 Redis 中数据如下 1.2.1接口分析 接口文档http://192.168.136.160:3000/project/19/interface/api/145 1.2.2流程分析 推荐用户的值在redis缓存中将其取出查找数据封装数据。 1.2.3代码实现 与前端交互的app-server模块 controller层实现 /*** 推荐动态* return*/GetMapping(/recommend)public ResponseEntity recommendmovements(PublicPageVo publicPageVo){ResultList recommendmovements movementService.recommendmovements(publicPageVo, UserHolder.getUserId());return ResponseEntity.ok(recommendmovements);} service层实现 public ResultList recommendmovements(PublicPageVo publicPageVo, Long userId) {//处理redis中数据String key MOVEMENTS_RECOMMEND_userId;//找到推荐评论的推荐pidString pids stringRedisTemplate.opsForValue().get(key);//切割处理数据String[] pidList pids.split(,);//查找对应的评论和useridResultList recommendmovements movementApi.recommendmovements(pidList,publicPageVo);ListMovement items recommendmovements.getItems();//传入用户APiMapLong, UserInfo userInfoMap userInfoApi.findUserByids(items.stream().map(movement - movement.getUserId()).collect(Collectors.toList()));ListMovementVo movementVoList new ArrayList();//处理返回数据for (Movement movement : items) {UserInfo userInfo userInfoMap.get(movement.getUserId());extracted(userId, movementVoList, movement, userInfo);}recommendmovements.setItems(movementVoList);return recommendmovements;} 统一封装接口的模块 ResultList recommendmovements(String[] pidList, PublicPageVo publicPageVo); MapLong,UserInfo findUserByids(ListLong collect); db提供者模块(提供相关接口的实现) Overridepublic MapLong, UserInfo findUserByids(ListLong collect) {MapLong,UserInfo userInfoMap new HashMap();//传入的是用户idfor (Long userid : collect) {UserInfo userInfo userInfoMapper.selectById(userid);if (userInfo!null){userInfoMap.put(userInfo.getId(),userInfo);}}return userInfoMap;} mongo提供者模块(提供相关接口的实现) Overridepublic ResultList recommendmovements(String[] pidList, PublicPageVo publicPageVo) {ResultListMovement objectResultList new ResultList();//拼凑条件Query query new Query();Integer [] newpidList new Integer[pidList.length];for (int i 0; i pidList.length; i) {newpidList[i] Integer.valueOf(pidList[i]);}query.addCriteria(Criteria.where(pid).in(newpidList)).limit(publicPageVo.getPagesize().intValue()).skip((publicPageVo.getPage()-1)* publicPageVo.getPagesize());ListMovement movements mongoTemplate.find(query, Movement.class);System.out.println(movements);long count mongoTemplate.count(query, Movement.class);objectResultList.setItems(movements);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;}