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
c91fc91e
Commit
c91fc91e
authored
Sep 27, 2019
by
hanfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改订单统计
parent
ef31d8fa
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
153 additions
and
25 deletions
+153
-25
OrderDateUtils.java
...in/java/com/xxfc/platform/order/Utils/OrderDateUtils.java
+78
-0
OrderStatisticsBiz.java
.../java/com/xxfc/platform/order/biz/OrderStatisticsBiz.java
+74
-25
OrderStatisticsController.java
...form/order/rest/background/OrderStatisticsController.java
+1
-0
No files found.
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/Utils/OrderDateUtils.java
0 → 100644
View file @
c91fc91e
package
com
.
xxfc
.
platform
.
order
.
Utils
;
import
java.util.Calendar
;
public
class
OrderDateUtils
{
public
static
String
getFirstDayOfMonth
(
int
year
,
int
month
)
{
String
monthStr
=
month
<
10
?
"0"
+
month
:
String
.
valueOf
(
month
);
return
year
+
"-"
+
monthStr
+
"-"
+
"01"
;
}
/**
* get the last date of given month and year
* @param year
* @param month
* @return
*
*/
public
static
String
getLastDayOfMonth
(
int
year
,
int
month
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
set
(
Calendar
.
YEAR
,
year
);
calendar
.
set
(
Calendar
.
MONTH
,
month
-
1
);
calendar
.
set
(
Calendar
.
DATE
,
1
);
calendar
.
add
(
Calendar
.
MONTH
,
1
);
calendar
.
add
(
Calendar
.
DAY_OF_YEAR
,
-
1
);
return
calendar
.
get
(
Calendar
.
YEAR
)
+
"-"
+
(
calendar
.
get
(
Calendar
.
MONTH
)
+
1
)
+
"-"
+
calendar
.
get
(
Calendar
.
DAY_OF_MONTH
);
}
/**
* get Calendar of given year
* @param year
* @return
*
*/
private
static
Calendar
getCalendarFormYear
(
int
year
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
set
(
Calendar
.
DAY_OF_WEEK
,
Calendar
.
MONDAY
);
cal
.
set
(
Calendar
.
YEAR
,
year
);
return
cal
;
}
/**
* get start date of given week no of a year
* @param year
* @param weekNo
* @return
*
*/
public
static
String
getStartDayOfWeekNo
(
int
year
,
int
weekNo
)
{
Calendar
cal
=
getCalendarFormYear
(
year
);
cal
.
set
(
Calendar
.
WEEK_OF_YEAR
,
weekNo
);
return
cal
.
get
(
Calendar
.
YEAR
)
+
"-"
+
(
cal
.
get
(
Calendar
.
MONTH
)
+
1
)
+
"-"
+
cal
.
get
(
Calendar
.
DAY_OF_MONTH
);
}
/**
* get the end day of given week no of a year.
* @param year
* @param weekNo
* @return
*
*/
public
static
String
getEndDayOfWeekNo
(
int
year
,
int
weekNo
)
{
Calendar
cal
=
getCalendarFormYear
(
year
);
cal
.
set
(
Calendar
.
WEEK_OF_YEAR
,
weekNo
);
cal
.
add
(
Calendar
.
DAY_OF_WEEK
,
6
);
return
cal
.
get
(
Calendar
.
YEAR
)
+
"-"
+
(
cal
.
get
(
Calendar
.
MONTH
)
+
1
)
+
"-"
+
cal
.
get
(
Calendar
.
DAY_OF_MONTH
);
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderStatisticsBiz.java
View file @
c91fc91e
package
com
.
xxfc
.
platform
.
order
.
biz
;
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.date.DateUtil
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
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.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Ordering
;
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.contant.enumerate.OrderInquiryType
;
import
com.xxfc.platform.order.entity.MembersOrder
;
import
com.xxfc.platform.order.entity.MembersOrder
;
import
com.xxfc.platform.order.entity.OrderStatistics
;
import
com.xxfc.platform.order.entity.OrderStatistics
;
...
@@ -15,11 +17,14 @@ import com.xxfc.platform.order.pojo.HomePageOrderData;
...
@@ -15,11 +17,14 @@ import com.xxfc.platform.order.pojo.HomePageOrderData;
import
com.xxfc.platform.order.pojo.Member
;
import
com.xxfc.platform.order.pojo.Member
;
import
com.xxfc.platform.order.pojo.MembersOrderDto
;
import
com.xxfc.platform.order.pojo.MembersOrderDto
;
import
com.xxfc.platform.order.pojo.OrderQuery
;
import
com.xxfc.platform.order.pojo.OrderQuery
;
import
org.apache.commons.lang3.StringUtils
;
import
org.assertj.core.util.Lists
;
import
org.assertj.core.util.Lists
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -74,13 +79,11 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
...
@@ -74,13 +79,11 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
}
}
result
.
setTotalOrders
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getTotalOrders
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
result
.
setTotalOutstandingDeposit
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getTotalOutstandingDeposit
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
result
.
setTotalOrders
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getTotalOrders
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
result
.
setAdditionalIndemnity
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getAdditionalIndemnity
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
result
.
setTotalOutstandingDeposit
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getTotalOutstandingDeposit
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
result
.
setAdditionalIndemnity
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getAdditionalIndemnity
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
return
result
;
return
result
;
}
}
...
@@ -94,43 +97,89 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
...
@@ -94,43 +97,89 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
}
}
//按每天分类
//按每天分类
if
(
CollectionUtil
.
isEmpty
(
memberLevels
))
{
if
(
CollectionUtil
.
isEmpty
(
memberLevels
))
{
throw
new
BaseException
(
"获取不到会员信息"
);
throw
new
BaseException
(
"获取不到会员信息"
);
}
}
//获取会员等级对应的名称
//获取会员等级对应的名称
HashMap
<
Integer
,
String
>
map
=
Maps
.
newHashMap
();
HashMap
<
Integer
,
String
>
map
=
Maps
.
newHashMap
();
for
(
BaseUserMemberLevel
memberLevel
:
memberLevels
)
{
for
(
BaseUserMemberLevel
memberLevel
:
memberLevels
)
{
map
.
put
(
memberLevel
.
getLevel
(),
memberLevel
.
getName
());
map
.
put
(
memberLevel
.
getLevel
(),
memberLevel
.
getName
());
}
}
//按查询条件获取统计信息
//按查询条件获取统计信息
ArrayList
<
MembersOrderDto
>
arrayList
=
Lists
.
newArrayList
();
if
(
OrderInquiryType
.
DAY
.
getCode
().
equals
(
query
.
getType
()))
{
if
(
OrderInquiryType
.
DAY
.
getCode
().
equals
(
query
.
getType
()))
{
ArrayList
<
MembersOrderDto
>
arrayList
=
Lists
.
newArrayList
();
for
(
MembersOrder
mb
:
membersOrderList
)
{
for
(
MembersOrder
mb
:
membersOrderList
)
{
MembersOrderDto
mbdto
=
new
MembersOrderDto
();
MembersOrderDto
mbdto
=
new
MembersOrderDto
();
//设置时间段
mbdto
.
setTimeSlot
(
mb
.
getPeriod
());
mbdto
.
setTimeSlot
(
mb
.
getPeriod
());
BigDecimal
totalPayment
=
mbdto
.
getTotalPayment
();
TotalPaymentAndMemberName
(
map
,
mb
,
mbdto
);
List
<
Member
>
members
=
mb
.
getMembers
();
arrayList
.
add
(
mbdto
);
if
(
CollectionUtil
.
isNotEmpty
(
members
))
{
}
mbdto
.
setMembers
(
members
);
}
else
{
for
(
Member
member
:
members
)
{
if
(
membersOrderList
.
size
()
==
1
)
{
member
.
setMemberName
(
map
.
get
(
member
.
getLevel
()));
MembersOrder
mb
=
membersOrderList
.
get
(
0
);
totalPayment
=
totalPayment
.
add
(
member
.
getAmount
());
MembersOrderDto
mbdto
=
new
MembersOrderDto
();
//设置时间段
mbdto
.
setTimeSlot
(
query
.
getStartTime
()
+
"-"
+
query
.
getEndTime
());
TotalPaymentAndMemberName
(
map
,
mb
,
mbdto
);
arrayList
.
add
(
mbdto
);
}
else
{
for
(
int
i
=
0
;
i
<
membersOrderList
.
size
();
i
++)
{
MembersOrder
mb
=
membersOrderList
.
get
(
i
);
String
period
=
mb
.
getPeriod
();
if
(
StringUtils
.
isBlank
(
period
))
{
continue
;
}
MembersOrderDto
mbdto
=
new
MembersOrderDto
();
String
[]
periods
=
mb
.
getPeriod
().
split
(
"-"
);
String
startDay
=
null
;
String
endDay
=
null
;
if
(
OrderInquiryType
.
WEEK
.
getCode
().
equals
(
query
.
getType
()))
{
startDay
=
OrderDateUtils
.
getEndDayOfWeekNo
(
Integer
.
parseInt
(
periods
[
0
]),
Integer
.
parseInt
(
periods
[
1
]));
endDay
=
OrderDateUtils
.
getStartDayOfWeekNo
(
Integer
.
parseInt
(
periods
[
0
]),
Integer
.
parseInt
(
periods
[
1
]));
}
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
]));
}
}
}
}
if
(
i
==
0
)
{
return
arrayList
;
}
if
(
OrderInquiryType
.
WEEK
.
getCode
().
equals
(
query
.
getType
())){
ArrayList
<
MembersOrderDto
>
arrayList
=
Lists
.
newArrayList
();
for
(
int
i
=
0
;
i
<
membersOrderList
.
size
();
i
++)
{
startDay
=
timeStampConversionToString
(
query
.
getStartTime
());
}
if
(
i
==
(
membersOrderList
.
size
()
-
1
))
{
endDay
=
timeStampConversionToString
(
query
.
getEndTime
());
}
if
(
StringUtils
.
isNotBlank
(
startDay
)
&&
StringUtils
.
isNotBlank
(
endDay
))
{
mbdto
.
setTimeSlot
(
startDay
+
"-"
+
endDay
);
}
else
{
mbdto
.
setTimeSlot
(
""
);
}
arrayList
.
add
(
mbdto
);
}
}
}
}
}
return
arrayList
;
}
private
String
timeStampConversionToString
(
Long
startTime
)
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
date
=
new
Date
(
startTime
);
return
simpleDateFormat
.
format
(
date
);
}
return
null
;
private
void
TotalPaymentAndMemberName
(
HashMap
<
Integer
,
String
>
map
,
MembersOrder
mb
,
MembersOrderDto
mbdto
)
{
BigDecimal
totalPayment
=
mbdto
.
getTotalPayment
();
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
());
}
}
}
}
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/background/OrderStatisticsController.java
View file @
c91fc91e
...
@@ -133,6 +133,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
...
@@ -133,6 +133,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
}
}
@GetMapping
(
"/order"
)
@GetMapping
(
"/order"
)
@ApiOperation
(
value
=
"获取会员订单信息"
)
public
ObjectRestResponse
getMemberOrderStatisticsData
(
@RequestBody
OrderQuery
query
)
{
public
ObjectRestResponse
getMemberOrderStatisticsData
(
@RequestBody
OrderQuery
query
)
{
//获取会员等级信息
//获取会员等级信息
...
...
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