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
8d9584f9
Commit
8d9584f9
authored
5 years ago
by
Phạm Duy Phi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
phipd commit
parent
897c8766
Changes
14
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
234 additions
and
322 deletions
+234
-322
src/main/java/com/viettel/campaign/mapper/CampaignAgentsMapper.java
...ava/com/viettel/campaign/mapper/CampaignAgentsMapper.java
+0
-32
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignAgentsRepository.java
...mpaign/repository/ccms_full/CampaignAgentsRepository.java
+0
-7
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignRepositoryCustom.java
...mpaign/repository/ccms_full/CampaignRepositoryCustom.java
+0
-5
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignExecuteRepositoryImp.java
...pository/ccms_full/impl/CampaignExecuteRepositoryImp.java
+207
-49
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
...ign/repository/ccms_full/impl/CampaignRepositoryImpl.java
+3
-58
src/main/java/com/viettel/campaign/service/CampaignService.java
...in/java/com/viettel/campaign/service/CampaignService.java
+0
-6
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+0
-14
src/main/java/com/viettel/campaign/web/dto/CampaignAgentsDTO.java
.../java/com/viettel/campaign/web/dto/CampaignAgentsDTO.java
+0
-16
src/main/java/com/viettel/campaign/web/dto/CustomerCustomDTO.java
.../java/com/viettel/campaign/web/dto/CustomerCustomDTO.java
+0
-4
src/main/java/com/viettel/campaign/web/dto/request_dto/CampaignRequestDTO.java
...ttel/campaign/web/dto/request_dto/CampaignRequestDTO.java
+0
-4
src/main/java/com/viettel/campaign/web/rest/ApParamController.java
...java/com/viettel/campaign/web/rest/ApParamController.java
+0
-4
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
...ava/com/viettel/campaign/web/rest/CampaignController.java
+0
-14
src/main/resources/sql/campaign-execute/get-execute-interactive.sql
...esources/sql/campaign-execute/get-execute-interactive.sql
+24
-65
src/main/resources/sql/campaign-mng/get-list-customer-reallocation.sql
...urces/sql/campaign-mng/get-list-customer-reallocation.sql
+0
-44
No files found.
src/main/java/com/viettel/campaign/mapper/CampaignAgentsMapper.java
deleted
100644 → 0
View file @
897c8766
package
com.viettel.campaign.mapper
;
import
com.viettel.campaign.model.ccms_full.CampaignAgent
;
import
com.viettel.campaign.web.dto.CampaignAgentsDTO
;
public
class
CampaignAgentsMapper
extends
BaseMapper
<
CampaignAgent
,
CampaignAgentsDTO
>
{
@Override
public
CampaignAgentsDTO
toDtoBean
(
CampaignAgent
campaignAgent
)
{
CampaignAgentsDTO
obj
=
new
CampaignAgentsDTO
();
obj
.
setAgentId
(
campaignAgent
.
getAgentId
());
obj
.
setCampaignAgentId
(
campaignAgent
.
getCampaignAgentId
());
obj
.
setCampaignId
(
campaignAgent
.
getCampaignId
());
obj
.
setCompanySiteId
(
campaignAgent
.
getCompanySiteId
());
obj
.
setFilterType
(
campaignAgent
.
getFilterType
());
obj
.
setReSchedule
(
campaignAgent
.
getReSchedule
());
obj
.
setStatus
(
campaignAgent
.
getStatus
());
return
obj
;
}
@Override
public
CampaignAgent
toPersistenceBean
(
CampaignAgentsDTO
dtoBean
)
{
CampaignAgent
obj
=
new
CampaignAgent
();
obj
.
setAgentId
(
dtoBean
.
getAgentId
());
obj
.
setCampaignAgentId
(
dtoBean
.
getCampaignAgentId
());
obj
.
setCampaignId
(
dtoBean
.
getCampaignId
());
obj
.
setCompanySiteId
(
dtoBean
.
getCompanySiteId
());
obj
.
setFilterType
(
dtoBean
.
getFilterType
());
obj
.
setReSchedule
(
dtoBean
.
getReSchedule
());
obj
.
setStatus
(
dtoBean
.
getStatus
());
return
obj
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignAgentsRepository.java
deleted
100644 → 0
View file @
897c8766
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.model.ccms_full.CampaignAgent
;
import
org.springframework.data.jpa.repository.JpaRepository
;
public
interface
CampaignAgentsRepository
extends
JpaRepository
<
CampaignAgent
,
Long
>
{
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignRepositoryCustom.java
View file @
8d9584f9
...
...
@@ -17,9 +17,4 @@ public interface CampaignRepositoryCustom {
String
getMaxCampaignIndex
();
ResultDTO
checkAllowStatusToPrepare
(
Long
campaignId
);
//hungtt
ResultDTO
findCustomerListReallocation
(
CampaignRequestDTO
dto
);
//hungtt
ResultDTO
reallocationCustomer
(
CampaignRequestDTO
dto
);
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignExecuteRepositoryImp.java
View file @
8d9584f9
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
View file @
8d9584f9
package
com.viettel.campaign.repository.ccms_full.impl
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.ccms_full.CampaignCustomer
;
import
com.viettel.campaign.repository.ccms_full.CampaignRepositoryCustom
;
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.CampaignDTO
;
import
com.viettel.campaign.web.dto.CustomerCustomDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.logging.log4j.LogManager
;
...
...
@@ -19,18 +17,16 @@ import org.hibernate.SessionFactory;
import
org.hibernate.transform.Transformers
;
import
org.hibernate.type.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.data.domain.*
;
import
org.springframework.jdbc.core.BeanPropertyRowMapper
;
import
org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.Query
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
@Repository
public
class
CampaignRepositoryImpl
implements
CampaignRepositoryCustom
{
...
...
@@ -41,10 +37,6 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
@PersistenceContext
(
unitName
=
DataSourceQualify
.
JPA_UNIT_NAME_CCMS_FULL
)
EntityManager
entityManager
;
@Autowired
@Qualifier
(
DataSourceQualify
.
NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL
)
NamedParameterJdbcTemplate
namedParameterJdbcTemplate
;
@Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
logger
.
info
(
"Start search campaign::"
);
...
...
@@ -330,51 +322,4 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
return
result
;
}
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
findCustomerListReallocation
(
CampaignRequestDTO
dto
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
List
<
CustomerCustomDTO
>
list
=
new
ArrayList
<>();
Map
<
String
,
String
>
params
=
new
HashMap
<>();
try
{
String
sql
=
SQLBuilder
.
getSqlQueryById
(
SQLBuilder
.
SQL_MODULE_CAMPAIGN_MNG
,
"get-list-customer-reallocation"
);
params
.
put
(
"p_company_site_id"
,
dto
.
getCompanySiteId
());
params
.
put
(
"p_campaign_id"
,
dto
.
getCampaignId
());
params
.
put
(
"p_list_connect_status"
,
dto
.
getConnectStatus
());
params
.
put
(
"p_page_size"
,
dto
.
getPageSize
().
toString
());
params
.
put
(
"p_page_number"
,
dto
.
getPage
().
toString
());
list
=
namedParameterJdbcTemplate
.
query
(
sql
,
params
,
BeanPropertyRowMapper
.
newInstance
(
CustomerCustomDTO
.
class
));
resultDTO
.
setListData
(
list
);
resultDTO
.
setTotalRow
(
list
.
size
());
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
return
resultDTO
;
}
@Override
public
ResultDTO
reallocationCustomer
(
CampaignRequestDTO
dto
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
try
{
List
<
CustomerCustomDTO
>
list
=
dto
.
getCustomerCustomDTOList
();
for
(
CustomerCustomDTO
customerCustomDTO:
list
)
{
CampaignCustomer
campaignCustomer
=
entityManager
.
find
(
CampaignCustomer
.
class
,
customerCustomDTO
.
getCampaignCustomerId
());
campaignCustomer
.
setStatus
((
short
)
0
);
campaignCustomer
.
setCallStatus
(
null
);
campaignCustomer
.
setRedistribute
((
short
)
1
);
}
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
return
resultDTO
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/CampaignService.java
View file @
8d9584f9
...
...
@@ -49,10 +49,4 @@ public interface CampaignService {
ResultDTO
renewCampaign
(
CampaignDTO
campaignDTO
);
ResultDTO
updateCampaign
(
CampaignDTO
dto
);
//<editor-fold: hungtt>
ResultDTO
findCustomerListReallocation
(
CampaignRequestDTO
dto
);
ResultDTO
reallocationCustomer
(
CampaignRequestDTO
dto
);
//</editor-fold>
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
View file @
8d9584f9
...
...
@@ -453,20 +453,6 @@ public class CampaignServiceImpl implements CampaignService {
return
resultDTO
;
}
// hungtt
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
findCustomerListReallocation
(
CampaignRequestDTO
dto
)
{
return
campaignRepositoryCustom
.
findCustomerListReallocation
(
dto
);
}
// hungtt
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
reallocationCustomer
(
CampaignRequestDTO
dto
)
{
return
campaignRepositoryCustom
.
reallocationCustomer
(
dto
);
}
private
String
generateCampaignCode
(
String
campaignType
,
Short
chanel
)
{
int
year
=
Calendar
.
getInstance
().
get
(
Calendar
.
YEAR
);
String
maxIndexStr
=
campaignRepositoryCustom
.
getMaxCampaignIndex
();
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/web/dto/CampaignAgentsDTO.java
deleted
100644 → 0
View file @
897c8766
package
com.viettel.campaign.web.dto
;
import
lombok.Getter
;
import
lombok.Setter
;
@Getter
@Setter
public
class
CampaignAgentsDTO
extends
BaseDTO
{
Long
campaignAgentId
;
Long
campaignId
;
Long
agentId
;
Short
filterType
;
Integer
status
;
Long
companySiteId
;
Long
reSchedule
;
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/web/dto/CustomerCustomDTO.java
View file @
8d9584f9
...
...
@@ -21,8 +21,4 @@ public class CustomerCustomDTO {
String
ipccStatus
;
String
mobileNumber
;
String
email
;
String
connectStatus
;
String
connectTime
;
String
customerName
;
Long
campaignCustomerId
;
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/web/dto/request_dto/CampaignRequestDTO.java
View file @
8d9584f9
package
com.viettel.campaign.web.dto.request_dto
;
import
com.viettel.campaign.web.dto.BaseDTO
;
import
com.viettel.campaign.web.dto.CustomerCustomDTO
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.List
;
/**
* @author anhvd_itsol
*/
...
...
@@ -45,5 +42,4 @@ public class CampaignRequestDTO extends BaseDTO {
String
surveyStatus
;
String
roleUser
;
String
contactCustId
;
List
<
CustomerCustomDTO
>
customerCustomDTOList
;
}
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/web/rest/ApParamController.java
View file @
8d9584f9
...
...
@@ -21,8 +21,6 @@ public class ApParamController {
private
static
final
String
CONNECT_STATUS
=
"CONNECT_STATUS"
;
private
static
final
String
CONNECT_STATUS_TYPE
=
"1"
;
private
static
final
String
CONNECT_STATUS_RE
=
"CONNECT_STATUS_RE"
;
private
static
final
String
CONNECT_STATUS_TYPE_RE
=
"3"
;
private
static
final
String
SURVEY_STATUS
=
"SURVEY_STATUS"
;
private
static
final
String
SURVEY_STATUS_TYPE
=
"2"
;
private
static
final
String
CAMPAIGN_TYPE
=
"CAMPAIGN_TYPE"
;
...
...
@@ -76,8 +74,6 @@ public class ApParamController {
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboBoxStatus
(
companySiteId
,
CONNECT_STATUS_TYPE
),
HttpStatus
.
OK
);
}
else
if
(
SURVEY_STATUS
.
equals
(
parType
)){
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboBoxStatus
(
companySiteId
,
SURVEY_STATUS_TYPE
),
HttpStatus
.
OK
);
}
else
if
(
CONNECT_STATUS_RE
.
equals
(
parType
))
{
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboBoxStatus
(
companySiteId
,
CONNECT_STATUS_TYPE_RE
),
HttpStatus
.
OK
);
}
else
{
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboCampaignType
(
companySiteId
),
HttpStatus
.
OK
);
}
...
...
This diff is collapsed.
Click to expand it.
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
View file @
8d9584f9
...
...
@@ -215,18 +215,4 @@ public class CampaignController {
ResultDTO
resultDTO
=
campaignService
.
updateCampaign
(
dto
);
return
new
ResponseEntity
<>(
resultDTO
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/findCustomerListReallocation"
)
@ResponseBody
public
ResponseEntity
<?>
findCustomerListReallocation
(
@RequestBody
CampaignRequestDTO
dto
)
{
ResultDTO
result
=
campaignService
.
findCustomerListReallocation
(
dto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/reallocationCustomer"
)
@ResponseBody
public
ResponseEntity
<?>
reallocationCustomer
(
@RequestBody
CampaignRequestDTO
dto
)
{
ResultDTO
result
=
campaignService
.
reallocationCustomer
(
dto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
This diff is collapsed.
Click to expand it.
src/main/resources/sql/campaign-execute/get-execute-interactive.sql
View file @
8d9584f9
with
campaign_type_list
as
(
select
trim
(
regexp_substr
(:
p_list_compaign_type
,
'[^,]+'
,
1
,
level
))
campaign_type
from
dual
connect
by
level
<=
regexp_count
(:
p_list_compaign_type
,
','
)
+
1
),
contact_status_list
as
(
select
trim
(
regexp_substr
(:
p_list_contact_status
,
'[^,]+'
,
1
,
level
))
contact_status
from
dual
connect
by
level
<=
regexp_count
(:
p_list_contact_status
,
','
)
+
1
),
survey_status_list
as
(
select
trim
(
regexp_substr
(:
p_list_survey_status
,
'[^,]+'
,
1
,
level
))
survey_status
from
dual
connect
by
level
<=
regexp_count
(:
p_list_survey_status
,
','
)
+
1
),
record_status_list
as
(
select
trim
(
regexp_substr
(:
p_list_record_status
,
'[^,]+'
,
1
,
level
))
record_status
from
dual
connect
by
level
<=
regexp_count
(:
p_list_record_status
,
','
)
+
1
),
campaign_id_list
as
(
select
trim
(
regexp_substr
(:
p_list_campaign_id
,
'[^,]+'
,
1
,
level
))
campaign_id
from
dual
connect
by
level
<=
regexp_count
(:
p_list_campaign_id
,
','
)
+
1
),
data_temp
as
(
select
b
.
campaign_code
campaignCode
,
select
b
.
campaign_code
campaignCode
,
b
.
campaign_name
campaignName
,
c
.
user_name
userName
,
a
.
phone_number
phoneNumber
,
...
...
@@ -35,31 +9,16 @@ data_temp as (
g
.
status
status
,
a
.
status
recordStatus
,
(
a
.
end_time
-
a
.
start_call
)
*
24
*
60
callTime
from
contact_cust_result
a
from
contact_cust_result
a
left
join
campaign
b
on
a
.
campaign_id
=
b
.
campaign_id
left
join
vsa_users
c
on
a
.
agent_id
=
c
.
user_id
left
join
customer
d
on
a
.
customer_id
=
d
.
customer_id
left
join
campaign_complete_code
e
on
a
.
contact_status
=
e
.
complete_value
left
join
campaign_complete_code
f
on
a
.
call_status
=
e
.
complete_value
left
join
campaign
g
on
a
.
campaign_id
=
g
.
campaign_id
where
a
.
status
<>
0
where
a
.
status
<>
0
and
a
.
company_site_id
=
:
p_company_site_id
and
a
.
create_time
>=
to_date
(:
p_date_from
,
'DD/MM/YYYY'
)
and
a
.
create_time
<=
to_date
(:
p_date_to
,
'DD/MM/YYYY'
)
and
a
.
duration_call
>=
:
p_call_time_from
and
a
.
duration_call
<=
:
p_call_time_to
and
to_char
(
a
.
customer_id
)
like
'%'
||
:
p_customer_id
||
'%'
and
b
.
campaign_type
in
(
select
campaign_type
from
campaign_type_list
)
and
to_char
(
a
.
contact_status
)
in
(
select
contact_status
from
contact_status_list
)
and
to_char
(
a
.
call_status
)
in
(
select
survey_status
from
survey_status_list
)
and
to_char
(
a
.
status
)
in
(
select
record_status
from
record_status_list
)
and
(:
p_phone_number
is
null
or
to_char
(
a
.
phone_number
)
like
'%'
||
:
p_phone_number
||
'%'
)
and
(:
p_list_campaign_id
is
null
or
b
.
campaign_code
in
(
select
campaign_id
from
campaign_id_list
))
and
(:
p_campaign_name
is
null
or
upper
(
b
.
campaign_name
)
like
'%'
||
:
p_campaign_name
||
'%'
)
and
(:
p_user_name
is
null
or
upper
(
c
.
user_name
)
like
'%'
||
:
p_user_name
||
'%'
)
),
data
as
(
select
a
.
*
,
rownum
row_
from
data_temp
a
)
select
*
from
data
where
:
p_page_size
=
0
or
(
row_
>=
((:
p_page_number
-
1
)
*
:
p_page_size
+
1
)
and
row_
<
(:
p_page_number
*
:
p_page_size
+
1
))
This diff is collapsed.
Click to expand it.
src/main/resources/sql/campaign-mng/get-list-customer-reallocation.sql
deleted
100644 → 0
View file @
897c8766
with
contact
as
(
select
customer_id
,
contact
from
(
select
*
from
customer_contact
where
status
=
1
and
contact_type
=
5
and
is_direct_line
=
1
order
by
create_date
desc
)
where
rownum
=
1
),
connect_status
as
(
select
complete_value
,
complete_name
from
campaign_complete_code
where
company_site_id
=
:
p_company_site_id
and
complete_type
=
1
and
complete_value
<>
1
),
connect_status_list
as
(
select
trim
(
regexp_substr
(:
p_list_connect_status
,
'[^,]+'
,
1
,
level
))
connect_status
from
dual
connect
by
level
<=
regexp_count
(:
p_list_connect_status
,
','
)
+
1
),
data
as
(
select
a
.
campaign_customer_id
campaignCustomerId
,
b
.
name
customerName
,
c
.
contact
mobileNumber
,
to_char
(
a
.
call_time
,
'DD/MM/YYYY HH24:MI:SS'
)
connectTime
,
d
.
complete_name
connectStatus
from
campaign_customer
a
left
join
customer
b
on
a
.
customer_id
=
b
.
customer_id
left
join
contact
c
on
a
.
customer_id
=
c
.
customer_id
left
join
connect_status
d
on
d
.
complete_value
=
a
.
status
where
a
.
campaign_id
=
:
p_campaign_id
and
a
.
in_campaign_status
=
1
and
a
.
status
in
(
select
connect_status
from
connect_status_list
)
order
by
connectTime
desc
,
customerName
),
final_data
as
(
select
a
.
*
,
rownum
row_
from
data
a
)
select
*
from
final_data
where
row_
>=
((:
p_page_number
-
1
)
*
:
p_page_size
+
1
)
and
row_
<
(:
p_page_number
*
:
p_page_size
+
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