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
1b2947b3
Commit
1b2947b3
authored
Nov 01, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
会员订单列表导出
parent
f98599a1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
32 deletions
+85
-32
BaseOrderMapper.java
.../java/com/xxfc/platform/order/mapper/BaseOrderMapper.java
+1
-1
OrderMemberController.java
...a/com/xxfc/platform/order/rest/OrderMemberController.java
+17
-1
OrderMemberService.java
...a/com/xxfc/platform/order/service/OrderMemberService.java
+67
-30
No files found.
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mapper/BaseOrderMapper.java
View file @
1b2947b3
...
@@ -12,7 +12,7 @@ import java.math.BigDecimal;
...
@@ -12,7 +12,7 @@ import java.math.BigDecimal;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
;
*
*
*
*
* @author zjw
* @author zjw
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderMemberController.java
View file @
1b2947b3
...
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
...
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken
;
import
com.github.wxiaoqi.security.common.context.BaseContextHandler
;
import
com.github.wxiaoqi.security.common.context.BaseContextHandler
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
...
@@ -20,7 +21,12 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -20,7 +21,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Controller
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.net.URLEncoder
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.Base64
;
@Controller
@Controller
@RequestMapping
(
"orderMember"
)
@RequestMapping
(
"orderMember"
)
...
@@ -69,6 +75,16 @@ public class OrderMemberController extends BaseController<OrderMemberDetailBiz,
...
@@ -69,6 +75,16 @@ public class OrderMemberController extends BaseController<OrderMemberDetailBiz,
@PostMapping
(
"/export"
)
@PostMapping
(
"/export"
)
@ResponseBody
@ResponseBody
public
void
exportMemberOrders
(
@RequestBody
MemberOrderFindDTO
memberOrderFindDTO
,
HttpServletResponse
response
){
public
void
exportMemberOrders
(
@RequestBody
MemberOrderFindDTO
memberOrderFindDTO
,
HttpServletResponse
response
){
// orderMemberService.exportMemberOrderData(memberOrderFindDTO);
try
{
String
name
=
DateTimeFormatter
.
ofPattern
(
"YYYYMMddHHmmss"
).
format
(
LocalDateTime
.
now
());
response
.
setContentType
(
"application/vnd.ms-excel;charset=utf-8"
);
String
filename
=
String
.
format
(
"%s-MemberOrder.xlsx"
,
name
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
new
String
(
filename
.
getBytes
(),
"iso8859-1"
));
ServletOutputStream
outputStream
=
response
.
getOutputStream
();
orderMemberService
.
exportMemberOrderData
(
memberOrderFindDTO
,
name
,
outputStream
);
response
.
setCharacterEncoding
(
"UTF-8"
);
}
catch
(
Exception
ex
){
throw
new
BaseException
(
"导出数据失败"
);
}
}
}
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderMemberService.java
View file @
1b2947b3
package
com
.
xxfc
.
platform
.
order
.
service
;
package
com
.
xxfc
.
platform
.
order
.
service
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.poi.excel.ExcelUtil
;
import
cn.hutool.poi.excel.ExcelWriter
;
import
com.github.wxiaoqi.security.admin.bo.UserBo
;
import
com.github.wxiaoqi.security.admin.bo.UserBo
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface
;
import
com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
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.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
...
@@ -20,7 +17,6 @@ import com.xxfc.platform.order.biz.OrderTemplateBiz;
...
@@ -20,7 +17,6 @@ import com.xxfc.platform.order.biz.OrderTemplateBiz;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.pojo.dto.MemberOrderBo
;
import
com.xxfc.platform.order.pojo.dto.MemberOrderBo
;
import
com.xxfc.platform.order.pojo.dto.MemberOrderFindDTO
;
import
com.xxfc.platform.order.pojo.dto.MemberOrderFindDTO
;
...
@@ -35,6 +31,7 @@ import com.xxfc.platform.vehicle.feign.VehicleFeign;
...
@@ -35,6 +31,7 @@ import com.xxfc.platform.vehicle.feign.VehicleFeign;
import
lombok.extern.log4j.Log4j
;
import
lombok.extern.log4j.Log4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.hssf.usermodel.*
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -42,14 +39,11 @@ import org.springframework.stereotype.Service;
...
@@ -42,14 +39,11 @@ import org.springframework.stereotype.Service;
import
javax.annotation.PostConstruct
;
import
javax.annotation.PostConstruct
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.
File
OutputStream
;
import
java.io.OutputStream
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.Instant
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicInteger
;
import
java.util.function.Function
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -96,6 +90,10 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
...
@@ -96,6 +90,10 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
@Autowired
@Autowired
public
HttpServletRequest
request
;
public
HttpServletRequest
request
;
private
SimpleDateFormat
simleFormatter
=
new
SimpleDateFormat
(
"YYYY-MM-dd HH:mm:ss"
);
private
DateTimeFormatter
dateTimeFormatter
=
DateTimeFormatter
.
ofPattern
(
"YYYYMMddHHmmss"
);
@PostConstruct
@PostConstruct
public
void
init
()
{
public
void
init
()
{
this
.
orderTypeEnum
=
OrderTypeEnum
.
MEMBER
;
this
.
orderTypeEnum
=
OrderTypeEnum
.
MEMBER
;
...
@@ -197,56 +195,88 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
...
@@ -197,56 +195,88 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
* 导出数据
* 导出数据
* @param memberOrderFindDTO
* @param memberOrderFindDTO
*/
*/
public
void
exportMemberOrderData
(
MemberOrderFindDTO
memberOrderFindDTO
)
throws
Exception
{
public
void
exportMemberOrderData
(
MemberOrderFindDTO
memberOrderFindDTO
,
String
name
,
OutputStream
outputStream
)
throws
Exception
{
MemberOrderPageVo
memberOrderPageVo
=
listMemberOrderPage
(
memberOrderFindDTO
);
MemberOrderPageVo
memberOrderPageVo
=
listMemberOrderPage
(
memberOrderFindDTO
);
List
<
MemberOrderBo
>
memberOrderBoList
=
memberOrderPageVo
.
getMemberOrderPage
().
getData
();
List
<
MemberOrderBo
>
memberOrderBoList
=
memberOrderPageVo
.
getMemberOrderPage
().
getData
();
MemberOrderStatisticsBo
memberOrderStatisticsBo
=
memberOrderPageVo
.
getMemberOrderStatisticsBo
();
MemberOrderStatisticsBo
memberOrderStatisticsBo
=
memberOrderPageVo
.
getMemberOrderStatisticsBo
();
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
"ts.xlsx"
);
HSSFWorkbook
hssfWorkbook
=
new
HSSFWorkbook
();
ExcelExport
excelExport
=
new
ExcelExport
();
HSSFSheet
sheet
=
hssfWorkbook
.
createSheet
(
name
+
"会员订单列表"
);
Workbook
workbook
=
excelExport
.
getWorkbook
();
CellStyle
headerCellStyle
=
createHeaderCellStyle
(
hssfWorkbook
);
Sheet
sheet
=
workbook
.
createSheet
();
CellStyle
generalCellStyle
=
createGeneralCellStyle
(
hssfWorkbook
);
CellStyle
cellStyleHeader01
=
workbook
.
createCellStyle
();
cellStyleHeader01
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
sheet
.
autoSizeColumn
(
9
);
Row
row1
=
sheet
.
createRow
(
0
);
Row
row1
=
sheet
.
createRow
(
0
);
DateTimeFormatter
dateTimeFormatter
=
DateTimeFormatter
.
ofPattern
(
"YYYYMMddHHmmss"
);
createHeader
(
row1
,
0
,
new
String
[]{
name
+
"会员订单列表"
},
headerCellStyle
);
createHeader
(
row1
,
0
,
new
String
[]{
dateTimeFormatter
.
format
(
LocalDateTime
.
now
())+
"会员订单列表"
},
cellStyleHeader01
);
CellRangeAddress
cellRangeAddress
=
new
CellRangeAddress
(
0
,
0
,
0
,
11
);
CellRangeAddress
cellRangeAddress
=
new
CellRangeAddress
(
0
,
0
,
0
,
11
);
sheet
.
addMergedRegion
(
cellRangeAddress
);
sheet
.
addMergedRegion
(
cellRangeAddress
);
Row
row2
=
sheet
.
createRow
(
1
);
Row
row2
=
sheet
.
createRow
(
1
);
Cell
row2_cell1
=
row2
.
createCell
(
0
);
Cell
row2_cell1
=
row2
.
createCell
(
0
);
row2_cell1
.
setCellValue
(
"统计"
);
row2_cell1
.
setCellValue
(
"统计"
);
row2_cell1
.
setCellStyle
(
cellStyleHeader01
);
row2_cell1
.
setCellStyle
(
headerCellStyle
);
CellRangeAddress
cellRangeAddress2
=
new
CellRangeAddress
(
1
,
2
,
0
,
0
);
CellRangeAddress
cellRangeAddress2
=
new
CellRangeAddress
(
1
,
2
,
0
,
0
);
sheet
.
addMergedRegion
(
cellRangeAddress2
);
sheet
.
addMergedRegion
(
cellRangeAddress2
);
String
[]
header2
=
new
String
[]{
"会员订单总数(单)"
,
"会员订单总额(元)"
,
"钻石会员订单(单)"
,
"钻石会员订单总额(元)"
,
"黄金会员订单(单)"
,
"黄金会员订单总额(元)"
,
"普通会员订单(单)"
,
"普通会员订单总额(元)"
};
String
[]
header2
=
new
String
[]{
"会员订单总数(单)"
,
"会员订单总额(元)"
,
"钻石会员订单(单)"
,
"钻石会员订单总额(元)"
,
"黄金会员订单(单)"
,
"黄金会员订单总额(元)"
,
"普通会员订单(单)"
,
"普通会员订单总额(元)"
};
createHeader
(
row2
,
1
,
header2
,
cellStyleHeader01
);
createHeader
(
row2
,
1
,
header2
,
headerCellStyle
);
String
[]
countData
=
getData
(
memberOrderStatisticsBo
);
String
[]
countData
=
getData
(
memberOrderStatisticsBo
);
Row
row4
=
sheet
.
createRow
(
2
);
Row
row4
=
sheet
.
createRow
(
2
);
createCellCount
(
row4
,
1
,
countData
,
cellStyleHeader01
);
createCellCount
(
row4
,
1
,
countData
,
generalCellStyle
);
Row
row5
=
sheet
.
createRow
(
4
);
Row
row5
=
sheet
.
createRow
(
4
);
String
[]
header3
=
new
String
[]{
"订单号"
,
"创建时间"
,
"订单状态"
,
"名称"
,
"用户姓名"
,
"手机号"
,
"上级姓名/手机号"
,
"促成人姓名/手机号"
,
"订单价格(元)"
,
"优惠金额(元)"
,
"实付金额(元)"
,
"支付时间"
};
String
[]
header3
=
new
String
[]{
"订单号"
,
"创建时间"
,
"订单状态"
,
"名称"
,
"用户姓名"
,
"手机号"
,
"上级姓名/手机号"
,
"促成人姓名/手机号"
,
"订单价格(元)"
,
"优惠金额(元)"
,
"实付金额(元)"
,
"支付时间"
};
CellRangeAddress
cellRangeAddress3
=
new
CellRangeAddress
(
3
,
3
,
0
,
header3
.
length
);
CellRangeAddress
cellRangeAddress3
=
new
CellRangeAddress
(
3
,
3
,
0
,
header3
.
length
);
sheet
.
addMergedRegion
(
cellRangeAddress3
);
sheet
.
addMergedRegion
(
cellRangeAddress3
);
createHeader
(
row5
,
0
,
header3
,
cellStyleHeader01
);
createHeader
(
row5
,
0
,
header3
,
headerCellStyle
);
workbook
.
write
(
fileOutputStream
);
List
<
String
[]>
orderDataList
=
getMemberOrderDataList
(
memberOrderBoList
,
12
);
fileOutputStream
.
close
();
createMemberOrderCellData
(
sheet
,
5
,
generalCellStyle
,
orderDataList
);
workbook
.
close
();
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
<>();
List
<
String
[]>
memerOrderData
=
new
ArrayList
<>();
String
[]
data
=
null
;
String
[]
data
;
for
(
MemberOrderBo
memberOrderBo
:
memberOrderBoList
)
{
for
(
MemberOrderBo
memberOrderBo
:
memberOrderBoList
)
{
data
=
new
String
[
size
];
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
()));
memerOrderData
.
add
(
data
);
memerOrderData
.
add
(
data
);
}
}
return
null
;
return
memerOrderData
;
}
private
CellStyle
createGeneralCellStyle
(
HSSFWorkbook
hssfWorkbook
){
HSSFCellStyle
cellStyleGeneral
=
hssfWorkbook
.
createCellStyle
();
cellStyleGeneral
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
cellStyleGeneral
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
cellStyleGeneral
.
setWrapText
(
true
);
HSSFFont
font
=
hssfWorkbook
.
createFont
();
font
.
setFontName
(
"黑体"
);
cellStyleGeneral
.
setFont
(
font
);
return
cellStyleGeneral
;
}
private
CellStyle
createHeaderCellStyle
(
HSSFWorkbook
hssfWorkbook
){
HSSFCellStyle
cellStyleHeader
=
hssfWorkbook
.
createCellStyle
();
cellStyleHeader
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
cellStyleHeader
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
HSSFFont
font
=
hssfWorkbook
.
createFont
();
font
.
setFontName
(
"黑体"
);
font
.
setBold
(
true
);
cellStyleHeader
.
setFont
(
font
);
return
cellStyleHeader
;
}
}
private
String
[]
getData
(
MemberOrderStatisticsBo
memberOrderStatisticsBo
){
private
String
[]
getData
(
MemberOrderStatisticsBo
memberOrderStatisticsBo
){
...
@@ -270,11 +300,18 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
...
@@ -270,11 +300,18 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
}
}
}
}
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
);
}
}
private
void
createCellCount
(
Row
row
,
int
CellStartIndex
,
String
[]
data
,
CellStyle
cellStyle
){
private
void
createCellCount
(
Row
row
,
int
CellStartIndex
,
String
[]
data
,
CellStyle
cellStyle
){
for
(
int
i
=
CellStartIndex
,
y
=
0
;
y
<
data
.
length
;
i
++,
y
++){
for
(
int
i
=
CellStartIndex
,
y
=
0
;
y
<
data
.
length
;
i
++,
y
++){
Cell
cell
=
row
.
createCell
(
i
);
Cell
cell
=
row
.
createCell
(
i
);
cell
.
setCellValue
(
Objects
.
toString
(
data
[
y
]));
cell
.
setCellStyle
(
cellStyle
);
cell
.
setCellStyle
(
cellStyle
);
cell
.
setCellValue
(
new
HSSFRichTextString
(
data
[
y
]));
}
}
}
}
...
...
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