mongodb父节点消息回复消息点赞及Redis标识是否重复点赞(springboot)
- //引入MongoDB依赖
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis</artifactId>
- <version>2.0.1.RELEASE</version>
- </dependency>
-
- //引入Redis依赖
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis</artifactId>
- <version>2.0.1.RELEASE</version>
- </dependency>
SpitController层
- @Autowired
- private RedisTemplate redisTemplate;
-
- //回复消息
- @RequestMapping(method = RequestMethod.POST)
- public Result save(@RequestBody Spit spit){
- spitService.save(spit);
- return new Result(true,StatusCode.OK,"保存成功");
- }
- //点赞
- @RequestMapping(value = "/thumbup/{spitid}",method = RequestMethod.PUT)
- public Result Thumbup(@PathVariable String spitid){
- //判斷用户是否已经点赞,用户ID暂且写死
- String userid="123";
- if (redisTemplate.opsForValue().get("thumbup_"+userid)!=null){
- return new Result(false,StatusCode.REPERROR,"不能重复点赞");
- }
- spitService.thumbup(spitid);
- redisTemplate.opsForValue().set("thumbup_"+userid,1);
- return new Result(true,StatusCode.OK,"点赞成功");
- }
service层
- @Autowired
- private MongoTemplate mongoTemplate;
-
-
- public void save(Spit spit){
- spit.set_id(idWorker.nextId()+"");
- spit.setPublishtime(new Date());//发布日期
- spit.setVisits(0);//浏览量
- spit.setShare(0);//分享数
- spit.setThumbup(0);//点赞数
- spit.setComment(0);//回复数
- spit.setState("1");//状态
- //如果当前添加的吐槽有父节点,那么回复的父节点的回复数+1
- if(spit.get_id()!=null && ! "".equals(spit.get_id())){
- Query query = new Query();
- query.addCriteria(Criteria.where("_id").is(spit.getParentid()));
- Update updata = new Update();
- updata.inc("comment",1);
- mongoTemplate.updateFirst(query,updata,"spit"); //spit mongodb吐槽表名
- }
-
- spitDao.save(spit);
- }
-
- public void thumbup(String spitid) {
- //方式一:效率低,点赞需要经过两次数据库
- /* Spit spit = spitDao.findById(spitid).get();
- spit.setThumbup((spit.getThumbup() == null ? 0:spit.getThumbup())+1);
- spitDao.save(spit);*/
-
- //方式二:
- Update update = new Update();
- update.inc("thumbup",1);
- Query query = new Query();
- query.addCriteria(Criteria.where("_id").is(spitid));
- mongoTemplate.updateFirst(query,update,"spit");
- }
推荐阅读