Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dataport-api
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
강현수
dataport-api
Commits
e71f3ea3
Commit
e71f3ea3
authored
Jan 06, 2023
by
오창용
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#16584.3
http://dev.herit.net/issues/16584
parent
1d0560db
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
2 deletions
+20
-2
src/main/java/net/herit/ami/features/stat/service/DefaultConnectService.java
...erit/ami/features/stat/service/DefaultConnectService.java
+6
-0
src/main/java/net/herit/ami/features/stat/service/ResponseService.java
.../net/herit/ami/features/stat/service/ResponseService.java
+2
-0
src/main/java/net/herit/ami/features/stat/service/smp/SmpService.java
...a/net/herit/ami/features/stat/service/smp/SmpService.java
+12
-2
No files found.
src/main/java/net/herit/ami/features/stat/service/DefaultConnectService.java
View file @
e71f3ea3
...
...
@@ -32,6 +32,9 @@ public class DefaultConnectService implements ConnectionService{
private
final
HolidayRepository
holidayRepository
;
private
final
OmsLogger
oms
;
private
final
ObjectMapper
mapper
=
new
ObjectMapper
();
// 이 메소드는 CommonExeption을 던지는데, 이 메소드를 호출하는 부분에서는 예외처리를 안해주는것같아요
// 그렇다면 던지기보다는 책임을지고 예외처리를 하는게 어떨까 싶습니다
@Override
public
void
connect
(
Response
connect
)
throws
CommonException
{
call
.
debug
(
"\n---- Start to Connection And Convert----"
);
...
...
@@ -46,6 +49,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
());
}
else
if
(
totalCount
==
1
){
onlyDayProcess
(
map
.
get
(
"oneDayBody"
));
...
...
@@ -86,6 +90,7 @@ public class DefaultConnectService implements ConnectionService{
* anotherDaybody : 공유일이 많을때 사용하기 위함
* itmeMap : 공유일이 없는 경우를 확인하기 위함
* */
// 원시타입만 사용해서 보기가 힘든것같습니다 클래스로 래핑하면 좋을것같습니다
private
Map
<
String
,
String
>
segregate
(
String
oneDayBody
)
{
Map
<
String
,
String
>
buildMap
=
new
HashMap
<>();
try
{
...
...
@@ -102,6 +107,7 @@ public class DefaultConnectService implements ConnectionService{
throw
new
CommonException
(
e
.
getMessage
());
}
}
// is 접두사는 boolean 리턴 메소드에 주로 쓰이는것으로 압니다. validateResponse 정도가 적당할것같습니다.
private
void
isnull
(
Response
connect
)
{
if
(
JsonUtil
.
isNull
(
connect
)){
call
.
info
(
"Failed Connect to External Server."
);
...
...
src/main/java/net/herit/ami/features/stat/service/ResponseService.java
View file @
e71f3ea3
...
...
@@ -17,6 +17,7 @@ public class ResponseService {
private
final
CallLogger
call
;
private
final
String
JOB_NAME
=
this
.
getClass
().
getSimpleName
();
private
final
DefaultConnectService
defaultconnectService
;
// 접근제어자가 없음
String
line
=
null
;
public
String
responseXmlToString
(
Response
response
)
{
StringBuilder
builder
=
new
StringBuilder
();
...
...
@@ -32,6 +33,7 @@ public class ResponseService {
}
catch
(
IOException
ex
){
call
.
error
(
"Exceprion point {} , massge "
,
JOB_NAME
,
ex
.
getMessage
());
// CommonExeption을 던져도 받아서 처리해주는 부분은 없는것같아요
throw
new
CommonException
(
ExceptionType
.
RESPONE_CAUSE_EXCEPTION
);
}
}
...
...
src/main/java/net/herit/ami/features/stat/service/smp/SmpService.java
View file @
e71f3ea3
...
...
@@ -25,18 +25,26 @@ public class SmpService {
private
final
SmpRepository
smpRepository
;
private
final
ResponseService
responseService
;
private
final
SmpEnterFeignClient
smpEnterFeignClient
;
// 메소드명의 접두사가 여러개이고(to,Do,Get), Get과 Insert 두가지의 동작을 명시하고있어서 역할을 명확히 알기가 힘듭니다
public
int
toDoGetSmpDataAndInsert
(
int
i
,
String
serviceKey
)
{
;
;
// ???
ArrayList
<
SmpDTO
>
smpList
=
getRresponseItme
(
i
,
serviceKey
);
return
sendSmp
(
smpList
,
i
);
}
//관심사 분리 실패 ....
// 메소드명 오타 있음
private
ArrayList
<
SmpDTO
>
getRresponseItme
(
int
area
,
String
serviceKeys
)
{
try
{
JAXBContext
jaxbContext
=
JAXBContext
.
newInstance
(
SmpRoot
.
class
);
Unmarshaller
unmarshaller
=
jaxbContext
.
createUnmarshaller
();
SmpRoot
smpResponse
=
(
SmpRoot
)
unmarshaller
.
unmarshal
(
new
StringReader
(
responseService
.
responseXmlToString
(
smpEnterFeignClient
.
requestConsumeDataByAll
(
area
,
serviceKeys
))));
// 언마샬링 하는 부분과 response 받아오는 부분을 분리해보는건 어떨까요?
SmpRoot
smpResponse
=
(
SmpRoot
)
unmarshaller
.
unmarshal
(
new
StringReader
(
responseService
.
responseXmlToString
(
smpEnterFeignClient
.
requestConsumeDataByAll
(
area
,
serviceKeys
))));
// 메시지 체인에 해당되는 부분인것 같습니다.
// 해결방법으로 Hide Delegate를 참고하면 좋을것 같습니다.
return
smpResponse
.
getBody
().
getItems
().
getItem
();
}
catch
(
JAXBException
e
)
{
call
.
error
(
"ResponseService class in method explorerSnd JAXBException : {}"
,
e
.
getMessage
());
...
...
@@ -47,6 +55,7 @@ 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
)));
}
...
...
@@ -55,6 +64,7 @@ public class SmpService {
}
private
SmpDTO
buildSmpDto
(
SmpDTO
smpDTO
)
{
// 잘못된 빌더패턴 사용법인것같습니다.
return
new
SmpDTO
().
builder
()
.
idx
(
smpDTO
.
getIdx
())
.
areaCd
(
smpDTO
.
getAreaCd
())
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment