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
f57f80e9
Commit
f57f80e9
authored
Dec 22, 2019
by
libin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'order_received_statistics' into dev
parents
4e20920b
6de1d0ef
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
135 additions
and
6 deletions
+135
-6
CompanyPerformanceBo.java
...java/com/xxfc/platform/order/bo/CompanyPerformanceBo.java
+4
-0
OrderMemberReceivedStatisticsSignEnum.java
...tant/enumerate/OrderMemberReceivedStatisticsSignEnum.java
+24
-0
OrderReceivedStatisticsSignEnum.java
...er/contant/enumerate/OrderReceivedStatisticsSignEnum.java
+24
-0
OrderRentVehicleReceivedStatisticsSignEnum.java
...enumerate/OrderRentVehicleReceivedStatisticsSignEnum.java
+25
-1
OrderTourReceivedStatisticsSignEnum.java
...ontant/enumerate/OrderTourReceivedStatisticsSignEnum.java
+23
-0
CompanyOrderReceivedStatiscsAdminController.java
...ckground/CompanyOrderReceivedStatiscsAdminController.java
+11
-2
OrderReceivedStatisticsAdminController.java
...st/background/OrderReceivedStatisticsAdminController.java
+9
-0
OrderReceivedStatisticsMapper.xml
...c/main/resources/mapper/OrderReceivedStatisticsMapper.xml
+15
-3
No files found.
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/bo/CompanyPerformanceBo.java
View file @
f57f80e9
...
...
@@ -31,6 +31,7 @@ public class CompanyPerformanceBo {
private
BigDecimal
travelAmount
;
private
BigDecimal
noDeductibleAmount
;
private
BigDecimal
depositAmount
;
private
BigDecimal
depositRefundAmount
;
private
Integer
rentDays
;
private
BigDecimal
extralAmount
;
private
Integer
departureNum
;
...
...
@@ -38,6 +39,9 @@ public class CompanyPerformanceBo {
private
String
startDate
;
private
String
endDate
;
private
String
dateStr
;
private
BigDecimal
lossSpecifiedAmount
;
private
BigDecimal
lateFeeAmount
;
public
BigDecimal
getMemberAmount
()
{
return
memberAmount
==
null
?
BigDecimal
.
ZERO
:
memberAmount
;
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderMemberReceivedStatisticsSignEnum.java
View file @
f57f80e9
...
...
@@ -5,7 +5,9 @@ import com.xxfc.platform.order.entity.OrderReceivedStatisticsBase;
import
com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
...
...
@@ -127,6 +129,28 @@ public enum OrderMemberReceivedStatisticsSignEnum{
resultMap
.
put
(
getSign
(),
orderReceivedStatisticsVos
);
return
resultMap
;
}
},
MEMBER_AVG_AMOUNT
(
"dh_mavga"
,
"会员订单总额"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
List
<
OrderReceivedStatisticsVo
>
orderReceivedStatisticsVos
=
new
ArrayList
<>();
AtomicReference
<
Integer
>
divisorAtomicReference
=
new
AtomicReference
<>();
orderMap
.
forEach
((
K
,
V
)->{
List
<
OrderMemberReceivedStatistics
>
orderMemberReceivedStatisticsList
=
ReceivedStatisticsEnum
.
convertToTargetBean
(
V
);
Integer
divisor
=
divisorAtomicReference
.
get
();
if
(
Objects
.
isNull
(
divisor
)){
divisor
=
orderMemberReceivedStatisticsList
.
get
(
0
).
getDivisor
();
divisorAtomicReference
.
set
(
divisor
);
}
BigDecimal
avgAmount
=
orderMemberReceivedStatisticsList
.
stream
().
map
(
x
->
x
.
getTotalAmount
()).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
).
divide
(
new
BigDecimal
(
divisor
),
2
,
RoundingMode
.
HALF_UP
);
OrderMemberReceivedStatistics
orderMemberReceivedStatistics
=
orderMemberReceivedStatisticsList
.
get
(
0
);
OrderReceivedStatisticsVo
receivedStatisticsVo
=
ReceivedStatisticsEnum
.
createOrderReceivedStatistics
(
orderMemberReceivedStatistics
,
avgAmount
,
null
);
orderReceivedStatisticsVos
.
add
(
receivedStatisticsVo
);
});
resultMap
.
put
(
getSign
(),
orderReceivedStatisticsVos
);
return
resultMap
;
}
};
private
String
sign
;
private
String
desc
;
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderReceivedStatisticsSignEnum.java
View file @
f57f80e9
...
...
@@ -5,7 +5,9 @@ import com.xxfc.platform.order.entity.OrderReceivedStatisticsBase;
import
com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
...
...
@@ -63,6 +65,28 @@ public enum OrderReceivedStatisticsSignEnum {
resultMap
.
put
(
getSign
(),
orderReceivedStatisticsVos
);
return
resultMap
;
}
},
ORDER_AVG_AMOUNT
(
"ad_oavga"
,
"订单金额arpu"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
AtomicReference
<
Integer
>
divisorAtomicReference
=
new
AtomicReference
<>();
List
<
OrderReceivedStatisticsVo
>
orderReceivedStatisticsVos
=
new
ArrayList
<>();
orderMap
.
forEach
((
K
,
V
)->{
List
<
OrderReceivedStatistics
>
orderReceivedStatisticsList
=
ReceivedStatisticsEnum
.
convertToTargetBean
(
V
);
Integer
divisor
=
divisorAtomicReference
.
get
();
if
(
Objects
.
isNull
(
divisor
)){
divisor
=
orderReceivedStatisticsList
.
get
(
0
).
getDivisor
();
divisorAtomicReference
.
set
(
divisor
);
}
BigDecimal
avgAmount
=
orderReceivedStatisticsList
.
stream
().
map
(
x
->
x
.
getTotalAmount
()).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
).
divide
(
new
BigDecimal
(
divisor
),
2
,
RoundingMode
.
HALF_UP
);
OrderReceivedStatistics
orderReceivedStatistics
=
orderReceivedStatisticsList
.
get
(
0
);
OrderReceivedStatisticsVo
receivedStatisticsVo
=
ReceivedStatisticsEnum
.
createOrderReceivedStatistics
(
orderReceivedStatistics
,
avgAmount
,
null
);
orderReceivedStatisticsVos
.
add
(
receivedStatisticsVo
);
});
resultMap
.
put
(
getSign
(),
orderReceivedStatisticsVos
);
return
resultMap
;
}
};
private
String
sign
;
private
String
desc
;
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderRentVehicleReceivedStatisticsSignEnum.java
View file @
f57f80e9
...
...
@@ -5,6 +5,7 @@ import com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics;
import
com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
import
java.util.function.Function
;
...
...
@@ -70,7 +71,30 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
resultMap
.
put
(
getSign
(),
orderReceivedStatisticsVos
);
return
resultMap
;
}
},
RENT_VEHICLE_AVG_AMOUNT
(
"bd_rvavga"
,
"租车金额arpu"
)
{
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
AtomicReference
<
Integer
>
divisorAtomicReference
=
new
AtomicReference
<>();
List
<
OrderReceivedStatisticsVo
>
orderReceivedStatisticsVos
=
new
ArrayList
<>();
orderMap
.
forEach
((
K
,
V
)->{
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatisticsList
=
ReceivedStatisticsEnum
.
convertToTargetBean
(
V
);
Integer
divisor
=
divisorAtomicReference
.
get
();
if
(
Objects
.
isNull
(
divisor
)){
divisor
=
orderRentVehicleReceivedStatisticsList
.
get
(
0
).
getDivisor
();
divisorAtomicReference
.
set
(
divisor
);
}
BigDecimal
avgAmount
=
orderRentVehicleReceivedStatisticsList
.
stream
().
map
(
x
->
x
.
getTotalAmount
()).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
).
divide
(
new
BigDecimal
(
divisor
),
2
,
RoundingMode
.
HALF_UP
);
OrderRentVehicleReceivedStatistics
orderReceivedStatistics
=
orderRentVehicleReceivedStatisticsList
.
get
(
0
);
OrderReceivedStatisticsVo
receivedStatisticsVo
=
ReceivedStatisticsEnum
.
createOrderReceivedStatistics
(
orderReceivedStatistics
,
avgAmount
,
null
);
orderReceivedStatisticsVos
.
add
(
receivedStatisticsVo
);
});
resultMap
.
put
(
getSign
(),
orderReceivedStatisticsVos
);
return
resultMap
;
}
};
private
String
sign
;
private
String
desc
;
private
static
Map
<
String
,
OrderRentVehicleReceivedStatisticsSignEnum
>
orderRentVehicleReceivedStatisticsSignEnumMap
;
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderTourReceivedStatisticsSignEnum.java
View file @
f57f80e9
...
...
@@ -5,6 +5,7 @@ import com.xxfc.platform.order.entity.OrderTourReceivedStatistics;
import
com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
import
java.util.function.Function
;
...
...
@@ -70,6 +71,28 @@ public enum OrderTourReceivedStatisticsSignEnum {
resultMap
.
put
(
getSign
(),
orderReceivedStatisticsVos
);
return
resultMap
;
}
},
TOUR_AVG_AMOUNT
(
"ce_tavga"
,
"旅游金额arpu"
)
{
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
AtomicReference
<
Integer
>
divisorAtomicReference
=
new
AtomicReference
<>();
List
<
OrderReceivedStatisticsVo
>
orderReceivedStatisticsVos
=
new
ArrayList
<>();
orderMap
.
forEach
((
K
,
V
)
->
{
List
<
OrderTourReceivedStatistics
>
orderTourReceivedStatisticsList
=
ReceivedStatisticsEnum
.
convertToTargetBean
(
V
);
Integer
divisor
=
divisorAtomicReference
.
get
();
if
(
Objects
.
isNull
(
divisor
)){
divisor
=
orderTourReceivedStatisticsList
.
get
(
0
).
getDivisor
();
divisorAtomicReference
.
set
(
divisor
);
}
BigDecimal
avgAmount
=
orderTourReceivedStatisticsList
.
stream
().
map
(
x
->
x
.
getTotalAmount
()).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
).
divide
(
new
BigDecimal
(
divisor
),
2
,
RoundingMode
.
HALF_UP
);
OrderTourReceivedStatistics
orderReceivedStatistics
=
orderTourReceivedStatisticsList
.
get
(
0
);
OrderReceivedStatisticsVo
receivedStatisticsVo
=
ReceivedStatisticsEnum
.
createOrderReceivedStatistics
(
orderReceivedStatistics
,
avgAmount
,
null
);
orderReceivedStatisticsVos
.
add
(
receivedStatisticsVo
);
});
resultMap
.
put
(
getSign
(),
orderReceivedStatisticsVos
);
return
resultMap
;
}
};
private
String
sign
;
private
String
desc
;
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/background/CompanyOrderReceivedStatiscsAdminController.java
View file @
f57f80e9
package
com
.
xxfc
.
platform
.
order
.
rest
.
background
;
import
cn.hutool.core.date.DateUtil
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.xxfc.platform.order.biz.CompanyPerformanceBiz
;
import
com.xxfc.platform.order.pojo.dto.CompanyPerformanceFindDTO
;
import
com.xxfc.platform.order.bo.CompanyPerformanceBo
;
import
com.xxfc.platform.order.pojo.dto.CompanyPerformanceFindDTO
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
...
@@ -19,6 +20,7 @@ import javax.servlet.ServletOutputStream;
import
javax.servlet.http.HttpServletResponse
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.Date
;
/**
* @author libin
...
...
@@ -36,6 +38,13 @@ public class CompanyOrderReceivedStatiscsAdminController {
@PostMapping
(
"/company_performance"
)
public
ObjectRestResponse
<
PageDataVO
<
CompanyPerformanceBo
>>
companyPerformance
(
@RequestBody
CompanyPerformanceFindDTO
companyPerformanceFindDTO
){
if
(
companyPerformanceFindDTO
.
getStartDate
()
==
null
&&
companyPerformanceFindDTO
.
getEndDate
()==
null
){
Date
date
=
new
Date
();
Date
startDate
=
DateUtil
.
beginOfMonth
(
date
).
toJdkDate
();
Date
endDate
=
DateUtil
.
endOfMonth
(
date
).
toJdkDate
();
companyPerformanceFindDTO
.
setStartDate
(
startDate
);
companyPerformanceFindDTO
.
setEndDate
(
endDate
);
}
PageDataVO
<
CompanyPerformanceBo
>
dataVO
=
companyPerformanceBiz
.
selectCompanyPerformancePage
(
companyPerformanceFindDTO
);
return
ObjectRestResponse
.
succ
(
dataVO
);
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/background/OrderReceivedStatisticsAdminController.java
View file @
f57f80e9
package
com
.
xxfc
.
platform
.
order
.
rest
.
background
;
import
cn.hutool.core.date.DateUtil
;
import
com.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
import
com.github.wxiaoqi.security.common.annotation.BeanValid
;
import
com.github.wxiaoqi.security.common.annotation.SimpleValid
;
...
...
@@ -23,6 +24,7 @@ import javax.servlet.http.HttpServletResponse;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -44,6 +46,13 @@ public class OrderReceivedStatisticsAdminController {
@PostMapping
(
""
)
public
ObjectRestResponse
<
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>>
orderReceivedStatistics
(
@RequestBody
@SimpleValid
OrderReceivedStatisticsFindDTO
orderReceivedStatisticsFindDTO
,
UserDTO
userDTO
){
orderReceivedStatisticsFindDTO
.
setCompanyId
(
Arrays
.
asList
(
userDTO
.
getCompanyId
()));
if
(
orderReceivedStatisticsFindDTO
.
getStartDate
()==
null
&&
orderReceivedStatisticsFindDTO
.
getEndDate
()==
null
){
Date
date
=
new
Date
();
Date
startDate
=
DateUtil
.
beginOfMonth
(
date
).
toJdkDate
();
Date
endDate
=
DateUtil
.
endOfMonth
(
date
).
toJdkDate
();
orderReceivedStatisticsFindDTO
.
setStartDate
(
startDate
);
orderReceivedStatisticsFindDTO
.
setEndDate
(
endDate
);
}
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
orderReceivedStatisticsPageVo
=
orderReceivedStatisticsBiz
.
getOrderReceivedStatisticsResult
(
orderReceivedStatisticsFindDTO
);
return
ObjectRestResponse
.
succ
(
orderReceivedStatisticsPageVo
);
}
...
...
xx-order/xx-order-server/src/main/resources/mapper/OrderReceivedStatisticsMapper.xml
View file @
f57f80e9
...
...
@@ -135,7 +135,10 @@
SUM(`travel_amount`-`travel_refund_amount` ) AS `travelAmount`,
SUM(`rent_vehicle_amount`-`rent_vehicle_refund_amount`) AS `rentVehilceAmount`,
SUM(`no_deductible_amount` - `no_deductible_refund_amount`) as `noDeductibleAmount`,
SUM(`deposit_amount` - `deposit_refund_amount`) as `depositAmount`
SUM(`deposit_amount` - `deposit_refund_amount`) as `depositAmount`,
SUM(`deposit_refund_amount`) as `depositRefundAmount`,
SUM(`loss_specified_amount`) as `lossSpecifiedAmount`,
SUM(`late_fee_amount`) as `lateFeeAmount`
FROM
`order_received_statistics` WHERE `has_pay`=1
<if
test=
"companyName!=null and companyName!=''"
>
...
...
@@ -163,6 +166,7 @@
`company_id` ,
`year`,
`date`
order by `date` desc
<if
test=
"page!=null and limit!=null"
>
limit #{startIndex},#{endInex}
</if>
...
...
@@ -220,7 +224,10 @@
SUM(`travel_amount`-`travel_refund_amount` ) AS `travelAmount`,
SUM(`rent_vehicle_amount`-`rent_vehicle_refund_amount`) AS `rentVehilceAmount`,
SUM(`no_deductible_amount` - `no_deductible_refund_amount`) as `noDeductibleAmount`,
SUM(`deposit_amount` - `deposit_refund_amount`) as `depositAmount`
SUM(`deposit_amount` - `deposit_refund_amount`) as `depositAmount`,
SUM(`deposit_refund_amount`) as `depositRefundAmount`,
SUM(`loss_specified_amount`) as `lossSpecifiedAmount`,
SUM(`late_fee_amount`) as `lateFeeAmount`
FROM
`order_received_statistics` WHERE `has_pay`=1
<if
test=
"companyName!=null and companyName!=''"
>
...
...
@@ -248,6 +255,7 @@
company_id,
`year`,
`month`
order by `month` desc
<if
test=
"page!=null and limit!=null"
>
limit #{startIndex},#{endInex}
</if>
...
...
@@ -304,7 +312,10 @@
SUM(`travel_amount`-`travel_refund_amount` ) AS `travelAmount`,
SUM(`rent_vehicle_amount`-`rent_vehicle_refund_amount`) AS `rentVehilceAmount`,
SUM(`no_deductible_amount` - `no_deductible_refund_amount`) as `noDeductibleAmount`,
SUM(`deposit_amount` - `deposit_refund_amount`) as `depositAmount`
SUM(`deposit_amount` - `deposit_refund_amount`) as `depositAmount`,
SUM(`deposit_refund_amount`) as `depositRefundAmount`,
SUM(`loss_specified_amount`) as `lossSpecifiedAmount`,
SUM(`late_fee_amount`) as `lateFeeAmount`
FROM
`order_received_statistics` WHERE `has_pay`=1
<if
test=
"companyName!=null and companyName!=''"
>
...
...
@@ -332,6 +343,7 @@
company_id,
`year`,
`week_of_year`
order by `week_of_year` desc
<if
test=
"page!=null and limit!=null"
>
limit #{startIndex},#{endInex}
</if>
...
...
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