Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
3ff10915
Commit
3ff10915
authored
Nov 19, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
租车订单统计
parent
52848b85
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
301 additions
and
138 deletions
+301
-138
LevelEnum.java
...ithub/wxiaoqi/security/common/enumconstant/LevelEnum.java
+15
-0
OrderDTO.java
.../main/java/com/xxfc/platform/order/pojo/dto/OrderDTO.java
+8
-0
OrderMemberReceivedStatisticsBiz.java
.../platform/order/biz/OrderMemberReceivedStatisticsBiz.java
+98
-50
OrderReceivedStatisticsBiz.java
...m/xxfc/platform/order/biz/OrderReceivedStatisticsBiz.java
+121
-67
OrderRentVehicleReceivedStatisticsBiz.java
...form/order/biz/OrderRentVehicleReceivedStatisticsBiz.java
+59
-21
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/enumconstant/LevelEnum.java
View file @
3ff10915
package
com
.
github
.
wxiaoqi
.
security
.
common
.
enumconstant
;
import
java.util.EnumSet
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* @author libin
* @version 1.0
...
...
@@ -16,8 +21,18 @@ public enum LevelEnum {
this
.
desc
=
desc
;
}
public
static
LevelEnum
getLevelEnumByLevel
(
Integer
level
){
return
levelMap
.
get
(
level
);
}
private
Integer
level
;
private
String
desc
;
private
static
Map
<
Integer
,
LevelEnum
>
levelMap
;
static
{
levelMap
=
EnumSet
.
allOf
(
LevelEnum
.
class
).
stream
().
collect
(
Collectors
.
toMap
(
LevelEnum:
:
getLevel
,
Function
.
identity
()));
}
public
Integer
getLevel
()
{
return
level
;
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/dto/OrderDTO.java
View file @
3ff10915
package
com
.
xxfc
.
platform
.
order
.
pojo
.
dto
;
import
com.github.wxiaoqi.security.common.enumconstant.LevelEnum
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
...
...
@@ -35,4 +36,11 @@ public class OrderDTO {
*/
private
Integer
memberLevel
;
private
LevelEnum
levelEnum
;
public
LevelEnum
getLevelEnum
(){
return
LevelEnum
.
getLevelEnumByLevel
(
this
.
memberLevel
);
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderMemberReceivedStatisticsBiz.java
View file @
3ff10915
This diff is collapsed.
Click to expand it.
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderReceivedStatisticsBiz.java
View file @
3ff10915
This diff is collapsed.
Click to expand it.
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderRentVehicleReceivedStatisticsBiz.java
View file @
3ff10915
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.google.common.collect.Lists
;
import
com.xxfc.platform.order.contant.enumerate.StatisticsStatusEnum
;
...
...
@@ -38,15 +39,26 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
private
final
String
NO_PAY_STATE_STR
=
String
.
format
(
"%s-%d"
,
"-"
,
StatisticsStatusEnum
.
NO_PAY_WAY
);
private
final
int
PAY_ORDER
=
101
;
/**
* 租车统计查询
* @param orderReceivedStatisticsFindDTO
* @return
*/
public
List
<
OrderRentVehicleReceivedStatistics
>
selectOrderReceivedStatistics
(
OrderReceivedStatisticsFindDTO
orderReceivedStatisticsFindDTO
)
{
return
mapper
.
selectOrderRentVehicleReceivedStatistics
(
orderReceivedStatisticsFindDTO
);
}
/**
* 租车统计处理
* @param startDate 开始时间
* @param endDate 结束时间
*/
public
void
orderRentVehicleReceivedStatistics
(
Date
startDate
,
Date
endDate
)
{
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatisticsList
=
new
ArrayList
<>();
//根据租车订单类型 时间查询
List
<
OrderDTO
>
orderDTOS
=
baseOrderBiz
.
selectOrdersByTypeAndTime
(
Arrays
.
asList
(
StatisticsStatusEnum
.
ORDER_RENT_VEHICLE_TYPE
),
startDate
,
endDate
);
//数据处理 状态组合
Map
<
String
,
Long
>
stateGroupMap
=
orderDTOS
.
stream
().
peek
(
x
->
{
x
.
setStateGroup
(
String
.
format
(
"%d-%d-%d-%d"
,
x
.
getCompanyId
(),
x
.
getOrderOrigin
(),
x
.
getPayWay
()
==
null
?
StatisticsStatusEnum
.
NO_PAY_WAY
:
x
.
getPayWay
(),
x
.
getStatus
()));
})
...
...
@@ -54,7 +66,7 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
//订单账目信息
List
<
OrderAccountBo
>
orderAccountBoList
=
orderAccountBiz
.
selectByDate
(
startDate
,
endDate
);
//
数据处理 把 未支付的单的支付方式 设置为 99
//
账目数据处理 状态组合
Map
<
String
,
List
<
OrderAccountBo
>>
ordersMap
=
orderAccountBoList
.
stream
().
peek
(
x
->
{
x
.
setStateGroup
(
String
.
format
(
"%d-%d-%d-%d"
,
x
.
getCompanyId
(),
x
.
getOrderOrigin
(),
x
.
getPayWay
()
==
null
?
StatisticsStatusEnum
.
NO_PAY_WAY
:
x
.
getPayWay
(),
x
.
getStatus
()));
}).
collect
(
Collectors
.
groupingBy
(
OrderAccountBo:
:
getStateGroup
,
Collectors
.
toList
()));
...
...
@@ -80,24 +92,28 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
}
//未支付单
List
<
OrderDTO
>
noPayOrders
=
orderDTOS
.
stream
().
filter
(
x
->
x
.
getPayWay
()
!=
null
).
collect
(
Collectors
.
toList
());
BigDecimal
totalNoPayAmount
=
CollectionUtils
.
isEmpty
(
noPayOrders
)
?
BigDecimal
.
ZERO
:
noPayOrders
.
stream
().
map
(
OrderDTO:
:
getRealAmount
).
reduce
(
BigDecimal
.
ZERO
,
(
x
,
y
)
->
x
.
add
(
y
));
int
totalNoPayOrderQuantity
=
CollectionUtils
.
isEmpty
(
noPayOrders
)
?
0
:
noPayOrders
.
size
();
List
<
BigDecimal
>
noPayOrdersPrices
=
orderDTOS
.
stream
().
filter
(
x
->
x
.
getPayWay
()
!=
null
).
map
(
OrderDTO:
:
getRealAmount
).
collect
(
Collectors
.
toList
());
BigDecimal
totalNoPayAmount
=
CollectionUtils
.
isEmpty
(
noPayOrdersPrices
)
?
BigDecimal
.
ZERO
:
noPayOrdersPrices
.
stream
().
reduce
(
BigDecimal
.
ZERO
,
(
x
,
y
)
->
x
.
add
(
y
));
int
totalNoPayOrderQuantity
=
CollectionUtils
.
isEmpty
(
noPayOrdersPrices
)
?
0
:
noPayOrdersPrices
.
size
();
//查询分公司ids
List
<
Integer
>
companyIds
=
vehicleFeign
.
findCompanyIdsByAreaId
(
null
);
//创建剩余状态组合的租车统计对象
List
stisticsActiveState
=
ordersMap
.
isEmpty
()
?
Collections
.
EMPTY_LIST
:
Lists
.
newArrayList
(
ordersMap
.
keySet
());
List
<
OrderRentVehicleReceivedStatistics
>
otherStatisticsStateGroupList
=
createOtherStatisticsStateGroupList
(
startDate
,
stisticsActiveState
,
companyIds
,
totalNoPayAmount
,
totalNoPayOrderQuantity
);
orderRentVehicleReceivedStatisticsList
.
addAll
(
otherStatisticsStateGroupList
);
//保存
insertMemberReceivedStatisticsBatch
(
orderRentVehicleReceivedStatisticsList
);
}
/**
* 创建剩余状态数据
*
* @param startDate
* @param statisticsStateGroups
* @param companyIds
* @param startDate 时间
* @param statisticsStateGroups 状态组合 集合
* @param companyIds 公司ids
* @param totalNoPayAmount 未支付金额
* @param totalNoPayOrderQuantity 未支付订单数
* @return
*/
private
List
<
OrderRentVehicleReceivedStatistics
>
createOtherStatisticsStateGroupList
(
Date
startDate
,
...
...
@@ -105,10 +121,31 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
List
<
Integer
>
companyIds
,
BigDecimal
totalNoPayAmount
,
Integer
totalNoPayOrderQuantity
)
{
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatisticsList
=
new
ArrayList
<>();
//获取剩余状态组合
List
<
String
>
otherStatisticsStateGroup
=
StatisticsStatusEnum
.
getOtherStatisticsStateGroup
(
companyIds
,
statisticsStateGroups
);
List
<
OrderRentVehicleReceivedStatistics
>
result
=
otherStatisticsStateGroup
.
parallelStream
().
map
(
stateGroup
->
{
OrderRentVehicleReceivedStatistics
orderRentVehicleReceivedStatistics
=
StatisticsStatusEnum
.
wrapStatisticsObject
(
startDate
,
stateGroup
,
new
OrderRentVehicleReceivedStatistics
());
//创建租车统计克隆对象
OrderRentVehicleReceivedStatistics
orderRentVehicleReceivedStatistics
=
new
OrderRentVehicleReceivedStatistics
();
//统计对象的生成
otherStatisticsStateGroup
.
parallelStream
().
map
(
stateGroup
->
{
OrderRentVehicleReceivedStatistics
orderRentVehicleReceivedStatisticsClone
=
StatisticsStatusEnum
.
wrapStatisticsObject
(
startDate
,
stateGroup
,
ObjectUtil
.
cloneByStream
(
orderRentVehicleReceivedStatistics
));
orderRentVehicleReceivedStatisticsClone
=
wrapOrderRentVehicleReceivedStatistics
(
stateGroup
,
totalNoPayAmount
,
totalNoPayOrderQuantity
,
orderRentVehicleReceivedStatisticsClone
);
orderRentVehicleReceivedStatisticsList
.
add
(
orderRentVehicleReceivedStatisticsClone
);
return
orderRentVehicleReceivedStatisticsClone
;
}).
count
();
return
orderRentVehicleReceivedStatisticsList
;
}
/**
*
* @param stateGroup 状态组合
* @param totalNoPayAmount 未支付金额
* @param totalNoPayOrderQuantity 未支付订单量
* @param orderRentVehicleReceivedStatistics 租车统计对象
* @return
*/
private
OrderRentVehicleReceivedStatistics
wrapOrderRentVehicleReceivedStatistics
(
String
stateGroup
,
BigDecimal
totalNoPayAmount
,
Integer
totalNoPayOrderQuantity
,
OrderRentVehicleReceivedStatistics
orderRentVehicleReceivedStatistics
){
if
(
stateGroup
.
contains
(
NO_PAY_STATE_STR
))
{
orderRentVehicleReceivedStatistics
.
setTotalAmount
(
totalNoPayAmount
);
orderRentVehicleReceivedStatistics
.
setTotalQuantity
(
totalNoPayOrderQuantity
);
...
...
@@ -117,11 +154,12 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
orderRentVehicleReceivedStatistics
.
setTotalQuantity
(
0
);
}
return
orderRentVehicleReceivedStatistics
;
}).
collect
(
Collectors
.
toList
());
orderRentVehicleReceivedStatisticsList
.
addAll
(
result
==
null
?
Collections
.
EMPTY_LIST
:
result
);
return
orderRentVehicleReceivedStatisticsList
;
}
/**
* 批量插入数据
* @param orderRentVehicleReceivedStatistics
*/
public
void
insertMemberReceivedStatisticsBatch
(
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatistics
)
{
mapper
.
insertList
(
orderRentVehicleReceivedStatistics
);
}
...
...
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