交友项目【动态点赞动态喜欢】
目录
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:动态点赞
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:取消点赞
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:动态喜欢
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:取消喜欢
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);}
交友项目【动态点赞动态喜欢】相关推荐
- java 探花交友项目day5 推荐好友列表 MongoDB集群 发布动态,查询动态 圈子功能
推荐好友列表 需求分析 推荐好友:分页形式查询推荐的用户列表,根据评分排序显示 代码实现: tanhuaController: /** * 查询分页推荐好友列表 */ @GetMapping(&q ...
- 黑马探花交友----3.圈子-发布动态点赞评论
学习目标: 圈子功能说明 圈子技术实现 圈子技术方案 圈子实现发布动态 圈子实现好友动态 圈子实现推荐动态 圈子实现点赞.喜欢功能 圈子实现评论 圈子实现评论的点赞 1.功能说明 探花交友项目中的圈子 ...
- 交友项目【查询好友动态,查询推荐动态】实现
目录 1:圈子 1.1:查询好友动态 1.1.1:接口分析 1.1.2:流程分析 1.1.2:代码实现 1.2:查询推荐动态 1.2.1:接口分析 1.2.2:流程分析 1.2.3:代码实现 1:圈子 ...
- 七(5)查询动态-点赞评论-Redis(hash)
课程总结 1.圈子动态查询 好友动态与推荐动态 掌握动态的表关系 掌握推荐动态的流程和代码实现 2.圈子互动 使用Redis和冗余字段优化查询效率 发布评论 点赞与取消点赞 喜欢与取消喜欢 一. 动态 ...
- 【Andorid X 项目笔记】动态设置ViewPager的Adapter问题(2)
由于没有找到嵌套FragmentActivity的方法,只好打算用不同的FragmentPagerAdapter来动态切换ViewPager的,如下: /** * 首页切换的三个界面 ...
- 后盾网lavarel视频项目---vue实现动态添加和删除板块
后盾网lavarel视频项目---vue实现动态添加和删除板块 一.总结 一句话总结: 原理就是:列表时根据vue中的videos变量中的元素来遍历的,初始时videos:[{title:'',pat ...
- vue 获取动态域名_vue项目接口域名动态获取操作
需求: 接口域名是从外部 .json 文件里获取的. 思路: 在开始加载项目前 进行接口域名获取,然后重置 接口域名的配置项. 实现: 1.config/index.js 文件 进行基础配置 impo ...
- 如何使用redis实现动态点赞和反对
效果图 点赞和反对所需的redis方法 package cn.itcast.biz;import java.util.Set;import org.apache.catalina.connector. ...
- Unity项目运行时动态更新光照贴图 | LightMap
Unity项目运行时动态更新烘培的光照贴图 动态更新烘培的光照贴图 场景的物件没有发生变化(也就是说没有运行时加载在场景上的Prefab) 场景的烘培贴图已经更新,但是有些物件prefab想运行时加载 ...
最新文章
- 软件工程大学生职业生涯规划_大学生职业生涯规划的现实意义
- Android之HTTP预备知识
- Harbor API整理:获取项目下的所有镜像
- 博士申请 | 美国布兰迪斯大学张初旭教授招收机器学习方向全奖博士生
- 关于牛客网运行超时的原因分析
- gta5显示nat较为严格_为何严格治理下雾霾天仍频发?哈尔滨市环保局解答重污染天3大疑问...
- 图像检索在高德地图POI数据生产中的应用
- mysql数据库基础简介_MySql数据库基础之数据库简介及安装
- 微信小程序通用功能设计和实现
- Spring——jar包详解
- 微软Windows家族一览 从1.0到Longhorn
- hadoop核心框架简介
- 剑指Offer题目汇总(持续更新中...)
- VMware Workstation 启动报错
- 计算机安全模式无法启动,我的电脑安全模式可以进去,为什么不能正常起动呢?...
- 科大讯飞批量语音转文字
- 手把手教你使用Travis CI自动部署你的Hexo博客到Github上
- 2009年ACM-ICPC——瑞典取双
- Spring Data Neo4j解除两个节点之间的关系
- 「史诗级干货」新人up主B站运营炫酷玩法,轻松实现UP!UP!UP!