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
Jul 31, 2019
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/
/.idea/
logs/
out/
/campaign.iml
lib/ojdbc7.jar
0 → 100755
View file @
65642f6b
File added
pom.xml
View file @
65642f6b
...
...
@@ -93,6 +93,8 @@
<dependency>
<groupId>
com.oracle
</groupId>
<artifactId>
ojdbc7
</artifactId>
<scope>
system
</scope>
<systemPath>
${project.basedir}/lib/ojdbc7.jar
</systemPath>
<version>
1.0
</version>
</dependency>
<dependency>
...
...
@@ -156,6 +158,31 @@
<artifactId>
log4j
</artifactId>
<version>
1.2.17
</version>
</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>
<dependencyManagement>
...
...
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
;
}
src/main/java/com/viettel/campaign/repository/CampaignRepositoryCustom.java
View file @
65642f6b
package
com.viettel.campaign.repository
;
<<<<<<<
HEAD
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.stereotype.Repository
;
import
java.util.List
;
public
interface
CampaignRepositoryCustom
{
List
<
CampaignDTO
>
searchCampaignExecute
(
String
agentId
,
Pageable
pageable
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
}
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();
//
// }
}
src/main/java/com/viettel/campaign/service/CampaignService.java
View file @
65642f6b
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
;
@Service
public
interface
CampaignService
{
Map
searchCampaignExecute
(
int
page
,
int
pageSize
,
String
sort
,
String
agentId
);
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
}
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.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.service.CampaignService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
CampaignServiceImpl
implements
CampaignService
{
@Autowired
...
...
@@ -30,4 +37,9 @@ public class CampaignServiceImpl implements CampaignService {
return
result
;
}
@Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
return
campaignRepository
.
search
(
requestDto
);
}
}
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"
;
}
}
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
));
}
/**
*
*/
}
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
();
}
}
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
;
}
}
src/main/java/com/viettel/campaign/web/dto/BaseDTO.java
View file @
65642f6b
...
...
@@ -10,4 +10,7 @@ import java.io.Serializable;
public
class
BaseDTO
implements
Serializable
{
protected
String
keySet
;
protected
int
pageSize
;
protected
int
page
;
protected
String
sort
;
}
src/main/java/com/viettel/campaign/web/dto/ResultDTO.java
View file @
65642f6b
...
...
@@ -12,6 +12,6 @@ public class ResultDTO {
private
String
errorCode
;
private
String
description
;
private
List
listData
=
new
ArrayList
();
private
List
<?>
listData
=
new
ArrayList
();
private
Object
data
;
}
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
View file @
65642f6b
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
org.apache.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.data.domain.Page
;
import
java.util.Map
;
@Controller
@
Rest
Controller
@RequestMapping
(
"/ipcc/campaign"
)
public
class
CampaignController
{
...
...
@@ -28,4 +28,11 @@ public class CampaignController {
Map
result
=
campaignService
.
searchCampaignExecute
(
page
,
pageSize
,
sort
,
agentId
);
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
);
}
}
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>
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
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