个人代码,自创循环套循环后输出Map数据结构的写法

@Override

public HttpCommandResultWithData getSalesDataByUsersAndTransId(SalesQueryLogDataByUserCommand command) {

HttpCommandResultWithData result = new HttpCommandResultWithData().fillResult(ReturnCode.OK);

// 入参校验

List userIds = command.getUserIds();

if (CollectionUtils.isEmpty(userIds)) {

throw new SellAppCustomFailException(ErrorMsgEnum.SELL_APP_SERVICE_ParaMS_ERROR_USERS_NOT_FIND);

}

List transIds = command.getTransIds();

if (CollectionUtils.isEmpty(transIds)) {

throw new SellAppCustomFailException(ErrorMsgEnum.SELL_APP_SERVICE_ParaMS_ERROR_TRANS_ID_NOT_FIND);

}

// 获取redis数据方法

Function> getDataByRedis = userId -> {

Map 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 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> retMap =

userIds.stream().collect(Collectors.toMap(key -> {

String userId = userIds.get(index.get());

index.incrementAndGet();

return userId;

},getDataByRedis));

result.setData(retMap);

return result;

}

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...