Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
service-campaign
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
Nguyen Ha
service-campaign
Commits
cd1a567b
Commit
cd1a567b
authored
Sep 12, 2019
by
Vu Duy Anh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
anhvd commit timezone utils
parent
3e912a05
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
183 additions
and
19 deletions
+183
-19
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
...ign/repository/ccms_full/impl/CampaignRepositoryImpl.java
+19
-16
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+2
-2
src/main/java/com/viettel/campaign/service/impl/ScenarioQuestionServiceImpl.java
...el/campaign/service/impl/ScenarioQuestionServiceImpl.java
+1
-0
src/main/java/com/viettel/campaign/utils/TimeZoneUtils.java
src/main/java/com/viettel/campaign/utils/TimeZoneUtils.java
+157
-0
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
+3
-0
src/main/resources/application.yml
src/main/resources/application.yml
+1
-1
No files found.
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
View file @
cd1a567b
...
@@ -4,10 +4,7 @@ import com.viettel.campaign.config.DataSourceQualify;
...
@@ -4,10 +4,7 @@ import com.viettel.campaign.config.DataSourceQualify;
import
com.viettel.campaign.model.ccms_full.CampaignCustomer
;
import
com.viettel.campaign.model.ccms_full.CampaignCustomer
;
import
com.viettel.campaign.repository.ccms_full.CampaignCustomerRepository
;
import
com.viettel.campaign.repository.ccms_full.CampaignCustomerRepository
;
import
com.viettel.campaign.repository.ccms_full.CampaignRepositoryCustom
;
import
com.viettel.campaign.repository.ccms_full.CampaignRepositoryCustom
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.*
;
import
com.viettel.campaign.utils.DataUtil
;
import
com.viettel.campaign.utils.HibernateUtil
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.web.dto.*
;
import
com.viettel.campaign.web.dto.*
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.LogManager
;
...
@@ -29,10 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -29,10 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.persistence.EntityManager
;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.PersistenceContext
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Repository
@Repository
public
class
CampaignRepositoryImpl
implements
CampaignRepositoryCustom
{
public
class
CampaignRepositoryImpl
implements
CampaignRepositoryCustom
{
...
@@ -52,6 +46,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
...
@@ -52,6 +46,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
@Override
@Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
TimeZone
tzClient
=
TimeZoneUtils
.
getZoneMinutes
((
long
)
requestDto
.
getTimezoneOffset
());
logger
.
info
(
"Start search campaign::"
);
logger
.
info
(
"Start search campaign::"
);
ResultDTO
result
=
new
ResultDTO
();
ResultDTO
result
=
new
ResultDTO
();
...
@@ -131,16 +126,16 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
...
@@ -131,16 +126,16 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
sb
.
append
(
" AND a.STATUS IN (:p_statuses) "
);
sb
.
append
(
" AND a.STATUS IN (:p_statuses) "
);
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getFromDateFr
()))
{
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getFromDateFr
()))
{
sb
.
append
(
" AND
TO_DATE(a.START_TIME, 'DD-MM-RR') >= TO_DATE(:p_frDateFr, 'YYYYMMDD
')"
);
sb
.
append
(
" AND
a.START_TIME >= TO_DATE(:p_frDateFr, 'DD/MM/YYYY HH24:MI:SS
')"
);
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getToDateFr
()))
{
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getToDateFr
()))
{
sb
.
append
(
" AND
TO_DATE(a.START_TIME, 'DD-MM-RR') <= TO_DATE(:p_toDateFr, 'YYYYMMDD
')"
);
sb
.
append
(
" AND
a.START_TIME <= TO_DATE(:p_toDateFr, 'DD/MM/YYYY HH24:MI:SS
')"
);
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getFromDateTo
()))
{
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getFromDateTo
()))
{
sb
.
append
(
" AND
TO_DATE(a.END_TIME, 'DD-MM-RR') >= TO_DATE(:p_frDateTo, 'YYYYMMDD
')"
);
sb
.
append
(
" AND
a.END_TIME >= TO_DATE(:p_frDateTo, 'DD/MM/YYYY HH24:MI:SS
')"
);
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getToDateTo
()))
{
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getToDateTo
()))
{
sb
.
append
(
" AND
TO_DATE(a.END_TIME, 'DD-MM-RR') <= TO_DATE(:p_toDateTo, 'YYYYMMDD
')"
);
sb
.
append
(
" AND
a.END_TIME <= TO_DATE(:p_toDateTo, 'DD/MM/YYYY HH24:MI:SS
')"
);
}
}
if
(!
DataUtil
.
isNullOrZero
(
requestDto
.
getNumOfCusFr
()))
{
if
(!
DataUtil
.
isNullOrZero
(
requestDto
.
getNumOfCusFr
()))
{
sb
.
append
(
" AND a.CUSTOMER_NUMBER >= :p_cusNumFr"
);
sb
.
append
(
" AND a.CUSTOMER_NUMBER >= :p_cusNumFr"
);
...
@@ -185,16 +180,16 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
...
@@ -185,16 +180,16 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
query
.
setParameterList
(
"p_statuses"
,
statuses
);
query
.
setParameterList
(
"p_statuses"
,
statuses
);
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getFromDateFr
()))
{
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getFromDateFr
()))
{
query
.
setParameter
(
"p_frDateFr"
,
requestDto
.
getFromDateFr
(
));
query
.
setParameter
(
"p_frDateFr"
,
TimeZoneUtils
.
toDateStringWithTimeZone
(
DateTimeUtil
.
parseDate
(
"YYYYMMdd"
,
requestDto
.
getFromDateFr
()),
tzClient
));
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getFromDateTo
()))
{
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getFromDateTo
()))
{
query
.
setParameter
(
"p_frDateTo"
,
requestDto
.
getFromDateTo
(
));
query
.
setParameter
(
"p_frDateTo"
,
TimeZoneUtils
.
toDateStringWithTimeZone
(
DateTimeUtil
.
parseDate
(
"YYYYMMdd"
,
requestDto
.
getFromDateTo
()),
tzClient
));
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getToDateFr
()))
{
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getToDateFr
()))
{
query
.
setParameter
(
"p_toDateFr"
,
requestDto
.
getToDateFr
(
));
query
.
setParameter
(
"p_toDateFr"
,
TimeZoneUtils
.
toDateStringWithTimeZone
(
DateTimeUtil
.
parseDate
(
"YYYYMMdd"
,
requestDto
.
getToDateFr
()),
tzClient
));
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getToDateTo
()))
{
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getToDateTo
()))
{
query
.
setParameter
(
"p_toDateTo"
,
requestDto
.
getToDateTo
(
));
query
.
setParameter
(
"p_toDateTo"
,
TimeZoneUtils
.
toDateStringWithTimeZone
(
DateTimeUtil
.
parseDate
(
"YYYYMMdd"
,
requestDto
.
getToDateTo
()),
tzClient
));
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getTypes
()))
{
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getTypes
()))
{
String
[]
types
=
requestDto
.
getTypes
().
split
(
","
);
String
[]
types
=
requestDto
.
getTypes
().
split
(
","
);
...
@@ -247,10 +242,18 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
...
@@ -247,10 +242,18 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
query
.
setMaxResults
(
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
}
List
<
CampaignDTO
>
data
=
query
.
list
();
List
<
CampaignDTO
>
data
=
query
.
list
();
data
.
forEach
(
item
->
{
item
.
setStartTime
(
DateTimeUtil
.
parseDate
(
"dd/MM/yyyy HH:mm:ss"
,
TimeZoneUtils
.
toDateStringWithTimeZone
(
item
.
getStartTime
(),
tzClient
)));
item
.
setEndTime
(
DateTimeUtil
.
parseDate
(
"dd/MM/yyyy HH:mm:ss"
,
TimeZoneUtils
.
toDateStringWithTimeZone
(
item
.
getEndTime
(),
tzClient
)));
});
Page
<
CampaignDTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
Page
<
CampaignDTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
result
.
setData
(
dataPage
);
result
.
setData
(
dataPage
);
}
else
{
}
else
{
List
<
CampaignDTO
>
dataExport
=
query
.
list
();
List
<
CampaignDTO
>
dataExport
=
query
.
list
();
dataExport
.
forEach
(
item
->
{
item
.
setStartTime
(
DateTimeUtil
.
parseDate
(
"dd/MM/yyyy HH:mm:ss"
,
TimeZoneUtils
.
toDateStringWithTimeZone
(
item
.
getStartTime
(),
tzClient
)));
item
.
setEndTime
(
DateTimeUtil
.
parseDate
(
"dd/MM/yyyy HH:mm:ss"
,
TimeZoneUtils
.
toDateStringWithTimeZone
(
item
.
getEndTime
(),
tzClient
)));
});
result
.
setData
(
dataExport
);
result
.
setData
(
dataExport
);
}
}
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
...
...
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
View file @
cd1a567b
...
@@ -357,7 +357,7 @@ public class CampaignServiceImpl implements CampaignService {
...
@@ -357,7 +357,7 @@ public class CampaignServiceImpl implements CampaignService {
entity
.
setUpdateBy
(
campaignDTO
.
getUpdateBy
());
entity
.
setUpdateBy
(
campaignDTO
.
getUpdateBy
());
entity
.
setEndTime
(
campaignDTO
.
getEndTime
());
entity
.
setEndTime
(
campaignDTO
.
getEndTime
());
campaignRepository
.
save
(
entity
);
//
campaignRepository.save(entity);
UserActionLogDTO
userActionLog
=
new
UserActionLogDTO
();
UserActionLogDTO
userActionLog
=
new
UserActionLogDTO
();
userActionLog
.
setAgentId
(
null
);
userActionLog
.
setAgentId
(
null
);
...
@@ -368,7 +368,7 @@ public class CampaignServiceImpl implements CampaignService {
...
@@ -368,7 +368,7 @@ public class CampaignServiceImpl implements CampaignService {
userActionLog
.
setEndTime
(
null
);
userActionLog
.
setEndTime
(
null
);
userActionLog
.
setObjectId
(
entity
.
getCampaignId
());
userActionLog
.
setObjectId
(
entity
.
getCampaignId
());
userActionLog
.
setActionType
((
short
)
6
);
userActionLog
.
setActionType
((
short
)
6
);
userActionLogRepository
.
insertToUserActionLog
(
userActionLog
);
//
userActionLogRepository.insertToUserActionLog(userActionLog);
resultDTO
.
setData
(
entity
);
resultDTO
.
setData
(
entity
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
...
...
src/main/java/com/viettel/campaign/service/impl/ScenarioQuestionServiceImpl.java
View file @
cd1a567b
...
@@ -69,6 +69,7 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
...
@@ -69,6 +69,7 @@ public class ScenarioQuestionServiceImpl implements ScenarioQuestionService {
ResultDTO
resultDTO
=
new
ResultDTO
();
ResultDTO
resultDTO
=
new
ResultDTO
();
List
<
ScenarioAnswerDTO
>
lstAnswers
=
new
ArrayList
<>();
List
<
ScenarioAnswerDTO
>
lstAnswers
=
new
ArrayList
<>();
List
<
ScenarioAnswer
>
lstAnswersToInsert
=
new
ArrayList
<>();
List
<
ScenarioAnswer
>
lstAnswersToInsert
=
new
ArrayList
<>();
scenarioQuestionDTO
.
setQuestion
(
scenarioQuestionDTO
.
getQuestion
().
trim
());
try
{
try
{
ScenarioQuestion
scenarioQuestion
=
modelMapper
.
map
(
scenarioQuestionDTO
,
ScenarioQuestion
.
class
);
ScenarioQuestion
scenarioQuestion
=
modelMapper
.
map
(
scenarioQuestionDTO
,
ScenarioQuestion
.
class
);
...
...
src/main/java/com/viettel/campaign/utils/TimeZoneUtils.java
0 → 100644
View file @
cd1a567b
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
com.viettel.campaign.utils
;
import
org.apache.log4j.Logger
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.TimeZone
;
import
java.util.concurrent.TimeUnit
;
import
java.util.logging.Level
;
/**
*
* @author phamky
*/
public
class
TimeZoneUtils
{
private
static
Long
getTimeZone
(
TimeZone
tz
)
{
return
TimeUnit
.
MILLISECONDS
.
toHours
(
tz
.
getRawOffset
());
}
private
static
Long
getTimeZoneToMinutes
(
TimeZone
tz
)
{
return
TimeUnit
.
MILLISECONDS
.
toMinutes
(
tz
.
getRawOffset
());
}
public
static
String
toQueryTimeZoneZero
(
Date
date
){
String
dateStr
=
toDateStringWithTimeZoneZero
(
date
);
return
"to_date( '"
+
dateStr
+
"', 'DD/MM/YYYY HH24:MI:SS')"
;
}
public
static
String
changeTimeZoneString
(
String
dateStr
,
TimeZone
tz
){
try
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"dd/MM/yyyy HH:mm:ss"
);
Date
date
=
sdf
.
parse
(
dateStr
);
sdf
.
setTimeZone
(
tz
);
return
sdf
.
format
(
date
);
}
catch
(
ParseException
ex
)
{
}
return
""
;
}
public
static
String
changeTimeZoneStringPattern
(
String
dateStr
,
TimeZone
tz
,
String
pattern
){
try
{
SimpleDateFormat
sdf1
=
new
SimpleDateFormat
(
"dd/MM/yyyy HH:mm:ss"
);
Date
date
=
sdf1
.
parse
(
dateStr
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
pattern
);
sdf
.
setTimeZone
(
tz
);
return
sdf
.
format
(
date
);
}
catch
(
ParseException
ex
)
{
}
return
""
;
}
public
static
String
toDateStringWithTimeZoneZero
(
Date
date
){
TimeZone
tz
=
getZone
(
0
l
);
return
toDateStringWithTimeZone
(
date
,
tz
);
}
public
static
String
toDateStringWithTimeZonePattern
(
Date
date
,
long
tz
,
String
pattern
){
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
pattern
);
sdf
.
setTimeZone
(
getZone
(
tz
));
return
sdf
.
format
(
date
);
}
// public static String toHourStringWithTimeZonePattern(Long hour, long tz){
// SimpleDateFormat sdf = new SimpleDateFormat(pattern);
// sdf.setTimeZone(getZone(tz));
// return sdf.format(date);
// }
public
static
String
toDateStringWithTimeZonePattern
(
Date
date
,
TimeZone
tz
,
String
pattern
){
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
pattern
);
sdf
.
setTimeZone
(
tz
);
return
sdf
.
format
(
date
);
}
public
static
String
toDateStringWithTimeZone
(
Date
date
,
TimeZone
tz
){
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"dd/MM/yyyy HH:mm:ss"
);
sdf
.
setTimeZone
(
tz
);
return
sdf
.
format
(
date
);
}
public
static
TimeZone
getZone
(
Long
timeZone
){
if
(
timeZone
==
null
){
//timezone is null, return default
return
TimeZone
.
getDefault
();
}
String
[]
ids
=
TimeZone
.
getAvailableIDs
();
for
(
String
id
:
ids
)
{
TimeZone
tz
=
TimeZone
.
getTimeZone
(
id
);
if
(
getTimeZone
(
tz
).
equals
(
timeZone
)){
//zone need change
return
tz
;
}
}
return
TimeZone
.
getDefault
();
}
public
static
TimeZone
getZoneMinutes
(
Long
timeZone
){
if
(
timeZone
==
null
){
//timezone is null, return default
return
TimeZone
.
getDefault
();
}
String
[]
ids
=
TimeZone
.
getAvailableIDs
();
for
(
String
id
:
ids
)
{
TimeZone
tz
=
TimeZone
.
getTimeZone
(
id
);
if
(
getTimeZoneToMinutes
(
tz
).
equals
(
timeZone
)){
//zone need change
return
tz
;
}
}
return
TimeZone
.
getDefault
();
}
public
static
Date
changeTimeZone
(
Date
date
,
Long
timeZone
){
if
(
timeZone
==
null
){
//timezone is null, do not change timezone
return
date
;
}
String
[]
ids
=
TimeZone
.
getAvailableIDs
();
for
(
String
id
:
ids
)
{
TimeZone
tz
=
TimeZone
.
getTimeZone
(
id
);
if
(
getTimeZone
(
tz
).
equals
(
timeZone
)){
//zone need change
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
df
.
setTimeZone
(
tz
);
try
{
SimpleDateFormat
df2
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Date
newDate
=
df2
.
parse
(
df
.
format
(
date
));
System
.
out
.
println
(
df2
.
format
(
newDate
));
return
newDate
;
}
catch
(
ParseException
ex
)
{
}
}
}
return
date
;
}
public
static
void
main
(
String
args
[]){
Date
date
=
new
Date
();
System
.
out
.
println
(
changeTimeZone
(
date
,
-
6
l
));
System
.
out
.
println
(
changeTimeZone
(
date
,
0
l
));
System
.
out
.
println
(
getZone
(
0
l
));
}
}
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
View file @
cd1a567b
...
@@ -66,4 +66,7 @@ public class CampaignDTO extends BaseDTO {
...
@@ -66,4 +66,7 @@ public class CampaignDTO extends BaseDTO {
private
String
sessionId
;
private
String
sessionId
;
private
Long
numOfInteractedCus
;
private
Long
numOfInteractedCus
;
private
Long
numOfNotInteractedCus
;
private
Long
numOfNotInteractedCus
;
//timezone to get true date
private
Double
timezone
;
}
}
src/main/resources/application.yml
View file @
cd1a567b
server
:
server
:
port
:
9999
port
:
1111
spring
:
spring
:
application
:
application
:
name
:
campaign
name
:
campaign
...
...
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