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
ad96a261
Commit
ad96a261
authored
Aug 07, 2019
by
Vu Duy Anh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
anhvd commit
parent
e167e20a
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
86 additions
and
21 deletions
+86
-21
src/main/java/com/viettel/campaign/model/Campaign.java
src/main/java/com/viettel/campaign/model/Campaign.java
+2
-0
src/main/java/com/viettel/campaign/model/TimeRangeDialMode.java
...in/java/com/viettel/campaign/model/TimeRangeDialMode.java
+2
-0
src/main/java/com/viettel/campaign/model/TimeZoneDialMode.java
...ain/java/com/viettel/campaign/model/TimeZoneDialMode.java
+3
-1
src/main/java/com/viettel/campaign/repository/CampaignRepositoryCustom.java
...viettel/campaign/repository/CampaignRepositoryCustom.java
+2
-0
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
...ttel/campaign/repository/impl/CampaignRepositoryImpl.java
+21
-2
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+45
-13
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
+6
-1
src/main/java/com/viettel/campaign/web/dto/TimeZoneDialModeDTO.java
...ava/com/viettel/campaign/web/dto/TimeZoneDialModeDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
...ttel/campaign/web/rest/controller/CampaignController.java
+4
-3
No files found.
src/main/java/com/viettel/campaign/model/Campaign.java
View file @
ad96a261
...
...
@@ -16,6 +16,8 @@ public class Campaign implements Serializable {
@Id
@NotNull
@GeneratedValue
(
generator
=
"campaign_seq"
)
@SequenceGenerator
(
name
=
"campaign_seq"
,
sequenceName
=
"campaign_seq"
,
allocationSize
=
1
)
@Basic
(
optional
=
false
)
@Column
(
name
=
"CAMPAIGN_ID"
)
private
Long
campaignId
;
...
...
src/main/java/com/viettel/campaign/model/TimeRangeDialMode.java
View file @
ad96a261
...
...
@@ -18,6 +18,8 @@ import java.util.Date;
public
class
TimeRangeDialMode
implements
Serializable
{
@Id
@NotNull
@GeneratedValue
(
generator
=
"TIME_RANGE_DIAL_MODE_SEQ"
)
@SequenceGenerator
(
name
=
"TIME_RANGE_DIAL_MODE_SEQ"
,
sequenceName
=
"TIME_RANGE_DIAL_MODE_SEQ"
,
allocationSize
=
1
)
@Basic
(
optional
=
false
)
@Column
(
name
=
"TIME_RANGE_DIAL_MODE_ID"
)
private
Long
timeRangeDialModeId
;
...
...
src/main/java/com/viettel/campaign/model/TimeZoneDialMode.java
View file @
ad96a261
...
...
@@ -19,9 +19,11 @@ import java.io.Serializable;
public
class
TimeZoneDialMode
implements
Serializable
{
@Id
@NotNull
@GeneratedValue
(
generator
=
"TIME_ZONE_DIAL_MODE_SEQ"
)
@SequenceGenerator
(
name
=
"TIME_ZONE_DIAL_MODE_SEQ"
,
sequenceName
=
"TIME_ZONE_DIAL_MODE_SEQ"
,
allocationSize
=
1
)
@Basic
(
optional
=
false
)
@Column
(
name
=
"TIME_ZONE_DIAL_MODE_ID"
)
private
Long
time
Rang
eDialModeId
;
private
Long
time
Zon
eDialModeId
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companySiteId
;
...
...
src/main/java/com/viettel/campaign/repository/CampaignRepositoryCustom.java
View file @
ad96a261
...
...
@@ -11,4 +11,6 @@ public interface CampaignRepositoryCustom {
ResultDTO
search
(
CampaignRequestDTO
requestDto
);
ResultDTO
findByCampaignCode
(
CampaignRequestDTO
requestDTO
);
String
getMaxCampaignIndex
();
}
src/main/java/com/viettel/campaign/repository/impl/CampaignRepositoryImpl.java
View file @
ad96a261
...
...
@@ -368,9 +368,7 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
result
.
setData
(
dataPage
);
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
result
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
session
.
close
();
return
result
;
}
catch
(
Exception
ex
)
{
logger
.
error
(
ex
.
getMessage
(),
ex
);
result
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
...
...
@@ -381,4 +379,25 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
return
result
;
}
@Override
public
String
getMaxCampaignIndex
()
{
logger
.
info
(
"Start search max campaign code index::"
);
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
Session
session
=
sessionFactory
.
openSession
();
session
.
beginTransaction
();
try
{
StringBuilder
sqlStr
=
new
StringBuilder
();
sqlStr
.
append
(
SQLBuilder
.
getSqlQueryById
(
SQLBuilder
.
SQL_MODULE_CAMPAIGN_MNG
,
"get-max-campaign-code-index"
));
SQLQuery
query
=
session
.
createSQLQuery
(
sqlStr
.
toString
());
List
<
String
>
list
=
query
.
list
();
if
(
list
.
size
()
>
0
)
{
return
list
.
get
(
0
);
}
}
catch
(
Exception
ex
)
{
logger
.
error
(
ex
.
getMessage
(),
ex
);
}
return
null
;
}
}
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
View file @
ad96a261
package
com.viettel.campaign.service.impl
;
import
com.viettel.campaign.model.Campaign
;
import
com.viettel.campaign.model.TimeRangeDialMode
;
import
com.viettel.campaign.model.TimeZoneDialMode
;
import
com.viettel.campaign.repository.CampaignRepository
;
import
com.viettel.campaign.repository.TimeRangeDialModeRepository
;
import
com.viettel.campaign.repository.TimeZoneDialModeRepository
;
import
com.viettel.campaign.repository.impl.CampaignRepositoryImpl
;
import
com.viettel.campaign.service.CampaignService
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.TimeRangeDialModeDTO
;
import
com.viettel.campaign.web.dto.TimeZoneDialModeDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
...
...
@@ -18,8 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.*
;
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -32,6 +35,9 @@ public class CampaignServiceImpl implements CampaignService {
@Autowired
TimeZoneDialModeRepository
timeZoneDialModeRepository
;
@Autowired
TimeRangeDialModeRepository
timeRangeDialModeRepository
;
@Autowired
ModelMapper
modelMapper
;
...
...
@@ -54,23 +60,38 @@ public class CampaignServiceImpl implements CampaignService {
public
ResultDTO
addNewCampaign
(
CampaignDTO
campaignDTO
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
Campaign
campaign
=
modelMapper
.
map
(
campaignDTO
,
Campaign
.
class
);
TimeZoneDialMode
timeZoneDialMode
=
new
TimeZoneDialMode
();
Long
campaignId
;
List
<
TimeZoneDialModeDTO
>
timeZoneDialModes
=
new
ArrayList
<>();
List
<
TimeRangeDialModeDTO
>
timeRangeDialModes
=
new
ArrayList
<>();
List
<
TimeRangeDialMode
>
lstTimeRangeModeToInsert
=
new
ArrayList
<>();
List
<
TimeZoneDialMode
>
lstTimeZoneModeToInser
=
new
ArrayList
<>();
try
{
campaign
=
campaignRepository
.
save
(
campaign
);
String
campaignCode
=
generateCampaignCode
(
campaignDTO
.
getCampaignType
(),
campaignDTO
.
getChanel
());
campaign
.
setCampaignCode
(
campaignCode
);
Campaign
campaignResult
=
campaignRepository
.
save
(
campaign
);
campaignId
=
campaign
.
getCampaignId
();
//insert sub tables
if
(
campaignDTO
.
getCurrentTimeMode
().
equals
(
1
)){
timeZoneDialMode
.
setCompanySiteId
(
campaignDTO
.
getCompanySiteId
());
timeZoneDialMode
.
setCampaignId
(
campaign
.
getCampaignId
());
// timeZoneDialMode.setHour(campaignDTO.getT);
timeZoneDialModeRepository
.
save
(
timeZoneDialMode
);
if
(
campaignDTO
.
getLstTimeRange
().
size
()
>
0
)
{
timeRangeDialModes
=
campaignDTO
.
getLstTimeRange
();
timeRangeDialModes
.
forEach
(
item
->
{
item
.
setCampaignId
(
campaignId
);
TimeRangeDialMode
timeRangeDialMode
=
modelMapper
.
map
(
item
,
TimeRangeDialMode
.
class
);
lstTimeRangeModeToInsert
.
add
(
timeRangeDialMode
);
});
timeRangeDialModeRepository
.
saveAll
(
lstTimeRangeModeToInsert
);
}
if
(
campaignDTO
.
getCurrentTimeMode
().
equals
(
2
))
{
if
(
campaignDTO
.
getLstTimeZone
().
size
()
>
0
)
{
timeZoneDialModes
=
campaignDTO
.
getLstTimeZone
();
timeZoneDialModes
.
forEach
(
item
->
{
item
.
setCampaignId
(
campaignId
);
TimeZoneDialMode
timeZoneDialMode
=
modelMapper
.
map
(
item
,
TimeZoneDialMode
.
class
);
lstTimeZoneModeToInser
.
add
(
timeZoneDialMode
);
});
timeZoneDialModeRepository
.
saveAll
(
lstTimeZoneModeToInser
);
}
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
resultDTO
.
setData
(
campaign
);
resultDTO
.
setData
(
campaign
Result
);
}
catch
(
Exception
ex
)
{
logger
.
error
(
ex
.
getMessage
(),
ex
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
...
...
@@ -97,4 +118,15 @@ public class CampaignServiceImpl implements CampaignService {
return
result
;
}
private
String
generateCampaignCode
(
String
campaignType
,
Short
chanel
)
{
int
year
=
Calendar
.
getInstance
().
get
(
Calendar
.
YEAR
);
String
maxIndexStr
=
campaignRepository
.
getMaxCampaignIndex
();
if
(
maxIndexStr
!=
null
)
{
Long
maxIndex
=
Long
.
valueOf
(
maxIndexStr
)
+
1
;
String
result
=
campaignType
+
"_"
+
String
.
valueOf
(
chanel
)
+
"_"
+
String
.
valueOf
(
year
)
+
"_"
+
maxIndex
.
toString
();
return
result
;
}
return
null
;
}
}
src/main/java/com/viettel/campaign/web/dto/CampaignDTO.java
View file @
ad96a261
...
...
@@ -4,6 +4,7 @@ import lombok.Getter;
import
lombok.Setter
;
import
java.util.Date
;
import
java.util.List
;
@Getter
@Setter
...
...
@@ -57,6 +58,10 @@ public class CampaignDTO extends BaseDTO {
private
Long
numOfNotJoinedCus
;
private
Long
numOfLockCus
;
private
String
campaignTypeName
;
private
Date
timeRangeStartTime
;
private
String
timeZoneHour
;
private
String
timeZoneMinute
;
private
List
<
TimeRangeDialModeDTO
>
lstTimeRange
;
private
List
<
TimeZoneDialModeDTO
>
lstTimeZone
;
}
src/main/java/com/viettel/campaign/web/dto/TimeZoneDialModeDTO.java
View file @
ad96a261
...
...
@@ -10,7 +10,7 @@ import lombok.Setter;
@Getter
@Setter
public
class
TimeZoneDialModeDTO
{
private
Long
time
Rang
eDialModeId
;
private
Long
time
Zon
eDialModeId
;
private
Long
companySiteId
;
private
String
hour
;
private
String
minute
;
...
...
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
View file @
ad96a261
package
com.viettel.campaign.web.rest.controller
;
import
com.viettel.campaign.service.CampaignService
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.log4j.Logger
;
...
...
@@ -34,14 +35,14 @@ public class CampaignController {
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@RequestMapping
(
value
=
"/find
ByCampaignC
ode"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
value
=
"/find
-by-campaign-c
ode"
,
method
=
RequestMethod
.
POST
)
public
ResultDTO
findByCampaignCode
(
@RequestBody
CampaignRequestDTO
dto
)
{
return
campaignService
.
findByCampaignCode
(
dto
);
}
@RequestMapping
(
method
=
RequestMethod
.
POST
)
public
ResultDTO
addNewCampaign
(
@RequestBody
Campaign
Request
DTO
dto
)
{
return
campaignService
.
findByCampaignCode
(
dto
);
public
ResultDTO
addNewCampaign
(
@RequestBody
CampaignDTO
dto
)
{
return
campaignService
.
addNewCampaign
(
dto
);
}
@GetMapping
(
"/countRecallCustomer"
)
...
...
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