@RequestMapping(value = "/tweet/star", method = RequestMethod.POST) public void star( @RequestParam("uid") long uid, @RequestParam("tid") long tid, @RequestParam("star") boolean star) { Tweet tweet = tweetRepo.findOne(tid); if (star) { if (userTweetRepo.findByUidAndTidAndUserTweetType(uid, tid, UserTweet.UserTweetType.STAR) == null) { UserTweet userTweet = new UserTweet(); userTweet.setUid(uid); userTweet.setTid(tid); userTweet.setUserTweetType(UserTweet.UserTweetType.STAR); userTweetRepo.saveAndFlush(userTweet); User user = userRepo.findOne(uid); Message message = new Message(); message.setUid(uid); message.setUid2(tweet.getUid()); message.setTid(tid); message.setMessageType(Message.MessageType.STAR); message.setTitle(user.getName()); message.setContent(user.getName()); message.setIcon(user.getAvatar()); message.setTime(Utils.getTime()); message.setDate(System.currentTimeMillis()); Utils.message(messageRepo.saveAndFlush(message)); } else { return; } } else { userTweetRepo.deleteByUidAndTidAndUserTweetType(uid, tid, UserTweet.UserTweetType.STAR); } tweet.setStarCount(star ? tweet.getStarCount() + 1 : tweet.getStarCount() - 1); tweetRepo.saveAndFlush(tweet); }