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
42f7a384
Commit
42f7a384
authored
Nov 14, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
会员与租车订单统计
parent
cb58469c
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
189 additions
and
81 deletions
+189
-81
StatisticsStatusEnum.java
...latform/order/contant/enumerate/StatisticsStatusEnum.java
+48
-0
OrderAccountDTO.java
...com/xxfc/platform/order/pojo/account/OrderAccountDTO.java
+7
-0
OrderDTO.java
.../main/java/com/xxfc/platform/order/pojo/dto/OrderDTO.java
+1
-0
OrderAccountBiz.java
...ain/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
+4
-0
OrderMemberReceivedStatisticsBiz.java
.../platform/order/biz/OrderMemberReceivedStatisticsBiz.java
+96
-65
OrderRentVehicleReceivedStatisticsBiz.java
...form/order/biz/OrderRentVehicleReceivedStatisticsBiz.java
+30
-14
OrderRentVehicleReceivedStatisticsMapper.java
...rder/mapper/OrderRentVehicleReceivedStatisticsMapper.java
+2
-1
BaseOrderMapper.xml
...rder-server/src/main/resources/mapper/BaseOrderMapper.xml
+1
-1
No files found.
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/StatisticsStatusEnum.java
0 → 100644
View file @
42f7a384
package
com
.
xxfc
.
platform
.
order
.
contant
.
enumerate
;
import
org.assertj.core.util.Lists
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/11/14 14:28
*/
public
enum
StatisticsStatusEnum
{
;
public
static
List
<
String
>
orderStates
;
public
static
List
<
String
>
orderOrigins
;
public
static
List
<
String
>
orderPayWays
;
static
{
// 2 取消 3未完成 6 已完成
orderStates
=
Lists
.
newArrayList
(
"2"
,
"3"
,
"6"
);
// 1 app 2 小程序 3 其他
orderOrigins
=
Lists
.
newArrayList
(
"1"
,
"2"
,
"3"
);
// 1 微信 2 支付宝
orderPayWays
=
Lists
.
newArrayList
(
"1"
,
"2"
);
}
public
static
List
<
String
>
statisticsSateGroup
(
List
<
Integer
>
companyIdList
){
List
<
String
>
orderStatisticsStateGroups
=
new
ArrayList
<>();
for
(
Integer
companyId
:
companyIdList
)
{
for
(
String
orderOrigin
:
orderOrigins
)
{
for
(
String
orderPayWay
:
orderPayWays
)
{
for
(
String
orderState
:
orderStates
)
{
// 公司id-订单来源-支付方式-订单状态
orderStatisticsStateGroups
.
add
(
String
.
format
(
"%d-%s-%s-%s"
,
companyId
,
orderOrigin
,
orderPayWay
,
orderState
));
}
}
}
}
return
orderStatisticsStateGroups
;
}
public
static
List
<
String
>
getOtherStatisticsStateGroup
(
List
<
Integer
>
companyIdList
,
List
<
String
>
statisticsStates
){
List
<
String
>
sateGroup
=
statisticsSateGroup
(
companyIdList
);
sateGroup
.
retainAll
(
statisticsStates
);
return
sateGroup
;
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/account/OrderAccountDTO.java
View file @
42f7a384
package
com
.
xxfc
.
platform
.
order
.
pojo
.
account
;
import
com.alibaba.fastjson.JSON
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.xxfc.platform.order.entity.OrderAccount
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.util.StringUtils
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
...
...
@@ -111,6 +113,11 @@ public class OrderAccountDTO implements Serializable {
@Column
(
name
=
"oneDay"
)
private
String
oneDay
;
private
OrderAccountDetail
accountDetailEntity
;
public
OrderAccountDetail
getAccountDetailEntity
()
{
return
StringUtils
.
hasText
(
accountDetail
)?
JSON
.
parseObject
(
accountDetail
,
OrderAccountDetail
.
class
):
new
OrderAccountDetail
();
}
@Override
public
String
toString
()
{
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/dto/OrderDTO.java
View file @
42f7a384
...
...
@@ -28,6 +28,7 @@ public class OrderDTO {
private
Integer
payWay
;
private
Date
crtTime
;
private
Integer
companyId
;
private
String
stateGroup
;
/**
* 会员相关
*/
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
View file @
42f7a384
...
...
@@ -621,4 +621,8 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
orderMsgBiz
.
handelMsgDeposit
(
orvd
,
baseOrder
,
userFeign
.
userDetailById
(
baseOrder
.
getUserId
()).
getData
());
}
public
List
<
OrderAccountDTO
>
selectByOrders
(
List
<
Integer
>
orderIds
)
{
return
null
;
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderMemberReceivedStatisticsBiz.java
View file @
42f7a384
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 @
42f7a384
...
...
@@ -3,6 +3,8 @@ package com.xxfc.platform.order.biz;
import
cn.hutool.core.date.DateField
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
import
com.xxfc.platform.order.entity.OrderAccount
;
import
com.xxfc.platform.order.pojo.account.OrderAccountDTO
;
import
com.xxfc.platform.order.pojo.dto.OrderDTO
;
import
com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO
;
import
lombok.RequiredArgsConstructor
;
...
...
@@ -15,6 +17,7 @@ import com.xxfc.platform.order.mapper.OrderRentVehicleReceivedStatisticsMapper;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -31,6 +34,7 @@ import java.util.stream.Collectors;
public
class
OrderRentVehicleReceivedStatisticsBiz
extends
BaseBiz
<
OrderRentVehicleReceivedStatisticsMapper
,
OrderRentVehicleReceivedStatistics
>
{
private
final
BaseOrderBiz
baseOrderBiz
;
private
final
OrderAccountBiz
orderAccountBiz
;
private
final
int
FINISH
=
6
;
private
final
int
CANCEL
=
2
;
private
final
int
UNFINISH
=
3
;
...
...
@@ -40,15 +44,18 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
return
mapper
.
selectOrderRentVehicleReceivedStatistics
(
orderReceivedStatisticsFindDTO
);
}
public
void
orderRentVehicleReceivedStatistics
(
Date
date
)
{
DateTime
yesterday
=
DateUtil
.
yesterday
();
Date
startDate
=
date
==
null
?
DateUtil
.
beginOfDay
(
yesterday
).
toJdkDate
()
:
DateUtil
.
beginOfDay
(
date
);
Date
endDate
=
date
==
null
?
DateUtil
.
endOfDay
(
yesterday
).
toJdkDate
()
:
DateUtil
.
beginOfDay
(
date
);
String
year
=
String
.
valueOf
(
yesterday
.
getField
(
DateField
.
YEAR
));
String
month
=
String
.
format
(
"%s%d"
,
year
,
yesterday
.
getField
(
DateField
.
MONTH
));
String
weekOfYear
=
String
.
format
(
"%s%d"
,
year
,
yesterday
.
getField
(
DateField
.
DAY_OF_YEAR
));
public
void
orderRentVehicleReceivedStatistics
(
Date
startDate
,
Date
endDate
)
{
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatisticsList
=
new
ArrayList
<>(
18
);
String
year
=
String
.
valueOf
(
DateTime
.
of
(
startDate
).
getField
(
DateField
.
YEAR
));
String
month
=
String
.
format
(
"%s%d"
,
year
,
DateTime
.
of
(
startDate
).
getField
(
DateField
.
MONTH
));
String
weekOfYear
=
String
.
format
(
"%s%d"
,
year
,
DateTime
.
of
(
startDate
).
getField
(
DateField
.
DAY_OF_YEAR
));
List
<
OrderDTO
>
orders
=
baseOrderBiz
.
selectOrdersByTypeAndTime
(
Arrays
.
asList
(
1
),
startDate
,
endDate
);
if
(
CollectionUtils
.
isEmpty
(
orders
)){
return
;
}
List
<
Integer
>
orderIds
=
orders
.
stream
().
map
(
OrderDTO:
:
getId
).
collect
(
Collectors
.
toList
());
List
<
OrderAccountDTO
>
orderAccountDTOList
=
orderAccountBiz
.
selectByOrders
(
orderIds
);
Map
<
Integer
,
List
<
OrderAccountDTO
>>
orderAccountMap
=
orderAccountDTOList
.
stream
().
collect
(
Collectors
.
groupingBy
(
OrderAccountDTO:
:
getOrderId
,
Collectors
.
toList
()));
//分公司id- -->下单来源(3)--->支付方式(2) --> >状态(3)-->3 * 3 * 2 =18
Map
<
Integer
,
Map
<
Integer
,
Map
<
Integer
,
Map
<
Integer
,
List
<
OrderDTO
>>>>>
ordersMap
=
orders
.
stream
().
peek
(
x
->
{
if
(
x
.
getStatus
()
!=
CANCEL
&&
x
.
getStatus
()
!=
FINISH
)
{
...
...
@@ -57,7 +64,7 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
}).
peek
(
x
->{
if
(
Objects
.
isNull
(
x
.
getPayWay
())){
x
.
setPayWay
(
PAYWAYTEMP
);}}).
collect
(
Collectors
.
groupingBy
(
OrderDTO:
:
getCompanyId
,
Collectors
.
groupingBy
(
OrderDTO:
:
getOrderOrigin
,
Collectors
.
groupingBy
(
OrderDTO:
:
getPayWay
,
Collectors
.
groupingBy
(
OrderDTO:
:
getStatus
,
Collectors
.
toList
())))));
Set
<
Map
.
Entry
<
Integer
,
Map
<
Integer
,
Map
<
Integer
,
Map
<
Integer
,
List
<
OrderDTO
>>>>>>
orderEntries
=
ordersMap
.
entrySet
();
/*
Set<Map.Entry<Integer, Map<Integer, Map<Integer, Map<Integer, List<OrderDTO>>>>>> orderEntries = ordersMap.entrySet();
for (Map.Entry<Integer, Map<Integer, Map<Integer, Map<Integer, List<OrderDTO>>>>> orderEntrie : orderEntries) {
//公司id
Integer companyKey = orderEntrie.getKey();
...
...
@@ -89,11 +96,12 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
orderRentVehicleReceivedStatistics.setMonth(month);
orderRentVehicleReceivedStatistics.setWeekOfYear(weekOfYear);
orderRentVehicleReceivedStatistics.setTotalQuantity(orderDTOList.size());
/* orderRentVehicleReceivedStatistics.setTotalAmount()
;
orderRentVehicleReceivedStatistics.setRealAmount();*/
BigDecimal totalAmount = BigDecimal.ZERO
;
BigDecimal realAmount = BigDecimal.ZERO;
for (OrderDTO orderDTO : orderDTOList) {
//完成单
Integer orderId = orderDTO.getId();
List<OrderAccountDTO> orderAccountDTOS = orderAccountMap.get(orderId);
//完成单
if (FINISH == statusKey) {
}
...
...
@@ -107,12 +115,20 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
if (CANCEL == statusKey) {
}
totalAmount.add(orderDTO.getRealAmount());
}
orderRentVehicleReceivedStatistics.setTotalAmount(totalAmount);
orderRentVehicleReceivedStatistics.setRealAmount(realAmount);
orderRentVehicleReceivedStatisticsList.add(orderRentVehicleReceivedStatistics);
}
}
}
}
}*/
insertMemberReceivedStatisticsBatch
(
orderRentVehicleReceivedStatisticsList
);
}
public
void
insertMemberReceivedStatisticsBatch
(
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatistics
)
{
mapper
.
insertList
(
orderRentVehicleReceivedStatistics
);
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mapper/OrderRentVehicleReceivedStatisticsMapper.java
View file @
42f7a384
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.order.mapper;
import
com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics
;
import
com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO
;
import
tk.mybatis.mapper.common.Mapper
;
import
tk.mybatis.mapper.common.special.InsertListMapper
;
import
java.util.List
;
...
...
@@ -13,7 +14,7 @@ import java.util.List;
* @email 18178966185@163.com
* @date 2019-11-08 18:03:42
*/
public
interface
OrderRentVehicleReceivedStatisticsMapper
extends
Mapper
<
OrderRentVehicleReceivedStatistics
>
{
public
interface
OrderRentVehicleReceivedStatisticsMapper
extends
Mapper
<
OrderRentVehicleReceivedStatistics
>
,
InsertListMapper
<
OrderRentVehicleReceivedStatistics
>
{
List
<
OrderRentVehicleReceivedStatistics
>
selectOrderRentVehicleReceivedStatistics
(
OrderReceivedStatisticsFindDTO
orderReceivedStatisticsFindDTO
);
}
xx-order/xx-order-server/src/main/resources/mapper/BaseOrderMapper.xml
View file @
42f7a384
...
...
@@ -357,7 +357,7 @@
select bo.*,omd.memberLevel from (select `id`,`type`,`status`,`order_amount` AS `orderAmount`, `real_amount`AS
`realAmount`,`order_origin` AS `orderOrigin`,
`pay_way` AS `payWay`,`crt_time`AS `crtTime`
from `base_order` where `crt_time` between #{startDate} and #{endDate} and `type` IN
<foreach
collection=
"types"
from `base_order` where `
has_pay`=1 and `
crt_time` between #{startDate} and #{endDate} and `type` IN
<foreach
collection=
"types"
item=
"type"
open=
"("
close=
")"
separator=
","
>
...
...
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