diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBadgeRedis.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBadgeRedis.java index 13a8dd8b2c..0e90323f55 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBadgeRedis.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBadgeRedis.java @@ -210,6 +210,27 @@ public class UserBadgeRedis { return NumConstant.ONE; } + /** + * @Description 用户点亮或取消徽章 强一致性 + * @param + * @return long + * @author wangc + * @date 2020.11.25 14:17 + */ + public long illumeOrExtinguishStronglyConsistent(String userId, String customerId){ + List db = badgeService.getUserSortedBadge(userId,customerId); + redisUtils.delete(UserRedisKeys.getResiUserBadgeKey(customerId,userId)); + if(CollectionUtils.isNotEmpty(db)) { + redisTemplate.executePipelined((RedisCallback>) connection -> { + db.forEach(badge -> { + connection.listCommands().rPush(UserRedisKeys.getResiUserBadgeKey(customerId, userId).getBytes(), + redisTemplate.getValueSerializer().serialize(badge)); + }); + return null; + }); + } + return NumConstant.ONE; + } /** * @Description 批量清除用户徽章信息,用处:在客户取消点亮某个徽章后,批量清除该客户下所有用户的徽章缓存,当需要查取时再次初始化进缓存中