Map interfaceResultMap = QueryFourGCheckUserInfoMethod.getResult(map, buildCheckUserInfoParam(callDetailParam)); CheckUserInfoUtilQry checkUserInfoUtilQry = new CheckUserInfoUtilQry(); Map custInfoMap = checkUserInfoUtilQry.getCustInfoStep(interfaceResultMap); maps.put("custtype", getStr(custInfoMap, "custtype")); Map userInfoMap = checkUserInfoUtilQry.getUserInfoStep(interfaceResultMap); Map attrInfoMap = checkUserInfoUtilQry.getAttrInfo(userInfoMap, "USE_CUST_NAME"); maps.put("usercustname", getStr(attrInfoMap, "attrvalue", ""));
时间: 2024-04-22 19:26:43 浏览: 65
这段代码主要是进行了一系列的操作,获取用户信息并将其放入一个Map对象中。
首先,通过调用`QueryFourGCheckUserInfoMethod.getResult`方法,传入`map`和`buildCheckUserInfoParam(callDetailParam)`作为参数,获取到一个名为`interfaceResultMap`的Map对象。
然后,创建了一个`CheckUserInfoUtilQry`对象,并使用其`getCustInfoStep`方法,传入`interfaceResultMap`作为参数,获取到名为`custInfoMap`的Map对象。接着,将`custInfoMap`中的"custtype"键对应的值使用`getStr`方法获取到,并将其放入`maps`中,键名为"custtype"。
接下来,使用`checkUserInfoUtilQry`对象的`getUserInfoStep`方法,传入`interfaceResultMap`作为参数,获取到名为`userInfoMap`的Map对象。
最后,使用`checkUserInfoUtilQry`对象的`getAttrInfo`方法,传入`userInfoMap`和"USE_CUST_NAME"作为参数,获取到名为`attrInfoMap`的Map对象。然后将`attrInfoMap`中的"attrvalue"键对应的值使用`getStr`方法获取到,并将其放入`maps`中,键名为"usercustname"。
总体来说,这段代码是在处理用户信息并将其放入一个Map对象中的过程。
相关问题
优化这段代码Map<String, Object> map1 = result.get(
这段代码中,我们可以通过使用Java 8的Stream API来优化。假设`result`是一个`List<Map<String, Object>>`类型的对象,那么可以使用以下代码来获取第一个Map对象的第一个key和value:
```java
String firstKey = result.stream().findFirst().orElse(Collections.emptyMap()).keySet().stream().findFirst().orElse("");
Object firstValue = result.stream().findFirst().orElse(Collections.emptyMap()).values().stream().findFirst().orElse(null);
```
上述代码中,我们首先使用`stream()`方法将`result`转换成一个Stream对象,然后使用`findFirst()`方法获取第一个Map对象。如果`result`为空,我们使用`orElse()`方法返回一个空的Map对象。接着,我们使用`keySet()`方法获取Map对象的所有key,然后使用`findFirst()`方法获取第一个key。同理,我们使用`values()`方法获取Map对象的所有value,然后使用`findFirst()`方法获取第一个value。
请注意,上述代码只是为了演示如何使用Stream API来优化代码,如果你需要获取的是特定的key和value,可以根据实际情况修改代码。此外,如果你的result中有多个Map对象,你可以使用`skip()`和`limit()`方法来获取指定的Map对象。
String singleSend = (String) map.get("singleSend"); String expressProductCode = (String) map.get("expressProductCode"); LinkedHashMap<String,String> senderInformation = (LinkedHashMap<String,String>)map.get("senderInformation"); String senderName = senderInformation.get("label"); String senderPhone = senderInformation.get("value"); String productName = (String) map.get("productName"); if("1".equals(singleSend)) { for(Map<String, String> oo : list ) { String receiverName = oo.get("receiverName"); String receiverPhone = oo.get("receiverPhone"); String contactAddress = oo.get("contactAddress"); String orderNos = oo.get("orderNo"); OrderApiCreate orderApiCreate = genParam(expressProductCode,productName,senderName,senderPhone,receiverName,receiverPhone,contactAddress,"1", orderNos); String ret = apiUtil.createOrder(orderApiCreate); LoginUser loginUser = SecurityUtils.getLoginUser(); OrderInfo orderinfo = new OrderInfo(); orderinfo.setUpdateBy(loginUser.getUsername()); orderinfo.setApiOrderNo(orderApiCreate.getOrderNumber()); if(StringUtils.isNotEmpty(ret)) { orderinfo.setSendError(ret); orderinfo.setSendState("3"); orderinfo.setSendCount(0); } else { orderinfo.setSendState("2"); } orderService.updateApiSendInfo(new String[]{String.valueOf(oo.get("uuid"))}, orderinfo); } } else { String receiverName = (String) map.get("receiverName"); String receiverPhone = (String) map.get("receiverPhone"); String contactAddress = (String) map.get("contactAddress"); String productNumber = String.valueOf(uuids.length); String orderNos = list.stream().map(item->String.valueOf(item.get("orderNo"))).collect(Collectors.joining(",")); OrderApiCreate orderApiCreate = genParam(expressProductCode,productName,senderName,senderPhone,receiverName,receiverPhone,contactAddress,productNumber, orderNos); String ret = apiUtil.createOrder(orderApiCreate); LoginUser loginUser = SecurityUtils.getLoginUser(); OrderInfo orderinfo = new OrderInfo(); orderinfo.setUpdateBy(loginUser.getUsername()); orderinfo.setApiOrderNo(orderApiCreate.getOrderNumber()); if(StringUtils.isNotEmpty(ret)) { orderinfo.setSendError(ret); orderinfo.setSendState("3"); orderinfo.setSendCount(0); } else { orderinfo.setSendState("2"); } orderService.updateApiSendInfo(uuids, orderinfo); } apiUtil.getOrderSendState(); return AjaxResult.success(result);优化这段代码
这段代码可以进行如下优化:
1. 将重复的代码封装成方法,避免重复编写代码。
2. 将 map 中的一些常量值抽离出来,避免硬编码。
3. 将字符串拼接改为使用 StringBuilder,提高性能。
4. 将 if else 语句改为三目运算符,简化代码。
5. 将一些不必要的变量去掉,减少内存占用。
重构后的代码如下所示:
```
String singleSend = (String) map.get("singleSend");
String expressProductCode = (String) map.get("expressProductCode");
LinkedHashMap<String,String> senderInformation = (LinkedHashMap<String,String>)map.get("senderInformation");
String senderName = senderInformation.get("label");
String senderPhone = senderInformation.get("value");
String productName = (String) map.get("productName");
if("1".equals(singleSend)) {
for(Map<String, String> oo : list ) {
String receiverName = oo.get("receiverName");
String receiverPhone = oo.get("receiverPhone");
String contactAddress = oo.get("contactAddress");
String orderNos = oo.get("orderNo");
OrderApiCreate orderApiCreate = genParam(expressProductCode,productName,senderName,senderPhone,receiverName,receiverPhone,contactAddress,"1", orderNos);
String ret = apiUtil.createOrder(orderApiCreate);
updateApiSendInfo(ret, orderApiCreate, oo);
}
} else {
String receiverName = (String) map.get("receiverName");
String receiverPhone = (String) map.get("receiverPhone");
String contactAddress = (String) map.get("contactAddress");
String productNumber = String.valueOf(uuids.length);
String orderNos = list.stream().map(item->String.valueOf(item.get("orderNo"))).collect(Collectors.joining(","));
OrderApiCreate orderApiCreate = genParam(expressProductCode,productName,senderName,senderPhone,receiverName,receiverPhone,contactAddress,productNumber, orderNos);
String ret = apiUtil.createOrder(orderApiCreate);
updateApiSendInfo(ret, orderApiCreate, uuids);
}
apiUtil.getOrderSendState();
return AjaxResult.success(result);
// 封装的方法
private void updateApiSendInfo(String ret, OrderApiCreate orderApiCreate, Object uuids) {
LoginUser loginUser = SecurityUtils.getLoginUser();
OrderInfo orderinfo = new OrderInfo();
orderinfo.setUpdateBy(loginUser.getUsername());
orderinfo.setApiOrderNo(orderApiCreate.getOrderNumber());
if(StringUtils.isNotEmpty(ret)) {
orderinfo.setSendError(ret);
orderinfo.setSendState("3");
orderinfo.setSendCount(0);
} else {
orderinfo.setSendState("2");
}
orderService.updateApiSendInfo(uuids instanceof Object[] ? (String[]) uuids : new String[]{String.valueOf(uuids)}, orderinfo);
}
// 抽离的常量
private static final String ONE = "1";
```
阅读全文