Commit a161150f authored by 강현수's avatar 강현수

16584 : modify

parent e71f3ea3
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen
......@@ -7,6 +7,7 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
@Data
@XmlRootElement(name = "response")
......@@ -17,4 +18,8 @@ public class SmpRoot {
private XmlHeader header;
@XmlElement(name = "body")
private SmpBody body;
public ArrayList<SmpDTO> getItem(){
return body.getItems().getItem();
}
}
......@@ -3,8 +3,19 @@ package net.herit.ami.features.stat.dto.response_model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
@Data
public class HolidaRootResponse {
@JsonProperty("response")
private HolidayResponse response;
public List<HolidayDataItem> getHolidayData(){
return response.getResBody().getItems().getItem();
}
public String getHolidayTotalCount(){
return response.getResBody().getTotalCount();
}
}
......@@ -36,11 +36,16 @@ public class DefaultConnectService implements ConnectionService{
// 이 메소드는 CommonExeption을 던지는데, 이 메소드를 호출하는 부분에서는 예외처리를 안해주는것같아요
// 그렇다면 던지기보다는 책임을지고 예외처리를 하는게 어떨까 싶습니다
@Override
public void connect(Response connect)throws CommonException {
public void connect(Response connect) {
call.debug("\n---- Start to Connection And Convert----");
isnull(connect);
try {
validateResponse(connect);
apiConnectLog(connect);
commonProcess(connect);
}catch (Exception e){
}
}
public void commonProcess(Response connect) throws CommonException{
try {
......@@ -50,7 +55,7 @@ public class DefaultConnectService implements ConnectionService{
if(totalCount > 1){
HolidaRootResponse resBody = mapper.readValue(map.get("anotherDaybody"), HolidaRootResponse.class);
// 메시지 체인2
anotherDayProcess(resBody.getResponse().getResBody().getItems().getItem(), resBody.getResponse().getResBody().getTotalCount());
anotherDayProcess(resBody.getHolidayData(), resBody.getHolidayTotalCount());
}else if(totalCount == 1){
onlyDayProcess(map.get("oneDayBody"));
}else {
......@@ -108,7 +113,7 @@ public class DefaultConnectService implements ConnectionService{
}
}
// is 접두사는 boolean 리턴 메소드에 주로 쓰이는것으로 압니다. validateResponse 정도가 적당할것같습니다.
private void isnull(Response connect) {
private void validateResponse(Response connect) {
if(JsonUtil.isNull(connect)){
call.info("Failed Connect to External Server.");
throw new CommonException(ExceptionType.RESPONSE_CANNOT_BE_NULL);
......
......@@ -18,7 +18,7 @@ public class ResponseService {
private final String JOB_NAME = this.getClass().getSimpleName();
private final DefaultConnectService defaultconnectService;
// 접근제어자가 없음
String line = null;
private String line = null;
public String responseXmlToString(Response response) {
StringBuilder builder = new StringBuilder();
logStamp(response);
......
......@@ -29,13 +29,11 @@ public class SmpService {
// 메소드명의 접두사가 여러개이고(to,Do,Get), Get과 Insert 두가지의 동작을 명시하고있어서 역할을 명확히 알기가 힘듭니다
public int toDoGetSmpDataAndInsert(int i, String serviceKey) {
; // ???
ArrayList<SmpDTO> smpList = getRresponseItme(i, serviceKey);
ArrayList<SmpDTO> smpList = getResponseItme(i, serviceKey);
return sendSmp(smpList, i);
}
//관심사 분리 실패 ....
// 메소드명 오타 있음
private ArrayList<SmpDTO> getRresponseItme(int area, String serviceKeys) {
private ArrayList<SmpDTO> getResponseItme(int area, String serviceKeys) {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(SmpRoot.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
......@@ -43,9 +41,7 @@ public class SmpService {
SmpRoot smpResponse = (SmpRoot) unmarshaller.unmarshal( new StringReader(
responseService.responseXmlToString(smpEnterFeignClient.requestConsumeDataByAll(area, serviceKeys))));
// 메시지 체인에 해당되는 부분인것 같습니다.
// 해결방법으로 Hide Delegate를 참고하면 좋을것 같습니다.
return smpResponse.getBody().getItems().getItem();
return smpResponse.getItem();
} catch (JAXBException e) {
call.error("ResponseService class in method explorerSnd JAXBException : {}", e.getMessage());
throw new CommonException(e.getMessage());
......@@ -55,9 +51,8 @@ public class SmpService {
private int sendSmp(ArrayList<SmpDTO> smpList, int areaCd) {
int insertCount = 0;
// forEach 문으로 바꾸면 좀더 보기 좋을것같습니다
for (int i = 0; i < smpList.size(); ++i){
insertCount += insertCall(buildSmpDto( smpList.get(i)));
for(SmpDTO value : smpList){
insertCount += insertCall(buildSmpDto(value));
}
call.debug("smpList insert SUCCESS point : {}, areaCd : {}", insertCount, areaCd);
return insertCount;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment