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
1d784ca9
Commit
1d784ca9
authored
Aug 28, 2019
by
=
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
ac491b22
90ccd9ea
Changes
17
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
229 additions
and
94 deletions
+229
-94
.DS_Store
.DS_Store
+0
-0
src/main/java/com/viettel/campaign/filter/CorsFilter.java
src/main/java/com/viettel/campaign/filter/CorsFilter.java
+21
-21
src/main/java/com/viettel/campaign/repository/ccms_full/CustomerQueryRepository.java
...ampaign/repository/ccms_full/CustomerQueryRepository.java
+9
-0
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CustomerQueryRepositoryImpl.java
...epository/ccms_full/impl/CustomerQueryRepositoryImpl.java
+28
-0
src/main/java/com/viettel/campaign/service/CustomerService.java
...in/java/com/viettel/campaign/service/CustomerService.java
+2
-1
src/main/java/com/viettel/campaign/service/impl/CampaignCfgServiceImpl.java
...viettel/campaign/service/impl/CampaignCfgServiceImpl.java
+1
-0
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
...om/viettel/campaign/service/impl/CustomerServiceImpl.java
+85
-50
src/main/java/com/viettel/campaign/service/impl/ScenarioServiceImpl.java
...om/viettel/campaign/service/impl/ScenarioServiceImpl.java
+39
-15
src/main/java/com/viettel/campaign/web/dto/CustomizeFielObjectDTO.java
.../com/viettel/campaign/web/dto/CustomizeFielObjectDTO.java
+4
-1
src/main/java/com/viettel/campaign/web/dto/ScenarioAnswerDTO.java
.../java/com/viettel/campaign/web/dto/ScenarioAnswerDTO.java
+2
-1
src/main/java/com/viettel/campaign/web/dto/ScenarioQuestionDTO.java
...ava/com/viettel/campaign/web/dto/ScenarioQuestionDTO.java
+1
-1
src/main/java/com/viettel/campaign/web/dto/request_dto/CustomizeRequestDTo.java
...tel/campaign/web/dto/request_dto/CustomizeRequestDTo.java
+15
-2
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
...ava/com/viettel/campaign/web/rest/CustomerController.java
+16
-1
src/main/java/com/viettel/campaign/web/rest/ScenarioController.java
...ava/com/viettel/campaign/web/rest/ScenarioController.java
+3
-0
src/main/resources/application.yml
src/main/resources/application.yml
+1
-1
src/main/resources/i18n/language_en.properties
src/main/resources/i18n/language_en.properties
+1
-0
src/main/resources/i18n/language_vi.properties
src/main/resources/i18n/language_vi.properties
+1
-0
No files found.
.DS_Store
View file @
1d784ca9
No preview for this file type
src/main/java/com/viettel/campaign/filter/CorsFilter.java
View file @
1d784ca9
...
...
@@ -30,27 +30,27 @@ public class CorsFilter implements Filter {
HttpServletRequest
request
=
(
HttpServletRequest
)
req
;
//
chain.doFilter(req, response);
if
(
"OPTIONS"
.
equalsIgnoreCase
(
request
.
getMethod
()))
{
chain
.
doFilter
(
req
,
resp
);
return
;
}
if
(
"/"
.
equals
(
request
.
getRequestURI
()))
{
chain
.
doFilter
(
req
,
resp
);
return
;
}
String
xAuthToken
=
request
.
getHeader
(
"X-Auth-Token"
);
if
(
xAuthToken
==
null
||
""
.
equals
(
xAuthToken
))
{
response
.
sendError
(
HttpServletResponse
.
SC_UNAUTHORIZED
,
"The token is null."
);
return
;
}
Object
obj
=
RedisUtil
.
getInstance
().
get
(
xAuthToken
);
if
(
obj
instanceof
UserSession
)
{
chain
.
doFilter
(
req
,
resp
);
}
else
{
response
.
sendError
(
HttpServletResponse
.
SC_UNAUTHORIZED
,
"The token is invalid."
);
}
chain
.
doFilter
(
req
,
response
);
//
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
//
chain.doFilter(req, resp);
//
return;
//
}
//
if ("/".equals(request.getRequestURI())) {
//
chain.doFilter(req, resp);
//
return;
//
}
//
String xAuthToken = request.getHeader("X-Auth-Token");
//
if (xAuthToken == null || "".equals(xAuthToken)) {
//
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is null.");
//
return;
//
}
//
Object obj = RedisUtil.getInstance().get(xAuthToken);
//
if (obj instanceof UserSession) {
//
chain.doFilter(req, resp);
//
} else {
//
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The token is invalid.");
//
}
}
@Override
...
...
src/main/java/com/viettel/campaign/repository/ccms_full/CustomerQueryRepository.java
0 → 100644
View file @
1d784ca9
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.model.ccms_full.Customer
;
import
java.util.List
;
public
interface
CustomerQueryRepository
{
List
<
Customer
>
findAll
(
String
rsqlQuery
);
}
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CustomerQueryRepositoryImpl.java
0 → 100644
View file @
1d784ca9
package
com.viettel.campaign.repository.ccms_full.impl
;
import
com.github.tennaito.rsql.jpa.JpaCriteriaQueryVisitor
;
import
com.viettel.campaign.model.ccms_full.Customer
;
import
com.viettel.campaign.repository.ccms_full.CustomerQueryRepository
;
import
cz.jirutka.rsql.parser.RSQLParser
;
import
cz.jirutka.rsql.parser.ast.Node
;
import
cz.jirutka.rsql.parser.ast.RSQLVisitor
;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.criteria.CriteriaQuery
;
import
java.util.List
;
public
class
CustomerQueryRepositoryImpl
implements
CustomerQueryRepository
{
@PersistenceContext
private
EntityManager
entityManager
;
private
RSQLVisitor
<
CriteriaQuery
<
Customer
>,
EntityManager
>
visitor
=
new
JpaCriteriaQueryVisitor
<
Customer
>();
private
RSQLParser
parser
=
new
RSQLParser
();
@Override
public
List
<
Customer
>
findAll
(
String
rsqlQuery
)
{
Node
node
=
parser
.
parse
(
rsqlQuery
);
CriteriaQuery
<
Customer
>
query
=
node
.
accept
(
visitor
,
entityManager
);
return
entityManager
.
createQuery
(
query
).
getResultList
();
}
}
src/main/java/com/viettel/campaign/service/CustomerService.java
View file @
1d784ca9
...
...
@@ -77,5 +77,6 @@ public interface CustomerService {
Long
countByQuery
(
String
queryString
);
// Map<String, CustomizeRequestDTo> searchCustomer();
//// List<CustomizeFields> searchCustomize();
ResultDTO
searchCustomizeFields
(
CustomizeRequestDTo
customizeFields
);
ResultDTO
listCustomizeFields
(
CustomizeRequestDTo
customizeFields
);
ResultDTO
searchCustomizeFields
(
CustomizeRequestDTo
customizeRequestDTo
);
}
src/main/java/com/viettel/campaign/service/impl/CampaignCfgServiceImpl.java
View file @
1d784ca9
...
...
@@ -83,6 +83,7 @@ public class CampaignCfgServiceImpl implements CampaignCfgService {
sb
.
append
(
" and COMPANY_SITE_ID = :p_company_site_id"
);
sb
.
append
(
" and COMPLETE_VALUE not in (1,2,3,4)"
);
sb
.
append
(
"ORDER BY to_number(COMPLETE_VALUE) "
);
logger
.
info
(
"SQL statement: "
+
sb
);
...
...
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
View file @
1d784ca9
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/impl/ScenarioServiceImpl.java
View file @
1d784ca9
...
...
@@ -243,7 +243,7 @@ public class ScenarioServiceImpl implements ScenarioService {
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"dd/MM/yyyy HH:mm:ss"
);
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
StringBuilder
sb
=
new
StringBuilder
();
boolean
isValid
=
fals
e
;
boolean
isValid
=
tru
e
;
try
{
List
<
String
>
fileHeaderList
=
new
ArrayList
<>();
fileHeaderList
.
add
(
BundleUtils
.
getLangString
(
"scenario.template.questionCode"
,
locale
));
...
...
@@ -322,9 +322,19 @@ public class ScenarioServiceImpl implements ScenarioService {
//<editor-fold desc="Validate dữ liệu" defaultstate="collapsed">
String
selectedType
=
""
;
List
<
String
>
lstImportQuestionCodes
=
new
ArrayList
<>();
String
tmpCurrentQuestionCode
=
null
;
rawDataList
.
forEach
(
item
->
{
if
(
item
[
0
]
!=
null
&&
!
item
[
0
].
toString
().
trim
().
equals
(
""
))
lstImportQuestionCodes
.
add
(
item
[
0
].
toString
().
trim
());
});
for
(
int
i
=
0
;
i
<
rawDataList
.
size
();
i
++)
{
if
(
rawDataList
.
get
(
i
)[
0
]
!=
null
&&
!
rawDataList
.
get
(
i
)[
0
].
toString
().
trim
().
equals
(
""
))
if
(
rawDataList
.
get
(
i
)[
0
]
!=
null
&&
!
rawDataList
.
get
(
i
)[
0
].
toString
().
trim
().
equals
(
""
))
{
selectedType
=
rawDataList
.
get
(
i
)[
1
].
toString
().
trim
();
tmpCurrentQuestionCode
=
rawDataList
.
get
(
i
)[
0
].
toString
().
trim
();
}
//validate question
if
((
rawDataList
.
get
(
i
)[
0
]
!=
null
&&
!
rawDataList
.
get
(
i
)[
0
].
toString
().
trim
().
equals
(
""
))
||
(
rawDataList
.
get
(
i
)[
1
]
!=
null
&&
!
rawDataList
.
get
(
i
)[
1
].
toString
().
trim
().
equals
(
""
))
||
...
...
@@ -358,6 +368,12 @@ public class ScenarioServiceImpl implements ScenarioService {
if
(
rawDataList
.
get
(
i
)[
4
]
==
null
&&
rawDataList
.
get
(
i
)[
4
].
toString
().
trim
().
equals
(
""
))
{
sb
.
append
(
BundleUtils
.
getLangString
(
"scenario.hashInput.required"
));
}
if
((
rawDataList
.
get
(
i
)[
7
]
!=
null
&&
!
rawDataList
.
get
(
i
)[
7
].
toString
().
trim
().
equals
(
""
)))
{
if
((
rawDataList
.
get
(
i
)[
7
].
toString
().
trim
().
equals
(
tmpCurrentQuestionCode
))
||
validateMappingQuestion
(
rawDataList
.
get
(
i
)[
7
].
toString
().
trim
(),
tmpCurrentQuestionCode
,
lstImportQuestionCodes
))
sb
.
append
(
BundleUtils
.
getLangString
(
"scenario.mappingQuestion.invalid"
));
}
}
Row
dataRow
=
sheet
.
getRow
(
3
+
i
);
Cell
resultCell
=
dataRow
.
createCell
(
row
.
getPhysicalNumberOfCells
()
-
1
);
...
...
@@ -365,12 +381,11 @@ public class ScenarioServiceImpl implements ScenarioService {
resultCell
.
setCellValue
(
sb
.
toString
());
isValid
=
false
;
}
else
{
isValid
=
true
;
//
isValid = true;
resultCell
.
setCellValue
(
"Ok"
);
}
sb
=
new
StringBuilder
();
}
selectedType
=
""
;
//</editor-fold>
//insert data
...
...
@@ -378,13 +393,14 @@ public class ScenarioServiceImpl implements ScenarioService {
logger
.
info
(
"----- Data valid, start import scenario question -----"
);
List
<
ScenarioQuestionDTO
>
lstQuestion
=
buildQuestionsLst
(
rawDataList
,
scenarioId
,
campaignId
,
companySiteId
);
lstQuestion
.
forEach
(
question
->
{
questionService
.
add
(
question
);
//
questionService.add(question);
});
FileOutputStream
fos
=
new
FileOutputStream
(
file
);
workbook
.
write
(
fos
);
result
.
put
(
"file"
,
file
);
result
.
put
(
"message"
,
BundleUtils
.
getLangString
(
"customer.importSuccess"
,
locale
));
}
else
{
logger
.
info
(
"----- Data invalid, can't import scenario question -----"
);
FileOutputStream
fos
=
new
FileOutputStream
(
file
);
workbook
.
write
(
fos
);
result
.
put
(
"file"
,
file
);
...
...
@@ -398,9 +414,17 @@ public class ScenarioServiceImpl implements ScenarioService {
return
result
;
}
private
boolean
validateQuestionIndex
(
Object
index
)
{
if
(
index
!=
null
&&
DataUtil
.
isLong
(
index
.
toString
()))
return
true
;
return
false
;
private
boolean
validateMappingQuestion
(
String
mappingQuestion
,
String
currentQuestionCode
,
List
<
String
>
lstQuestionCode
)
{
if
(
mappingQuestion
==
currentQuestionCode
)
return
false
;
String
duplicateCode
=
lstQuestionCode
.
stream
().
filter
(
p
->
(
p
.
equals
(
mappingQuestion
)
&&
p
.
equals
(
currentQuestionCode
))).
findAny
().
orElse
(
null
);
if
(
duplicateCode
==
null
)
return
false
;
// String notMappedCode = lstQuestionCode.stream().filter(p -> (!p.equals(mappingQuestion))).findAny().orElse(null);
// if(notMappedCode != null) return false;
return
true
;
}
...
...
@@ -411,15 +435,15 @@ public class ScenarioServiceImpl implements ScenarioService {
List
<
ScenarioQuestionDTO
>
lstQuestions
=
new
ArrayList
<>();
List
<
ScenarioAnswerDTO
>
lstAnswerOfQuestion
=
new
ArrayList
<>();
ScenarioQuestionDTO
questionDTO
=
null
;
Integer
questionIndex
=
null
;
String
questionCode
=
null
;
for
(
int
i
=
0
;
i
<
rawDatas
.
size
();
i
++)
{
if
(
rawDatas
.
get
(
i
)[
0
]
!=
null
&&
!
rawDatas
.
get
(
i
)[
0
].
toString
().
trim
().
equals
(
""
))
{
question
Index
=
Double
.
valueOf
(
rawDatas
.
get
(
i
)[
0
].
toString
().
trim
()).
intValue
();
question
Code
=
rawDatas
.
get
(
i
)[
0
].
toString
().
trim
();
questionDTO
=
new
ScenarioQuestionDTO
();
questionDTO
.
setScenarioId
(
scenarioId
);
questionDTO
.
setCampaignId
(
campaignId
);
questionDTO
.
setCompanySiteId
(
companySiteId
);
questionDTO
.
setImport
Index
(
questionIndex
);
questionDTO
.
setImport
Code
(
questionCode
);
if
(
rawDatas
.
get
(
i
)[
1
].
toString
().
trim
().
equals
(
BundleUtils
.
getLangString
(
"scenario.template.text"
)))
questionDTO
.
setType
((
short
)
0
);
...
...
@@ -445,9 +469,9 @@ public class ScenarioServiceImpl implements ScenarioService {
answerDto
.
setHasInput
((
short
)
1
);
else
answerDto
.
setHasInput
((
short
)
0
);
if
(
rawDatas
.
get
(
i
)[
7
]
!=
null
&&
!
rawDatas
.
get
(
i
)[
7
].
toString
().
trim
().
equals
(
""
))
{
answerDto
.
setMappingQuestion
Id
(
Double
.
valueOf
(
rawDatas
.
get
(
i
)[
7
].
toString
().
trim
()).
longValue
());
answerDto
.
setMappingQuestion
Code
(
rawDatas
.
get
(
i
)[
7
].
toString
().
trim
());
}
answerDto
.
setImportQuestion
Index
(
questionIndex
);
answerDto
.
setImportQuestion
Code
(
questionCode
);
answerDto
.
setCompanySiteId
(
companySiteId
);
lstAnswerOfQuestion
.
add
(
answerDto
);
...
...
@@ -456,7 +480,7 @@ public class ScenarioServiceImpl implements ScenarioService {
questionOrderIndex
=
questionRepository
.
getMaxOrderId
(
scenarioId
,
campaignId
,
companySiteId
);
if
(
questionOrderIndex
==
null
)
questionOrderIndex
=
0L
;
if
(
questionOrderIndex
==
null
)
questionOrderIndex
=
0L
;
lstQuestions
.
forEach
(
q
->
{
questionOrderIndex
+=
1
;
q
.
setOrderIndex
(
questionOrderIndex
);
...
...
@@ -466,7 +490,7 @@ public class ScenarioServiceImpl implements ScenarioService {
lstAnswerOfQuestion
.
forEach
(
a
->
{
answerIndex
+=
1
;
a
.
setOrderIndex
(
answerIndex
);
if
(
a
.
getImportQuestionIndex
()
==
q
.
getImportIndex
(
))
answers
.
add
(
a
);
if
(
a
.
getImportQuestionCode
().
equals
(
q
.
getImportCode
()
))
answers
.
add
(
a
);
});
q
.
setLstAnswers
(
answers
);
});
...
...
src/main/java/com/viettel/campaign/web/dto/CustomizeFielObjectDTO.java
View file @
1d784ca9
...
...
@@ -5,13 +5,14 @@ import lombok.Getter;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.util.Date
;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public
class
CustomizeFielObjectDTO
{
public
class
CustomizeFielObjectDTO
implements
Serializable
{
private
Long
customerId
;
private
String
name
;
private
String
companyName
;
...
...
@@ -40,4 +41,6 @@ public class CustomizeFielObjectDTO {
private
Long
fieldOptionValueId
;
private
String
title
;
private
String
functionCode
;
private
String
active
;
}
src/main/java/com/viettel/campaign/web/dto/ScenarioAnswerDTO.java
View file @
1d784ca9
...
...
@@ -25,5 +25,6 @@ public class ScenarioAnswerDTO implements Serializable {
public
Date
deleteTime
;
public
Long
mappingQuestionId
;
public
Long
campaignId
;
public
Integer
importQuestionIndex
;
public
String
importQuestionCode
;
public
String
mappingQuestionCode
;
}
src/main/java/com/viettel/campaign/web/dto/ScenarioQuestionDTO.java
View file @
1d784ca9
...
...
@@ -29,5 +29,5 @@ public class ScenarioQuestionDTO implements Serializable {
private
Short
isDefault
;
private
Short
answerIndex
;
private
List
<
ScenarioAnswerDTO
>
lstAnswers
;
private
Integer
importIndex
;
private
String
importCode
;
}
src/main/java/com/viettel/campaign/web/dto/request_dto/CustomizeRequestDTo.java
View file @
1d784ca9
...
...
@@ -5,13 +5,26 @@ import com.viettel.campaign.web.dto.BaseDTO;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
@Getter
@Setter
public
class
CustomizeRequestDTo
extends
BaseDTO
{
String
operatorLogic
;
String
name
;
String
filterCustomer
;
String
compare
;
String
valueCustomer
;
String
companySiteId
;
String
customerId
;
String
companyName
;
String
status
;
String
siteId
;
Short
gender
;
String
currentAddress
;
String
placeOfBirth
;
Date
dateOfBirth
;
String
mobileNumber
;
String
email
;
String
userName
;
Long
customerType
;
}
src/main/java/com/viettel/campaign/web/rest/CustomerController.java
View file @
1d784ca9
...
...
@@ -3,6 +3,8 @@ package com.viettel.campaign.web.rest;
import
com.viettel.campaign.model.ccms_full.Customer
;
import
com.viettel.campaign.model.ccms_full.CustomizeFieldObject
;
import
com.viettel.campaign.model.ccms_full.CustomizeFields
;
import
com.viettel.campaign.repository.ccms_full.CustomerQueryRepository
;
import
com.viettel.campaign.repository.ccms_full.impl.CustomerQueryRepositoryImpl
;
import
com.viettel.campaign.service.CustomerService
;
import
com.viettel.campaign.utils.BundleUtils
;
import
com.viettel.campaign.utils.Config
;
...
...
@@ -38,6 +40,7 @@ import java.util.*;
@RequestMapping
(
"/ipcc/customer"
)
@CrossOrigin
(
origins
=
"*"
)
public
class
CustomerController
{
private
CustomerQueryRepository
customerQueryRepo
;
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
CustomerController
.
class
);
...
...
@@ -113,6 +116,7 @@ public class CustomerController {
// VIẾT ĐI VIẾT LẠI 4 LẦN RỒI ĐẤY
String
xAuthToken
=
request
.
getHeader
(
"X-Auth-Token"
);
UserSession
userSession
=
(
UserSession
)
RedisUtil
.
getInstance
().
get
(
xAuthToken
);
if
(
userSession
==
null
)
{
userSession
=
new
UserSession
();
userSession
.
setSiteId
(
customerListDTO
.
getCompanySiteId
());
...
...
@@ -248,6 +252,8 @@ public class CustomerController {
return
new
ResponseEntity
<>(
data
,
HttpStatus
.
OK
);
}
private
String
saveUploadFile
(
MultipartFile
file
)
{
try
{
String
currentTime
=
new
SimpleDateFormat
(
"yyyy_MM_dd_hh_mm_ss"
).
format
(
new
Date
());
...
...
@@ -267,6 +273,15 @@ public class CustomerController {
}
return
null
;
}
// @GetMapping("/query")
// public ResponseEntity<List<Customer>> query(@RequestParam(value = "search") String query) {
// List<Customer> things = customerQueryRepo.findAll(query);
// if (things.isEmpty()) {
// return ResponseEntity.noContent().build();
// }
// return ResponseEntity.ok(things);
// }
@GetMapping
(
path
=
""
,
produces
=
{
MediaType
.
APPLICATION_JSON_VALUE
})
public
ResponseEntity
<
List
<
Customer
>>
query
(
@RequestParam
(
value
=
"search"
)
String
query
)
{
List
<
Customer
>
result
=
null
;
...
...
@@ -282,7 +297,7 @@ public class CustomerController {
@PostMapping
(
"/getCustomizeFields"
)
@ResponseBody
public
ResponseEntity
<?>
getListFieldsToShow
(
@RequestBody
CustomizeRequestDTo
customizeRequestDTo
)
{
ResultDTO
resultDTO
=
customerService
.
search
CustomizeFields
(
customizeRequestDTo
);
ResultDTO
resultDTO
=
customerService
.
list
CustomizeFields
(
customizeRequestDTo
);
return
new
ResponseEntity
<>(
resultDTO
,
HttpStatus
.
OK
);
}
}
src/main/java/com/viettel/campaign/web/rest/ScenarioController.java
View file @
1d784ca9
...
...
@@ -132,6 +132,9 @@ public class ScenarioController {
// .body(Files.readAllBytes(fileExport.toPath()));
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
());
ResultDTO
resultDTO
=
new
ResultDTO
();
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
return
new
ResponseEntity
<>(
HttpStatus
.
BAD_REQUEST
);
}
}
...
...
src/main/resources/application.yml
View file @
1d784ca9
server
:
port
:
1111
port
:
9999
spring
:
application
:
name
:
campaign
...
...
src/main/resources/i18n/language_en.properties
View file @
1d784ca9
...
...
@@ -134,4 +134,5 @@ scenario.answer.required="Answer is required for SingleChoice or MultiChoice que
scenario.hashInput.required
=
"Has input is required"
scenario.required.required
=
"Require is required"
scenario.default.required
=
"Default is required"
scenario.mappingQuestion.invalid
=
"Mapping question invalid"
src/main/resources/i18n/language_vi.properties
View file @
1d784ca9
...
...
@@ -136,6 +136,7 @@ scenario.answer.required="Câu trả lời cho câu hỏi SingleChoice, MultiCho
scenario.hashInput.required
=
"Trường Nhập text bắt buộc nhập"
scenario.required.required
=
"Trường Bắt buộc bắt buộc nhập"
scenario.default.required
=
"Trường Mặc định bắt buộc nhập"
scenario.mappingQuestion.invalid
=
"Câu hỏi liên kết không hợp lệ"
...
...
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