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
cb47c6f8
Commit
cb47c6f8
authored
Nov 11, 2020
by
unset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
会员统计信息修改
parent
746592d0
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
392 additions
and
387 deletions
+392
-387
MemberOrderStatisticsBo.java
...xxfc/platform/order/pojo/dto/MemberOrderStatisticsBo.java
+2
-15
MemberOrderPageVo.java
...va/com/xxfc/platform/order/pojo/vo/MemberOrderPageVo.java
+3
-1
OrderMemberDetailBiz.java
...ava/com/xxfc/platform/order/biz/OrderMemberDetailBiz.java
+2
-1
OrderMemberService.java
...a/com/xxfc/platform/order/service/OrderMemberService.java
+385
-370
No files found.
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/dto/MemberOrderStatisticsBo.java
View file @
cb47c6f8
...
...
@@ -12,21 +12,8 @@ import java.math.BigDecimal;
*/
@Data
public
class
MemberOrderStatisticsBo
{
//0为全部,其他为会员等级
private
Integer
type
;
private
Integer
orderNum
;
private
BigDecimal
totalAmount
;
/**
* 钻石
*/
private
Integer
diamondOrderNum
;
private
BigDecimal
totalDiamondAmount
;
/**
* 黄金
*/
private
Integer
goldOrderNum
;
private
BigDecimal
totalGoldAmount
;
/**
* 普通
*/
private
Integer
generalOrderNum
;
private
BigDecimal
totalGeneralAmount
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/vo/MemberOrderPageVo.java
View file @
cb47c6f8
...
...
@@ -5,6 +5,8 @@ import com.xxfc.platform.order.pojo.dto.MemberOrderBo;
import
com.xxfc.platform.order.pojo.dto.MemberOrderStatisticsBo
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
...
...
@@ -13,6 +15,6 @@ import lombok.Data;
*/
@Data
public
class
MemberOrderPageVo
{
private
MemberOrderStatisticsBo
memberOrderStatisticsBo
;
private
List
<
MemberOrderStatisticsBo
>
memberOrderStatisticsBo
;
private
PageDataVO
<
MemberOrderBo
>
memberOrderPage
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderMemberDetailBiz.java
View file @
cb47c6f8
...
...
@@ -70,7 +70,7 @@ public class OrderMemberDetailBiz extends BaseBiz<OrderMemberDetailMapper,OrderM
List
<
BaseUserMemberLevel
>
baseUserMemberLevelList
=
userFeign
.
levels
();
if
(
baseUserMemberLevelList
!=
null
&&
baseUserMemberLevelList
.
size
()
>
0
)
{
BaseOrder
baseOrder
=
new
BaseOrder
();
AtomicReference
<
BaseUserMemberLevel
>
currentLevel
=
n
ull
;
AtomicReference
<
BaseUserMemberLevel
>
currentLevel
=
n
ew
AtomicReference
<>()
;
baseUserMemberLevelList
.
parallelStream
().
forEach
(
baseUserMemberLevel
->
{
if
(
dto
.
getMemberLevel
().
equals
(
baseUserMemberLevel
.
getLevel
()))
{
currentLevel
.
set
(
baseUserMemberLevel
);
...
...
@@ -95,6 +95,7 @@ public class OrderMemberDetailBiz extends BaseBiz<OrderMemberDetailMapper,OrderM
baseOrder
.
setOrderOrigin
(
3
);
baseOrder
.
setCrtUser
(
userDTO
.
getUsername
());
baseOrder
.
setCrtName
(
userDTO
.
getName
());
baseOrder
.
setVersion
(
1
);
baseOrderBiz
.
insertSelectiveRe
(
baseOrder
);
OrderMemberDetail
orderMemberDetail
=
new
OrderMemberDetail
();
orderMemberDetail
.
setOrderId
(
baseOrder
.
getId
());
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderMemberService.java
View file @
cb47c6f8
package
com
.
xxfc
.
platform
.
order
.
service
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.map.MapUtil
;
import
com.github.wxiaoqi.security.admin.bo.UserBo
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.common.enumconstant.LevelEnum
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
...
...
@@ -199,74 +199,94 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
/**
* 导出数据
*
* @param memberOrderFindDTO
*/
public
void
exportMemberOrderData
(
MemberOrderFindDTO
memberOrderFindDTO
,
String
name
,
OutputStream
outputStream
)
throws
Exception
{
public
void
exportMemberOrderData
(
MemberOrderFindDTO
memberOrderFindDTO
,
String
name
,
OutputStream
outputStream
)
throws
Exception
{
MemberOrderPageVo
memberOrderPageVo
=
listMemberOrderPage
(
memberOrderFindDTO
);
List
<
MemberOrderBo
>
memberOrderBoList
=
memberOrderPageVo
.
getMemberOrderPage
().
getData
();
MemberOrderStatisticsBo
memberOrderStatisticsBo
=
memberOrderPageVo
.
getMemberOrderStatisticsBo
();
List
<
MemberOrderStatisticsBo
>
memberOrderStatisticsBo
=
memberOrderPageVo
.
getMemberOrderStatisticsBo
();
XSSFWorkbook
hssfWorkbook
=
new
XSSFWorkbook
();
XSSFSheet
sheet
=
hssfWorkbook
.
createSheet
(
name
+
"会员订单列表"
);
XSSFSheet
sheet
=
hssfWorkbook
.
createSheet
(
name
+
"会员订单列表"
);
CellStyle
headerCellStyle
=
createHeaderCellStyle
(
hssfWorkbook
);
CellStyle
generalCellStyle
=
createGeneralCellStyle
(
hssfWorkbook
);
Row
row1
=
sheet
.
createRow
(
0
);
createHeader
(
row1
,
0
,
new
String
[]{
name
+
"会员订单列表"
},
headerCellStyle
);
CellRangeAddress
cellRangeAddress
=
new
CellRangeAddress
(
0
,
0
,
0
,
11
);
createHeader
(
row1
,
0
,
new
String
[]{
name
+
"会员订单列表"
},
headerCellStyle
);
CellRangeAddress
cellRangeAddress
=
new
CellRangeAddress
(
0
,
0
,
0
,
11
);
sheet
.
addMergedRegion
(
cellRangeAddress
);
Row
row2
=
sheet
.
createRow
(
1
);
Cell
row2_cell1
=
row2
.
createCell
(
0
);
row2_cell1
.
setCellValue
(
"统计"
);
row2_cell1
.
setCellStyle
(
headerCellStyle
);
CellRangeAddress
cellRangeAddress2
=
new
CellRangeAddress
(
1
,
2
,
0
,
0
);
CellRangeAddress
cellRangeAddress2
=
new
CellRangeAddress
(
1
,
2
,
0
,
0
);
sheet
.
addMergedRegion
(
cellRangeAddress2
);
String
[]
header2
=
new
String
[]{
"会员订单总数(单)"
,
"会员订单总额(元)"
,
"钻石会员订单(单)"
,
"钻石会员订单总额(元)"
,
"黄金会员订单(单)"
,
"黄金会员订单总额(元)"
,
"普通会员订单(单)"
,
"普通会员订单总额(元)"
};
createHeader
(
row2
,
1
,
header2
,
headerCellStyle
);
String
[]
header2
=
new
String
[
1
];
List
<
Integer
>
levelIds
=
memberOrderStatisticsBo
.
stream
().
map
(
MemberOrderStatisticsBo:
:
getType
).
collect
(
Collectors
.
toList
());
if
(
levelIds
!=
null
&&
levelIds
.
size
()
>
0
)
{
List
<
BaseUserMemberLevel
>
list
=
new
ArrayList
<>();
List
<
BaseUserMemberLevel
>
levelList
=
userFeign
.
levels
();
Map
<
Integer
,
List
<
BaseUserMemberLevel
>>
map
=
levelList
.
stream
().
collect
(
Collectors
.
groupingBy
(
BaseUserMemberLevel:
:
getLevel
));
if
(
MapUtil
.
isNotEmpty
(
map
))
{
levelIds
.
parallelStream
().
forEach
(
integer
->
{
if
(
map
.
get
(
integer
)
!=
null
)
{
list
.
addAll
(
map
.
get
(
integer
));
}
});
List
<
BaseUserMemberLevel
>
newList
=
list
.
stream
().
sorted
(
Comparator
.
comparing
(
BaseUserMemberLevel:
:
getLevel
)).
collect
(
Collectors
.
toList
());
header2
=
new
String
[
newList
.
size
()
+
1
];
for
(
int
i
=
0
;
i
<
newList
.
size
();
i
++)
{
header2
[
2
*
i
+
2
]
=
newList
.
get
(
i
).
getName
()
+
"订单(单)"
;
header2
[
2
*
i
+
3
]
=
newList
.
get
(
i
).
getName
()
+
"订单总额(元)"
;
}
}
}
createHeader
(
row2
,
1
,
header2
,
headerCellStyle
);
String
[]
countData
=
getData
(
memberOrderStatisticsBo
);
Row
row4
=
sheet
.
createRow
(
2
);
createCellCount
(
row4
,
1
,
countData
,
generalCellStyle
);
createCellCount
(
row4
,
1
,
countData
,
generalCellStyle
);
Row
row5
=
sheet
.
createRow
(
4
);
String
[]
header3
=
new
String
[]{
"订单号"
,
"创建时间"
,
"订单状态"
,
"名称"
,
"用户姓名"
,
"手机号"
,
"上级姓名/手机号"
,
"促成人姓名/手机号"
,
"订单价格(元)"
,
"优惠金额(元)"
,
"实付金额(元)"
,
"支付时间"
};
CellRangeAddress
cellRangeAddress3
=
new
CellRangeAddress
(
3
,
3
,
0
,
header3
.
length
);
String
[]
header3
=
new
String
[]{
"订单号"
,
"创建时间"
,
"订单状态"
,
"名称"
,
"用户姓名"
,
"手机号"
,
"上级姓名/手机号"
,
"促成人姓名/手机号"
,
"订单价格(元)"
,
"优惠金额(元)"
,
"实付金额(元)"
,
"支付时间"
};
CellRangeAddress
cellRangeAddress3
=
new
CellRangeAddress
(
3
,
3
,
0
,
header3
.
length
);
sheet
.
addMergedRegion
(
cellRangeAddress3
);
createHeader
(
row5
,
0
,
header3
,
headerCellStyle
);
createHeader
(
row5
,
0
,
header3
,
headerCellStyle
);
for
(
int
i
=
0
;
i
<
header3
.
length
;
i
++)
{
sheet
.
setColumnWidth
(
i
,
24
*
256
);
for
(
int
i
=
0
;
i
<
header3
.
length
;
i
++)
{
sheet
.
setColumnWidth
(
i
,
24
*
256
);
}
List
<
String
[]>
orderDataList
=
getMemberOrderDataList
(
memberOrderBoList
,
12
);
createMemberOrderCellData
(
sheet
,
5
,
generalCellStyle
,
orderDataList
);
createMemberOrderCellData
(
sheet
,
5
,
generalCellStyle
,
orderDataList
);
hssfWorkbook
.
write
(
outputStream
);
hssfWorkbook
.
close
();
}
private
List
<
String
[]>
getMemberOrderDataList
(
List
<
MemberOrderBo
>
memberOrderBoList
,
Integer
size
)
{
private
List
<
String
[]>
getMemberOrderDataList
(
List
<
MemberOrderBo
>
memberOrderBoList
,
Integer
size
)
{
List
<
String
[]>
memerOrderData
=
new
ArrayList
<>();
String
[]
data
;
for
(
MemberOrderBo
memberOrderBo
:
memberOrderBoList
)
{
data
=
new
String
[
size
];
data
[
0
]=
memberOrderBo
.
getOrderNo
();
data
[
1
]=
simleFormatter
.
format
(
memberOrderBo
.
getCreatTime
());
data
[
2
]=
memberOrderBo
.
getStatus
()==
2
?
"取消"
:
memberOrderBo
.
getStatus
()==
3
?
"待支付"
:
memberOrderBo
.
getStatus
()==
6
?
"已完成"
:
""
;
data
[
3
]=
memberOrderBo
.
getName
();
data
[
4
]=
memberOrderBo
.
getUserName
();
data
[
5
]=
memberOrderBo
.
getPhone
()==
null
?
""
:
memberOrderBo
.
getPhone
();
data
[
6
]=
String
.
format
(
"%s/%s"
,
memberOrderBo
.
getLeaderName
()==
null
?
""
:
memberOrderBo
.
getLeaderName
(),
memberOrderBo
.
getLeaderPhone
()==
null
?
""
:
memberOrderBo
.
getLeaderPhone
());
data
[
7
]=
String
.
format
(
"%s/%s"
,
memberOrderBo
.
getFacilitateName
()==
null
?
""
:
memberOrderBo
.
getFacilitateName
(),
memberOrderBo
.
getFacilitatePhone
()==
null
?
""
:
memberOrderBo
.
getFacilitatePhone
());
data
[
8
]=
memberOrderBo
.
getOrderAmount
().
toString
();
data
[
9
]=
memberOrderBo
.
getCouponAmount
().
toString
();
data
[
10
]=
memberOrderBo
.
getRealAmount
().
toString
();
data
[
11
]=
memberOrderBo
.
getPayTime
()==
null
?
""
:
simleFormatter
.
format
(
new
Date
(
memberOrderBo
.
getPayTime
()));
data
[
0
]
=
memberOrderBo
.
getOrderNo
();
data
[
1
]
=
simleFormatter
.
format
(
memberOrderBo
.
getCreatTime
());
data
[
2
]
=
memberOrderBo
.
getStatus
()
==
2
?
"取消"
:
memberOrderBo
.
getStatus
()
==
3
?
"待支付"
:
memberOrderBo
.
getStatus
()
==
6
?
"已完成"
:
""
;
data
[
3
]
=
memberOrderBo
.
getName
();
data
[
4
]
=
memberOrderBo
.
getUserName
();
data
[
5
]
=
memberOrderBo
.
getPhone
()
==
null
?
""
:
memberOrderBo
.
getPhone
();
data
[
6
]
=
String
.
format
(
"%s/%s"
,
memberOrderBo
.
getLeaderName
()
==
null
?
""
:
memberOrderBo
.
getLeaderName
(),
memberOrderBo
.
getLeaderPhone
()
==
null
?
""
:
memberOrderBo
.
getLeaderPhone
());
data
[
7
]
=
String
.
format
(
"%s/%s"
,
memberOrderBo
.
getFacilitateName
()
==
null
?
""
:
memberOrderBo
.
getFacilitateName
(),
memberOrderBo
.
getFacilitatePhone
()
==
null
?
""
:
memberOrderBo
.
getFacilitatePhone
());
data
[
8
]
=
memberOrderBo
.
getOrderAmount
().
toString
();
data
[
9
]
=
memberOrderBo
.
getCouponAmount
().
toString
();
data
[
10
]
=
memberOrderBo
.
getRealAmount
().
toString
();
data
[
11
]
=
memberOrderBo
.
getPayTime
()
==
null
?
""
:
simleFormatter
.
format
(
new
Date
(
memberOrderBo
.
getPayTime
()));
memerOrderData
.
add
(
data
);
}
return
memerOrderData
;
}
private
CellStyle
createGeneralCellStyle
(
XSSFWorkbook
hssfWorkbook
)
{
private
CellStyle
createGeneralCellStyle
(
XSSFWorkbook
hssfWorkbook
)
{
CellStyle
cellStyleGeneral
=
createHeaderCellStyle
(
hssfWorkbook
);
cellStyleGeneral
.
setWrapText
(
true
);
XSSFFont
generalFont
=
createFont
(
hssfWorkbook
);
...
...
@@ -275,7 +295,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return
cellStyleGeneral
;
}
private
CellStyle
createHeaderCellStyle
(
XSSFWorkbook
hssfWorkbook
)
{
private
CellStyle
createHeaderCellStyle
(
XSSFWorkbook
hssfWorkbook
)
{
XSSFCellStyle
cellStyleHeader
=
hssfWorkbook
.
createCellStyle
();
cellStyleHeader
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
cellStyleHeader
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
...
...
@@ -285,42 +305,40 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return
cellStyleHeader
;
}
private
XSSFFont
createFont
(
XSSFWorkbook
hssfWorkbook
)
{
private
XSSFFont
createFont
(
XSSFWorkbook
hssfWorkbook
)
{
XSSFFont
font
=
hssfWorkbook
.
createFont
();
font
.
setFontName
(
"黑体"
);
font
.
setBold
(
true
);
return
font
;
}
private
String
[]
getData
(
MemberOrderStatisticsBo
memberOrderStatisticsBo
){
String
orderNum
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getOrderNum
());
String
totalAmount
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getTotalAmount
());
String
diamondOrderNum
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getDiamondOrderNum
());
String
totalDiamondAmount
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getDiamondOrderNum
());
String
goldOrderNum
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getGoldOrderNum
());
String
totalGoldAmount
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getTotalGoldAmount
());
String
generalOrderNum
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getGeneralOrderNum
());
String
totalGeneralAmount
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getTotalGeneralAmount
());
return
new
String
[]{
orderNum
,
totalAmount
,
diamondOrderNum
,
totalDiamondAmount
,
goldOrderNum
,
totalGoldAmount
,
generalOrderNum
,
totalGeneralAmount
};
private
String
[]
getData
(
List
<
MemberOrderStatisticsBo
>
memberOrderStatisticsBoList
)
{
String
[]
strings
=
new
String
[
memberOrderStatisticsBoList
.
size
()
*
2
];
for
(
int
i
=
0
;
i
<
memberOrderStatisticsBoList
.
size
();
i
++
)
{
strings
[
2
*
i
]
=
String
.
valueOf
(
memberOrderStatisticsBoList
.
get
(
i
).
getOrderNum
());
strings
[
2
*
i
+
1
]
=
String
.
valueOf
(
memberOrderStatisticsBoList
.
get
(
i
).
getTotalAmount
());
}
return
strings
;
}
private
void
createHeader
(
Row
row
,
int
cellStartIndex
,
String
[]
header
,
CellStyle
cellStyle
)
{
for
(
int
i
=
0
;
i
<
header
.
length
;
i
++)
{
private
void
createHeader
(
Row
row
,
int
cellStartIndex
,
String
[]
header
,
CellStyle
cellStyle
)
{
for
(
int
i
=
0
;
i
<
header
.
length
;
i
++)
{
Cell
cell
=
row
.
createCell
(
cellStartIndex
);
cell
.
setCellValue
(
header
[
i
]);
cell
.
setCellStyle
(
cellStyle
);
cellStartIndex
+=
1
;
cellStartIndex
+=
1
;
}
}
private
void
createMemberOrderCellData
(
Sheet
sheet
,
int
startRowIndex
,
CellStyle
cellStyle
,
List
<
String
[]>
memberOrderList
)
{
private
void
createMemberOrderCellData
(
Sheet
sheet
,
int
startRowIndex
,
CellStyle
cellStyle
,
List
<
String
[]>
memberOrderList
)
{
for
(
String
[]
data
:
memberOrderList
)
{
Row
row
=
sheet
.
createRow
(
startRowIndex
++);
createCellCount
(
row
,
0
,
data
,
cellStyle
);
createCellCount
(
row
,
0
,
data
,
cellStyle
);
}
}
private
void
createCellCount
(
Row
row
,
int
CellStartIndex
,
String
[]
data
,
CellStyle
cellStyle
){
for
(
int
i
=
CellStartIndex
,
y
=
0
;
y
<
data
.
length
;
i
++,
y
++){
private
void
createCellCount
(
Row
row
,
int
CellStartIndex
,
String
[]
data
,
CellStyle
cellStyle
)
{
for
(
int
i
=
CellStartIndex
,
y
=
0
;
y
<
data
.
length
;
i
++,
y
++)
{
Cell
cell
=
row
.
createCell
(
i
);
cell
.
setCellStyle
(
cellStyle
);
cell
.
setCellValue
(
data
[
y
]);
...
...
@@ -330,28 +348,28 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
public
MemberOrderPageVo
listMemberOrderPage
(
MemberOrderFindDTO
memberOrderFindDTO
)
{
MemberOrderPageVo
memberOrderPageVo
=
new
MemberOrderPageVo
();
MemberOrderStatisticsBo
memberOrderStatisticsBo
=
new
MemberOrderStatisticsBo
();
List
<
MemberOrderStatisticsBo
>
memberOrderStatisticsBo
=
new
ArrayList
<>
();
List
<
Integer
>
userIds
=
new
ArrayList
<>();
PageDataVO
<
MemberOrderBo
>
pageDataVO
=
new
PageDataVO
<>();
PageDataVO
<
MemberOrderBo
>
pageDataVO
=
new
PageDataVO
<>();
pageDataVO
.
setPageNum
(
memberOrderFindDTO
.
getPage
());
pageDataVO
.
setPageSize
(
memberOrderFindDTO
.
getLimit
());
pageDataVO
.
setData
(
Collections
.
EMPTY_LIST
);
if
(
Objects
.
nonNull
(
memberOrderFindDTO
.
getEndPayTime
()))
{
Long
payEndTime
=
memberOrderFindDTO
.
getEndPayTime
()+(
1000
*
60
*
60
*
24
);
if
(
Objects
.
nonNull
(
memberOrderFindDTO
.
getEndPayTime
()))
{
Long
payEndTime
=
memberOrderFindDTO
.
getEndPayTime
()
+
(
1000
*
60
*
60
*
24
);
memberOrderFindDTO
.
setEndPayTime
(
payEndTime
);
}
boolean
isNoNullUserName
=
StringUtils
.
isNotEmpty
(
memberOrderFindDTO
.
getName
())
&&
memberOrderFindDTO
.
getName
().
trim
().
length
()
>
0
;
boolean
isNoNullPhone
=
StringUtils
.
isNotEmpty
(
memberOrderFindDTO
.
getPhone
())
&&
memberOrderFindDTO
.
getPhone
().
trim
().
length
()
>
0
;
boolean
isNoNullLeaderPhone
=
StringUtils
.
isNotEmpty
(
memberOrderFindDTO
.
getLeaderPhone
())
&&
memberOrderFindDTO
.
getLeaderPhone
().
trim
().
length
()
>
0
;
if
(
isNoNullLeaderPhone
||
isNoNullPhone
||
isNoNullUserName
)
{
userIds
=
userFeign
.
findAppUserIds
(
memberOrderFindDTO
.
getPhone
(),
memberOrderFindDTO
.
getLeaderPhone
(),
memberOrderFindDTO
.
getName
());
if
(
CollectionUtils
.
isEmpty
(
userIds
))
{
userIds
=
userFeign
.
findAppUserIds
(
memberOrderFindDTO
.
getPhone
(),
memberOrderFindDTO
.
getLeaderPhone
(),
memberOrderFindDTO
.
getName
());
if
(
CollectionUtils
.
isEmpty
(
userIds
))
{
memberOrderPageVo
.
setMemberOrderStatisticsBo
(
memberOrderStatisticsBo
);
memberOrderPageVo
.
setMemberOrderPage
(
pageDataVO
);
return
memberOrderPageVo
;
}
}
if
(
memberOrderFindDTO
.
getPage
()
==
1
)
{
if
(
memberOrderFindDTO
.
getPage
()
==
1
)
{
memberOrderFindDTO
.
setUserIds
(
userIds
);
memberOrderFindDTO
.
setIsPay
(
true
);
List
<
MemberOrderBo
>
baseOrders
=
baseOrderBiz
.
findMemberOrders
(
memberOrderFindDTO
);
...
...
@@ -361,16 +379,16 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
memberOrderPageVo
.
setMemberOrderStatisticsBo
(
memberOrderStatisticsBo
);
List
<
MemberOrderBo
>
memberOrderBoList
;
if
(!
memberOrderFindDTO
.
getIsExport
())
{
if
(!
memberOrderFindDTO
.
getIsExport
())
{
memberOrderFindDTO
.
setUserIds
(
userIds
);
pageDataVO
=
baseOrderBiz
.
findMemberOrderPage
(
memberOrderFindDTO
);
memberOrderBoList
=
pageDataVO
.
getData
();
if
(
CollectionUtils
.
isEmpty
(
memberOrderBoList
))
{
if
(
CollectionUtils
.
isEmpty
(
memberOrderBoList
))
{
memberOrderPageVo
.
setMemberOrderStatisticsBo
(
memberOrderStatisticsBo
);
memberOrderPageVo
.
setMemberOrderPage
(
pageDataVO
);
return
memberOrderPageVo
;
}
}
else
{
}
else
{
memberOrderFindDTO
.
setUserIds
(
userIds
);
memberOrderBoList
=
baseOrderBiz
.
findMemberOrders
(
memberOrderFindDTO
);
}
...
...
@@ -392,7 +410,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
Map
<
String
,
UserBo
>
userBoMap
=
userDTOList
.
stream
().
collect
(
Collectors
.
toMap
(
UserBo:
:
getOrderNo
,
Function
.
identity
()));
for
(
MemberOrderBo
memberOrderBo
:
memberOrderBoList
)
{
UserBo
userBo
=
userBoMap
.
get
(
memberOrderBo
.
getOrderNo
());
if
(
Objects
.
nonNull
(
userBo
))
{
if
(
Objects
.
nonNull
(
userBo
))
{
memberOrderBo
.
setUserName
(
userBo
.
getName
());
memberOrderBo
.
setPhone
(
userBo
.
getPhone
());
memberOrderBo
.
setLeaderName
(
userBo
.
getLeaderName
());
...
...
@@ -405,35 +423,32 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return
memberOrderBoList
;
}
private
MemberOrderStatisticsBo
getMemberOrderStatisticsBo
(
List
<
MemberOrderBo
>
baseOrders
){
private
List
<
MemberOrderStatisticsBo
>
getMemberOrderStatisticsBo
(
List
<
MemberOrderBo
>
baseOrders
)
{
List
<
MemberOrderStatisticsBo
>
list
=
new
ArrayList
<>();
Map
<
Integer
,
List
<
MemberOrderBo
>>
map
=
baseOrders
.
stream
().
collect
(
Collectors
.
groupingBy
(
MemberOrderBo:
:
getMemberLevel
));
//按照c1分组
if
(
MapUtil
.
isEmpty
(
map
))
{
return
list
;
}
MemberOrderStatisticsBo
total
=
new
MemberOrderStatisticsBo
();
total
.
setType
(
0
);
total
.
setOrderNum
(
baseOrders
.
size
());
total
.
setTotalAmount
(
new
BigDecimal
(
baseOrders
.
stream
().
mapToDouble
(
n
->
n
.
getOrderAmount
()!=
null
?
n
.
getOrderAmount
().
doubleValue
()
:
0.00
).
summaryStatistics
().
getSum
()).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
list
.
add
(
total
);
for
(
Map
.
Entry
<
Integer
,
List
<
MemberOrderBo
>>
entry
:
map
.
entrySet
())
{
MemberOrderStatisticsBo
memberOrderStatisticsBo
=
new
MemberOrderStatisticsBo
();
Map
<
Integer
,
List
<
MemberOrderBo
>>
baseOrderMap
=
baseOrders
.
stream
().
collect
(
Collectors
.
groupingBy
(
MemberOrderBo:
:
getMemberLevel
,
Collectors
.
toList
()));
Map
<
Integer
,
List
<
MemberOrderBo
>>
baseOrderHasPayMap
=
baseOrders
.
stream
().
filter
(
x
->
x
.
getHasPay
()==
1
).
collect
(
Collectors
.
groupingBy
(
MemberOrderBo:
:
getMemberLevel
,
Collectors
.
toList
()));
memberOrderStatisticsBo
.
setOrderNum
(
baseOrders
.
size
());
BigDecimal
totalAmount
=
baseOrders
.
stream
().
filter
(
x
->
x
.
getHasPay
()==
1
).
map
(
MemberOrderBo:
:
getOrderAmount
).
reduce
(
BigDecimal
.
ZERO
,
(
x
,
y
)
->
x
.
add
(
y
));
memberOrderStatisticsBo
.
setTotalAmount
(
totalAmount
);
List
<
MemberOrderBo
>
diamondOrders
=
baseOrderMap
.
get
(
LevelEnum
.
DIAMOND
.
getLevel
());
memberOrderStatisticsBo
.
setDiamondOrderNum
(
diamondOrders
==
null
?
0
:
diamondOrders
.
size
());
List
<
MemberOrderBo
>
diamondHashPayOrders
=
baseOrderHasPayMap
.
get
(
LevelEnum
.
DIAMOND
.
getLevel
());
diamondHashPayOrders
=
diamondHashPayOrders
==
null
?
Collections
.
EMPTY_LIST
:
diamondHashPayOrders
;
BigDecimal
diamondAmount
=
diamondHashPayOrders
.
stream
().
map
(
MemberOrderBo:
:
getOrderAmount
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
memberOrderStatisticsBo
.
setTotalDiamondAmount
(
diamondAmount
);
List
<
MemberOrderBo
>
goldOrders
=
baseOrderMap
.
get
(
LevelEnum
.
GOLD
.
getLevel
());
memberOrderStatisticsBo
.
setGoldOrderNum
(
goldOrders
==
null
?
0
:
goldOrders
.
size
());
List
<
MemberOrderBo
>
goldHasPayOrders
=
baseOrderHasPayMap
.
get
(
LevelEnum
.
GOLD
.
getLevel
());
goldHasPayOrders
=
goldHasPayOrders
==
null
?
Collections
.
EMPTY_LIST
:
goldHasPayOrders
;
BigDecimal
goldAmount
=
goldHasPayOrders
.
stream
().
map
(
MemberOrderBo:
:
getOrderAmount
).
reduce
(
BigDecimal
.
ZERO
,
(
x
,
y
)
->
x
.
add
(
y
));
memberOrderStatisticsBo
.
setTotalGoldAmount
(
goldAmount
);
List
<
MemberOrderBo
>
generalOrders
=
baseOrderMap
.
get
(
LevelEnum
.
GENERAL
.
getLevel
());
memberOrderStatisticsBo
.
setGeneralOrderNum
(
generalOrders
==
null
?
0
:
generalOrders
.
size
());
List
<
MemberOrderBo
>
generalHasPayOrders
=
baseOrderHasPayMap
.
get
(
LevelEnum
.
GENERAL
.
getLevel
());
generalHasPayOrders
=
generalHasPayOrders
==
null
?
Collections
.
EMPTY_LIST
:
generalHasPayOrders
;
BigDecimal
generalAmount
=
generalHasPayOrders
.
stream
().
map
(
MemberOrderBo:
:
getOrderAmount
).
reduce
(
BigDecimal
.
ZERO
,
(
x
,
y
)
->
x
.
add
(
y
));
memberOrderStatisticsBo
.
setTotalGeneralAmount
(
generalAmount
);
return
memberOrderStatisticsBo
;
memberOrderStatisticsBo
.
setType
(
entry
.
getKey
());
List
<
MemberOrderBo
>
memberOrderBoList
=
entry
.
getValue
();
if
(
memberOrderBoList
!=
null
)
{
memberOrderStatisticsBo
.
setOrderNum
(
memberOrderBoList
.
size
());
memberOrderStatisticsBo
.
setTotalAmount
(
new
BigDecimal
(
memberOrderBoList
.
stream
().
mapToDouble
(
n
->
n
.
getOrderAmount
()!=
null
?
n
.
getOrderAmount
().
doubleValue
()
:
0.00
).
summaryStatistics
().
getSum
()).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
}
else
{
memberOrderStatisticsBo
.
setOrderNum
(
0
);
memberOrderStatisticsBo
.
setTotalAmount
(
BigDecimal
.
ZERO
);
}
list
.
add
(
memberOrderStatisticsBo
);
}
return
list
.
stream
().
sorted
(
Comparator
.
comparing
(
MemberOrderStatisticsBo:
:
getType
)).
collect
(
Collectors
.
toList
());
}
}
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