bwin世界杯亚洲指数
重构后的ItemUtil//这个配置含有新老itemId映射的信息以及获取orderNo,sID的字段信息?privatestaticList???itemBaseDataConf=Arrays.asList("item:","item:item_core_id",????????????????????"item:order_no","item:s_id");??privatestaticMapitemIdConf=newHashMap(){??{???put("item","item:item_core_id");???put("item_core","item_core:id");???put("item_price","item_price:item_id");???put("item_price_change_log","item_price_change_log:item_id");??}?};??/**???*聚合一个订单下的所有商品信息??*@paramitemIndexMap一个订单所有商品的信息映射??*@return一个订单下的所有商品信息??*??*key是sID+order_no+item_id;??*/?privatestaticMap>mergeOrderItemMap(Map>itemIndexMap){???if(itemIndexMap==null||itemIndexMap.isEmpty()){???returnnewHashMap<>();??}???//Map[oldItemId,newItemId]??Mapold2newItemIdMap=newHashMap<>();??Mapnew2oldItemIdMap=newHashMap<>();???Set>>entries=itemIndexMap.entrySet();??StringorderNo="";??StringkdtId="";???//构建itemID映射??for(Map.Entry>entry:entries){???StringindexKey=entry.getKey();???Mapvalue=entry.getValue();????if(indexKey.startsWith(itemBaseDataConf.get(0))){????old2newItemIdMap.put(indexKey,value.get(itemBaseDataConf.get(1)));????new2oldItemIdMap.put(value.get(itemBaseDataConf.get(1)),indexKey);????orderNo=value.get(itemBaseDataConf.get(2));????kdtId=value.get(itemBaseDataConf.get(3));???}??}???Map>newItemIndexMap=aggregationAllInfoOfEachItem(itemIndexMap,new2oldItemIdMap);??returnbuildFinalOrderItemMap(newItemIndexMap,old2newItemIdMap,orderNo,kdtId);??}??/*??*聚合每个商品的所有信息??*??*Map[item:id,Map[table:field,value]]??*/?privatestaticMap>aggregationAllInfoOfEachItem(Map>itemIndexMap,Mapnew2oldItemIdMap){???Map>newItemIndexMap=newHashMap<>();???itemIndexMap.forEach(????(indexKey,value)->{??????Stringtable=indexKey.split(":")[0];?????if(itemIdConf.containsKey(table)){??????StringitemCoreIdField=itemIdConf.get(table);??????StringitemCoreId=itemIndexMap.get(indexKey).get(itemCoreIdField);??????putNewIndexMap(newItemIndexMap,indexKey,value,??????????????key->new2oldItemIdMap.get(itemCoreId));?????}????}??);???returnnewItemIndexMap;??}??/*??*将各商品信息聚合到相应的原itemId的键下??*/?privatestaticvoidputNewIndexMap(Map>newItemIndexMap,???????????????????StringindexKey,Mapvalue,FunctiongetOriginItemIdFunc){??StringoriginItemId=getOriginItemIdFunc.apply(indexKey);??if(newItemIndexMap.get(originItemId)==null){???newItemIndexMap.put(originItemId,newHashMap<>());??}??MapsrcMap=newItemIndexMap.get(originItemId);??newItemIJava8特性Function可以看到,putNewIndexMap使用了Function作为参数,让调用方指定如何去获取originItemId,然后根据获取的originItemId进行通用处理。而作为这类群体,他们更密切关注自身的投资出路,以应对可能存在的资产贬值缩水风险。例如:setTimeout(function(){alert('10Secondspassed');},10000);上面的setTimeout()函数就是一个高阶函数。一方面,他们不是独行侠,软件开发从本质上来讲是一个协作过程。