微信朋友圈点赞功能

package com.easyagu.liwei.set;

import redis.clients.jedis.Jedis;

import java.util.Set;

/**
* 对朋友圈
*/
public class BlogDemo {
private Jedis jedis = new Jedis("127.0.0.1");

/**
* 对朋友圈进行点赞
*
* @param userId
* @param momentId
*/
public void likeMoment(Long userId, Long momentId) {
jedis.sadd("moment_like_users::" + momentId, String.valueOf(userId));
}

/**
* 取消点赞
*
* @param userId
* @param momentId
*/
public void dislikeMoment(long userId, Long momentId) {
//Redis Srem 命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
jedis.srem("moment_like_users::" + momentId, String.valueOf(userId));
}

/**
* 查看自己是否对某条朋友圈点赞过
*
* @param userId
* @param momentId
* @return
*/
public boolean hasLikeMoment(Long userId, Long momentId) {
//Redis Sismember 命令判断成员元素是否是集合的成员。
return jedis.sismember("moment_like_users::" + momentId, String.valueOf(userId));
}

/**
* 获取你的一条朋友圈又哪些人点赞了
*
* @param momentId
* @return
*/
public Set<String> getMomentLikeUsers(Long momentId) {
return jedis.smembers("moment_like_users::" + momentId);
}

/**
* 获取朋友圈被几个人点赞
*
* @param momentId
* @return
*/
public long getMomentLikeUsersCount(Long momentId) {
return jedis.scard("moment_like_users::" + momentId);
}


public static void main(String[] args) {
//你的用户id
long userid = 1;
//你的朋友圈id
long momentId = 150;
//你的朋友1用户id
long friendId = 2;

//你的朋友2用户id
long friendId2 = 22;
//你的朋友对你的朋友圈进行点赞
BlogDemo blogDemo = new BlogDemo();
//你的朋友对你的朋友圈进行点赞
blogDemo.likeMoment(friendId, momentId);


///你的朋友1对你的朋友圈进行点赞,再取消点赞
blogDemo.likeMoment(friendId, momentId);
blogDemo.dislikeMoment(friendId, momentId);
boolean b = blogDemo.hasLikeMoment(friendId, momentId);
System.out.println("朋友1是否点赞过:" + (b ? "是" : "否"));


///你的朋友2对你的朋友圈进行点赞,再取消点赞
blogDemo.likeMoment(friendId2, momentId);
boolean b2 = blogDemo.hasLikeMoment(friendId2, momentId);
System.out.println("朋友1是否点赞过:" + (b2 ? "是" : "否"));
//自己看朋友圈,看自己被人点赞
Set<String> momentLikeUsers = blogDemo.getMomentLikeUsers(momentId);
long momentLikeUsersCount = blogDemo.getMomentLikeUsersCount(momentId);
System.out.println("自己朋友圈被"+momentLikeUsersCount+"个人点赞了,点赞用户为:"+momentLikeUsers);

}


}
原文地址:https://www.cnblogs.com/q1359720840/p/14635646.html