/** 充值电话的电话号码、次数、金额(txt) **/
public String AP0050011(List<TransInfoCsv> sources, String batchNo) {
List<TransInfoCsv> computeList = AlipayAnalysisUtil.filterTransInfoCsv(sources, batchNo, null, null, ClazzTag.chargePhoneCall);
Func.Func1<TransInfoCsv, String> keyExpress = new Func1<TransInfoCsv, String>() {
public String apply(TransInfoCsv t) {
String phoneNum = getPhoneNO(t.consumeTitle);
return phoneNum;
}
};
Func.Func1<TransInfoCsv, Tuple3<String, Integer, Float>> valueExpress = new Func1<TransInfoCsv, Tuple.Tuple3<String,Integer,Float>>() {
public Tuple3<String, Integer, Float> apply(TransInfoCsv t){
String phoneNum = getPhoneNO(t.consumeTitle);
Tuple3<String,Integer,Float> item = Tuple.tuple(phoneNum, 0, 0.0f);
return item;
}
};
Action.Action3<TransInfoCsv, String, Map<String,Tuple3<String, Integer, Float>>> aggregate = new Action3<TransInfoCsv, String, Map<String,Tuple3<String,Integer,Float>>>() {
public void excute(TransInfoCsv item, String key,
Map<String, Tuple3<String, Integer, Float>> map) {
Tuple3<String, Integer, Float> value = map.get(key);
value.set2(value._2()+1);
value.set3(value._3()+Float.parseFloat(item.amountPay));
map.put(key, value);
}
};
Map<String, Tuple3<String, Integer, Float>> map = ListUtils.map(computeList, keyExpress, valueExpress, aggregate);
StructDocument<Tuple3<String, String, String>,Tuple3<String, Integer, Float>> dc = new StructDocument<Tuple.Tuple3<String,String,String>, Tuple.Tuple3<String,Integer,Float>>();
Tuple3<String, String, String> header = Tuple.tuple("手机号", "充值次数", "充值金额");
dc.setHeader(header);
dc.addAll(map.values());
return dc.toString();
}
Java Map Key-Value
最新推荐文章于 2022-08-18 14:38:21 发布