版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zyjcxc/article/details/85161301
@Override
public HttpCommandResultWithData getSalesDataByUsersAndTransId(SalesQueryLogDataByUserCommand command) {
HttpCommandResultWithData result = new HttpCommandResultWithData().fillResult(ReturnCode.OK);
// 入参校验
List<String> userIds = command.getUserIds();
if (CollectionUtils.isEmpty(userIds)) {
throw new SellAppCustomFailException(ErrorMsgEnum.SELL_APP_SERVICE_PARAMS_ERROR_USERS_NOT_FIND);
}
List<String> transIds = command.getTransIds();
if (CollectionUtils.isEmpty(transIds)) {
throw new SellAppCustomFailException(ErrorMsgEnum.SELL_APP_SERVICE_PARAMS_ERROR_TRANS_ID_NOT_FIND);
}
// 获取redis数据方法
Function<String, Map<String, String>> getDataByRedis = userId -> {
Map<String, String> beanMap = new HashMap<>();
transIds.forEach(transId -> {
String jsonLogArrays = Optional.ofNullable(
(String) redisTemplate.opsForHash().get(RedisStaticConst.QINGQI_LOG_REDIS_KEY_PREX + transId, userId))
.orElseGet(String::new);
List<RedisLogSimplePojo> list = new ArrayList();
try {
list = JsonUtil.toList(jsonLogArrays, RedisLogSimplePojo.class);
} catch (IOException e) {
logger.warn("=== getSalesDataByUsers 查询云端redis数据 云端redis hkey : {} key: {} 转换json数组异常", RedisStaticConst.QINGQI_LOG_REDIS_KEY_PREX + transId, userId);
}
beanMap.put(transId, String.valueOf(list.size()));
});
return beanMap;
};
// 返回结果
AtomicInteger index = new AtomicInteger();
Map<String, Map<String, String>> retMap =
userIds.stream().collect(Collectors.toMap(key -> {
String userId = userIds.get(index.get());
index.incrementAndGet();
return userId;
}, getDataByRedis));
result.setData(retMap);
return result;
}