/**
* 双重for循环写法,嵌套
*/
public String save(@Validated ProductX ProductX, HttpServletRequest request) {
List<ProductXRecord> ppX = ProductX.getProductXRecordList();
List<String> strsToListX= Arrays.asList(request.getParameterValues("detailValueXX"));
List<List<String>> columnList = GetListUtils.getList(strsToListX,strsToListX.size()/ppX.size());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSSS");
Map<String, Object> delX = new HashedMap();
delX.put("product_x_id",ProductX.getId());
ProductXService.delXColumnValue(delX);
for (int i = 0; i < ppX.size(); i++) {
String recordId = ppX.get(i).getId();
for (int j = 0; j < columnList.get(i).size(); j++) {
String detail_value_x = (StringUtils.isBlank(columnList.get(i).get(j)) ? "0" :columnList.get(i).get(j));
Map<String, Object> map = new HashedMap();
map.put("id",UUID.randomUUID().toString());
map.put("product_x_id",ProductX.getId());
map.put("product_x_x_id",recordId);
map.put("detail_value_x",detail_value_x);
map.put("create_date",sdf.format(new Date()));
ProductXService.insertColumnValue(map);
}
}
ProductXService.save(ProductX);
return renderResult(Global.TRUE, text("成功!"));
}
/**
* 双重for循环换成lambda表达式的写法:
*/
List<ProductXRecord> ppX = ProductX.getProductXRecordList();
List<String> strsToListX= ProductX.getstrsToListX();
List<List<String>> columnList = GetListUtils.getList(strsToListX,strsToListX.size()/ppX.size());
Map<String, Object> delX = new HashedMap();
delX.put("product_x_id",ProductX.getId());
ProductXRecordDao.delXColumnValue(delX);
List<ProductXRecordDetail> batchList = new ArrayList<>();
ProductXRecordDetail pprd = new ProductXRecordDetail();
ppX.stream().forEach(action -> {
columnList.get(ppX.indexOf(action)).stream().forEach(action1 -> {
ProductX pp = new ProductX();
pp.setId(ProductX.getId());
pprd.setProductX(pp);
ProductXRecord ppd = new ProductXRecord();
ppd.setId(action.getId());
pprd.setProductXRecord(ppd);
pprd.setDetailValue(Double.valueOf(StringUtils.isBlank(action1) ? "0" :action1));
pprd.setId(UUID.randomUUID().toString());
batchList.add(pprd);
});
});
ProductXRecordDetailDao.insertBatch(batchList);