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
d215eceb
Commit
d215eceb
authored
Aug 13, 2019
by
Phạm Duy Phi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commit
parent
d9859bbd
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
307 additions
and
62 deletions
+307
-62
src/main/java/com/viettel/campaign/model/acd_full/Agents.java
...main/java/com/viettel/campaign/model/acd_full/Agents.java
+1
-1
src/main/java/com/viettel/campaign/model/ccms_full/VSAUsers.java
...n/java/com/viettel/campaign/model/ccms_full/VSAUsers.java
+71
-0
src/main/java/com/viettel/campaign/repository/ccms_full/VSAUsersRepository.java
...tel/campaign/repository/ccms_full/VSAUsersRepository.java
+10
-0
src/main/java/com/viettel/campaign/service/AgentsService.java
...main/java/com/viettel/campaign/service/AgentsService.java
+2
-0
src/main/java/com/viettel/campaign/service/impl/AgentsServiceImpl.java
.../com/viettel/campaign/service/impl/AgentsServiceImpl.java
+98
-0
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
...om/viettel/campaign/service/impl/CustomerServiceImpl.java
+5
-8
src/main/java/com/viettel/campaign/web/dto/CustomerCustomDTO.java
.../java/com/viettel/campaign/web/dto/CustomerCustomDTO.java
+0
-7
src/main/java/com/viettel/campaign/web/dto/VSAUsersDTO.java
src/main/java/com/viettel/campaign/web/dto/VSAUsersDTO.java
+37
-0
src/main/java/com/viettel/campaign/web/rest/AgentsController.java
.../java/com/viettel/campaign/web/rest/AgentsController.java
+7
-0
src/main/resources/sql/campaign-mng/campaign-agents-by-params.sql
.../resources/sql/campaign-mng/campaign-agents-by-params.sql
+31
-0
src/main/resources/sql/campaign-mng/campaign-customer-detail-by-params.sql
...s/sql/campaign-mng/campaign-customer-detail-by-params.sql
+45
-46
No files found.
src/main/java/com/viettel/campaign/model/acd_full/Agents.java
View file @
d215eceb
...
@@ -7,7 +7,7 @@ import javax.persistence.*;
...
@@ -7,7 +7,7 @@ import javax.persistence.*;
import
java.util.Date
;
import
java.util.Date
;
@Entity
@Entity
@Table
(
name
=
"
Agent
s"
)
@Table
(
name
=
"
VSAUser
s"
)
@Getter
@Getter
@Setter
@Setter
public
class
Agents
{
public
class
Agents
{
...
...
src/main/java/com/viettel/campaign/model/ccms_full/VSAUsers.java
0 → 100644
View file @
d215eceb
package
com.viettel.campaign.model.ccms_full
;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.persistence.*
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
@Entity
@Table
(
name
=
"VSA_USERS"
)
@Getter
@Setter
public
class
VSAUsers
{
@Id
@NotNull
@GeneratedValue
(
generator
=
"vsa_users_renew"
)
@SequenceGenerator
(
name
=
"vsa_users_renew"
,
sequenceName
=
"vsa_users_renew"
,
allocationSize
=
1
)
@Basic
(
optional
=
false
)
@Column
(
name
=
"USER_ID"
)
private
Long
userId
;
@Column
(
name
=
"USER_NAME"
)
private
String
userName
;
@Column
(
name
=
"STATUS"
)
private
Short
status
;
@Column
(
name
=
"FULL_NAME"
)
private
String
fullName
;
@Column
(
name
=
"USER_TYPE_ID"
)
private
Long
userTypeId
;
@Column
(
name
=
"CREATE_DATE"
)
private
Date
createDate
;
@Column
(
name
=
"DESCRIPTION"
)
private
String
description
;
@Column
(
name
=
"STAFF_CODE"
)
private
String
staffCode
;
@Column
(
name
=
"MANAGER_ID"
)
private
Long
managerId
;
@Column
(
name
=
"LOCATION_ID"
)
private
Long
locationId
;
@Column
(
name
=
"DEPT_ID"
)
private
Long
deptId
;
@Column
(
name
=
"DEPT_LEVEL"
)
private
String
deptLevel
;
@Column
(
name
=
"POS_ID"
)
private
Long
posId
;
@Column
(
name
=
"DEPT_NAME"
)
private
String
deptName
;
@Column
(
name
=
"GROUP_ID"
)
private
Long
groupId
;
@Column
(
name
=
"SITE_ID"
)
private
Long
siteId
;
@Column
(
name
=
"COMPANY_SITE_ID"
)
private
Long
companySiteId
;
@Column
(
name
=
"AGENT_TYPE"
)
private
Short
agentType
;
@Column
(
name
=
"MOBILE_NUMBER"
)
private
String
mobileNumber
;
@Column
(
name
=
"FACEBOOK_ID"
)
private
String
facebookId
;
@Column
(
name
=
"LOGIN_TYPE"
)
private
Short
loginType
;
@Column
(
name
=
"GOOGLE_ID"
)
private
String
googleId
;
@Column
(
name
=
"EMAIL"
)
private
String
email
;
@Column
(
name
=
"AVAILABLE_TICKET"
)
private
Long
availableTicket
;
@Column
(
name
=
"USER_KAZOO_ID"
)
private
String
userKazooId
;
}
src/main/java/com/viettel/campaign/repository/ccms_full/VSAUsersRepository.java
0 → 100644
View file @
d215eceb
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.model.ccms_full.VSAUsers
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
java.util.List
;
public
interface
VSAUsersRepository
extends
JpaRepository
<
VSAUsers
,
Long
>
{
List
<
VSAUsers
>
findAllByCompanySiteId
(
Long
companySiteId
);
}
src/main/java/com/viettel/campaign/service/AgentsService.java
View file @
d215eceb
...
@@ -4,4 +4,6 @@ import com.viettel.campaign.web.dto.ResultDTO;
...
@@ -4,4 +4,6 @@ import com.viettel.campaign.web.dto.ResultDTO;
public
interface
AgentsService
{
public
interface
AgentsService
{
ResultDTO
getAgentsByAgentId
(
String
agentId
);
ResultDTO
getAgentsByAgentId
(
String
agentId
);
ResultDTO
getAllAgentsByCompanySiteId
(
int
page
,
int
pageSize
,
Long
companySiteId
);
}
}
src/main/java/com/viettel/campaign/service/impl/AgentsServiceImpl.java
View file @
d215eceb
...
@@ -4,10 +4,25 @@ import com.viettel.campaign.model.acd_full.Agents;
...
@@ -4,10 +4,25 @@ import com.viettel.campaign.model.acd_full.Agents;
import
com.viettel.campaign.repository.acd_full.AgentsRepository
;
import
com.viettel.campaign.repository.acd_full.AgentsRepository
;
import
com.viettel.campaign.service.AgentsService
;
import
com.viettel.campaign.service.AgentsService
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.DataUtil
;
import
com.viettel.campaign.utils.HibernateUtil
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.VSAUsersDTO
;
import
org.hibernate.SQLQuery
;
import
org.hibernate.Session
;
import
org.hibernate.SessionFactory
;
import
org.hibernate.transform.Transformers
;
import
org.hibernate.type.DateType
;
import
org.hibernate.type.LongType
;
import
org.hibernate.type.ShortType
;
import
org.hibernate.type.StringType
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.*
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
@Service
@Service
public
class
AgentsServiceImpl
implements
AgentsService
{
public
class
AgentsServiceImpl
implements
AgentsService
{
...
@@ -32,4 +47,87 @@ public class AgentsServiceImpl implements AgentsService {
...
@@ -32,4 +47,87 @@ public class AgentsServiceImpl implements AgentsService {
return
result
;
return
result
;
}
}
@Override
public
ResultDTO
getAllAgentsByCompanySiteId
(
int
page
,
int
pageSize
,
Long
companySiteId
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
Session
session
=
sessionFactory
.
openSession
();
session
.
beginTransaction
();
if
(
DataUtil
.
isNullOrZero
(
companySiteId
))
{
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
return
resultDTO
;
}
try
{
StringBuilder
sqlStrBuilder
=
new
StringBuilder
();
sqlStrBuilder
.
append
(
SQLBuilder
.
getSqlQueryById
(
SQLBuilder
.
SQL_MODULE_CAMPAIGN_MNG
,
"campaign-agents-by-params"
));
sqlStrBuilder
.
append
(
" LEFT JOIN CAMPAIGN_AGENT b on a.USER_ID = b.AGENT_ID"
);
sqlStrBuilder
.
append
(
" WHERE 1 = 1"
);
sqlStrBuilder
.
append
(
" AND a.COMPANY_SITE_ID = :p_company_site_id"
);
sqlStrBuilder
.
append
(
" AND b.AGENT_ID IS NULL"
);
sqlStrBuilder
.
append
(
" ORDER BY a.FULL_NAME ASC"
);
SQLQuery
query
=
session
.
createSQLQuery
(
sqlStrBuilder
.
toString
());
query
.
setParameter
(
"p_company_site_id"
,
companySiteId
);
query
.
addScalar
(
"userId"
,
new
LongType
());
query
.
addScalar
(
"userName"
,
new
StringType
());
query
.
addScalar
(
"status"
,
new
ShortType
());
query
.
addScalar
(
"fullName"
,
new
StringType
());
query
.
addScalar
(
"userTypeId"
,
new
LongType
());
query
.
addScalar
(
"createDate"
,
new
DateType
());
query
.
addScalar
(
"description"
,
new
StringType
());
query
.
addScalar
(
"staffCode"
,
new
StringType
());
query
.
addScalar
(
"managerId"
,
new
LongType
());
query
.
addScalar
(
"locationId"
,
new
LongType
());
query
.
addScalar
(
"deptId"
,
new
LongType
());
query
.
addScalar
(
"deptLevel"
,
new
StringType
());
query
.
addScalar
(
"posId"
,
new
LongType
());
query
.
addScalar
(
"deptName"
,
new
StringType
());
query
.
addScalar
(
"groupId"
,
new
LongType
());
query
.
addScalar
(
"siteId"
,
new
LongType
());
query
.
addScalar
(
"companySiteId"
,
new
LongType
());
query
.
addScalar
(
"agentType"
,
new
ShortType
());
query
.
addScalar
(
"mobileNumber"
,
new
StringType
());
query
.
addScalar
(
"facebookId"
,
new
StringType
());
query
.
addScalar
(
"loginType"
,
new
ShortType
());
query
.
addScalar
(
"googleId"
,
new
StringType
());
query
.
addScalar
(
"email"
,
new
StringType
());
query
.
addScalar
(
"availableTicket"
,
new
LongType
());
query
.
addScalar
(
"userKazooId"
,
new
StringType
());
query
.
addScalar
(
"filterType"
,
new
ShortType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
VSAUsersDTO
.
class
));
int
count
=
0
;
List
<
VSAUsersDTO
>
dtoList
=
query
.
list
();
if
(
dtoList
.
size
()
>
0
)
{
count
=
query
.
list
().
size
();
}
Pageable
pageable
=
PageRequest
.
of
(
page
,
pageSize
);
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
VSAUsersDTO
>
data
=
query
.
list
();
Page
<
VSAUsersDTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
resultDTO
.
setData
(
dataPage
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
}
catch
(
Exception
e
)
{
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
finally
{
session
.
close
();
}
return
resultDTO
;
}
}
}
src/main/java/com/viettel/campaign/service/impl/CustomerServiceImpl.java
View file @
d215eceb
...
@@ -7,6 +7,7 @@ import com.viettel.campaign.mapper.CustomerMapper;
...
@@ -7,6 +7,7 @@ import com.viettel.campaign.mapper.CustomerMapper;
import
com.viettel.campaign.model.ccms_full.Customer
;
import
com.viettel.campaign.model.ccms_full.Customer
;
import
com.viettel.campaign.model.ccms_full.CustomerContact
;
import
com.viettel.campaign.model.ccms_full.CustomerContact
;
import
com.viettel.campaign.model.ccms_full.CustomerList
;
import
com.viettel.campaign.model.ccms_full.CustomerList
;
import
com.viettel.campaign.model.ccms_full.VSAUsers
;
import
com.viettel.campaign.repository.ccms_full.*
;
import
com.viettel.campaign.repository.ccms_full.*
;
import
com.viettel.campaign.service.CustomerService
;
import
com.viettel.campaign.service.CustomerService
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.Constants
;
...
@@ -69,6 +70,9 @@ public class CustomerServiceImpl implements CustomerService {
...
@@ -69,6 +70,9 @@ public class CustomerServiceImpl implements CustomerService {
@Qualifier
(
DataSourceQualify
.
NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL
)
@Qualifier
(
DataSourceQualify
.
NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL
)
NamedParameterJdbcTemplate
namedParameterJdbcTemplate
;
NamedParameterJdbcTemplate
namedParameterJdbcTemplate
;
@Autowired
VSAUsersRepository
vsaUsersRepository
;
@Override
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
getAllCustomer
(
int
page
,
int
pageSize
,
String
sort
,
long
customerListId
,
long
companySiteId
)
{
public
ResultDTO
getAllCustomer
(
int
page
,
int
pageSize
,
String
sort
,
long
customerListId
,
long
companySiteId
)
{
...
@@ -88,7 +92,7 @@ public class CustomerServiceImpl implements CustomerService {
...
@@ -88,7 +92,7 @@ public class CustomerServiceImpl implements CustomerService {
StringBuilder
sqlStrBuilder
=
new
StringBuilder
();
StringBuilder
sqlStrBuilder
=
new
StringBuilder
();
sqlStrBuilder
.
append
(
SQLBuilder
.
getSqlQueryById
(
SQLBuilder
.
SQL_MODULE_CAMPAIGN_MNG
,
"campaign-customer-detail-by-params"
));
sqlStrBuilder
.
append
(
SQLBuilder
.
getSqlQueryById
(
SQLBuilder
.
SQL_MODULE_CAMPAIGN_MNG
,
"campaign-customer-detail-by-params"
));
sqlStrBuilder
.
append
(
" ORDER BY
name DE
SC"
);
sqlStrBuilder
.
append
(
" ORDER BY
b.NAME A
SC"
);
SQLQuery
query
=
session
.
createSQLQuery
(
sqlStrBuilder
.
toString
());
SQLQuery
query
=
session
.
createSQLQuery
(
sqlStrBuilder
.
toString
());
...
@@ -110,13 +114,6 @@ public class CustomerServiceImpl implements CustomerService {
...
@@ -110,13 +114,6 @@ public class CustomerServiceImpl implements CustomerService {
query
.
addScalar
(
"ipccStatus"
,
new
StringType
());
query
.
addScalar
(
"ipccStatus"
,
new
StringType
());
query
.
addScalar
(
"mobileNumber"
,
new
StringType
());
query
.
addScalar
(
"mobileNumber"
,
new
StringType
());
query
.
addScalar
(
"email"
,
new
StringType
());
query
.
addScalar
(
"email"
,
new
StringType
());
query
.
addScalar
(
"title"
,
new
StringType
());
query
.
addScalar
(
"type"
,
new
StringType
());
query
.
addScalar
(
"valueCombobox"
,
new
StringType
());
query
.
addScalar
(
"valueCheckbox"
,
new
ShortType
());
query
.
addScalar
(
"valueDate"
,
new
DateType
());
query
.
addScalar
(
"valueNumber"
,
new
LongType
());
query
.
addScalar
(
"valueText"
,
new
StringType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
CustomerCustomDTO
.
class
));
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
CustomerCustomDTO
.
class
));
int
count
=
0
;
int
count
=
0
;
...
...
src/main/java/com/viettel/campaign/web/dto/CustomerCustomDTO.java
View file @
d215eceb
...
@@ -23,11 +23,4 @@ public class CustomerCustomDTO {
...
@@ -23,11 +23,4 @@ public class CustomerCustomDTO {
String
ipccStatus
;
String
ipccStatus
;
String
mobileNumber
;
String
mobileNumber
;
String
email
;
String
email
;
String
title
;
String
type
;
String
valueCombobox
;
Short
valueCheckbox
;
Date
valueDate
;
Long
valueNumber
;
String
valueText
;
}
}
src/main/java/com/viettel/campaign/web/dto/VSAUsersDTO.java
0 → 100644
View file @
d215eceb
package
com.viettel.campaign.web.dto
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
@Getter
@Setter
public
class
VSAUsersDTO
{
Long
userId
;
String
userName
;
Short
status
;
String
fullName
;
Long
userTypeId
;
Date
createDate
;
String
description
;
String
staffCode
;
Long
managerId
;
Long
locationId
;
Long
deptId
;
String
deptLevel
;
Long
posId
;
String
deptName
;
Long
groupId
;
Long
siteId
;
Long
companySiteId
;
Short
agentType
;
String
mobileNumber
;
String
facebookId
;
Short
loginType
;
String
googleId
;
String
email
;
Long
availableTicket
;
String
userKazooId
;
Short
filterType
;
}
src/main/java/com/viettel/campaign/web/rest/AgentsController.java
View file @
d215eceb
...
@@ -25,4 +25,11 @@ public class AgentsController {
...
@@ -25,4 +25,11 @@ public class AgentsController {
ResultDTO
result
=
agentsService
.
getAgentsByAgentId
(
agentId
);
ResultDTO
result
=
agentsService
.
getAgentsByAgentId
(
agentId
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
@GetMapping
(
"/findAll"
)
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
listAgentsByCompanySiteId
(
@RequestParam
(
"page"
)
int
page
,
@RequestParam
(
"pageSize"
)
int
pageSize
,
@RequestParam
(
"companySiteId"
)
Long
companySiteId
)
{
ResultDTO
result
=
agentsService
.
getAllAgentsByCompanySiteId
(
page
,
pageSize
,
companySiteId
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
}
src/main/resources/sql/campaign-mng/campaign-agents-by-params.sql
0 → 100644
View file @
d215eceb
SELECT
a
.
USER_ID
userId
,
a
.
USER_NAME
userName
,
a
.
STATUS
status
,
a
.
FULL_NAME
fullName
,
a
.
USER_TYPE_ID
userTypeId
,
a
.
CREATE_DATE
createDate
,
a
.
DESCRIPTION
description
,
a
.
STAFF_CODE
staffCode
,
a
.
MANAGER_ID
managerId
,
a
.
LOCATION_ID
locationId
,
a
.
DEPT_ID
deptId
,
a
.
DEPT_LEVEL
deptLevel
,
a
.
POS_ID
posId
,
a
.
DEPT_NAME
deptName
,
a
.
GROUP_ID
groupId
,
a
.
SITE_ID
siteId
,
a
.
COMPANY_SITE_ID
companySiteId
,
a
.
AGENT_TYPE
agentType
,
a
.
MOBILE_NUMBER
mobileNumber
,
a
.
FACEBOOK_ID
facebookId
,
a
.
LOGIN_TYPE
loginType
,
a
.
GOOGLE_ID
googleId
,
a
.
EMAIL
email
,
a
.
AVAILABLE_TICKET
availableTicket
,
a
.
USER_KAZOO_ID
userKazooId
,
b
.
FILTER_TYPE
filterType
FROM
VSA_USERS
a
-- LEFT JOIN CAMPAIGN_AGENT b on a.USER_ID = b.AGENT_ID
-- WHERE 1 = 1
-- AND a.COMPANY_SITE_ID = :p_company_site_id
src/main/resources/sql/campaign-mng/campaign-customer-detail-by-params.sql
View file @
d215eceb
-- select
-- a.CUSTOMER_LIST_MAPPING_ID customerListMappingId,
-- a.COMPANY_SITE_ID companySiteId,
-- a.CUSTOMER_LIST_ID customerListId,
-- a.CUSTOMER_ID customerId,
-- b.NAME name,
-- b.DESCRIPTION description,
-- b.COMPANY_NAME companyName,
-- b.CUSTOMER_TYPE customerType,
-- b.CURRENT_ADDRESS currentAddress,
-- b.CALL_ALLOWED callAllowed,
-- b.EMAIL_ALLOWED emailAllowed,
-- b.SMS_ALLOWED smsAllowed,
-- b.IPCC_STATUS ipccStatus,
-- c.MOBILE mobileNumber,
-- d.EMAIL email
-- from CUSTOMER_LIST_MAPPING a
-- join CUSTOMER b on a.CUSTOMER_ID = b.CUSTOMER_ID
-- left join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY NULL) AS MOBILE
-- FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 5 GROUP BY CUSTOMER_ID) c on b.CUSTOMER_ID = c.CUSTOMER_ID
-- left join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY NULL) AS EMAIL
-- FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 2 GROUP BY CUSTOMER_ID) d on b.CUSTOMER_ID = d.CUSTOMER_ID
-- where 1 = 1
-- and COMPANY_SITE_ID = :p_company_site_id
-- and CUSTOMER_LIST_ID = :p_customer_list_id
-- test dynamic field
select
select
a
.
CUSTOMER_LIST_MAPPING_ID
customerListMappingId
,
a
.
CUSTOMER_LIST_MAPPING_ID
customerListMappingId
,
a
.
COMPANY_SITE_ID
companySiteId
,
a
.
COMPANY_SITE_ID
companySiteId
,
...
@@ -41,26 +13,53 @@ select
...
@@ -41,26 +13,53 @@ select
b
.
SMS_ALLOWED
smsAllowed
,
b
.
SMS_ALLOWED
smsAllowed
,
b
.
IPCC_STATUS
ipccStatus
,
b
.
IPCC_STATUS
ipccStatus
,
c
.
MOBILE
mobileNumber
,
c
.
MOBILE
mobileNumber
,
d
.
EMAIL
email
,
d
.
EMAIL
email
e
.
TITLE
title
,
f
.
TYPE
type
,
h
.
VALUE_COMBOBOX
valueCombobox
,
e
.
VALUE_CHECKBOX
valueCheckbox
,
e
.
VALUE_DATE
valueDate
,
e
.
VALUE_NUMBER
valueNumber
,
e
.
VALUE_TEXT
valueText
from
CUSTOMER_LIST_MAPPING
a
from
CUSTOMER_LIST_MAPPING
a
join
CUSTOMER
b
on
a
.
CUSTOMER_ID
=
b
.
CUSTOMER_ID
join
CUSTOMER
b
on
a
.
CUSTOMER_ID
=
b
.
CUSTOMER_ID
left
join
(
SELECT
CUSTOMER_ID
,
LISTAGG
(
CONTACT
,
', '
)
WITHIN
GROUP
(
ORDER
BY
NULL
)
AS
MOBILE
left
join
(
SELECT
CUSTOMER_ID
,
LISTAGG
(
CONTACT
,
', '
)
WITHIN
GROUP
(
ORDER
BY
NULL
)
AS
MOBILE
FROM
CUSTOMER_CONTACT
WHERE
CONTACT_TYPE
=
5
GROUP
BY
CUSTOMER_ID
)
c
on
b
.
CUSTOMER_ID
=
c
.
CUSTOMER_ID
FROM
CUSTOMER_CONTACT
WHERE
CONTACT_TYPE
=
5
GROUP
BY
CUSTOMER_ID
)
c
on
b
.
CUSTOMER_ID
=
c
.
CUSTOMER_ID
left
join
(
SELECT
CUSTOMER_ID
,
LISTAGG
(
CONTACT
,
', '
)
WITHIN
GROUP
(
ORDER
BY
NULL
)
AS
EMAIL
left
join
(
SELECT
CUSTOMER_ID
,
LISTAGG
(
CONTACT
,
', '
)
WITHIN
GROUP
(
ORDER
BY
NULL
)
AS
EMAIL
FROM
CUSTOMER_CONTACT
WHERE
CONTACT_TYPE
=
2
GROUP
BY
CUSTOMER_ID
)
d
on
b
.
CUSTOMER_ID
=
d
.
CUSTOMER_ID
FROM
CUSTOMER_CONTACT
WHERE
CONTACT_TYPE
=
2
GROUP
BY
CUSTOMER_ID
)
d
on
b
.
CUSTOMER_ID
=
d
.
CUSTOMER_ID
left
join
CUSTOMIZE_FIELD_OBJECT
e
on
b
.
CUSTOMER_ID
=
e
.
OBJECT_ID
left
join
CUSTOMIZE_FIELDS
f
on
e
.
CUSTOMIZE_FIELDS_ID
=
f
.
CUSTOMIZE_FIELD_ID
left
join
(
SELECT
FIELD_OPTION_VALUE_ID
,
NAME
AS
VALUE_COMBOBOX
FROM
CUSTOMIZE_FIELD_OPTION_VALUE
)
h
on
h
.
FIELD_OPTION_VALUE_ID
=
e
.
FIELD_OPTION_VALUE_ID
where
1
=
1
where
1
=
1
and
a
.
COMPANY_SITE_ID
=
:
p_company_site_id
and
a
.
COMPANY_SITE_ID
=
:
p_company_site_id
and
a
.
CUSTOMER_LIST_ID
=
:
p_customer_list_id
and
a
.
CUSTOMER_LIST_ID
=
:
p_customer_list_id
and
e
.
FUNCTION_CODE
=
'CUSTOMER'
order
by
a
.
CUSTOMER_ID
-- test dynamic field
-- select
-- a.CUSTOMER_LIST_MAPPING_ID customerListMappingId,
-- a.COMPANY_SITE_ID companySiteId,
-- a.CUSTOMER_LIST_ID customerListId,
-- a.CUSTOMER_ID customerId,
-- b.NAME name,
-- b.DESCRIPTION description,
-- b.COMPANY_NAME companyName,
-- b.CUSTOMER_TYPE customerType,
-- b.CURRENT_ADDRESS currentAddress,
-- b.CALL_ALLOWED callAllowed,
-- b.EMAIL_ALLOWED emailAllowed,
-- b.SMS_ALLOWED smsAllowed,
-- b.IPCC_STATUS ipccStatus,
-- c.MOBILE mobileNumber,
-- d.EMAIL email,
-- e.TITLE title,
-- f.TYPE type,
-- h.VALUE_COMBOBOX valueCombobox,
-- e.VALUE_CHECKBOX valueCheckbox,
-- e.VALUE_DATE valueDate,
-- e.VALUE_NUMBER valueNumber,
-- e.VALUE_TEXT valueText
-- from CUSTOMER_LIST_MAPPING a
-- join CUSTOMER b on a.CUSTOMER_ID = b.CUSTOMER_ID
-- left join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY NULL) AS MOBILE
-- FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 5 GROUP BY CUSTOMER_ID) c on b.CUSTOMER_ID = c.CUSTOMER_ID
-- left join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY NULL) AS EMAIL
-- FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 2 GROUP BY CUSTOMER_ID) d on b.CUSTOMER_ID = d.CUSTOMER_ID
-- left join CUSTOMIZE_FIELD_OBJECT e on b.CUSTOMER_ID = e.OBJECT_ID
-- left join CUSTOMIZE_FIELDS f on e.CUSTOMIZE_FIELDS_ID = f.CUSTOMIZE_FIELD_ID
-- left join (SELECT FIELD_OPTION_VALUE_ID, NAME AS VALUE_COMBOBOX
-- FROM CUSTOMIZE_FIELD_OPTION_VALUE) h on h.FIELD_OPTION_VALUE_ID = e.FIELD_OPTION_VALUE_ID
-- where 1 = 1
-- and a.COMPANY_SITE_ID = :p_company_site_id
-- and a.CUSTOMER_LIST_ID = :p_customer_list_id
-- and e.FUNCTION_CODE = 'CUSTOMER'
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