目录

1:点赞

1.1:动态点赞

1.1.1:分析&实现

1.2:取消点赞

1.2.1:分析&实现

2:喜欢

2.1:动态喜欢

2.1.1:分析&实现

2.2:取消喜欢

2.2.2:分析&实现


1:点赞

1.1:动态点赞

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

1.1.1:分析&实现

接收到前端传入的动态id,到数据库修改对应的动态点赞数量,返回动态信息处理到redis缓存中,用来解决点赞前端点赞图标,点了动态赞要一直显示高亮。

    @GetMapping("/{id}/like")public ResponseEntity likemovement(@PathVariable("id") ObjectId id){Movement likemovement = movementService.likemovement(id, UserHolder.getUserId());return ResponseEntity.ok(likemovement.getLikeCount());}
    public Movement likemovement(ObjectId id,Long userId) {Movement movement = movementApi.likemovement(id);//将当前用户的点赞状态存入redis中String key = "MOVEMENTS_INTERACT_KEY"+movement.getId();String hashKey = "MOVEMENTS_LIKE_HASHKEY" + userId;stringRedisTemplate.opsForHash().put(key,hashKey,"1");return movement;}
Movement likemovement(ObjectId id);
    @Overridepublic Movement likemovement(ObjectId id) {//通过动态id查询到该条动态Query query = new Query().addCriteria(Criteria.where("id").is(id));Movement movement = mongoTemplate.findOne(query, Movement.class);//得到点赞数量Integer likeCount = movement.getLikeCount();//修改数据库点赞数量Update update = new Update().set("likeCount", likeCount + 1);UpdateResult updateResult = mongoTemplate.updateFirst(query, update, Movement.class);return mongoTemplate.findOne(query,Movement.class);}

1.2:取消点赞

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

1.2.1:分析&实现

接收到前端传入的动态id,到数据库修改对应的动态点赞数量,返回动态信息处理到redis缓存中,用来解决取消点赞前端点赞图标,取消动态赞不要显示高亮。

    @GetMapping("/{id}/dislike")public ResponseEntity dislikemovement(@PathVariable("id") ObjectId id){Movement dislikemovement = movementService.dislikemovement(id, UserHolder.getUserId());return ResponseEntity.ok(dislikemovement.getLikeCount());}
    public Movement dislikemovement(ObjectId id, Long userId) {Movement movement = movementApi.dislikemovement(id);//将当前用户的点赞状态存入redis中String key = "MOVEMENTS_INTERACT_KEY"+movement.getId();String hashKey = "MOVEMENTS_LIKE_HASHKEY" + userId;stringRedisTemplate.opsForHash().delete(key,hashKey);return movement;}
    Movement dislikemovement(ObjectId id);
    @Overridepublic Movement dislikemovement(ObjectId id) {//通过动态id查询到该条动态Query query = new Query().addCriteria(Criteria.where("id").is(id));Movement movement = mongoTemplate.findOne(query, Movement.class);//得到点赞数量Integer likeCount = movement.getLikeCount();//修改数据库点赞数量Update update = new Update().set("likeCount", likeCount - 1);UpdateResult updateResult = mongoTemplate.updateFirst(query, update, Movement.class);return mongoTemplate.findOne(query,Movement.class);}

2:喜欢

2.1:动态喜欢

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

2.1.1:分析&实现

接收到前端传入的动态id,到数据库修改对应的动态喜欢数量,返回动态信息处理到redis缓存中,用来解决喜欢前端喜欢图标,点了动态喜欢要一直显示高亮。

    @GetMapping("/{id}/love")public ResponseEntity loveemovement(@PathVariable("id") ObjectId id){Movement loveemovement = movementService.loveemovement(id, UserHolder.getUserId());return ResponseEntity.ok(loveemovement.getLoveCount());}
    public Movement loveemovement(ObjectId id, Long userId) {Movement movement = movementApi.loveemovement(id);//将当前用户的点赞状态存入redis中String key = "MOVEMENTS_LOVE_KEY"+movement.getId();String hashKey = "MOVEMENTS_LOVE_HASHKEY" + userId;stringRedisTemplate.opsForHash().put(key,hashKey,"1");return movement;}
Movement loveemovement(ObjectId id);
    @Overridepublic Movement loveemovement(ObjectId id) {//通过动态id查询到该条动态Query query = new Query().addCriteria(Criteria.where("id").is(id));Movement movement = mongoTemplate.findOne(query, Movement.class);//得到点赞数量Integer loveCount = movement.getLoveCount();//修改数据库点赞数量Update update = new Update().set("loveCount", loveCount + 1);UpdateResult updateResult = mongoTemplate.updateFirst(query, update, Movement.class);return mongoTemplate.findOne(query,Movement.class);}

2.2:取消喜欢

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

2.2.2:分析&实现

接收到前端传入的动态id,到数据库修改对应的动态喜欢数量,返回动态信息处理到redis缓存中,用来解决喜欢前端喜欢图标,取消动态喜欢不显示高亮。

    @GetMapping("/{id}/unlove")public ResponseEntity unlovemovement(@PathVariable("id") ObjectId id){Movement unlovemovement = movementService.unlovemovement(id, UserHolder.getUserId());return ResponseEntity.ok(unlovemovement.getLoveCount());}
    public Movement unlovemovement(ObjectId id, Long userId) {Movement movement = movementApi.unlovemovement(id);//将当前用户的点赞状态存入redis中String key = "MOVEMENTS_LOVE_KEY"+movement.getId();String hashKey = "MOVEMENTS_LOVE_HASHKEY" + userId;stringRedisTemplate.opsForHash().delete(key,hashKey);return movement;}
Movement unlovemovement(ObjectId id);
    @Overridepublic Movement unlovemovement(ObjectId id) {//通过动态id查询到该条动态Query query = new Query().addCriteria(Criteria.where("id").is(id));Movement movement = mongoTemplate.findOne(query, Movement.class);//得到点赞数量Integer loveCount = movement.getLoveCount();//修改数据库点赞数量Update update = new Update().set("loveCount", loveCount - 1);UpdateResult updateResult = mongoTemplate.updateFirst(query, update, Movement.class);return mongoTemplate.findOne(query,Movement.class);}

交友项目【动态点赞动态喜欢】相关推荐

  1. java 探花交友项目day5 推荐好友列表 MongoDB集群 发布动态,查询动态 圈子功能

    推荐好友列表 需求分析 推荐好友:分页形式查询推荐的用户列表,根据评分排序显示 代码实现: tanhuaController: /**  * 查询分页推荐好友列表  */ @GetMapping(&q ...

  2. 黑马探花交友----3.圈子-发布动态点赞评论

    学习目标: 圈子功能说明 圈子技术实现 圈子技术方案 圈子实现发布动态 圈子实现好友动态 圈子实现推荐动态 圈子实现点赞.喜欢功能 圈子实现评论 圈子实现评论的点赞 1.功能说明 探花交友项目中的圈子 ...

  3. 交友项目【查询好友动态,查询推荐动态】实现

    目录 1:圈子 1.1:查询好友动态 1.1.1:接口分析 1.1.2:流程分析 1.1.2:代码实现 1.2:查询推荐动态 1.2.1:接口分析 1.2.2:流程分析 1.2.3:代码实现 1:圈子 ...

  4. 七(5)查询动态-点赞评论-Redis(hash)

    课程总结 1.圈子动态查询 好友动态与推荐动态 掌握动态的表关系 掌握推荐动态的流程和代码实现 2.圈子互动 使用Redis和冗余字段优化查询效率 发布评论 点赞与取消点赞 喜欢与取消喜欢 一. 动态 ...

  5. 【Andorid X 项目笔记】动态设置ViewPager的Adapter问题(2)

    由于没有找到嵌套FragmentActivity的方法,只好打算用不同的FragmentPagerAdapter来动态切换ViewPager的,如下: /**      * 首页切换的三个界面     ...

  6. 后盾网lavarel视频项目---vue实现动态添加和删除板块

    后盾网lavarel视频项目---vue实现动态添加和删除板块 一.总结 一句话总结: 原理就是:列表时根据vue中的videos变量中的元素来遍历的,初始时videos:[{title:'',pat ...

  7. vue 获取动态域名_vue项目接口域名动态获取操作

    需求: 接口域名是从外部 .json 文件里获取的. 思路: 在开始加载项目前 进行接口域名获取,然后重置 接口域名的配置项. 实现: 1.config/index.js 文件 进行基础配置 impo ...

  8. 如何使用redis实现动态点赞和反对

    效果图 点赞和反对所需的redis方法 package cn.itcast.biz;import java.util.Set;import org.apache.catalina.connector. ...

  9. Unity项目运行时动态更新光照贴图 | LightMap

    Unity项目运行时动态更新烘培的光照贴图 动态更新烘培的光照贴图 场景的物件没有发生变化(也就是说没有运行时加载在场景上的Prefab) 场景的烘培贴图已经更新,但是有些物件prefab想运行时加载 ...

最新文章

  1. 软件工程大学生职业生涯规划_大学生职业生涯规划的现实意义
  2. Android之HTTP预备知识
  3. Harbor API整理:获取项目下的所有镜像
  4. 博士申请 | 美国布兰迪斯大学张初旭教授招收机器学习方向全奖博士生
  5. 关于牛客网运行超时的原因分析
  6. gta5显示nat较为严格_为何严格治理下雾霾天仍频发?哈尔滨市环保局解答重污染天3大疑问...
  7. 图像检索在高德地图POI数据生产中的应用
  8. mysql数据库基础简介_MySql数据库基础之数据库简介及安装
  9. 微信小程序通用功能设计和实现
  10. Spring——jar包详解
  11. 微软Windows家族一览 从1.0到Longhorn
  12. hadoop核心框架简介
  13. 剑指Offer题目汇总(持续更新中...)
  14. VMware Workstation 启动报错
  15. 计算机安全模式无法启动,我的电脑安全模式可以进去,为什么不能正常起动呢?...
  16. 科大讯飞批量语音转文字
  17. 手把手教你使用Travis CI自动部署你的Hexo博客到Github上
  18. 2009年ACM-ICPC——瑞典取双
  19. Spring Data Neo4j解除两个节点之间的关系
  20. 「史诗级干货」新人up主B站运营炫酷玩法,轻松实现UP!UP!UP!

热门文章

  1. 南开大学计算机学院范登平,石 凡
  2. 动漫文字卡片封面制作
  3. 为MobaXterm终端配一个自己喜欢的主题和背景颜色
  4. 国内五款主流外贸CRM优缺点综合评测
  5. RPA赋能与数据化运营
  6. rg1 蓝光危害rg0_LED蓝光危害评价的最新标准及测试方案介绍
  7. 浅谈linux - samba实现linux与windows文件共享
  8. polkadot介绍
  9. linux指定日期月末,linux 获取某个日期对应的月末日期方法
  10. 微信公众平台初级使用教程