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
65642f6b
Commit
65642f6b
authored
5 years ago
by
Vu Duy Anh
Browse files
Options
Browse Files
Download
Plain Diff
anhvd merge code
parents
3df00b4f
d991da22
Changes
17
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
506 additions
and
13 deletions
+506
-13
.gitignore
.gitignore
+2
-1
lib/ojdbc7.jar
lib/ojdbc7.jar
+0
-0
pom.xml
pom.xml
+27
-0
src/main/java/com/viettel/campaign/dto/request_dto/CampaignRequestDTO.java
.../viettel/campaign/dto/request_dto/CampaignRequestDTO.java
+28
-0
src/main/java/com/viettel/campaign/repository/CampaignRepositoryCustom.java
...viettel/campaign/repository/CampaignRepositoryCustom.java
+10
-1
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
...ttel/campaign/repository/impl/CampaignRepositoryImpl.java
+196
-0
src/main/java/com/viettel/campaign/service/CampaignService.java
...in/java/com/viettel/campaign/service/CampaignService.java
+5
-3
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+13
-1
src/main/java/com/viettel/campaign/utils/Constants.java
src/main/java/com/viettel/campaign/utils/Constants.java
+20
-0
src/main/java/com/viettel/campaign/utils/DateTimeUtil.java
src/main/java/com/viettel/campaign/utils/DateTimeUtil.java
+87
-0
src/main/java/com/viettel/campaign/utils/HibernateUtil.java
src/main/java/com/viettel/campaign/utils/HibernateUtil.java
+42
-0
src/main/java/com/viettel/campaign/utils/SQLBuilder.java
src/main/java/com/viettel/campaign/utils/SQLBuilder.java
+31
-0
src/main/java/com/viettel/campaign/web/dto/BaseDTO.java
src/main/java/com/viettel/campaign/web/dto/BaseDTO.java
+3
-0
src/main/java/com/viettel/campaign/web/dto/ResultDTO.java
src/main/java/com/viettel/campaign/web/dto/ResultDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
...ava/com/viettel/campaign/web/rest/CampaignController.java
+13
-6
src/main/resources/hibernate.cfg.xml
src/main/resources/hibernate.cfg.xml
+16
-0
src/main/resources/sql/campaign-mng/search-campaign-by-params.sql
.../resources/sql/campaign-mng/search-campaign-by-params.sql
+12
-0
No files found.
.gitignore
View file @
65642f6b
...
@@ -2,3 +2,4 @@ target/
...
@@ -2,3 +2,4 @@ target/
/.idea/
/.idea/
logs/
logs/
out/
out/
/campaign.iml
This diff is collapsed.
Click to expand it.
lib/ojdbc7.jar
0 → 100755
View file @
65642f6b
File added
This diff is collapsed.
Click to expand it.
pom.xml
View file @
65642f6b
...
@@ -93,6 +93,8 @@
...
@@ -93,6 +93,8 @@
<dependency>
<dependency>
<groupId>
com.oracle
</groupId>
<groupId>
com.oracle
</groupId>
<artifactId>
ojdbc7
</artifactId>
<artifactId>
ojdbc7
</artifactId>
<scope>
system
</scope>
<systemPath>
${project.basedir}/lib/ojdbc7.jar
</systemPath>
<version>
1.0
</version>
<version>
1.0
</version>
</dependency>
</dependency>
<dependency>
<dependency>
...
@@ -156,6 +158,31 @@
...
@@ -156,6 +158,31 @@
<artifactId>
log4j
</artifactId>
<artifactId>
log4j
</artifactId>
<version>
1.2.17
</version>
<version>
1.2.17
</version>
</dependency>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-core
</artifactId>
<version>
2.9.8
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-databind
</artifactId>
<version>
2.9.8
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-annotations
</artifactId>
<version>
2.9.8
</version>
</dependency>
<dependency>
<groupId>
joda-time
</groupId>
<artifactId>
joda-time
</artifactId>
</dependency>
</dependencies>
</dependencies>
<dependencyManagement>
<dependencyManagement>
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/dto/request_dto/CampaignRequestDTO.java
0 → 100644
View file @
65642f6b
package
com.viettel.campaign.dto.request_dto
;
import
com.viettel.campaign.dto.BaseDTO
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
/**
* @author anhvd_itsol
*/
@Getter
@Setter
public
class
CampaignRequestDTO
extends
BaseDTO
{
String
campaignCode
;
String
campaignName
;
Short
status
;
Date
fromDateFr
;
Date
fromDateTo
;
Date
toDateTo
;
Date
toDateFr
;
Long
numOfCusFr
;
Long
numOfCusTo
;
Short
type
;
Short
chanel
;
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/repository/CampaignRepositoryCustom.java
View file @
65642f6b
package
com.viettel.campaign.repository
;
package
com.viettel.campaign.repository
;
<<<<<<<
HEAD
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
=======
import
com.viettel.campaign.dto.CampaignDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.dto.request_dto.CampaignRequestDTO
;
import
com.viettel.campaign.model.Campaign
;
import
org.springframework.data.domain.Page
;
>>>>>>>
anhvd_campaign_mng
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
import
java.util.List
;
public
interface
CampaignRepositoryCustom
{
public
interface
CampaignRepositoryCustom
{
List
<
CampaignDTO
>
searchCampaignExecute
(
String
agentId
,
Pageable
pageable
);
List
<
CampaignDTO
>
searchCampaignExecute
(
String
agentId
,
Pageable
pageable
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
0 → 100644
View file @
65642f6b
package
com.viettel.campaign.repository.impl
;
import
com.viettel.campaign.dto.CampaignDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.dto.request_dto.CampaignRequestDTO
;
import
com.viettel.campaign.model.Campaign
;
import
com.viettel.campaign.repository.CampaignRepositoryCustom
;
import
com.viettel.campaign.utils.*
;
import
org.hibernate.SQLQuery
;
import
org.hibernate.Session
;
import
org.hibernate.SessionFactory
;
import
org.hibernate.hql.internal.ast.util.SessionFactoryHelper
;
import
org.hibernate.transform.Transformers
;
import
org.hibernate.type.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.*
;
import
org.springframework.jdbc.object.SqlQuery
;
import
org.springframework.stereotype.Repository
;
import
sun.jvm.hotspot.ui.action.ShowAction
;
import
javax.persistence.EntityManager
;
import
javax.persistence.Query
;
import
java.util.ArrayList
;
import
java.util.List
;
@Repository
public
class
CampaignRepositoryImpl
implements
CampaignRepositoryCustom
{
@Autowired
EntityManager
entityManager
;
@Override
public
List
<
CampaignDTO
>
searchCampaignExecute
(
String
agentId
,
Pageable
pageable
)
{
List
<
CampaignDTO
>
lst
=
new
ArrayList
<>();
String
expression
=
new
StringBuilder
()
.
append
(
" SELECT C.CAMPAIGN_ID, C.CAMPAIGN_NAME, C.STATUS "
)
.
append
(
" FROM CAMPAIGN C "
)
.
append
(
" INNER JOIN CAMPAIGN_AGENT CA ON C.CAMPAIGN_ID = CA.CAMPAIGN_ID "
)
.
append
(
" WHERE 1 = 1 "
)
.
append
(
" AND CA.AGENT_ID = :pAgentId "
)
.
append
(
" AND C.STATUS IN (2,3) "
)
.
toString
();
Query
query
=
entityManager
.
createNativeQuery
(
expression
);
query
.
setParameter
(
"pAgentId"
,
agentId
);
List
<
Object
[]>
data
=
query
.
getResultList
();
for
(
Object
[]
obj
:
data
)
{
CampaignDTO
item
=
new
CampaignDTO
();
item
.
setCampaignId
((
Long
)
obj
[
0
]);
item
.
setCampaignName
((
String
)
obj
[
1
]);
item
.
setStatus
((
Short
)
obj
[
0
]);
lst
.
add
(
item
);
}
return
lst
;
}
@Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
new
ResultDTO
();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
Session
session
=
sessionFactory
.
openSession
();
session
.
beginTransaction
();
try
{
StringBuilder
sqlStr
=
new
StringBuilder
();
sqlStr
.
append
(
SQLBuilder
.
getSqlQueryById
(
SQLBuilder
.
SQL_MODULE_CAMPAIGN_MNG
,
"search-campaign-by-params"
));
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getCampaignCode
()))
{
sqlStr
.
append
(
" AND UPPER(CAMPAIGN_CODE) LIKE :p_code"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getCampaignName
()))
{
sqlStr
.
append
(
" AND UPPER(CAMPAIGN_NAME) LIKE :p_name"
);
}
if
(
requestDto
.
getStatus
()
!=
null
)
{
sqlStr
.
append
(
" AND STATUS = :p_status"
);
}
if
(
requestDto
.
getFromDateFr
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getFromDateFr
().
getTime
()))
{
sqlStr
.
append
(
" AND START_TIME >= :p_frDateFr"
);
}
if
(
requestDto
.
getFromDateTo
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getFromDateTo
().
getTime
()))
{
sqlStr
.
append
(
" AND START_TIME <= :p_frDateTo"
);
}
if
(
requestDto
.
getToDateFr
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getToDateFr
().
getTime
()))
{
sqlStr
.
append
(
" AND END_TIME >= :p_toDateFr"
);
}
if
(
requestDto
.
getToDateTo
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getToDateTo
().
getTime
()))
{
sqlStr
.
append
(
" AND END_TIME <= :p_toDateTo"
);
}
if
(!
DataUtil
.
isNullOrZero
(
requestDto
.
getNumOfCusFr
()))
{
// sqlStr.append(" AND ")
}
if
(!
DataUtil
.
isNullOrZero
(
requestDto
.
getNumOfCusTo
()))
{
}
if
(
requestDto
.
getType
()
!=
null
)
{
sqlStr
.
append
(
" AND CAMPAIGN_TYPE = :p_type"
);
}
if
(
requestDto
.
getChanel
()
!=
null
)
{
sqlStr
.
append
(
" AND CHANEL = :p_chanel"
);
}
// Query query = entityManager.createNativeQuery(sqlStr.toString(), Campaign.class);
SQLQuery
query
=
session
.
createSQLQuery
(
sqlStr
.
toString
());
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getCampaignCode
()))
{
query
.
setParameter
(
"p_code"
,
"%"
+
requestDto
.
getCampaignCode
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\\\%"
)
.
replaceAll
(
"_"
,
"\\\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
requestDto
.
getCampaignName
()))
{
query
.
setParameter
(
"p_name"
,
"%"
+
requestDto
.
getCampaignName
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\\\%"
)
.
replaceAll
(
"_"
,
"\\\\_"
)
+
"%"
);
}
if
(
requestDto
.
getStatus
()
!=
null
)
{
query
.
setParameter
(
"p_status"
,
requestDto
.
getStatus
());
}
if
(
requestDto
.
getFromDateFr
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getFromDateFr
().
getTime
()))
{
query
.
setParameter
(
"p_frDateFr"
,
requestDto
.
getFromDateFr
());
}
if
(
requestDto
.
getFromDateTo
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getFromDateTo
().
getTime
()))
{
query
.
setParameter
(
"p_frDateTo"
,
requestDto
.
getFromDateTo
());
}
if
(
requestDto
.
getToDateFr
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getToDateFr
().
getTime
()))
{
query
.
setParameter
(
"p_toDateFr"
,
requestDto
.
getToDateFr
());
}
if
(
requestDto
.
getToDateTo
()
!=
null
&&
DateTimeUtil
.
isValid
(
requestDto
.
getToDateTo
().
getTime
()))
{
query
.
setParameter
(
"p_toDateTo"
,
requestDto
.
getToDateTo
());
}
if
(
requestDto
.
getType
()
!=
null
)
{
query
.
setParameter
(
"p_type"
,
requestDto
.
getType
());
}
if
(
requestDto
.
getChanel
()
!=
null
)
{
query
.
setParameter
(
"p_chanel"
,
requestDto
.
getChanel
());
}
query
.
addScalar
(
"campaignId"
,
new
LongType
());
query
.
addScalar
(
"campaignCode"
,
new
StringType
());
query
.
addScalar
(
"campaignName"
,
new
StringType
());
query
.
addScalar
(
"campaignType"
,
new
StringType
());
query
.
addScalar
(
"chanel"
,
new
ShortType
());
query
.
addScalar
(
"startTime"
,
new
DateType
());
query
.
addScalar
(
"endTime"
,
new
DateType
());
query
.
addScalar
(
"customerNumber"
,
new
LongType
());
query
.
addScalar
(
"status"
,
new
ShortType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
CampaignDTO
.
class
));
int
count
=
0
;
List
<
CampaignDTO
>
list
=
query
.
list
();
if
(
list
.
size
()
>
0
)
{
count
=
query
.
list
().
size
();
}
Pageable
pageable
=
buildPageable
(
requestDto
);
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
CampaignDTO
>
data
=
query
.
list
();
Page
<
CampaignDTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
result
.
setData
(
dataPage
);
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
session
.
close
();
return
result
;
}
catch
(
Exception
ex
)
{
session
.
close
();
}
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
return
null
;
}
private
Pageable
buildPageable
(
CampaignRequestDTO
obj
)
{
Pageable
pageable
=
null
;
String
[]
sorts
=
obj
.
getSort
().
split
(
","
);
Sort
sort
=
new
Sort
(
Sort
.
Direction
.
fromString
(
sorts
[
1
]),
sorts
[
0
]);
pageable
=
new
PageRequest
(
obj
.
getPage
(),
obj
.
getPageSize
(),
sort
);
return
pageable
;
}
// private CampaignDTO mappingData(Object[] object) {
// CampaignDTO dto = new CampaignDTO();
//
// }
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/CampaignService.java
View file @
65642f6b
package
com.viettel.campaign.service
;
package
com.viettel.campaign.service
;
import
org.springframework.stereotype.Service
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.dto.request_dto.CampaignRequestDTO
;
import
com.viettel.campaign.model.Campaign
;
import
org.springframework.data.domain.Page
;
import
java.util.Map
;
import
java.util.Map
;
@Service
public
interface
CampaignService
{
public
interface
CampaignService
{
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
);
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/CampaignServiceImpl.java
→
src/main/java/com/viettel/campaign/service/
impl/
CampaignServiceImpl.java
View file @
65642f6b
package
com.viettel.campaign.service
;
package
com.viettel.campaign.service
.impl
;
import
com.viettel.campaign.dto.CampaignDTO
;
import
com.viettel.campaign.dto.CampaignDTO
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.dto.request_dto.CampaignRequestDTO
;
import
com.viettel.campaign.model.Campaign
;
import
com.viettel.campaign.repository.CampaignRepository
;
import
com.viettel.campaign.repository.CampaignRepository
;
import
com.viettel.campaign.service.CampaignService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
@Service
public
class
CampaignServiceImpl
implements
CampaignService
{
public
class
CampaignServiceImpl
implements
CampaignService
{
@Autowired
@Autowired
...
@@ -30,4 +37,9 @@ public class CampaignServiceImpl implements CampaignService {
...
@@ -30,4 +37,9 @@ public class CampaignServiceImpl implements CampaignService {
return
result
;
return
result
;
}
}
@Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
return
campaignRepository
.
search
(
requestDto
);
}
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/utils/Constants.java
0 → 100644
View file @
65642f6b
package
com.viettel.campaign.utils
;
/**
* @author anhvd_itsol
*/
public
class
Constants
{
public
interface
ApiErrorCode
{
String
ERROR
=
"01"
;
String
SUCCESS
=
"00"
;
}
public
interface
ApiErrorDesc
{
String
ERROR
=
"ERROR"
;
String
SUCCESS
=
"SUCCESS"
;
}
public
interface
FileType
{
String
pdf
=
"pdf"
;
String
xls
=
"xls"
;
String
xlsx
=
"xlsx"
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/utils/DateTimeUtil.java
0 → 100644
View file @
65642f6b
package
com.viettel.campaign.utils
;
import
org.apache.logging.log4j.util.Strings
;
import
org.joda.time.format.DateTimeFormat
;
import
java.util.Date
;
import
java.util.TimeZone
;
import
java.util.concurrent.atomic.AtomicReference
;
import
static
java
.
util
.
concurrent
.
TimeUnit
.
MILLISECONDS
;
import
static
java
.
util
.
concurrent
.
TimeUnit
.
NANOSECONDS
;
/**
* @author anhvd_itsol
*/
public
final
class
DateTimeUtil
{
public
static
final
long
DAY_IN_MILLIS
=
86400000L
;
public
static
interface
DateTimeProvider
{
long
now
();
}
private
static
final
AtomicReference
<
DateTimeProvider
>
PROVIDER
=
new
AtomicReference
<
DateTimeProvider
>();
public
static
final
DateTimeProvider
getProvider
()
{
return
PROVIDER
.
get
();
}
static
{
PROVIDER
.
set
(
new
DateTimeProvider
()
{
@Override
public
long
now
()
{
return
System
.
currentTimeMillis
();
}
});
}
public
static
Date
currentTime
()
{
return
new
Date
(
now
());
}
public
static
Date
currentDate
()
{
return
date
(
now
());
}
public
static
final
Date
date
(
final
long
millis
)
{
final
int
offset
=
getTimeZoneOffset
(
millis
);
long
t
=
millis
-
((
t
=
(
millis
+
offset
)
%
DAY_IN_MILLIS
)
<
0
?
DAY_IN_MILLIS
+
t
:
t
);
t
=
t
+
(
offset
-
getTimeZoneOffset
(
t
));
return
new
Date
(
t
);
}
public
static
int
getTimeZoneOffset
(
long
millis
)
{
return
TimeZone
.
getDefault
().
getOffset
(
millis
);
}
public
static
long
now
()
{
return
getProvider
().
now
();
}
public
static
long
toMillis
(
long
nanos
)
{
return
MILLISECONDS
.
convert
(
nanos
,
NANOSECONDS
);
}
public
static
long
currentTimeMillis
()
{
return
getProvider
().
now
();
}
/**
* Format
*/
public
static
String
format
(
String
pattern
,
long
millis
)
{
return
DateTimeFormat
.
forPattern
(
pattern
).
print
(
millis
);
}
public
static
String
format
(
String
pattern
,
Date
date
,
String
defaultValue
)
{
if
(
date
==
null
)
return
defaultValue
;
return
format
(
pattern
,
date
.
getTime
());
}
/**
*
*/
public
static
boolean
isValid
(
final
long
millis
)
{
return
millis
>
0L
;
}
/**
*
*/
public
static
long
parse
(
final
String
pattern
,
String
date
)
{
return
DateTimeFormat
.
forPattern
(
pattern
).
parseMillis
(
date
);
}
public
static
Date
parseDate
(
final
String
pattern
,
String
date
)
{
return
Strings
.
isEmpty
(
date
)
?
null
:
date
(
parse
(
pattern
,
date
));
}
/**
*
*/
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/utils/HibernateUtil.java
0 → 100644
View file @
65642f6b
package
com.viettel.campaign.utils
;
import
org.hibernate.SessionFactory
;
import
org.hibernate.boot.registry.StandardServiceRegistryBuilder
;
import
org.hibernate.cfg.Configuration
;
import
org.hibernate.service.ServiceRegistry
;
/**
* @author anhvd_itsol
*/
public
class
HibernateUtil
{
private
static
SessionFactory
sessionFactory
=
buildSessionFactory
();
private
static
SessionFactory
buildSessionFactory
()
{
try
{
if
(
sessionFactory
==
null
)
{
Configuration
configuration
=
new
Configuration
().
configure
(
HibernateUtil
.
class
.
getResource
(
"/hibernate.cfg.xml"
));
StandardServiceRegistryBuilder
serviceRegistryBuilder
=
new
StandardServiceRegistryBuilder
();
serviceRegistryBuilder
.
applySettings
(
configuration
.
getProperties
());
ServiceRegistry
serviceRegistry
=
serviceRegistryBuilder
.
build
();
sessionFactory
=
configuration
.
buildSessionFactory
(
serviceRegistry
);
}
return
sessionFactory
;
}
catch
(
Throwable
ex
)
{
System
.
err
.
println
(
"Initial SessionFactory creation failed."
+
ex
);
throw
new
ExceptionInInitializerError
(
ex
);
}
}
public
static
SessionFactory
getSessionFactory
()
{
return
sessionFactory
;
}
public
static
void
shutdown
()
{
getSessionFactory
().
close
();
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/utils/SQLBuilder.java
0 → 100644
View file @
65642f6b
package
com.viettel.campaign.utils
;
import
java.io.File
;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
import
java.io.IOException
;
import
org.springframework.core.io.ClassPathResource
;
/**
* @author anhvd_itsol
*/
public
class
SQLBuilder
{
public
static
final
String
SQL_MODULE_CAMPAIGN_MNG
=
"campaign-mng"
;
public
static
String
getSqlQueryById
(
String
module
,
String
queryId
)
{
File
folder
=
null
;
try
{
folder
=
new
ClassPathResource
(
"sql"
+
File
.
separator
+
module
+
File
.
separator
+
queryId
+
".sql"
).
getFile
();
// Read file
if
(
folder
.
isFile
())
{
String
sql
=
new
String
(
Files
.
readAllBytes
(
Paths
.
get
(
folder
.
getAbsolutePath
())));
return
sql
;
}
}
catch
(
IOException
e
)
{
return
null
;
}
return
null
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/web/dto/BaseDTO.java
View file @
65642f6b
...
@@ -10,4 +10,7 @@ import java.io.Serializable;
...
@@ -10,4 +10,7 @@ import java.io.Serializable;
public
class
BaseDTO
implements
Serializable
{
public
class
BaseDTO
implements
Serializable
{
protected
String
keySet
;
protected
String
keySet
;
protected
int
pageSize
;
protected
int
page
;
protected
String
sort
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/web/dto/ResultDTO.java
View file @
65642f6b
...
@@ -12,6 +12,6 @@ public class ResultDTO {
...
@@ -12,6 +12,6 @@ public class ResultDTO {
private
String
errorCode
;
private
String
errorCode
;
private
String
description
;
private
String
description
;
private
List
listData
=
new
ArrayList
();
private
List
<?>
listData
=
new
ArrayList
();
private
Object
data
;
private
Object
data
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
View file @
65642f6b
package
com.viettel.campaign.web.rest.controller
;
package
com.viettel.campaign.web.rest.controller
;
import
com.viettel.campaign.dto.ResultDTO
;
import
com.viettel.campaign.dto.request_dto.CampaignRequestDTO
;
import
com.viettel.campaign.model.Campaign
;
import
com.viettel.campaign.service.CampaignService
;
import
com.viettel.campaign.service.CampaignService
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.data.domain.Page
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
java.util.Map
;
import
java.util.Map
;
@Controller
@
Rest
Controller
@RequestMapping
(
"/ipcc/campaign"
)
@RequestMapping
(
"/ipcc/campaign"
)
public
class
CampaignController
{
public
class
CampaignController
{
...
@@ -28,4 +28,11 @@ public class CampaignController {
...
@@ -28,4 +28,11 @@ public class CampaignController {
Map
result
=
campaignService
.
searchCampaignExecute
(
page
,
pageSize
,
sort
,
agentId
);
Map
result
=
campaignService
.
searchCampaignExecute
(
page
,
pageSize
,
sort
,
agentId
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
@RequestMapping
(
value
=
"/search"
,
method
=
RequestMethod
.
POST
)
public
ResponseEntity
<
ResultDTO
>
search
(
@RequestBody
CampaignRequestDTO
requestDto
)
{
ResultDTO
result
=
campaignService
.
search
(
requestDto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
}
This diff is collapsed.
Click to expand it.
src/main/resources/hibernate.cfg.xml
0 → 100644
View file @
65642f6b
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property
name=
"hibernate.connection.driver_class"
>
oracle.jdbc.driver.OracleDriver
</property>
<property
name=
"hibernate.connection.url"
>
jdbc:oracle:thin:@10.60.157.135:1521:vt
</property>
<property
name=
"hibernate.connection.username"
>
CCMS_FULL
</property>
<property
name=
"hibernate.connection.password"
>
CCMS_FULL#123
</property>
<property
name=
"hibernate.connection.pool_size"
>
64
</property>
<property
name=
"hibernate.current_session_context_class"
>
thread
</property>
<property
name=
"hibernate.show_sql"
>
true
</property>
<property
name=
"hibernate.dialect"
>
org.hibernate.dialect.Oracle10gDialect
</property>
</session-factory>
</hibernate-configuration>
This diff is collapsed.
Click to expand it.
src/main/resources/sql/campaign-mng/search-campaign-by-params.sql
0 → 100644
View file @
65642f6b
SELECT
CAMPAIGN_ID
campaignId
,
CAMPAIGN_CODE
campaignCode
,
CAMPAIGN_NAME
campaignName
,
CAMPAIGN_TYPE
campaignType
,
CHANEL
chanel
,
START_TIME
startTime
,
END_TIME
endTime
,
CUSTOMER_NUMBER
customerNumber
,
STATUS
status
FROM
CAMPAIGN
WHERE
1
=
1
This diff is collapsed.
Click to expand it.
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