背景:
上游返回的 skuIdList 存在相同的Id,skuCount数组与skuID一一对应
处理结果:skuIdList 去重,对应的count总和要加起来,对应的 originalPriceList 和 subtotalPriceList 不变
代码:
Groovy
import groovy.json.JsonSlurper
def skuIdList = new JsonSlurper().parseText('["472262851","472302672","472284575","472262851"]');
//logs.add('skuIdList:\n' + skuIdList.toString());
def applySkuList = [];
def originalPriceList = new JsonSlurper().parseText("[0.03,510.0,51.0,0.03]");
def subtotalPriceList = new JsonSlurper().parseText("[0.21,3570.0,408.0,0.21]");
def skuCountList = new JsonSlurper().parseText("[7,7,8,7]");
def parentPackageId = 5008466108;
def skuIdCountMap = [:];
def originalPriceList2 =[];
def subtotalPriceList2 =[];
//通过map去重skuID,并重新写对应价格的数组,使其一一对应
for (int i = 0; i < skuIdList.size(); i++) {
def currentSkuId = skuIdList[i];
def currentCount = skuCountList[i];
if(skuIdCountMap.containsKey(currentSkuId)){
skuIdCountMap[currentSkuId] += currentCount;
} else {
skuIdCountMap[currentSkuId] = currentCount;
originalPriceList2.add(originalPriceList[i]);
subtotalPriceList2.add(subtotalPriceList[i]);
}
}
/*
遍历skuIdCountMap
分别把skuID 与 对应count 写入2个数组
*/
def skuIDs = [];
def skuCounts = [];
for (String key : skuIdCountMap.keySet()) {
skuCounts.add(skuIdCountMap[key])
skuIDs.add(key);
}
println skuIdCountMap;
println originalPriceList2;
println subtotalPriceList2;
println skuIDs;
println skuCounts;
运行结果
java
[472262851:14, 472302672:7, 472284575:8]
[0.03, 510.0, 51.0]
[0.21, 3570.0, 408.0]
[472262851, 472302672, 472284575]
[14, 7, 8]