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
db9fd770
Commit
db9fd770
authored
Oct 31, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
会员订单列表
parent
c3e616a4
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
96 additions
and
20 deletions
+96
-20
MemberOrderFindDTO.java
.../com/xxfc/platform/order/pojo/dto/MemberOrderFindDTO.java
+1
-0
OrderMemberController.java
...a/com/xxfc/platform/order/rest/OrderMemberController.java
+1
-1
OrderMemberService.java
...a/com/xxfc/platform/order/service/OrderMemberService.java
+90
-18
BaseOrderMapper.xml
...rder-server/src/main/resources/mapper/BaseOrderMapper.xml
+4
-1
No files found.
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/dto/MemberOrderFindDTO.java
View file @
db9fd770
...
...
@@ -36,4 +36,5 @@ public class MemberOrderFindDTO extends PageParam {
private
String
facilitatePhone
;
private
Boolean
isExport
;
private
List
<
Integer
>
userIds
;
private
Boolean
isPay
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderMemberController.java
View file @
db9fd770
...
...
@@ -69,6 +69,6 @@ public class OrderMemberController extends BaseController<OrderMemberDetailBiz,
@PostMapping
(
"/export"
)
@ResponseBody
public
void
exportMemberOrders
(
@RequestBody
MemberOrderFindDTO
memberOrderFindDTO
,
HttpServletResponse
response
){
orderMemberService
.
exportMemberOrderData
(
memberOrderFindDTO
);
//
orderMemberService.exportMemberOrderData(memberOrderFindDTO);
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderMemberService.java
View file @
db9fd770
...
...
@@ -9,6 +9,7 @@ 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.exception.BaseException
;
import
com.github.wxiaoqi.security.common.util.excel.ExcelExport
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
...
...
@@ -34,13 +35,21 @@ import com.xxfc.platform.vehicle.feign.VehicleFeign;
import
lombok.extern.log4j.Log4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.PostConstruct
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.FileOutputStream
;
import
java.math.BigDecimal
;
import
java.time.Instant
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicInteger
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
...
...
@@ -188,13 +197,74 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
* 导出数据
* @param memberOrderFindDTO
*/
public
void
exportMemberOrderData
(
MemberOrderFindDTO
memberOrderFindDTO
){
public
void
exportMemberOrderData
(
MemberOrderFindDTO
memberOrderFindDTO
)
throws
Exception
{
MemberOrderPageVo
memberOrderPageVo
=
listMemberOrderPage
(
memberOrderFindDTO
);
List
<
MemberOrderBo
>
memberOrderBoList
=
memberOrderPageVo
.
getMemberOrderPage
().
getData
();
ExcelWriter
excelWriter
=
ExcelUtil
.
getWriter
();
MemberOrderStatisticsBo
memberOrderStatisticsBo
=
memberOrderPageVo
.
getMemberOrderStatisticsBo
();
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
"ts.xlsx"
);
ExcelExport
excelExport
=
new
ExcelExport
();
Workbook
workbook
=
excelExport
.
getWorkbook
();
Sheet
sheet
=
workbook
.
createSheet
();
CellStyle
cellStyleHeader01
=
workbook
.
createCellStyle
();
cellStyleHeader01
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
sheet
.
autoSizeColumn
(
9
);
Row
row1
=
sheet
.
createRow
(
0
);
DateTimeFormatter
dateTimeFormatter
=
DateTimeFormatter
.
ofPattern
(
"YYYYMMddHHmmss"
);
createHeader
(
row1
,
0
,
new
String
[]{
dateTimeFormatter
.
format
(
LocalDateTime
.
now
())+
"会员订单列表"
},
cellStyleHeader01
);
CellRangeAddress
cellRangeAddress
=
new
CellRangeAddress
(
0
,
0
,
0
,
9
);
sheet
.
addMergedRegion
(
cellRangeAddress
);
Row
row2
=
sheet
.
createRow
(
1
);
Cell
row2_cell1
=
row2
.
createCell
(
0
);
row2_cell1
.
setCellValue
(
"统计"
);
row2_cell1
.
setCellStyle
(
cellStyleHeader01
);
CellRangeAddress
cellRangeAddress2
=
new
CellRangeAddress
(
1
,
2
,
0
,
0
);
sheet
.
addMergedRegion
(
cellRangeAddress2
);
String
[]
header2
=
new
String
[]{
"会员订单总数(单)"
,
"会员订单总额(元)"
,
"钻石会员订单(单)"
,
"钻石会员订单总额(元)"
,
"黄金会员订单(单)"
,
"黄金会员订单总额(元)"
,
"普通会员订单(单)"
,
"普通会员订单总额(元)"
};
createHeader
(
row2
,
1
,
header2
,
cellStyleHeader01
);
String
[]
countData
=
getData
(
memberOrderStatisticsBo
);
createCellCount
(
row2
,
1
,
countData
,
cellStyleHeader01
);
Row
row3
=
sheet
.
createRow
(
4
);
String
[]
header3
=
new
String
[]{
"订单号"
,
"创建时间"
,
"订单状态"
,
"名称"
,
"用户姓名"
,
"手机号"
,
"上级姓名/手机号"
,
"促成人姓名/手机号"
,
"订单价格(元)"
,
"优惠金额(元)"
,
"实付金额(元)"
,
"支付时间"
};
CellRangeAddress
cellRangeAddress3
=
new
CellRangeAddress
(
3
,
3
,
0
,
header3
.
length
);
sheet
.
addMergedRegion
(
cellRangeAddress3
);
createHeader
(
row3
,
0
,
header3
,
cellStyleHeader01
);
workbook
.
write
(
fileOutputStream
);
fileOutputStream
.
close
();
workbook
.
close
();
}
private
String
[]
getData
(
MemberOrderStatisticsBo
memberOrderStatisticsBo
){
String
totalAmount
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getTotalAmount
());
String
totalDiamondAmount
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getDiamondOrderNum
());
String
totalGoldAmount
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getTotalGoldAmount
());
String
totalGeneralAmount
=
String
.
valueOf
(
memberOrderStatisticsBo
.
getTotalGeneralAmount
());
return
new
String
[]{
totalAmount
,
totalDiamondAmount
,
totalGoldAmount
,
totalGeneralAmount
};
}
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
;
}
}
private
void
createCellCount
(
Row
row
,
int
CellStartIndex
,
String
[]
data
,
CellStyle
cellStyle
){
for
(
int
i
=
CellStartIndex
,
y
=
0
;
i
<
data
.
length
;
i
++,
y
++){
Cell
cell
=
row
.
createCell
(
i
);
cell
.
setCellValue
(
Objects
.
toString
(
data
[
y
]));
cell
.
setCellStyle
(
cellStyle
);
}
}
public
MemberOrderPageVo
listMemberOrderPage
(
MemberOrderFindDTO
memberOrderFindDTO
)
{
MemberOrderPageVo
memberOrderPageVo
=
new
MemberOrderPageVo
();
MemberOrderStatisticsBo
memberOrderStatisticsBo
=
new
MemberOrderStatisticsBo
();
...
...
@@ -217,14 +287,16 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
}
if
(
memberOrderFindDTO
.
getPage
()
==
1
){
memberOrderFindDTO
.
setUserIds
(
userIds
);
memberOrderFindDTO
.
setIsPay
(
true
);
List
<
MemberOrderBo
>
baseOrders
=
baseOrderBiz
.
findMemberOrders
(
memberOrderFindDTO
);
if
(
CollectionUtils
.
isEmpty
(
baseOrders
)){
/*
if (CollectionUtils.isEmpty(baseOrders)){
memberOrderPageVo.setMemberOrderStatisticsBo(memberOrderStatisticsBo);
memberOrderPageVo.setMemberOrderPage(pageDataVO);
return memberOrderPageVo;
}
}
*/
memberOrderStatisticsBo
=
getMemberOrderStatisticsBo
(
baseOrders
);
}
memberOrderFindDTO
.
setIsPay
(
false
);
memberOrderPageVo
.
setMemberOrderStatisticsBo
(
memberOrderStatisticsBo
);
List
<
MemberOrderBo
>
memberOrderBoList
;
...
...
@@ -274,24 +346,24 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
private
MemberOrderStatisticsBo
getMemberOrderStatisticsBo
(
List
<
MemberOrderBo
>
baseOrders
){
MemberOrderStatisticsBo
memberOrderStatisticsBo
=
new
MemberOrderStatisticsBo
();
Map
<
Integer
,
List
<
MemberOrderBo
>>
baseOrderMap
=
baseOrders
.
stream
().
collect
(
Collectors
.
groupingBy
(
MemberOrderBo:
:
getMemberLevel
,
Collectors
.
toList
()));
Map
<
BigDecimal
,
List
<
MemberOrderBo
>>
baseOrderMap
=
baseOrders
.
stream
().
collect
(
Collectors
.
groupingBy
(
MemberOrderBo:
:
getOrderAmount
,
Collectors
.
toList
()));
memberOrderStatisticsBo
.
setOrderNum
(
baseOrders
.
size
());
BigDecimal
totalAmount
=
baseOrders
.
stream
().
map
(
MemberOrderBo:
:
getOrderAmount
).
reduce
(
BigDecimal
.
ZERO
,
(
x
,
y
)
->
x
.
add
(
y
));
memberOrderStatisticsBo
.
setTotalAmount
(
totalAmount
);
List
<
MemberOrderBo
>
diamondOrders
=
baseOrderMap
.
get
(
levelEnum
.
DIAMOND
.
get
Level
());
List
<
MemberOrderBo
>
diamondOrders
=
baseOrderMap
.
get
(
levelEnum
.
DIAMOND
.
get
Price
());
diamondOrders
=
diamondOrders
==
null
?
Collections
.
EMPTY_LIST
:
diamondOrders
;
memberOrderStatisticsBo
.
setDiamondOrderNum
(
diamondOrders
.
size
());
BigDecimal
diamondAmount
=
diamondOrders
.
stream
().
map
(
MemberOrderBo:
:
getOrderAmount
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
memberOrderStatisticsBo
.
setTotalDiamondAmount
(
diamondAmount
);
List
<
MemberOrderBo
>
goldOrders
=
baseOrderMap
.
get
(
levelEnum
.
GOLD
.
get
Level
());
List
<
MemberOrderBo
>
goldOrders
=
baseOrderMap
.
get
(
levelEnum
.
GOLD
.
get
Price
());
goldOrders
=
goldOrders
==
null
?
Collections
.
EMPTY_LIST
:
goldOrders
;
memberOrderStatisticsBo
.
setGoldOrderNum
(
goldOrders
.
size
());
BigDecimal
goldAmount
=
goldOrders
.
stream
().
map
(
MemberOrderBo:
:
getOrderAmount
).
reduce
(
BigDecimal
.
ZERO
,
(
x
,
y
)
->
x
.
add
(
y
));
memberOrderStatisticsBo
.
setTotalGoldAmount
(
goldAmount
);
List
<
MemberOrderBo
>
generalOrders
=
baseOrderMap
.
get
(
levelEnum
.
GENERAL
.
get
Level
());
List
<
MemberOrderBo
>
generalOrders
=
baseOrderMap
.
get
(
levelEnum
.
GENERAL
.
get
Price
());
generalOrders
=
generalOrders
==
null
?
Collections
.
EMPTY_LIST
:
generalOrders
;
memberOrderStatisticsBo
.
setGeneralOrderNum
(
generalOrders
.
size
());
BigDecimal
generalAmount
=
generalOrders
.
stream
().
map
(
MemberOrderBo:
:
getOrderAmount
).
reduce
(
BigDecimal
.
ZERO
,
(
x
,
y
)
->
x
.
add
(
y
));
...
...
@@ -300,24 +372,24 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return
memberOrderStatisticsBo
;
}
private
enum
levelEnum
{
DIAMOND
(
3
,
"钻石会员"
),
GOLD
(
2
,
"黄金会员"
),
GENERAL
(
1
,
"普通会员"
);
DIAMOND
(
new
BigDecimal
(
"0.20"
)
,
"钻石会员"
),
GOLD
(
new
BigDecimal
(
"0.10"
)
,
"黄金会员"
),
GENERAL
(
new
BigDecimal
(
"0.05"
)
,
"普通会员"
);
levelEnum
(
Integer
level
,
String
desc
)
{
this
.
level
=
level
;
levelEnum
(
BigDecimal
price
,
String
desc
)
{
this
.
price
=
price
;
this
.
desc
=
desc
;
}
private
Integer
level
;
private
BigDecimal
price
;
private
String
desc
;
public
Integer
getLevel
()
{
return
level
;
public
BigDecimal
getPrice
()
{
return
price
;
}
public
void
set
Level
(
Integer
level
)
{
this
.
level
=
level
;
public
void
set
Price
(
BigDecimal
price
)
{
this
.
price
=
price
;
}
public
String
getDesc
()
{
...
...
xx-order/xx-order-server/src/main/resources/mapper/BaseOrderMapper.xml
View file @
db9fd770
...
...
@@ -303,7 +303,7 @@
FROM
`base_order`
WHERE
type = 3
and
<![CDATA[`member_level`<>0]]>
type = 3
<if
test=
"orderNo!=null and orderNo!=''"
>
and `no`=#{orderNo}
</if>
...
...
@@ -334,6 +334,9 @@
<if
test=
"endPayTime!=null and startPayTime==null"
>
and `pay_time`
<![CDATA[<=#{endPayTime}]]>
</if>
<if
test=
"isPay == true"
>
and `has_pay`=1
</if>
<if
test=
"userIds!=null and userIds.size()>0"
>
and `user_id` IN
<foreach
collection=
"userIds"
item=
"userId"
separator=
","
open=
"("
close=
")"
>
...
...
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