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
8cd3d05f
Commit
8cd3d05f
authored
Sep 30, 2019
by
hanfeng
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master-order-statistics' into dev
parents
cfe4edaa
d5ddb0a6
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
90 additions
and
15 deletions
+90
-15
OrderStatisticsBiz.java
.../java/com/xxfc/platform/order/biz/OrderStatisticsBiz.java
+45
-12
OrderStatisticsController.java
...form/order/rest/background/OrderStatisticsController.java
+45
-3
会员订单统计.xlsx
...rder/xx-order-server/src/main/resources/Excel/会员订单统计.xlsx
+0
-0
No files found.
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderStatisticsBiz.java
View file @
8cd3d05f
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.db.PageResult
;
import
com.github.pagehelper.Page
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Ordering
;
import
com.xxfc.platform.order.Utils.OrderDateUtils
;
import
com.xxfc.platform.order.contant.enumerate.OrderInquiryType
;
import
com.xxfc.platform.order.entity.MembersOrder
;
...
...
@@ -19,15 +15,14 @@ import com.xxfc.platform.order.pojo.HomePageOrderData;
import
com.xxfc.platform.order.pojo.Member
;
import
com.xxfc.platform.order.pojo.MembersOrderDto
;
import
com.xxfc.platform.order.pojo.OrderQuery
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.assertj.core.util.Lists
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.text.DateFormat
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -91,7 +86,7 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
return
result
;
}
public
Object
getMemberOrderStatistics
(
List
<
BaseUserMemberLevel
>
memberLevels
,
OrderQuery
query
)
throws
ParseException
{
public
List
<
MembersOrderDto
>
getMemberOrderStatistics
(
List
<
BaseUserMemberLevel
>
memberLevels
,
OrderQuery
query
)
throws
ParseException
{
List
<
MembersOrder
>
membersOrderList
=
membersBiz
.
getMemberOrderStatistics
(
query
);
...
...
@@ -136,7 +131,7 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
//获取今天是今年的第几周
time
=
OrderDateUtils
.
getTodayOfWeek
();
}
Integer
thisYear
=
OrderDateUtils
.
getThisYear
();
Integer
thisYear
=
OrderDateUtils
.
getThisYear
();
if
(
OrderInquiryType
.
MONTH
.
getCode
().
equals
(
query
.
getType
()))
{
startDay
=
OrderDateUtils
.
getFirstDayOfMonth
(
Integer
.
parseInt
(
periods
[
0
]),
Integer
.
parseInt
(
periods
[
1
]));
endDay
=
OrderDateUtils
.
getLastDayOfMonth
(
Integer
.
parseInt
(
periods
[
0
]),
Integer
.
parseInt
(
periods
[
1
]));
...
...
@@ -148,7 +143,7 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
startDay
=
OrderDateUtils
.
timeStampConversionToString
(
query
.
getStartTime
());
}
//获取当前的年.周(年.月)小数
double
today
=
Double
.
parseDouble
(
thisYear
+
"."
+
time
);
double
today
=
Double
.
parseDouble
(
thisYear
+
"."
+
time
);
if
(
i
==
(
membersOrderList
.
size
()
-
1
))
{
//查询到的最后一条数据年.周(年.月)小数
...
...
@@ -193,16 +188,54 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
private
void
TotalPaymentAndMemberName
(
HashMap
<
Integer
,
String
>
map
,
MembersOrder
mb
,
MembersOrderDto
mbdto
)
{
BigDecimal
totalPayment
=
BigDecimal
.
ZERO
;
BigDecimal
totalPayment
=
BigDecimal
.
ZERO
;
List
<
Member
>
members
=
mb
.
getMembers
();
//设置时间段购买会员总金额和不同的会员名称
if
(
CollectionUtil
.
isNotEmpty
(
members
))
{
mbdto
.
setMembers
(
members
);
for
(
Member
member
:
members
)
{
member
.
setMemberName
(
map
.
get
(
member
.
getLevel
()));
totalPayment
=
totalPayment
.
add
(
member
.
getAmount
()
==
null
?
BigDecimal
.
ZERO
:
member
.
getAmount
());
totalPayment
=
totalPayment
.
add
(
member
.
getAmount
()
==
null
?
BigDecimal
.
ZERO
:
member
.
getAmount
());
}
}
mbdto
.
setTotalPayment
(
totalPayment
);
}
public
Object
downloadExcel
()
{
return
null
;
}
public
List
<
HashMap
<
Object
,
Object
>>
getRows
(
List
<
MembersOrderDto
>
list
,
List
<
BaseUserMemberLevel
>
memberLevels
)
{
ArrayList
<
HashMap
<
Object
,
Object
>>
rows
=
Lists
.
newArrayList
();
for
(
MembersOrderDto
membersOrderDto
:
list
)
{
if
(
CollectionUtils
.
isEmpty
(
membersOrderDto
.
getMembers
()))
{
continue
;
}
HashMap
<
Object
,
Object
>
map
=
Maps
.
newHashMap
();
map
.
put
(
"时间"
,
membersOrderDto
.
getTimeSlot
());
for
(
BaseUserMemberLevel
memberLevel
:
memberLevels
)
{
setMap
(
membersOrderDto
,
map
,
memberLevel
);
}
map
.
put
(
"总支付金额"
,
membersOrderDto
.
getTotalPayment
());
rows
.
add
(
map
);
}
return
rows
;
}
private
void
setMap
(
MembersOrderDto
membersOrderDto
,
HashMap
<
Object
,
Object
>
map
,
BaseUserMemberLevel
memberLevel
)
{
List
<
Member
>
collect
=
membersOrderDto
.
getMembers
().
parallelStream
().
filter
(
el
->
el
.
getLevel
().
equals
(
memberLevel
.
getLevel
())).
collect
(
Collectors
.
toList
());
int
number
=
0
;
BigDecimal
amount
=
BigDecimal
.
ZERO
;
if
(
CollectionUtils
.
isNotEmpty
(
collect
))
{
number
=
collect
.
get
(
0
).
getNumber
();
amount
=
collect
.
get
(
0
).
getAmount
();
}
map
.
put
(
memberLevel
.
getName
()
+
"购买量"
,
0
);
map
.
put
(
"支付金额("
+
memberLevel
.
getName
()
+
")"
,
0
);
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/background/OrderStatisticsController.java
View file @
8cd3d05f
package
com
.
xxfc
.
platform
.
order
.
rest
.
background
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.io.IoUtil
;
import
cn.hutool.poi.excel.ExcelUtil
;
import
cn.hutool.poi.excel.ExcelWriter
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
...
...
@@ -9,22 +13,30 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.google.common.collect.Lists
;
import
com.xxfc.platform.order.biz.DailyMembersOrderStatisticsBiz
;
import
com.xxfc.platform.order.biz.DailyTravelOrderStatisticsBiz
;
import
com.xxfc.platform.order.biz.DailyVehicleOrderStatisticsBiz
;
import
com.xxfc.platform.order.biz.OrderStatisticsBiz
;
import
com.xxfc.platform.order.entity.OrderStatistics
;
import
com.xxfc.platform.order.pojo.HomePageOrderData
;
import
com.xxfc.platform.order.pojo.MembersOrderDto
;
import
com.xxfc.platform.order.pojo.OrderQuery
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.lang.reflect.Array
;
import
java.text.DateFormat
;
import
java.text.ParseException
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -40,6 +52,9 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
@Autowired
private
UserAuthConfig
userAuthConfig
;
@Autowired
private
HttpServletResponse
response
;
/**
* 租车订单
*/
...
...
@@ -135,14 +150,41 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
@PostMapping
(
"/order"
)
@ApiOperation
(
value
=
"会员统计"
)
public
ObjectRestResponse
getMemberOrderStatisticsData
(
@RequestBody
OrderQuery
query
)
throws
ParseException
{
public
ObjectRestResponse
<
List
<
MembersOrderDto
>>
getMemberOrderStatisticsData
(
@RequestBody
OrderQuery
query
)
throws
ParseException
{
//获取会员等级信息
List
<
BaseUserMemberLevel
>
memberLevels
=
userFeign
.
levels
();
//获取会员订单统计信息
return
ObjectRestResponse
.
succ
(
baseBiz
.
getMemberOrderStatistics
(
memberLevels
,
query
));
return
ObjectRestResponse
.
succ
(
baseBiz
.
getMemberOrderStatistics
(
memberLevels
,
query
));
}
@PostMapping
(
"/excel"
)
@ApiOperation
(
value
=
"下载excel表"
)
public
void
downloadExcel
(
@RequestBody
OrderQuery
query
)
throws
Exception
{
// 通过工具类创建writer,默认创建xls格式
ExcelWriter
writer
=
ExcelUtil
.
getWriter
(
true
);
List
<
BaseUserMemberLevel
>
memberLevels
=
userFeign
.
levels
();
List
<
MembersOrderDto
>
list
=
baseBiz
.
getMemberOrderStatistics
(
memberLevels
,
query
);
List
<
HashMap
<
Object
,
Object
>>
rows
=
baseBiz
.
getRows
(
list
,
memberLevels
);
// 一次性写出内容,使用默认样式,强制输出标题
writer
.
write
(
rows
,
true
);
//out为OutputStream,需要写出到的目标流
//response为HttpServletResponse对象
response
.
setContentType
(
"application/vnd.ms-excel;charset=utf-8"
);
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename=hwddtj.xls"
);
ServletOutputStream
out
=
response
.
getOutputStream
();
writer
.
flush
(
out
,
true
);
// 关闭writer,释放内存
writer
.
close
();
//此处记得关闭输出Servlet流
IoUtil
.
close
(
out
);
}
}
xx-order/xx-order-server/src/main/resources/Excel/会员订单统计.xlsx
0 → 100644
View file @
8cd3d05f
File added
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