본문 바로가기
BackendStory/JAVA

List<Map<String,Object>> 안에 Map<String,String> 넣기

by 계단형 성장 개발자 2022. 3. 18.

public ResponseEntity<?> getDetailAPIMovementStatus(Map<String,String> reqParam) throws ParseException {
Map<String, Object> response = new HashedMap<String, Object>();
     AggregateIterable<Document> thisApiWeekData = null;
     AggregateIterable<Document> lastApiWeekData = null;

     List<DataMap> thisApiWeekDataList = new ArrayList<DataMap>();
     List<DataMap> lastApiWeekDataList = new ArrayList<DataMap>();
     List<DataMap> interfaceList =  new ArrayList<DataMap>();

        thisApiWeekData = dashBoardDao.getThisAPIMovementStatus(reqParam,"detail"); // 평균시간 , 금일 총호출건수, 성공, 실패, 최고응답시간 조회
        lastApiWeekData = dashBoardDao.getLastAPIMovementStatus(reqParam,"detail"); // 전주 평균시간 , 전주 금일 총호출건수 조회
     interfaceList = dashBoardMapper.getInterfaceList();
// json 형식으로 형변환

     for (Document docResult : thisApiWeekData) {
Gson gson = new Gson();
thisApiWeekDataList.add(gson.fromJson(docResult.toJson(), DataMap.class));
}
// json 형식으로 형변환
for (Document docResult : lastApiWeekData) {
Gson gson = new Gson();
lastApiWeekDataList.add(gson.fromJson(docResult.toJson(), DataMap.class));
}

// 10마다 시간 셋팅
     Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        Date current = c.getTime();

        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
int i = 0;


List<Map<String,Object>> weekDataList = new ArrayList();
Map<String,Object> singleDataList = new HashMap<String, Object>();  ==> List<Map<String,String>> 과 

                                                                                                           Map<String,String> 선언


if(thisApiWeekDataList.size() > 0) {
for(int k = 0; k <thisApiWeekDataList.size(); k++) {
singleDataList.put("time", sdf.format(current));
singleDataList.put("_id", thisApiWeekDataList.get(k).get("_id"));
singleDataList.put("thisTotalCnt", thisApiWeekDataList.get(k).get("thisTotalCnt"));
singleDataList.put("thisExecAvg", thisApiWeekDataList.get(k).get("thisExecAvg"));
singleDataList.put("sucesCnt", thisApiWeekDataList.get(k).get("sucesCnt"));
singleDataList.put("failCnt", thisApiWeekDataList.get(k).get("failCnt"));
singleDataList.put("maxExecTime", thisApiWeekDataList.get(k).get("maxExecTime"));
}
}else {
singleDataList.put("time", sdf.format(current));//현재시간 set
singleDataList.put("_id", "");
singleDataList.put("thisTotalCnt", 0);
singleDataList.put("thisExecAvg", 0.0);
singleDataList.put("sucesCnt", 0);
singleDataList.put("failCnt", 0);
singleDataList.put("maxExecTime", 0);
== 조회 한 값이 없을 때 0  으로 셋팅
if(lastApiWeekDataList.size() > 0) {
  for(int v = 0; v <lastApiWeekDataList.size(); v++) {
     singleDataList.put("lastTotalCnt", lastApiWeekDataList.get(v).get("lastTotalCnt"));
     singleDataList.put("lastExecAvg", lastApiWeekDataList.get(v).get("lastExecAvg"));
   }
}else {
singleDataList.put("lastTotalCnt", 0);
singleDataList.put("lastExecAvg", 0.0);
}  == 조회 한 값이 없을 때 0  으로 셋팅
for(int s = 0; s <interfaceList.size(); s++) {
  if(singleDataList.get("_id").equals(interfaceList.get(s).get("interface_id"))) {
     singleDataList.put("interface_id", interfaceList.get(s).get("interface_id"));
     singleDataList.put("interface_name", interfaceList.get(s).get("interface_name"));
   }

}
 
weekDataList.add(i, singleDataList);  ==> Map<String,String> 의 값을 List에 넣는 작업
singleDataList = new HashMap<String, Object>(); ==> 셋팅 후 singleDataList  값 초기화 

     response.put("weekDataList", weekDataList);
return ResponseEntity.status(HttpStatus.OK).body(response);
}

'BackendStory > JAVA' 카테고리의 다른 글

System.currentTimeMillis();  (0) 2022.03.07